CS2 mechanicVERIFIED, CURRENT-BUILD ONLY (gravity); the rest MEASURED — see each factUpdated 2026-07-27

CS2 movement constants: gravity 800, friction 5.2, stopspeed 80, accelerate 5.5

CS2 players fall at exactly 800 units per second squared; ground friction is 5.2, stopspeed 80 u/s and accelerate 5.5. Gravity is VERIFIED — measured from 454 jump arcs and reproduced in replay. The other three are MEASURED on current-build data and are labelled as such below, because a convar-shaped number is not proof that the server ran it. All four were re-derived in July 2026 on IEM Cologne Major 2026 demos; every pre-2026 citation was dropped rather than aged.

Re-derived 2026-07-27 on the IEM Cologne Major 2026 usercmd corpus (network protocol 14165, 454 arcs), cross-checked on two current-build solo recordings (protocol 14166).

sv_gravity
800 u/s²
sv_friction
5.2
sv_stopspeed
80 u/s
sv_accelerate
5.5
Walk (shift) multiplier
× 0.52
Duck multiplier
× 0.34
Duck ramp
10 ticks (0.15625 s)
Standing hull height
72 u
Ducked hull height
54 u
Jump end-of-tick velocity
286.36838 u/s
Stamina max / jump / land / recovery
80 / 0.08 / 0.05 / 60 per s
Landing speed penalty (single jumps)
none
Watch a real pro CS2 match in 3D

Plays in your browser · no download · no account

How it was measured

The instructive part of this page is not the numbers, it is a wrong number that looked right. Take the per-tick change in vertical velocity of an airborne player and read its median: on current demos that gives −12.0, hence 768 u/s², and it is stable, repeatable and completely false. The cause is that 86.8% of airborne z rows land on a 1/64 u grid, so the median snaps to a grid value rather than to the true one. The derivation tool now prints that figure explicitly labelled unquotable, so nobody rediscovers it as a finding.

Fitting whole arcs instead gives 800.003 with a median absolute deviation of 0.121 over 454 jump arcs, and two independent current-build recordings give 799.93 and 800.26. Three sources converging on 800.00 is what makes it VERIFIED rather than merely measured.

Friction and stopspeed come out of the same recordings without needing to label which frames were decelerating. Below the knee of the decay curve the per-tick speed drop is a constant equal to stopspeed × friction × dt; its measured median is 6.5010 (MAD 0.0043), and 80 × 5.2/64 is 6.5 exactly.

Crouching is a timeline, not a state. The duck amount ramps linearly at 6.4 per second, reaching 1.0 in exactly ten ticks, but the collision hull is binary — you stand 72 units tall until the ramp completes and then you are 54. On the ground your feet stay planted through the change; in the air the origin re-centres by ±9 units, half the difference. That rate was byte-verified in the binary, superseding an older demo-fitted "14 ticks in, 12 out" that had absorbed network latency into the mechanic.

One negative result is worth as much as the constants: there is no instantaneous horizontal slowdown on landing from a single jump. The ratio of speed after landing to speed before is 1.0000 across every airtime bin, over 220 landings.

Every fact on this page, with its tier

Player gravity = 800 u/s² exactly

Value
800 u/s²
Confidence tier
VERIFIED, CURRENT-BUILD ONLY
How it was derived
Whole-arc parabola fits — never a per-tick median, which snaps to the 1/64 u grid and reports 768.
Evidence
800.003 (MAD 0.121, n = 454 arcs) on the 2026 tournament usercmd corpus; 799.93 (MAD 0.34, 48 arcs) and 800.26 (MAD 0.52, 26 arcs) on two independent current-build recordings.

sv_friction = 5.2, sv_stopspeed = 80

Value
5.2 and 80 u/s
Confidence tier
MEASURED, CURRENT-BUILD ONLY
How it was derived
Classifier-free run-consistent decay: the below-knee per-tick drop equals stopspeed × friction × dt, so the pair is read from a single measured constant.
Evidence
Below-knee drop median 6.5010 (MAD 0.0043, n = 42) = 80 × 5.2/64 exactly, plus a run-consistent friction cluster at 5.200. A pre-2026 citation of 5.201 was dropped, not aged.

CS2 walk (the speed key) = button bit 16, duck = bit 2; the walk cap is ×0.52

Value
× 0.52
Confidence tier
MEASURED
How it was derived
Correlating the button bit against speed plateaus rather than assuming which bit is which.
Evidence
Bit 16 set on 4,837 walk ticks against 1,668 run ticks; plateaus 111.79 = 215 × 0.52 (AK walk) and 127.39 = 245 × 0.52.

Duck timeline: the duck amount is a linear ramp at 6.4/s reaching 1.0 in exactly 10 ticks; the hull is BINARY (72 standing until the ramp completes, then 54); on the ground the feet stay planted, in the air the origin re-centres ±9 u; ducked max speed is ×0.34

Value
10 ticks (0.15625 s), 72 → 54 u
Confidence tier
LAB-MEASURED + BYTE-VERIFIED + PORTED (supersedes a demo-fit 14/12)
How it was derived
The duck field was read live on the current build, then the rate and the ±9 u re-centring were confirmed against the binary's own constants.
Evidence
Live capture gives 0 → 1 in 10 ticks; the rate is byte-verified as 0.8 × 8.0 = 6.4/s; the air re-centring constants are byte-verified. The older 14/12 was a coarser, latency-inclusive estimate off the networked 0–255 byte.

Jump end-of-tick cached vz = 286.36838, then −12.5 per tick (the 301.99338 impulse is the pre-gravity value)

Value
286.36838 u/s
Confidence tier
MEASURED (live lab 2026-07-21) — supersedes an INDICATIVE 301.993377
How it was derived
Networked pawn velocity read live for clean stamina-free non-ducking standing jumps.
Evidence
Deterministic 6/6 across two runs; feet apex 55.82 u. It applies to both standing and crouch jumps — there is one impulse, and a crouch jump clears more only because the hull shrinks.

Stamina: max 80, jump cost 0.08, land cost 0.05, recovery 60/s; matchmaking has auto-bunnyhop OFF

Value
80 / 0.08 / 0.05 / 60 per s
Confidence tier
CONSTANTS VERIFIED (cvarlist); application pending RE
How it was derived
Values read from the current build's convar list; the exact application order is still being reverse engineered.
Evidence
Jump adds jumpCost × max, landing adds landCost × max, recovery is linear, and while stamina is above zero it scales both the jump impulse and horizontal speed.

NO instantaneous horizontal landing slowdown on single jumps

Value
ratio 1.0000
Confidence tier
MEASURED
How it was derived
Speed immediately after landing divided by speed immediately before, binned by airtime so a length-dependent effect could not hide in an average.
Evidence
Median 1.0000 across all airtime bins (n = 220, MAD ≤ 0.03).

Open questions — what is not known

Stamina application is not yet proven.

The constants are exact; the order in which the game applies them inside the jump function is still being read out of the binary, and bunny-hop chain caps need a bhop-heavy recording that does not exist in the corpus.

These are the values the recorded servers ran.

They are measured from tournament and current-build recordings, which is stronger than a convar default — but a server operator can set any of them to something else, and then this page describes that server's physics and not theirs.

Other CS2 mechanics

Last updated 2026-07-27 — 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.