When the player gradually slows down after moving, the player's momentum eventually snaps down to zero when they are moving slowly enough. However, the speed is not checked as the magnitude of the XZ vector, the X motion and Z motion are considered separately. This results in the player appearing to hit an invisible wall when they slow down, especially at shallow angles relative to the X or Z axis.
To reproduce: Fly in creative mode or walk on blue ice. Point at a very shallow angle away from one of the cardinal directions and move forward. Look straight down and watch your cursor relative to the pixels of the blocks below. Stop moving and let yourself slow down. You will notice your momentum on the X or Z axis suddenly vanish, causing you to move perfectly aligned with the block grid!
Attached is an illustration of the path you might take if you slow to a stop after moving in various directions.
Linked issues
is duplicated by 1
relates to 2
Attachments
Comments


Duplicate of or relates to MC-184530. It seems like the same issue to me, but it might not have the same root cause.

Definitely relates to MC-184530, but there are some key differences. This issue completely erases the player's momentum on one axis when that component of the motion vector is small, and only when the player isn't pressing the movement keys. MC-184530 slightly deflects the motion vector towards the closest axis, and while the movement keys are pressed.

In 1.19 Pre-2.
Still in 1.18.1
Exactly as it was described, fix: https://github.com/fxmorin/carpet-fixes/blob/1.18/src/main/java/carpetfixes/mixins/entityFixes/LivingEntity_momentumCancelledMixin.java