SetGamePause affecting Sequencer pause

We’ve run into some unexpected behavior when combining

SetGamePause(true) with Level Sequences.

When calling

SetGamePause(true) while a Level Sequence is playing, the visuals pause correctly, but the tracks continue advancing. As a result, when unpausing, the sequence appears to jump ahead in time. Is this the expected behavior?

To work around this, we’ve tried pausing the Level Sequence player alongside the game pause. However, this introduced a new issue:

  • Actors with root bone animations and transform tracks snap back to their world transform and ignore their root bone animation while paused.

We found that waiting a few ticks after pausing the Level Sequence before calling

SetGamePause() resolves this — everything stays properly in place.

Are these behaviors expected? Could you clarify why the Level Sequence pause requires a few frames to fully take effect and how to mitigate the risk of being interrupted by Game Pause? Since multiple Level Sequences may be active at once, managing these timings manually is tricky — any guidance on a cleaner or more reliable approach would be appreciated.

Steps to Reproduce

  • Play LevelSequence
  • SetGamePause(true)
  • Wait a few seconds
  • SetGamePause(false)
  • Notice Sequence has kept moving while the Game was paused.

Hey there,

This behaviour is unexpected. I built a straightforward test case in 5.6.1, and was unable to repro. Level sequences can control their tick interval (they have their own manager for this), and can be set to tick when paused. Since there may be any number of sequence use cases in the game, typically, tick when paused is off by default, and you opt into this behaviour.

To confirm a repro, a few questions:

  1. For the sequences that are still ticking, how are they being initialized and do you set the bTickWhenPaused option?
  2. Are there any cases where you may be inheriting the tick when in the paused state from the owning actor or world?
  3. I’m assuming you are not in a multiplayer scenario with replicated sequences?

Touching on the manager, UMovieSceneSequenceTickManager::TickSequenceActors(float DeltaSeconds) is responsible for testing if an object can tick and then sending the tick request to the sequence itself. There is a registration process that is setup by default, you could debug there and see if why your sequence might not be being either registered, or passing the test to be able to tick.

To work around this, we’ve tried pausing the Level Sequence player alongside the game pause.

How are you calling pause for this workaround specifically?

Generally speaking, you shouldn’t have to use the workaround method.

Dustin

Ah, yes, there is an issue right now where if you are using an audio clock, it will continue to run. There is a historical reason because you often want audio (UI, procedural sounds, metasounds) to continue running when you pause the game.

I’ve logged an issue here: https://issues.unrealengine.com/issue/UE-350536

Another workaround that you could try is accumulating the paused time within FMovieSceneTimeController_AudioClock::GetCurrentTime() and taking that into account for setting the current time.

Dustin

One important clarification: we’re using “Audio” as the Clock Source for the sequence. When set to “Tick,” everything works as expected, but in our case we need to use “Audio.”

For the workaround, we’re pausing the sequence by calling the Pause function on its SequencePlayer in Blueprint.

Let me know if you’re able to reproduce the sequence not stopping when using only SetGamePause in this setup, and also the multi-frame pause behavior we’re seeing when also calling Pause on the SequencePlayer.