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

Game Lag White Paper › Netcode design

Overly strict server validation Over-strict server validation

Cause ID sy-strict-check · Primary owner Game team (Server development)

Open the interactive card with figures and simulations →

If the server checks movement speed, cooldowns, and range too strictly, it rejects even valid inputs that arrive bunched together because of jitter.

Why Strict rules such as “max distance per tick” or “0 ms cooldown tolerance” → Effect When jitter makes two commands arrive in the same tick, they’re judged as rule violations → On screen Rubber-banding, skills rejected even though the cooldown is up

Symptoms
Rubber-banding, Dropped action / rollback
Factors
Jitter
Who’s affected
Just me
When
Randomly, While moving or changing zones
Owner
Primary owner Game team (Server development)
Game team action items
Check against an accumulated allowance (token bucket), leave slack for ping and jitter.
On the graph
Random spikes · Server validation rejections and position corrections
Where to look
Server log for each validation rejection or position correction with the reason, how many commands from that player arrived in that tick, and the arrival gap from the previous command
Confirmed if
Rejections and corrections cluster at moments when 2 or more commands arrived in one tick, while movement and use counts summed over a few seconds stay within the rules
Ruled out if
Still over the limit even when summed over a few seconds: real speed hacking or cheating is possible. Rejections concentrated on one ISP in the evening: points to validation false positives concentrated on one ISP’s players
Check with
Game server or client logs and metrics

Sources

  1. Source SDK 2013: player.cpp Valve
    A per-tick command processing budget that accumulates (up to sv_maxusrcmdprocessticks, 24 ticks) lets bunched-up commands through; a developer comment says stricter restrictions caused stutter even for legitimate players
  2. RFC 2697: A Single Rate Three Color Marker IETF
    Token bucket: judged by average rate (CIR) and the burst size allowed at once (CBS)

See also

Same layer: Netcode design

Same symptom (Rubber-banding), other layers

View the interactive card with figures and simulations