On this page
  1. Related
  2. Games
  3. References
  4. Sources

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.

  • Boosted self-pushQuake II (1997). A player's own splash does half damage but pushes at 1600 over mass, not 500, commented as the rocket jump hack.1

Games

GameYearHowNote
Quake II1997Boosted self-pusha 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

  1. ^ 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_Damage pushes 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-2
    How 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.

    In the claim ledger

Sources

Code