Mechanic · movement · first-person shooter
Rocket jumping
Using the push from one's own explosion to jump higher or farther than a jump can.
On this page
Rocket jumping turns the knockback from a player’s own explosion into height or distance. In Quake II, a player’s own splash damage is halved but pushes at 1600 over the player’s mass instead of 500, which a comment in the code calls the rocket jump hack1.
Games
| Game | Year | How | Note |
|---|---|---|---|
| Quake II | 1997 | Boosted self-push | a player's own splash does half damage but pushes at 1600 over mass, not 500, commented as the rocket jump hack |
Every claim about this mechanic, by game (1)
References
- ^ abQuake II's radius damage halves the points for the entity that caused it, so a player takes half splash from their own rocket or grenade, and
T_Damagepushes a player who hurt themselves with 1600 × knockback / mass instead of 500 ×, commented "the rocket jump hack...". The player's mass is 200, so a self-inflicted push is 8 units/s per point against 2.5 from anyone else, and the radius damage passes its points as the knockback. Computed: a rocket exploding on the floor directly under a standing player, 28 units below the center of the player's box, does 120 − 14 = 106, halved to 53, which adds 424 units/s upward, against a jump's 270.Codeid-Software/Quake-2How we know
564 points = damage - 0.5 * VectorLength (v); 565 if (ent == attacker) 566 points = points * 0.5; ⋮ 572 T_Damage (ent, inflictor, attacker, dir, inflictor->s.origin, vec3_origin, (int)points, (int)points, DAMAGE_RADIUS, mod);
game/g_combat.c lines 564–572 at 372afde · upstream ↗ 436 if (targ->mass < 50) 437 mass = 50; 438 else 439 mass = targ->mass; ⋮ 441 if (targ->client && attacker == targ) 442 VectorScale (dir, 1600.0 * (float)knockback / mass, kvel); // the rocket jump hack... 443 else 444 VectorScale (dir, 500.0 * (float)knockback / mass, kvel); ⋮ 446 VectorAdd (targ->velocity, kvel, targ->velocity);
game/g_combat.c lines 436–446 at 372afde · upstream ↗ 1099 vec3_t mins = {-16, -16, -24}; 1100 vec3_t maxs = {16, 16, 32};
game/p_client.c lines 1099–1100 at 372afde · upstream ↗ 1170 ent->mass = 200;game/p_client.c line 1170 at 372afde · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
Sources
Code
- Software, id. 2012. “Quake II: the GPL source release (id-Software/Quake-2, 3.19).” Commit 372afde. id-Software/Quake-2 @ 372afde · licence, all uses