Stepping/zh

Stepping, or Step-Assist, is a mechanic that assists the player in walking up obstacles of low height without jumping.

The player's maximum step height is 0.6b, meaning they can step up blocks like carpets, slabs, and even beds.

While simple in concept, the implementation of this mechanic is quite messy and introduces a wide range of collision-related glitches, which can be abused in the context of parkour (Blips and Jump-Cancelling)

https://youtu.be/Awa9mZQwVi8

Summary:

 * The player's bounding box (0.6 × 1.8 × 0.6) is used to detect collisions. (Reminder: the collision order is Y-X-Z)
 * When a wall is detected while the player is on ground, the game attempts to make them "hop" over it. (as shown in the video)
 * In the end, the game chooses the method that yields the longest horizontal distance.

Notes:

 * Prior to 1.8, the player couldn't step onto some blocks which had a ceiling above (bug report).
 * To fix that, an alternative method was added to the stepping procedure (visualized in the video)
 * Prior to 1.8.1, stepping could be used to glitch into the floor.
 * This is because the floor below the player's bounding box is never considered for collisions during step-assist, but the procedure could force the player to move below floor level anyway (the bounding box was lowered by 0.6b regardless of the amount it was elevated by).
 * It's even easier to do in 1.8.0, as you don't need a ceiling directly overhead.
 * The current implementation of stepping is still somewhat flawed.

Related Glitches
Stepping is intended for ground movement, and works fine for its original purpose: walking up slabs and stairs.

However, the game also tries to apply stepping at the start and end of any vertical motion, which causes some unintended mechanics.
 * Blipping can happen at the end of a jump, and is used to jump higher by landing above ground level.
 * Jump-Cancelling can happen at the start of a jump, and is used to gain momentum by staying at ground level.