It's reported that all Tick functions are skipped on the first frame when running in packaged builds and standalone PIE. This is because both TickVisitedGFrameCounter and GFrameCounter are initialized to 0, causing the engine to incorrectly assume that Tick has already run.
Missing the first tick may not cause issues in a shipped title, since it usually starts from a logo or title screen where nothing critical runs on the first frame. However, when testing a gameplay level directly, we encountered a case where the camera context was not properly transferred from the world origin to the intended game start position on the first frame. This led to incorrect streaming behavior around the origin, causing unnecessary BeginPlay/EndPlay calls on some actors.
A local workaround has been provided by initializing `TickVisitedGFrameCounter` and `TickQueuedGFrameCounter` to `GFrameCounter - 1`, ensuring that the first frame always ticks.
FTickFunction::FInternalData::FInternalData() : bRegistered(false) , bWasInterval(false) , TaskState(ETickTaskState::NotQueued) , ActualStartTickGroup(TG_PrePhysics) , ActualEndTickGroup(TG_PrePhysics) #if 1 // Fixed , TickVisitedGFrameCounter((uint32)(GFrameCounter-1)) , TickQueuedGFrameCounter((uint32)(GFrameCounter-1)) #else , TickVisitedGFrameCounter(0) , TickQueuedGFrameCounter(0) #endif
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-282942 in the post.
0 |
Component | UE - Gameplay |
---|---|
Affects Versions | 5.5 |
Target Fix | 5.7 |
Created | May 19, 2025 |
---|---|
Updated | May 26, 2025 |