mojira.dev
MC-103452

Structure blocks don't load passenger entities

The bug

When you have an entity riding another entity, and save it in a structure, only the bottom entity gets saved.

How to reproduce

  1. Save a structure which includes an entity riding another entity

  2. Load the structure

  3. Notice how the structure only loads the bottom entity.

Notes

  • Reloading the world does not fix the issue

  • I am not playing on peaceful mode.

Code analysis

Based on 1.11 decompiled using MCP 9.35 rc1

This happens because the method net.minecraft.world.gen.structure.template.Template.addEntitiesToWorld(World, BlockPos, Mirror, Rotation, StructureBoundingBox) calls the method net.minecraft.entity.EntityList.createEntityFromNBT(NBTTagCompound, World) to create the entity. However, this method cannot load Passengers entities. Instead the method net.minecraft.world.chunk.storage.AnvilChunkLoader.readWorldEntityPos(NBTTagCompound, World, double, double, double, boolean) could be called with the vector values and true to only try to spawn the entity but don't force it.

Edit: The passengers have to get a new random UUID as well, therefor this method cannot be used.

Linked issues

Attachments

Comments 26

I experienced the same, just save you'r /summon command on commandblock with auto:1b

Added screenshots of my polar bears lonely without their riders. Would love to see this fixed!

Still persisting in 18w05a.

Thanks, Daniel. I hope we get a fix for this, someday!

16 more comments

Can confirm in 1.20.1

Confirmed in 1.20.2

This also affects structures loaded by test instances

Xavier Hodgson

Ray

(Unassigned)

Confirmed

Platform

Normal

Structures

entity, nbt, passengers, structure_block

Minecraft 1.10, Minecraft 1.10.2, Minecraft 16w33a, Minecraft 16w35a, Minecraft 16w44a, ..., 1.20.2, 24w35a, 1.21.3, 1.21.9 Release Candidate 1, 1.21.9

Retrieved