Ceiling Hover: Difference between revisions

From Minecraft Parkour Wiki
Content added Content deleted
m (MCPK moved page Slime Hover to Ceiling Hover Glitch)
No edit summary
Line 1: Line 1:
[[File:Slime Hover Setup.png|thumb|In 1.8, this is the only setup that can be used to perform Slime Hover (1.8125bc with slime underneath)]]
[[File:Slime Hover Setup.png|thumb|In 1.8, this is the only setup that can be used to perform a Ceiling Hover (1.8125bc with slime underneath)]]


<youtube>bijMuKlme7k</youtube>
<youtube>bijMuKlme7k</youtube>
Line 50: Line 50:
When the game detects a vertical collision, it will consider the block 0.2m under the Player's position to apply collision physics (yes, even for ceiling collisions...)
When the game detects a vertical collision, it will consider the block 0.2m under the Player's position to apply collision physics (yes, even for ceiling collisions...)


With a ceiling collision, that generally concerns a block of air. But for ceilings less than 2b tall, the block considered is 1 block lower.
With a ceiling collision, that generally concerns a block of air. But for ceilings strictly less than 2b tall, the block considered is at ground level instead.





Revision as of 21:58, 14 March 2020

In 1.8, this is the only setup that can be used to perform a Ceiling Hover (1.8125bc with slime underneath)

Ceiling Hover is a glitch that makes the player "hover" over a bouncy block (slime, or beds since 1.12) under very specific conditions. The glitch can be performed by jumping under a ceiling such that the block 2.001b below the ceiling has bouncing properties.



Explanation

Whenever the Player collides with a block (ex: ceiling), the game will apply collision physics.

For almost every block, that just means setting the Player's vertical speed to 0.

/* in class Block */
public void onVerticalCollision(Entity entityIn)
{
    entityIn.motionY = 0.0D;
}


There is one exception: Slime Blocks (and Beds in 1.12+).

/* in class BlockSlime */
public void onVerticalCollision(Entity entityIn)
{
    if (entityIn.isSneaking())
        super.onVerticalCollision(entityIn);
    else if (entityIn.motionY < 0.0D)
        entityIn.motionY = -entityIn.motionY;
}


  • If the Player is sneaking, it's treated as a regular collision (Vertical motion is set to 0)
  • Otherwise, it checks if the Player's speed is negative, then inverts it.


Note that nothing would happen if the Player is neither sneaking or moving at negative speed.

In fact, that's exactly what happens with this glitch.


When the game detects a vertical collision, it will consider the block 0.2m under the Player's position to apply collision physics (yes, even for ceiling collisions...)

With a ceiling collision, that generally concerns a block of air. But for ceilings strictly less than 2b tall, the block considered is at ground level instead.


Let's review the steps for the 1.8 Ceiling Hover setup:

  1. Jumping under 1.8125bc applies vertical collision with the block on the ground.
  2. If the ground block is a slime block, then vertical speed won't be changed, and the Player remains at ceiling level.
  3. Repeat step (2) until the Player's speed becomes negative due to gravity.


Note: This glitch happens for 6 ticks, but with Jump Boost it would take even longer. Ceiling Hover can be interrupted at any time by sneaking.


Consequences

This glitch is pretty insignificant: it isn't game-breaking in any way, and requires a very specific setup to perform.