Boats inside non full level water raise / sink with NoGravity set
The bug
Boats inside non full level water (see MC-124819) sink even if NoGravity is set to 1b.
How to reproduce
- Create a straight waterfall
- Summon a boat with NoGravity:1b
/summon boat ~ ~ ~ {NoGravity:1b} - Push or steer the boat into the water
It floats or sinks
Code analysis
Based on 1.12.2 decompiled using MCP 9.40
It looks like the reason could be that when a boat has the status EntityBoat.Status.UNDER_FLOWING_WATER, the method net.minecraft.entity.item.EntityBoat.updateMotion() modifies d1 which is added to the y-motion instead of modifying d2.
Linked Issues
Created Issue:
Boats inside non full level water sink with NoGravity set
Blocked by
MC-124819The bug
Boats inside non full level water (see
MC-124819) sink even if NoGravity is set to 1b.Code analysis
Based on 1.12.2 decompiled using MCP 9.40
When a boat has the status EntityBoat.Status.UNDER_FLOWING_WATER, the method net.minecraft.entity.item.EntityBoat.updateMotion() modifies d1 which is added to the y-motion instead of modifying d2.
Blocked by
MC-124819The bug
Boats inside non full level water (see
MC-124819) sink even if NoGravity is set to 1b.Code analysis
Based on 1.12.2 decompiled using MCP 9.40
When a boat has the status EntityBoat.Status.UNDER_FLOWING_WATER, the method net.minecraft.entity.item.EntityBoat.updateMotion() modifies d1 which is added to the y-motion instead of modifying d2.Blocked by
MC-124819The bug
Boats inside non full level water (see
MC-124819) sink even if NoGravity is set to 1b.Code analysis
Based on 1.12.2 decompiled using MCP 9.40
It looks like the reason could be that when a boat has the status EntityBoat.Status.UNDER_FLOWING_WATER, the method net.minecraft.entity.item.EntityBoat.updateMotion() modifies d1 which is added to the y-motion instead of modifying d2.
Blocked by
MC-124819The bug
Boats inside non full level water (see
MC-124819) sink even if NoGravity is set to 1b.Code analysis
Based on 1.12.2 decompiled using MCP 9.40
It looks like the reason could be that when a boat has the status EntityBoat.Status.UNDER_FLOWING_WATER, the method net.minecraft.entity.item.EntityBoat.updateMotion() modifies d1 which is added to the y-motion instead of modifying d2.
is blocked by
The bug
Boats inside non full level water (see
MC-124819) sink even if NoGravity is set to 1b.Code analysis
Based on 1.12.2 decompiled using MCP 9.40
It looks like the reason could be that when a boat has the status EntityBoat.Status.UNDER_FLOWING_WATER, the method net.minecraft.entity.item.EntityBoat.updateMotion() modifies d1 which is added to the y-motion instead of modifying d2.
The bug
Boats inside non full level water (see
MC-124819) sink even if NoGravity is set to 1b.How to reproduce
- Create a straight waterfall
- Summon a boat with NoGravity:1b
/summon boat ~ ~ ~ {NoGravity:1b}- Push or steer the boat into the water
It floats or sinks
Code analysis
Based on 1.12.2 decompiled using MCP 9.40
It looks like the reason could be that when a boat has the status EntityBoat.Status.UNDER_FLOWING_WATER, the method net.minecraft.entity.item.EntityBoat.updateMotion() modifies d1 which is added to the y-motion instead of modifying d2.
Boats inside non full level water raise / sink with NoGravity set


I can confirm that it has to do with the motion getting updated because I can cause the inverse of the behavior you experienced using a different setup. Using the setup in Rise.png, and putting this command in the command block: summon boat ~ ~-1 ~2
{NoGravity:1b}, the boat will slowly continue to rise into the air after being summoned.
Can confirm in 20w51a.
Can confirm in 21w03a.
Can confirm in 21w05b.
Can confirm in 21w06a.
Can confirm in 1.16.5 and 21w08b.
Can confirm in 1.17.
Can confirm in 1.17.1 and 1.18 Pre-release 5.
Can confirm in 1.18.2 and 22w16b.
Can confirm in 1.19.
Can confirm in 1.19.2.