CS2 mechanicVERIFIEDUpdated 2026-07-21

CS2 grenade gravity: exactly 320 u/s², with no air drag

Every CS2 grenade falls at exactly 320 units per second squared — 0.4× the 800 u/s² players fall at — and grenades have zero air drag. The same constant governs smokes, HE, flashbangs, decoys, molotovs and incendiaries: there is no per-type gravity in CS2. It was measured from 666 flight segments across four maps and then proved by replaying those flights through a float32 simulation, whose worst position error against the server was 0.0298 units.

Derived from grenade trajectories in 2026 tournament demos across four maps, then confirmed tick-exact against controlled captures on CS2 build 1.41.6.8/10847.

Grenade gravity
320 u/s²
As a fraction of player gravity
0.4 × 800 u/s²
Air drag
none — exactly zero
Integrator
2 substeps of 1/128 s per tick
Gravity applied per substep
−2.5 u/s
Demo position quantization
1/32 u
Watch a real pro CS2 match in 3D

Plays in your browser · no download · no account

How it was measured

A grenade in a demo is a stream of positions, one per tick, each rounded to the nearest 1/32 of a unit. Differencing that stream twice to get acceleration amplifies the rounding instead of the signal: the second difference of a 1/32 u grid at 64 Hz quantizes in steps of (1/32)/dt² = 128 u/s², so a naive measurement of a 320 u/s² constant reports ±57 u/s² of noise and no convergence at all.

What works is fitting whole ballistic segments. A least-squares parabola over each uninterrupted flight averages the quantization away instead of amplifying it, and the per-segment fits collapse onto a single value with a median absolute deviation of 0.13. Only pre-first-bounce flight is used, because anything after a contact may be rolling rather than flying.

A converged fit is a derivation, not a proof. The proof is replay: the whole corpus is run back through a float32 simulation with only genuinely unknown quantities left free, and the requirement is that residuals stay at the network quantization level and do not grow with segment length. A residual that grows with length means the model is wrong no matter how small its mean is.

The integration ORDER is a separate fact, and it could not be derived from demos at all — a position corpus absorbs the substep order into the initial velocity, so every candidate order fits equally well. It took controlled captures on the current build to resolve: two 1/128 s substeps per 64 Hz tick, gravity subtracting 2.5 u/s at each, and z advancing by the average of the pre- and post-gravity velocity. Only that order replays the recorded float32 streams bit-identically.

Every fact on this page, with its tier

Grenade gravity = 320 u/s² exactly (all six grenade types; = 0.4 × sv_gravity 800)

Value
320 u/s²
Confidence tier
VERIFIED
How it was derived
Per-segment least-squares parabola fits over recorded projectile positions, required to converge across demos AND maps, then replayed through the float32 sim core.
Evidence
Segment fits MAD ≤ 0.13; parity replay maximum residual 0.0298 u over 666 segments on 4 maps.

Grenade flight has zero air drag

Value
0
Confidence tier
VERIFIED
How it was derived
Horizontal acceleration measured over whole flights — with no drag it must be exactly zero, which also makes the horizontal channel the clean one for every other grenade measurement.
Evidence
Horizontal acceleration ≈ 0 within the 1/32 u position quantization.

Flight integrator order: two 1/128 s substeps per tick, gravity −2.5 u/s each, z moves by the pre/post-gravity average

Value
2 × 1/128 s, −2.5 u/s per substep
Confidence tier
CAPTURE-VERIFIED 2026-07-21 (was UNRESOLVED — demo-era position corpora absorbed the order into v0)
How it was derived
Controlled matrix replay against float32 streams recorded on the current build; candidate orders were eliminated by requiring bit-identical replay.
Evidence
Only this order replays the recorded streams — median per-tick residual 0 (bit-identical), worst clean case 5.1e-3 u over 69 cases on 2 maps.

Network position quantization = 1/32 u

Value
1/32 u
Confidence tier
VERIFIED
How it was derived
Read off the residual noise floor rather than assumed from the wire format.
Evidence
The noise floor is exactly 1/32-stepped: p95 horizontal acceleration = 128.000 = (1/32)/dt².

Open questions — what is not known

Smoke detonation timing is still uncaptured.

The flight, the collisions, the bounces and the moment a smoke comes to rest all replay tick-exact on the current build. The delay between coming to rest and the volume appearing is not part of that gate.

The capture gate covers smoke only.

Other grenade types share the flight law — that is measured — but their detonations, molotov slope behaviour at capture precision, and entity contacts are outside the controlled matrix. No 1:1 claim is made for them.

Other CS2 mechanics

Last updated 2026-07-21 — the date of the measurement, not of this page's rendering. What the confidence tiers mean. Memorin is not affiliated with or endorsed by Valve; Counter-Strike 2 is a trademark of Valve Corporation.