Slipperiness
Each block in the game has a Slipperiness factor, noted S. Its value is between 0.6 (rough) and 1.0 (frictionless).
By default, a block's slipperiness is set to 0.6.
In 1.8, the only blocks that have a different slipperiness are:
- Ice and Packed Ice, S = 0.98
- Slime Blocks, S = 0.8
In 1.13, another slippery block was added: Blue Ice, with a slipperiness of 0.99, making it the most slippery block in the game.
Effect on Movement
When moving, the Player loses some speed in between ticks to simulate drag, and gains some acceleration.
When the Player is on ground, drag and acceleration are calculated as so:
- This amount of speed conserved on ground is proportional to.
- The acceleration gained on ground is proportional to.
When the Player is airborne, Slipperiness is ignored.
Characterization
Every tick, if on ground, the game checks for the block directly 1b below the Player's position to get S.
Therefore, a block's slipperiness only affects the Player if they are standing less than 1b above its surface.
This means that non-full blocks are affected by the slipperiness of the block below them.
For example, the surface of a slab above Ice has the same slipperiness as the Ice itself.
Finally, we can understand why Soulsand is affected by Ice (and Slime blocks):
Soulsand is a non-full block (14px in height), meaning it gets its slipperiness from the block below it.
Let's consider the effects at work:
- Slippery blocks grant less acceleration.
- Soulsand cancels speed conservation.
These two effects combined create an net negative impact on the Player's movement, compared to regular Soulsand movement.