# Unreal Engine Level Sequencer FMOD "Play" trigger on frame 000 doesn't fire

**URL:** <https://qa.fmod.com/t/unreal-engine-level-sequencer-fmod-play-trigger-on-frame-000-doesnt-fire/24385>\
**Category:** Unreal Engine\
**Created:** [July 3, 2026, 10:49am UTC](https://qa.fmod.com/t/unreal-engine-level-sequencer-fmod-play-trigger-on-frame-000-doesnt-fire/24385 "2026-07-03T10:49:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vaskully](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/vaskully/32/10076_2.png) [@Vaskully](https://qa.fmod.com/u/Vaskully)\
**Post date:** [July 3, 2026, 10:49am UTC](https://qa.fmod.com/t/unreal-engine-level-sequencer-fmod-play-trigger-on-frame-000-doesnt-fire/24385/1 "2026-07-03T10:49:19Z")

</div>

# Unreal Engine Level Sequencer FMOD “Play” trigger on frame 000 doesn’t fire

**Environment**

- Was working on:
  - Unreal Engine **5.5**
  - FMOD UE Integration **2.03.11**

- Broke after migrating to:
  - Unreal Engine **5.7**
  - FMOD UE Integration **2.03.14**

I have an FMOD Event track in a Level Sequence with a **Play** trigger keyed on the very first frame (frame 000). On UE 5.5 + FMOD 2.03.11 this fired reliably. After migrating the project to UE 5.7 + FMOD 2.03.14, that first-frame trigger no longer fires.

The assets and the sequence itself are unchanged; the only variables are the engine upgrade and the FMOD integration upgrade, which were done together. If I move the exact same Play key to frame 1 (or any later frame), it fires reliably again.

**Steps to reproduce (post-migration)**

1. Open a migrated Level Sequence (or build a fresh one on 5.7 / FMOD 2.03.14).
2. Add an FMOD Event track.
3. Add a **Play** trigger key exactly on frame 000.
4. Play the sequence (PIE or in-editor preview).
5. → The event does **not** play.
6. Move the same key to frame 1 → it plays.

**What I’ve already checked**

- Event and bank are loaded — confirmed, since the identical key fires once moved off frame 0.
- Sequence playback range starts at 0.
- Not a “restore state / when finished” issue — later keys on the same track behave normally.
- Same result in PIE and in-editor preview.
- Same behavior on a freshly authored sequence, so it isn’t leftover migration corruption on one asset.

**Suspected cause?**

This changelog line, which lands between my working (2.03.11) and broken (2.03.14) versions:

> **02/04/26 – 2.03.13 (build 162576)** — Unreal: Fixed events not auditioning in Sequencer and Animations.

I’m trying to avoid a one-frame gap on cinematics where the audio needs to hit exactly on start. Thanks in advance!

---

<div class="post-metadata">

**Author:** ![Vaskully](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/vaskully/32/10076_2.png) [@Vaskully](https://qa.fmod.com/u/Vaskully)\
**Post date:** [July 4, 2026, 7:55pm UTC](https://qa.fmod.com/t/unreal-engine-level-sequencer-fmod-play-trigger-on-frame-000-doesnt-fire/24385/2 "2026-07-04T19:55:04Z")

</div>

Hi again!

I just wanted to let everyone know that I might have fixed the issue.  
I dug through the source code of FMODStudio for Unreal,  
‘`FMODEventControlSectionTemplate.cpp`’ in specific.

The problem was that the plugin detected “scrubbing” by checking if the evaluated time range was exactly one frame wide, and on scrub it stops audio instead of firing keys, but the very first evaluation when a sequence starts playing is also exactly one frame wide, so a Play key at frame 0 was mistaken for a scrub and thrown away.  
Since every following evaluation covers (previousTime, currentTime], frame 0 is never evaluated again, so the key was lost permanently, which is why keys on any later frame worked fine.

Here is a before and after on the changes I made:

 ![p4merge_xEid7ydzWM](https://canada1.discourse-cdn.com/flex036/uploads/fmod/original/2X/1/16ad0562948f36a41036343f0daa492c670a8bb3.png)

Instead of guessing from the range width, the code now asks the sequencer directly what’s happening via Context.GetStatus(), so start-frame key fires correctly.

---

<div class="post-metadata">

**Author:** ![cameron-fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/cameron-fmod/32/261_2.png) [@cameron-fmod](https://qa.fmod.com/u/cameron-fmod)\
**Post date:** [July 15, 2026, 6:39am UTC](https://qa.fmod.com/t/unreal-engine-level-sequencer-fmod-play-trigger-on-frame-000-doesnt-fire/24385/3 "2026-07-15T06:39:48Z")

</div>

Thanks very much for the detailed feedback, I have added a task to investigate the issue and your possible fix.

---

<div class="post-metadata">

**Author:** ![lmgarciac](https://avatars.discourse-cdn.com/v4/letter/l/8edcca/32.png) [@lmgarciac](https://qa.fmod.com/u/lmgarciac)\
**Post date:** [September 24, 2026, 7:02pm UTC](https://qa.fmod.com/t/unreal-engine-level-sequencer-fmod-play-trigger-on-frame-000-doesnt-fire/24385/4 "2026-09-24T19:02:04Z")

</div>

Hi,

We are seeing what appears to be the same underlying issue in Unreal Sequencer.

In our case, it happens with a **Frame Locked sequence using Audio Clock**. During normal playback, Sequencer can sometimes evaluate the same locked frame twice, producing a context like:

`PreviousTime == CurrentTime`  
`Delta == 0`  
`PlaybackRange == [N, N+1)`  
`Status == Playing`

FMOD’s Sequencer integration currently seems to infer scrubbing from the playback range being one tick wide:

`bool bScrubbed =`  
`PlaybackRange.GetUpperBoundValue() -`  
`PlaybackRange.GetLowerBoundValue() == 1;`

Because of that, these perfectly valid `Playing` evaluations are interpreted as scrubbing and FMOD queues a `Stop`, causing the event to be cut off.

We reproduced this consistently with **Frame Locked + Audio Clock**. The same sequence works correctly with Tick Clock, and also works if Frame Locked is disabled.

Changing the logic to use the actual Sequencer status instead:

`if (Context.GetStatus() == EMovieScenePlayerStatus::Scrubbing)`

fixes the issue in our tests.

Is there currently an official fix for this, or is this change planned for a newer FMOD Unreal integration version?
