Inputs from a player with a bad connection reach the server unevenly, in bunches. If the server applies whatever arrived on each tick, other players see that character hitch and then cover several steps at once.
Why The lagging player’s move commands arrive 0 at a time on some ticks and 2–3 at a time on others → Effect The server applies them all on the tick they arrive, so that character’s position changes in steps → On screen On other players’ screens, only that character hitches and then moves several steps at once. Everyone else looks fine
Primary owner Game team (Server development) · Also External (External)
Game team action items
Spread commands evenly with a per-player input buffer, apply them at their original spacing using input sequence numbers, lengthening only the interpolation buffer on other players’ screens isn’t enough (the server’s own position history is already stair-stepped).
External action items
Tell lagging players to use a wired connection and check their Wi-Fi and router.
Ballpark numbers
With 80 ms of jitter on a 20-tick (50 ms) server, commands per tick swing between 0 and 3.
On the graph
Outliers only · Commands applied per tick per player, jitter per player
Where to look
Server-side packet capture filtered to packets from the reported player, counting how many arrived in each tick interval (e.g., 50 ms) and comparing with other players. With server logs, move commands applied per tick and input sequence numbers per player
Confirmed if
Only the reported player’s packets arrive in bunches, alternating between 0 and 2–3 per tick, that player’s jitter/loss is high, and other players’ packets arrive evenly. It improves when that player switches to wired
Ruled out if
Several characters move in bursts at once: server tick delay or the viewer’s own connection. Arrival and application are even but that character still looks jumpy: interpolation or display problem on the viewer’s side
Check with
Infra tools (no game code needed)
Learn more
In a server-authoritative design, this is normal behavior. One lagging player’s lag shows up to others only as “that player moving strangely” and doesn’t affect anyone else’s controls or monster movement. Anything that involves that player directly (trades, party mechanics, PvP hit registration), however, is delayed along with them.
Sources
Peeking into VALORANT's NetcodeRiot Games The server puts arriving inputs into a per-player move queue in tick order and fills gaps with prediction; corrections are visible only to that player, and everyone else sees smooth motion
State SynchronizationGaffer On Games Even packets sent 60 times a second arrive bunched, e.g., 2 in one frame and 0 in the next
Source SDK 2013: player.cppValve Commands that arrive bunched are spread out (metered out) across server ticks