한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Game Lag White Paper › L1 Client game process

Client-side prediction mismatch Prediction mismatch / reconciliation

Cause ID cg-predict · Primary owner Game team (Client development) · Also Game team (Server development)

Open the interactive card with figures and simulations →

Your client shows your character moving before the server confirms it, but if the server calculates something different, your character gets pulled back.

Why The client moves the character before the server confirms (prediction) → Effect The server calculates collisions, movement speed, or buffs differently, or never receives the command → On screen When the confirmation arrives, your character gets pulled back

Symptoms
Rubber-banding
Factors
Packet loss, Latency
Who’s affected
Just me
When
While moving or changing zones, Randomly
Owner
Primary owner Game team (Client development) · Also Game team (Server development)
Game team action items
Client: use the same movement code as the server, send inputs redundantly, smooth out corrections. Server: use the same movement code as the client, filter duplicate inputs by input number so each one is processed only once.
Ballpark numbers
The pull-back distance is “time out of sync × movement speed”. Losing just a few commands means 1–3 m.
On the graph
Random spikes · Server corrections (mispredictions)
Where to look
Record how often and how far the server corrects position. In Unreal, count the server’s ClientAdjustPosition corrections; in Unity Netcode for Entities, count rollbacks and resimulations caused by mispredictions
Confirmed if
Corrections cluster at the times of rubber-banding reports, and correction distance is repeatedly large with specific buffs, terrain, or movement skills
Ruled out if
Corrections cluster only when loss is high: input packet loss on the connection. Only other characters look pulled back with no corrections: “Excessive extrapolation (dead reckoning)”
Check with
Game server or client logs and metrics

Sources

  1. Introduction to prediction (Netcode for Entities 6.5) Unity
    Client and server predict with the same simulation code; when the result differs from the server state (misprediction), the client rolls back and resimulates, and the correction becomes visible
  2. Use the command stream to handle user inputs (Netcode for Entities 6.5) Unity
    Sends the inputs of the previous few ticks again with the latest input to cover packet loss
  3. Understanding Networked Movement in the Character Movement Component for Unreal Engine Epic Games
    The client moves first and the server replays the same move; if the positions differ, the server corrects with ClientAdjustPosition and the client reapplies its saved moves

See also

Same layer: L1 Client game process

Same symptom (Rubber-banding), other layers

View the interactive card with figures and simulations