Quick answer: Set the actor’s PrimaryActorTick.TickGroup to the right phase, and use AddTickPrerequisiteActor for explicit ordering within a group.
A camera follows the player. The player moves smoothly but the camera lags one frame behind. The camera ticks every frame, the player ticks every frame, but the camera reads the player’s previous position because it ticks before the player’s position update.
Tick Group Order
Each frame, Unreal runs tick functions in groups, in order:
- TG_PrePhysics — gameplay logic that doesn’t depend on physics results.
- TG_StartPhysics — rare; physics solver setup.
- TG_DuringPhysics — parallel to physics work.
- TG_EndPhysics — immediately after physics resolution.
- TG_PostPhysics — reactions to physics results.
- TG_PostUpdateWork — final pass after everything.
Within a group, order is unspecified unless you declare prerequisites.
Fix 1: Move Camera to PostUpdateWork
// In camera actor C++ constructor
PrimaryActorTick.bCanEverTick = true;
PrimaryActorTick.TickGroup = TG_PostUpdateWork;
Now the camera ticks after all other gameplay logic has updated this frame — including the player. Reading player position gives the current frame’s value, not the previous.
Fix 2: Explicit Prerequisite
void ACameraActor::BeginPlay()
{
Super::BeginPlay();
AddTickPrerequisiteActor(PlayerActor);
}
The scheduler ensures PlayerActor’s tick completes before CameraActor’s starts, regardless of group. Use when both actors are in the same group but order must be strict.
Fix 3: PostActorTick Lifecycle Event
For one-shot per-frame post-everything work that’s not really a normal tick:
void ACameraActor::Tick(float DeltaSeconds)
{
GetWorld()->OnActorTickGroupCompleted.AddDynamic(this, &ACameraActor::OnAllActorsTicked);
}
Less common; reserve for engine integrations.
Blueprint Equivalent
For Blueprint actors, the Tick Group setting is in the Class Defaults panel: Tick → Tick Group. Select PostUpdateWork from the dropdown.
Verifying
Print player position at start of player.Tick and at start of camera.Tick. With PostUpdateWork camera, the camera’s print should reflect the same frame’s position the player just wrote. With PrePhysics camera (default), it lags one frame.
“Order of operations matters. Cameras tick last. Followers tick after their target. Set the group, declare the prerequisite.”
Cameras and HUDs almost always belong in PostUpdateWork — set it at construction and forget the lag-by-one-frame trap.