Replay playback at high TimeDilation causes vehicle desync, stuttering, and delayed demo playback completion

I am using the Unreal Engine Replay System with 50 instances of the Vehicle Template’s SportsCar_Pawn on a basic level with a large-scaled floor. Each vehicle receives a constant 0.5 throttle input throughout the session. A 30-minute recording was captured using the built-in replay system.

Issue:

When playing back the demo with demo.timedilation set to 8, the following problems occur:

1. Playback duration mismatch: A 30-minute recording at 8x speed should complete in approximately 3 minutes and 45 seconds, but it actually takes around 6 minutes to finish — nearly twice the expected duration.

2. Persistent stuttering: Playback is not smooth. It stutters and freezes at regular intervals (approximately every few seconds), then jumps forward before freezing again. This pattern continues throughout the entire playback.

3. Vehicle position desync: When the demo timeline reaches the end, the vehicles are not at their expected final positions. They remain significantly behind where they should be and continue slowly moving toward their correct end positions well after the timeline has concluded.

4. Jerky/teleporting vehicle movement: During playback, vehicles do not move smoothly. Instead, they visibly jump and teleport between positions in a stuttery, non-continuous manner — as if frames are being skipped rather than interpolated.

5. Late completion callback: The OnReplayPlaybackComplete delegate does not broadcast when the replay timeline reaches its end. Instead, it fires approximately 2 minutes later — only after the vehicles have finally arrived at their correct end positions.

Expected Behavior:

Playback at 8x should complete in ~3:45, vehicles should be at their correct positions when the timeline ends, and OnReplayPlaybackComplete should fire at the actual end of the timeline.

[Attachment Removed]

Steps to Reproduce
1. Open the Vehicle Template project.

2. Place 50 instances of SportsCar_Pawn on a basic level with a large-scaled floor.

3. Apply a constant 0.5 throttle input to all vehicles.

4. Record a 30-minute replay using the built-in replay system.

5. Play back the replay with demo.timedilation 8.

6. Observe the stuttering, position desync, and delayed completion callback.

[Attachment Removed]

Hi,

There are a number of CVars you can adjust to tweak how replay recording and playback is handled, which may allow you to get the results you’re after. Many of these limits are in place to prevent the replay system from taking too much time in a frame, so please note that changing or removing these can increase the performance cost of replay recording/playback.

The “demo.RecordHz” CVar determines how many frames are recorded each second. This is set to 8 by default, and raising this value will increase how much data is recorded into the replay, potentially improving the smoothness of playback.

If you’re using the local file replay streamer (which is the default), then the regular hitches may be due to playback needing to wait for the next chunk of replay data to be loaded. The default delay between loads is 3 seconds, but given the increased playback speed, you may want to try reducing this delay. This can be done by changing the “localReplay.MinLoadNextChunkDelaySeconds” CVar.

In my own testing, these two seemed to have the largest impact on playback. However, you can find more CVars related to replays in DemoNetDriver.cpp and LocalFileNetworkReplayStreaming.cpp.

Thanks,

Alex

[Attachment Removed]

Hi Alex,

Thanks for the detailed response and for confirming the approach! Funny enough, about 5 hours before your reply, I actually dug into LocalFileNetworkReplayStreaming.cpp to debug the issue myself and discovered the localReplay.MinLoadNextChunkDelaySeconds CVar.

I realized the default 3-second delay was creating a massive chunk-loading bottleneck at 8x TimeDilation. I reduced this value to .15 which completely eliminated the stuttering, position desync, and the late completion callback issue.

It is great to get official confirmation that adjusting these CVars is the intended solution for high-speed playback. Thanks again for your time!

[Attachment Removed]

Hi,

Great, I’m glad that’s working for you! If you run into any other problems, please don’t hesitate to reach out.

Thanks,

Alex

[Attachment Removed]