Description
Speed difference between the entities on top of the block and the moving block itself:
Entities and players will move slightly faster then the moving block below them when standing on top of it. This will not be noticable when standing on a moving block going back and forward. So you will have to use a flying machine or other contraption that moves in one direction only to reproduce this bug.
How to reproduce:
1. create a piston contraption that moves in one direction only (e.g. a flying machine.)
2. make sure there are at least 2-3 blocks in a row for the player to stand on this way the problem is better visualized.
3. Activate the contraption while standing on top of it or with an entity on top.
Current outcome:
4. Observe the player or entity slowly moving forward relative to the contraption.
4.1. option 1: The player or entity will either stop at the edge and not move forward further when they reached the edge.
4.2. option 2: The player or entity will fall off the contraption at the front.
Expected outcome:
5. The player or entity will move at the same speed as the moving block below them and their relative location will not change over time.
Different tested situations:
This happens in a singleplayer session
This happens in a multiplayer session
This happens with lan and xbox players that remotely joined the world
This happens with all or nearly all entities but its safe to assume all entities are affected.
Examples:
Player sliding of a flying machine 1
Player sliding of a flying machine 2
Player sliding of a flying machine 3
Entity sliding of a flying machine 1
Disclaimers and other info:
This is an old bug raised by @migrated last year.
Please note that this bug report is different even though similar ones exist. These bug reports address either parity issues, client/server desync or clipping issues. While this one is about the speed difference.
From the original raiser:
noticed two things:
Entities on moving blocks get moved twice, in two successive ticks. This might be because the technical movingBlock exists for two ticks instead of one (MCPE-103544: Moving Blocks are Unreliable
REOPENED
). It seems that the first movement is usually about a full block distance or the correct/expected distance, and the second movement adds about an extra 1/2 block.
Movement distance is not consistent. I believe it varies based on where the entity is positioned on the moved block before the movement, and based on direction of motion.