Jump Cancel: Difference between revisions

From Minecraft Parkour Wiki
Content added Content deleted
mNo edit summary
(couple of miscellaneous changes and updates)
Line 1: Line 1:
Jump Cancel is a mechanic that involves using a step or ceiling to cancel a jump's vertical speed.
Jump Cancel is a mechanic that allows the player to stay at ground level after jumping, by cancelling the initial jump speed.


It's the consequence of [[Stepping]] applied to jumping motion.
This can be useful to gain more momentum that normally possible.




Jump Cancelling is used to increase the efficiency of a momentum (by reducing the duration of each jump to just '''2 ticks''').
'''Definitions:'''


There are two ways to cancel a jump:
* The '''jump motion (0.42m)''' is the height of the first tick of a jump.
* The '''step height (0.6m)''' is the highest step the player can move onto while on ground.<br />


* With a '''slab''', '''stair''', or other steppable blocks (height < 0.6b).

* With a '''ceiling'''.
Both values are hard-coded into the game, but they aren't always used correctly.

This makes it possible to use [[Stepping]] mechanics in unintended ways.


<br />
<br />


== Slab Variant ==
== Step Variant ==
[[File:Jump cancel step variant.png|thumb|350x350px|'''Slab-Boosting''': the player can gain momentum on stairs by sprint-jumping every 2 ticks.]]
[[File:Jump cancel step variant.png|thumb|350x350px|'''Slab-Boosting''': the player can maximize momentum on stairs by jumping every 2 ticks.]]
This variant is '''intended''', as it is the logical extension of [[Stepping]] mechanics applied to [[Jumping]].
This variant is '''intended''', as it is the logical extension of [[Stepping]] mechanics applied to [[Jumping]].


This is also called "Slab Boost".
This technique is also called "Slab Boost" in the speedrun community.




Line 26: Line 23:


* If '''Δ < 0.42m''', the player jumps above the step before the collision can be detected.
* If '''Δ < 0.42m''', the player jumps above the step before the collision can be detected.
* If '''Δ > 0.60m''', there is a collision, but the step is too high to apply stepping mechanics.
* If '''Δ > 0.60m''', there is a collision, but the step is too tall to apply stepping mechanics.




When walking up a step, the game attempts to place the player correctly by:
When walking up a step, the game attempts to place the player correctly by:


# Setting their Y speed to 0.
# Setting the Y speed to 0.
# Setting their Y coordinate above the step.
# Setting the Y coordinate above the step.


In the process, the jump's vertical speed is lost, but horizontal speed is conserved. This makes it possible to jump again 2 ticks later.
In the process, the jump's vertical speed is lost, but horizontal speed is conserved. This makes it possible to jump again 2 ticks later.




