CS2 grenades are state machines tied to release vectors and collision normals—not rote muscle memory. When a build shifts sampling or physics, the same lineup can miss by a frame. Rebuild around observable nodes, bounce order, and version-tagged defaults.
Lead Most players treat default smokes and flashes like a reflex drill, but grenades in the engine are a full state machine: initial velocity, spin, surface coefficients, fuse logic. A patch often does not redraw the map—it nudges step size, contact normals, or default detonation rules by half a tick, and the package slides from the windowsill to the railing.
Release frame: same spot, different vector
Throwing in CS2 is not “how long you hold.” Residual movement speed, crouch edge timing, and mouse-button combos set the release vector. Stand on the same seam on Mirage mid; if a build tweaks air deceleration or crouch-throw caps, a 1% first-frame delta can make the smoke clip the lintel one frame early—seal becomes gap.
Pros split defaults into observable nodes: wall scuffs, antenna corners, crosshair–skybox intersections—not “feel throws.” When nodes no longer match impact, it is not misclick—it is a vector register change. Drop into a practice cfg with sv_cheats 1, trace debug on, and compare apex height and horizontal drift at the same node instead of grinding fifty blind reps.
First bounce and second bounce: an inch on the normal, a meter on the landing
The hard part is not the arc—it is energy split after first contact. Thin rail edges, sloped texture seams, and invisible hull edges make normals steeper or flatter than the mesh suggests. One flash whose first bounce drops from 42° to 39° can send the second hop off the crate into the pit—full white for your team becomes full black.
When you refresh defaults, log bounce sequence, not just end position: wall vs floor on first touch, whether the second hop still carries fuse, whether a roll dies on stair teeth. After updates, retest double-bounce-sensitive spots—lines that only worked because of a second ricochet (Inferno banana arc, Ancient shrine outer slope—mechanism only, no patch number lock-in).
Default lines = versioned config files
Think of the team utility sheet as JSON: keys are stance and crosshair, values are expected time-to-apex plus bounce-order hash. A minor build may leave the map name alone yet change default physical materials or grenade–player collision priority—old hashes die. Hard-memorizing means you throw last season’s smoke at this season’s frame in a clutch round.
Competitive retrain rhythm (independent of browsing maps on C5GAME—pure scrim focus):
- Three per map: keep one default smoke, flash, and molotov that still land; downgrade the rest to “needs confirmation.”
- Record and frame-compare: same node, compare apex frame vs detonation frame; two or more frames off = mark version drift.
- Live comms: support calls “apex” or “touchdown” in real time—cheaper than guessing release from demo after the round.
Grenades are not magic—only a reference frame you have not realigned. After a build, align vectors and bounce order first, then argue tactics. Otherwise your defaults are just repeating the right answer from an older engine build.