Description

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.

Potential Risk

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.

Possible Workaround

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

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-282942 in the post.

0
Login to Vote

Unresolved
ComponentUE - Gameplay
Affects Versions5.5
Target Fix5.7
CreatedMay 19, 2025
UpdatedMay 26, 2025
View Jira Issue