'''Note:''' It is possible to use the corner of a slab to jump-cancel without moving up the step itself. To do this, the collision must be [[X/Z Facing|X-facing]]. [https://youtu.be/JHz6d-vXJ2M Example].
'''Note:''' It's possible to use the corner of a slab to jump-cancel without moving up the slab itself. To do this, the collision must be [[X/Z Facing|X-facing]]. [https://youtu.be/JHz6d-vXJ2M Example].




Jump Cancel can be used to build momentum on stairs, amongst other blocks.


<youtube>eXplVO5ZLn0</youtube>


== Ceiling Variant ==
== Ceiling Variant ==
[[File:Jump cancel ceiling variant.png|thumb|350x350px|A simple setup to perform Ceiling Jump-Cancel.]]
[[File:Jump cancel ceiling variant.png|thumb|360x360px|A simple setup to perform Ceiling Jump-Cancel.(perform a hh timing from the edge of the 1<sup>st</sup> block)]]
This variant is '''unintended''', and was patched in recent versions of the game.
This variant is '''unintended''', and was patched in 1.14 when [[Stepping]] was corrected.




Line 57: Line 53:
Ceiling jump-cancel is performed by jumping "into" a ceiling:
Ceiling jump-cancel is performed by jumping "into" a ceiling:


* The player must previously be on ground and jump on the next tick.
# The player must start on ground, with no ceiling directly above them.
* There must be no obstacle above the player's current position (if there is, it must be taller than the ceiling).
# The player's next intended position must collide with the ceiling.
* The player's next intended position must collide with the ceiling.



From the game engine's perspective, everything happened as if the player walked up a step, so the player's speed and position are (mistakenly) changed to reflect that. This makes it possible to jump again 2 ticks later.




It is possible to chain multiple jump-cancels under a ceiling. In that case, it's referred to as ''grinding'', and makes it possible to use 2-tick momentum under any kind of ceiling (as long as it satisfies the conditions above).
It is possible to chain multiple jump-cancels under a ceiling by repeatedly jumping in and out of the ceiling.


In that case, it's referred to as ''grinding'', and is virtually equivalent to "1.8bc" momentum, minus the negligible cost of speed for micro-turning.
Unfortunately, it requires extremely precise mouse movement, but some players have been able to use it in real time.




For example, a 1bm hh 5b is possible by using grinding:
For example, a '''1bm hh 5b''' is possible by using grinding:


<youtube>c9VpOFuSW0U</youtube>
<youtube>c9VpOFuSW0U</youtube>
Line 77: Line 68:




This technique requires extremely quick and precise mouse movement, but some players have managed to [https://youtu.be/0yvfIkeoY_8 use it in real time].




== Version Differences: ==
Cancelling a jump under a ceiling was made possible in 1.8 when Mojang fixed a bug which [https://bugs.mojang.com/browse/MC-3337 prevents entities from walking through a gap].


However, it wasn't until version 1.8.1 that the ceiling variant became practical, as the player would often [https://youtu.be/3aUqTmhn-50 glitch through the floor]. The game would indeed force the player to be set 2.4m under the ceiling (1.8m player height + 0.6m step height), even if a block was present.
'''Video breakdown:'''


Before 1.8.1, grinding under a headhitter ceiling wasn't possible.
* The Y coordinate stays the same throughout the momentum. This indicates the use of jump-cancel.
* To perform grinding under a 2b ceiling, the player must repeatedly move inside and outside of the 2bc.
* The momentum gained is essentially the same as for a 1bm tdhh 5b, but done with 2bc instead.

Revision as of 14:15, 1 March 2021

Jump Cancel is a mechanic that allows the player to stay at ground level after jumping, by cancelling the initial jump speed.

It's the consequence of Stepping applied to jumping motion.


Jump Cancelling is used to increase the efficiency of a momentum (by reducing the duration of each jump to just 2 ticks).

There are two ways to cancel a jump:

  • With a slab, stair, or other steppable blocks (height < 0.6b).
  • With a ceiling.


Step Variant

Slab-Boosting: the player can maximize momentum on stairs by jumping every 2 ticks.

This variant is intended, as it is the logical extension of Stepping mechanics applied to Jumping.

This technique is also called "Slab Boost" in the speedrun community.


This variant only works if the step height difference Δ is between 0.42m and 0.6m.

  • If Δ < 0.42m, the player jumps above the step before the collision can be detected.
  • If Δ > 0.60m, there is a collision, but the step is too tall to apply stepping mechanics.


When walking up a step, the game attempts to place the player correctly by:

  1. Setting the Y speed to 0.
  2. Setting the Y coordinate above the step.

In the process, the jump's vertical speed is lost, but horizontal speed is conserved. This makes it possible to jump again 2 ticks later.


Note: It's possible to use the corner of a slab to jump-cancel without moving up the slab itself. To do this, the collision must be X-facing. Example.



Ceiling Variant

A simple setup to perform Ceiling Jump-Cancel.(perform a hh timing from the edge of the 1st block)

This variant is unintended, and was patched in 1.14 when Stepping was corrected.


This variant only works if the ceiling height Δ is between 1.8m and 2.22m.

  • If Δ < 1.80m, the ceiling is too low for the player to fit, and the collision is registered as a wall.
  • If Δ > 2.22m, there is no first-tick collision.


Ceiling jump-cancel is performed by jumping "into" a ceiling:

  1. The player must start on ground, with no ceiling directly above them.
  2. The player's next intended position must collide with the ceiling.


It is possible to chain multiple jump-cancels under a ceiling by repeatedly jumping in and out of the ceiling.

In that case, it's referred to as grinding, and is virtually equivalent to "1.8bc" momentum, minus the negligible cost of speed for micro-turning.


For example, a 1bm hh 5b is possible by using grinding:


This technique requires extremely quick and precise mouse movement, but some players have managed to use it in real time.


Version Differences:

Cancelling a jump under a ceiling was made possible in 1.8 when Mojang fixed a bug which prevents entities from walking through a gap.

However, it wasn't until version 1.8.1 that the ceiling variant became practical, as the player would often glitch through the floor. The game would indeed force the player to be set 2.4m under the ceiling (1.8m player height + 0.6m step height), even if a block was present.

Before 1.8.1, grinding under a headhitter ceiling wasn't possible.