CS2 molotovs only detonate on ground sloped 30° or less
A CS2 molotov detonates on impact only if the surface normal is within weapon_molotov_maxdetonateslope degrees of vertical, and that convar's default is exactly 30.0 — which is why molotovs bounce off walls and light up floors. In the air the fuse is a flat 2 seconds. Once burning, the fire is a grid of cells about 48 units apart that spreads to its peak in roughly 1.8 seconds and is out by 6 to 7 — and a smoke extinguishes it when more than one third of its fire areas are covered.
Detonate rule transcribed from the current CS2 server binary with the default byte-verified in the raw data section; fire footprint and timing measured from recorded infernos in current-build demos.
The slope rule is the fact that changes how you throw. On touching a surface the projectile tests the trace normal against the cosine of a convar in degrees; pass and it detonates, fail and it keeps bouncing. Some entities are exempt in both directions — the thrower themselves, breakables and ladders never trigger a detonation, while alarm cars and glass take damage first.
Getting the default right took two passes and the first one was wrong in an instructive way. The decompiler showed 90, which was read as the threshold; it is actually the convar's maximum bound. Float defaults are passed in floating-point registers and are invisible in decompiled C, so the value had to be read from the raw listing: a load from a fixed address whose four bytes are 41 f0 00 00, which is 30.0f. The correction is why this page says 30 and not 90.
The fire itself was measured rather than guessed, from networked inferno cells that ordinary demo parsers cannot reach. Across 46 recorded infernos the cells sit on a grid about 48 units apart, the footprint radius runs 117 to 144 units, and up to about 16 cells burn at once. The timing is tighter than the footprint: median time to peak 1.83 s, at least 73% of cells still burning at 5 s, and zero by 6 s — confirming the 7-second burn duration from the other direction.
The extinguish rule is quoted from the server's own log string, which states the threshold exactly: an inferno dies when more than one third of its fire areas are covered by smoke. The threshold is therefore known precisely; the geometry of the coverage test itself is not, and that gap is stated on this page rather than filled with a plausible radius.
Every fact on this page, with its tier
Molotov detonate rule: on touch, detonate iff the trace normal is within weapon_molotov_maxdetonateslope of vertical; DEFAULT = 30.0. Thrower, breakables and ladders do not detonate it. Air fuse molotov_throw_detonate_time = 2 s
Value
30.0° / 2 s
Confidence tier
TRANSCRIBED (T3), default BYTE-VERIFIED
How it was derived
The rule was located from the convar object cross-reference; the default was read from the raw instruction listing because float defaults never appear in decompiled C.
Evidence
The load site reads rodata bytes 41 f0 00 00 = 30.0f. An earlier reading of 90 from decompiler stack fields was the convar's MAXIMUM bound and was caught and corrected.
Extinguish-by-smoke rule: an inferno dies when more than 1/3 of its fire areas are covered by smoke
Value
> 1/3
Confidence tier
T3 (server log string, verbatim)
How it was derived
Taken from the server binary's own diagnostic string, which states the fraction.
Evidence
The threshold is known exactly; the cell-versus-smoke coverage geometry is not yet reverse engineered.
Inferno footprint: ~48 u fire-cell grid, ~117–144 u footprint radius, up to ~16 burning cells
Value
~48 u grid, ~117–144 u radius
Confidence tier
MEASURED
How it was derived
Extracted from networked per-cell inferno data that standard demo parsers do not expose, using a dedicated extractor.
Evidence
46 recorded infernos on de_inferno; the measured median radius of 117 validated the render footprint independently.
Inferno timing: spreads to peak over ~1.8 s, full burn through ~5 s, out by 6–7 s
Value
1.83 s to peak, out by 6–7 s
Confidence tier
MEASURED
How it was derived
Decay analysis over the recorded per-cell burning flags, normalized per inferno.
Evidence
44 molotovs; median time to peak 1.83 s; normalized burning fraction ≥ 0.73 through 5 s and 0.00 by 6 s.
Open questions — what is not known
The coverage test geometry is unknown.
The one-third threshold is exact. How the game decides that a given fire area is "covered by smoke" — the shape and size of the test — has not been reverse engineered, and the live implementation uses a labelled stand-in envelope for it.
Fire spread is a labelled stand-in, not a port.
The real spread step uses a position-hashed pseudo-random generator that has been decompiled but not yet ported. Until it is, spread placement is an approximation that is marked as one in the code rather than presented as measured.
Last updated 2026-07-04 — 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.