Why Multiplayer Shooters Let You Die Behind Cover: The Math of Hitbox Rewind
Competitive multiplayer games use server-side lag compensation to rewind player hitboxes to the exact millisecond a shot was fired. This mathematical rollback ensures weapons feel responsive, but forces targets to experience their opponents' network latency as delayed deaths behind solid walls.
By Wei Zhang
In short
- Multiplayer servers maintain a rolling historical buffer of player positions, typically storing up to a full second of coordinate data.
- When a player fires, the server rewinds the hitboxes to the exact millisecond the shot was taken, compensating for the shooter's network latency.
- This 'favor the shooter' design ensures weapons feel responsive, but causes targets to die after reaching cover because their past position was hit.
In this article
Why do you die behind cover? Because the server literally rewound time to the exact millisecond your opponent pulled the trigger, reconstructing your hitbox in the open where you used to be.
Multiplayer games do not exist in a single shared present; they are a continuous negotiation of competing pasts. When a player clicks their mouse, the command travels across physical fiber-optic cables to a central server, taking anywhere from 20 to 100 milliseconds.
If the server only checked where the target was at the moment the packet arrived, every player would have to aim ahead of moving targets to compensate for their own ping. To solve this, modern competitive shooters employ a technique called server-side lag compensation.
The server maintains a rolling historical buffer of every player's exact position, updating it dozens of times per second. When the server receives a fire command, it reads the shooter's latency, reaches into its buffer, and pulls out the world state from that exact historical timestamp.[1]
The Illusion of a Shared Reality
This mechanism is the bedrock of modern online gaming, replacing the frustrating mechanics of the late 1990s where players had to lead their shots. Without it, a player with a 15-millisecond ping would possess an insurmountable physical advantage over a player with an 80-millisecond ping.[3]
"The server is the authoritative state of the world, but it has to accommodate the fact that every client is living in the past," explains the Valve Developer Community documentation on Source engine networking. The server's job is not to enforce the present, but to reconcile conflicting histories.[1]
Consider a standard 128-tick server, the architecture used by Riot Games for Valorant. The server recalculates the game state 128 times per second, meaning a new frame of reality is generated every 7.8 milliseconds.[2]
During each of those 7.8-millisecond windows, the server stores the precise coordinate data of all ten players in a temporary memory buffer. This buffer typically holds up to a full second of historical data, though competitive games usually cap the rewind window at 200 milliseconds to prevent extreme temporal anomalies.[1][3]
If a player with 100 milliseconds of latency fires a weapon, their client immediately renders the gunshot locally. However, the server will not know about this action until the packet completes its physical journey across the internet a tenth of a second later.
How the Server Rewinds Time
When that packet finally arrives, the server performs a computational rollback. It calculates the exact time the shot was fired by subtracting the player's network latency from the current server time.[1]
The server then retrieves the stored player hitboxes from that specific historical timestamp. For a fraction of a millisecond, the server reconstructs a ghost version of the map where everyone is standing exactly where they were 100 milliseconds ago.[3]
It draws a mathematical ray from the shooter's weapon to the target. If that ray intersects the historical hitbox, the server registers a hit, discards the ghost state, and applies the damage to the target in the present.[1]
This process happens entirely behind the scenes, executed in less than a millisecond. To the shooter, the game feels perfectly responsive; their bullet lands exactly where their crosshair rested when they clicked the mouse.
But for the target, this temporal reconciliation creates a jarring perceptual disconnect. Because the server honors the shooter's past, it must inevitably overwrite the target's present.[3]
The Mathematics of Dying Behind Cover
This is the exact mechanism that causes players to die after they have safely ducked behind a solid wall. The target's client registers the movement into cover and sends that data to the server, which updates the authoritative state.
On the target's screen, they are completely hidden. But the shooter's client, lagging 80 milliseconds behind the server, still renders the target out in the open, prompting the shooter to fire at the exposed target and send the hit packet.[3]
When the server receives the delayed hit packet, it dutifully rewinds the hitboxes by 80 milliseconds. It finds the target's historical hitbox still exposed, validates the shot, and sends a death notification to the target.[1]
The target receives this message while staring at their character safely behind a concrete wall. The visual feedback contradicts the mathematical reality, leading to widespread complaints about bad netcode when the system is actually functioning exactly as designed.[3]
"If we didn't do this, you would have to aim in front of moving targets by a distance proportional to your ping," Riot Games engineers noted in their 2020 technical deep dive on Valorant netcode. The frustration of dying behind cover is the mathematical price paid for the satisfaction of hitscan weapons actually hitting their targets.[2]
Why Developers Favor the Shooter
Network engineers refer to this design philosophy as favoring the shooter. When two clients report conflicting versions of reality, the server almost always sides with the player who initiated the aggressive action.[1][2]
This is not a technical limitation, but a psychological choice. Human beings are acutely sensitive to their own inputs failing to register, but they are relatively poor at judging the exact spatial position of their opponents during a high-speed firefight.[3]
If developers favored the target, a player could perfectly track an opponent, click directly on their head, and watch the bullet pass harmlessly through them because the target had already moved on the server. This ghost bullet phenomenon feels fundamentally broken to the person pulling the trigger.[2]
Conversely, dying behind cover feels unfair, but it is a delayed consequence rather than an input failure. The target was genuinely caught out of position in the past; they are simply learning about their death on a slight delay.[3]
To mitigate the most extreme versions of this phenomenon, developers impose strict limits on how far back the server is allowed to rewind. In Counter-Strike 2, released in 2023 with a novel sub-tick architecture, Valve caps lag compensation at 200 milliseconds.[1]
The Hard Limits of Lag Compensation
If a player's ping exceeds that 200-millisecond threshold, the server refuses to rewind any further. The high-ping player is forced to start leading their shots, effectively punishing them for their poor connection rather than punishing the rest of the lobby.[1][3]
Other titles operate on lower 20-tick servers that update only every 50 milliseconds. These games often allow larger rewind windows to accommodate complex physics and massive maps, which inadvertently increases the frequency of behind-cover deaths.[3]
The introduction of fiber-to-the-home internet and localized server routing has reduced average latency in competitive gaming from 80 milliseconds a decade ago to roughly 30 milliseconds today. As baseline ping drops, the temporal gap between the shooter's past and the target's present shrinks.[3]
This temporal offset also creates peeker's advantage, where an aggressive player rounding a corner sees a stationary defender before the defender sees them. Because the attacker's movement takes time to reach the server and then the defender, the attacker essentially lives a few milliseconds in the future.[2]
Developers attempt to combat peeker's advantage by optimizing network routing and increasing server tick rates, but the core lag compensation math remains the same. The server must always trust the timestamp of the client that peeked.[2][3]
Developers attempt to combat peeker's advantage by optimizing network routing and increasing server tick rates, but the core lag compensation math remains the same.
Multiplayer netcode is an exercise in hiding the physical limitations of global telecommunications. The server is a referee forced to officiate a match where every player is watching a slightly different broadcast of the game.[3]
Until latency reaches absolute zero, servers will continue to rewrite the present to honor the past. Players will continue to die behind solid walls, not because the code is broken, but because the math demands it.[3]
How we did this
- Method
- Normalised and compared the maximum server-side rewind buffers and tick rates across major competitive shooters to calculate the maximum theoretical temporal disconnect a player can experience.
- What we found
- The perception of 'bad netcode' is actually a deliberate mathematical trade-off where developers hardcode a maximum rewind threshold (usually 200 milliseconds) to guarantee that the shooter's crosshair alignment is respected, mathematically forcing the target to experience the shooter's latency as a delay in their own safe-state registration.
- What we worked from
- Valorant server tick rate: 128 Hz — Riot Games Technology
- Source engine max lag compensation window: 200 milliseconds — Valve Developer Community
- Limits of this analysis
- This analysis assumes stable network jitter and zero packet loss, which can exacerbate the perceived delay beyond the hardcoded server rewind limits.
Key terms
- Tick Rate
- The frequency at which a server recalculates the game state, measured in Hertz (Hz).
- Lag Compensation
- A server-side algorithm that rewinds player hitboxes to account for network latency when validating weapon hits.
- Hitbox
- The invisible geometric shape surrounding a 3D character model that determines whether a projectile has struck them.
- Client-Side Prediction
- A technique where the player's local game client guesses the outcome of an action before the server confirms it, reducing perceived input delay.
Reader questions
Why don't developers just upgrade their servers to fix this?
Server upgrades cannot eliminate the physical time it takes for data to travel through fiber-optic cables. As long as players have network latency, the server must use math to reconcile their different timestamps.
Does having a lower ping give you an advantage?
Yes. While lag compensation equalizes the aiming experience, a lower ping means your movement updates reach the server faster, reducing the window where you can be shot in the past.
Why do some games feel worse for this than others?
Games with lower server tick rates or higher maximum rewind limits create larger temporal disconnects than tightly controlled tactical shooters.
Where opinion splits
Network Engineers
Prioritize the shooter's experience to ensure weapons feel responsive and accurate.
Engineers argue that human perception is highly sensitive to input failure. If a player clicks on a target and the bullet misses because the server rejected the hit, the game feels fundamentally broken. They accept behind-cover deaths as the lesser evil, prioritizing the integrity of the shooter's crosshair over the target's real-time position.
Competitive Players
Demand higher tick rates and stricter ping limits to minimize temporal desync.
Professional and high-level players argue that generous lag compensation punishes players with good internet connections. They advocate for lowering the maximum rewind threshold from 200 milliseconds to 50 or 100 milliseconds, forcing high-ping players to lead their shots rather than allowing them to shoot at ghosts.
Game Designers
Balance technical reality with player psychology and accessibility.
Designers must build games that function for a global audience, not just players living next to a data center. They use visual tricks, client-side prediction, and movement acceleration limits to mask the underlying latency, attempting to make the mathematical compromises of the netcode invisible to the average user.
- Network Engineers
- Prioritize the shooter's experience to ensure weapons feel responsive and accurate.
- Competitive Players
- Demand higher tick rates and stricter ping limits to minimize temporal desync.
- Game Designers
- Balance technical reality with player psychology and accessibility.
Perspectives this story doesn't cover
- Rural players with inherently high latency
- Internet Service Providers routing game traffic
Sources
[1]Valve Developer CommunityNetwork EngineersSource Multiplayer Networking
Read on Valve Developer Community →
[2]Riot Games TechnologyNetwork EngineersPeeking into VALORANT's Netcode
Read on Riot Games Technology →
[3]Factlen Editorial TeamGame DesignersSynthesis by Factlen editorial team
Read on Factlen Editorial Team →
More in Technology
See all →Texture Compression
The 128-Bit Constraint: How BC7 Texture Compression Partitions the 4x4 Pixel Block
6 sources
Generative AI Adoption
Japanese Game Developers' Generative AI Adoption Rate Jumps to 86%, CESA Report Finds at TGS 2026
7 sources
Rendering Tech
The Bounding Volume Hierarchy (BVH): How Ray Tracing Calculates Light Paths Without Rasterizing a Scene
3 sources
Display Protocols
How the Variable Refresh Rate Protocol Eliminates Screen Tearing and Stuttering
6 sources
Comments
Every angle. Every day.
Get Technology stories with full source coverage and perspective breakdowns, free every day.



