The bug
When a boat or raft (with or without chest) falls for certain distances, it crashes when hitting the floor, breaks, and drops three planks and two sticks.
This is known to happen when falling exactly 12, 13, 49, 51, 111, 114, 198, 202, 310 or 315 blocks.
Additionally, for some distances, all passengers in the boat die instead of the fall damage being negated as usual. A passenger inside of the boat makes this bug less reliable to reproduce.
To reproduce
On a flat surface, run
/setblock ~ ~48 ~ stone
/tp @s ~ ~49 ~
Place a boat on the stone block
Enter the boat
Switch into survival mode
Press forward
→ ❌ You die and the boat breaks
It is also possible to reproduce this by breaking the block below the boat instead of driving it off.
Notes
For some heights, no fall damage is dealt.
For some heights, the boat only breaks when dismounting it.
For boats with chests, the inside contents are destroyed (MC-249501).
Videos
Video by @unknown: https://www.youtube.com/watch?v=hxRrGLiVFqA
Mathematical analysis by Matt Parker and @unknown: https://www.youtube.com/watch?v=ei58gGM9Z8k
Code analysis
Code analysis by @unknown can be found in this comment.
Linked issues
is duplicated by 29
relates to 1
Comments 67
@Urielsalis Make a platform at y=113, and another at y=64 slightly away from it, then ride a boat (survival) from the top to the bottom one. The boat breaks, and you take fall damage
Making a platform in a superflat world with those exact coordinates worked, adding a extra block or removing one makes the boat not break
I can only reproduce this in 1.21 by dropping a boat from 12 or 13 blocks, not any of the other heights, and not while a player is inside the boat.
Alex's comment from April 4 can be expanded on, but I'm not sure this idea will work: A game tick is .05s, but the velocity is .04s / t2. If you changed the velocity to .05, would that resolve the floating point issue?
Cannot recreate, dropped 49 blocks, 48 blocks and 53 blocks and the boat didnt break on survival
Can you provide more reproduction steps?