Passengers in boats only rotate client-side if player is steering
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]} - Run the /data get entity command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]
- Get in the boat and turn only very slightly
- Run the /data get entity command on the armor stand and have a look at its Rotation
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]
→ It is still [0.0f,0.0f]
The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
Created Issue:
Passengers in boats only rotate client-side if player is steering
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}- Run the /entitydata command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]
/entitydata @e[type=armor_stand,c=1] {}- Turn only very slightly
- Run the /entitydata command on the armor stand and have a look at its Rotation
/entitydata @e[type=armor_stand,c=1] {}→ It is still [0.0f,0.0f]
The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}- Run the /entitydata command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]
/entitydata @e[type=armor_stand,c=1] {}Turn only very slightly- Run the /entitydata command on the armor stand and have a look at its Rotation
/entitydata @e[type=armor_stand,c=1] {}→ It is still [0.0f,0.0f]
The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}- Run the /entitydata command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]
/entitydata @e[type=armor_stand,c=1] {}- Get in the boat and turn only very slightly
- Run the /entitydata command on the armor stand and have a look at its Rotation
/entitydata @e[type=armor_stand,c=1] {}→ It is still [0.0f,0.0f]
The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}- Run the /
entitydata command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]/entitydata@e[type=armor_stand,c=1] {}- Get in the boat and turn only very slightly
- Run the /entitydata command on the armor stand and have a look at its Rotation
/entitydata@e[type=armor_stand,c=1] {}→
It is still[0.0f,0.0f]The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}- Run the /data command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1] Rotation- Get in the boat and turn only very slightly
- Run the /entitydata command on the armor stand and have a look at its Rotation
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1] Rotation→
It is still [0.0f,0.0f]
The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}- Run the /data command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]Rotation- Get in the boat and turn only very slightly
- Run the /entity
datacommand on the armor stand and have a look at its Rotation/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]Rotation→
It is still [0.0f,0.0f]
The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
The bug
If a player is steering a boat, a second passenger will only rotate client-side.
How to reproduce
- Use the following command
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}- Run the /data get entity command on the armor stand and have a look at its Rotation, it should be [0.0f,0.0f]
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]- Get in the boat and turn only very slightly
- Run the /data get entity command on the armor stand and have a look at its Rotation
/data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1]→ It is still [0.0f,0.0f]
The reason
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
This happens because the method net.minecraft.entity.item.EntityBoat.controlBoat() which modifies the net.minecraft.entity.item.EntityBoat.deltaRotation value is only called client-side. It might make more sense for not steering passengers to use the rotation of the boat.
Note: At some point the method net.minecraft.entity.item.EntityBoat.applyYawToEntity(Entity) corrects the value.
relates to
I'm not too sure but this may be a duplicate of MC-108765.
I think this ticket is a duplicate of MC-108765, although I'm not too sure. If not a duplicate, it's definitely related. ![]()
The Issue
When a display entity is a passenger of a boat and you start turning the boat, it will not consistently match the rotation of the boat as expected, instead suddenly offsetting itself sideways. If the display entity has a nonzero, low teleport_duration value, spinning the boat in the opposite direction also causes the display entity to begin shaking violently for the duration of the spin before eventually flipping to the other side when the boat stops.
Demonstration
Video taken from a vanilla minigame in which I have implemented boat sails and cannons using display entities as passengers of a boat. I am using teleport_duration:3 for the display entities here to showcase the violent shaking behavior: MC-267415.mp4![]()
Steps to Reproduce
- Summon a boat over water with a display entity as a passenger through the following command:
/summon boat ~ ~ ~ {Passengers:[{id:"minecraft:item_display",item_display:"head",item:{id:"minecraft:black_banner",Count:1b},teleport_duration:3}]} - Mount the boat and start spinning inside it.
- Notice the display entity rotates with the boat to an extent before suddenly offsetting sideways.
- Start spinning in the opposite direction from before.
- Notice the display entity starts shaking violently while it is already incorrectly rotated.
- Stop spinning the boat.
- Notice the display entity now flips its rotation to the other side.
- Repeat step 4 onwards to confirm that this shaking behavior occurs in either direction.
Feel free to test with other values of teleport_duration; high enough values seemingly mitigate the shaking altogether (as to be expected from client-side linear interpolation), but the rotation remains incorrect nonetheless.
Notes
Similar behavior affects living mobs with NoAI:1b (see MC-131080). This issue should not be marked as a duplicate since display entities are functionally different from NoAI mobs. However, like that issue, the behavior also relates to MC-108765 since much of the effects observed here are client-sided.
This issues relates to MC-90148 but differs in that the entities exhibit incorrect sideways rotation while the player is still controlling the boat, not just after they dismount. Therefore, it should not be marked as a duplicate.
This issue is also sufficiently different from MC-90838 since that behavior affects living mobs whose head rotations are independent from their bodies. Display entities do not have this same distinction, nor are they living mobs.
Please do not dismiss this issue; display entities have valid and intended applications for riding (see attached image-2023-12-18-15-11-30-159.png
quoting boq in the Minecraft Commands Discord), and their current inability to properly support boats limits mapmaking opportunities.
Can confirm in 20w48a. Here's some updated commands since the command format and usage has been changed since the date this was reported.
/summon boat ~ ~ ~ {Passengers:[{id:"armor_stand"}]}Can confirm in 21w03a.
Can confirm in 21w05a.
Can confirm in 21w06a.
Can confirm in 21w17a.