mojira.dev
MC-241670

Level.TileEntities rename datafixer fails when a modded block entity is present in chunk

As stated in summary when a modded block entity is in a chunk all block entities in the same chunk are lost when a pre-1.18 (21w43a) world is updated to 21w43a or newer.

 

Can only assume this is because modded block entity types don't provide a datafixer type because they don't exist in any of the schemas.

 

I know this isn't really a minecraft issue but thought I'd open it anyways just in case it's something mojang would like to fix.

Attachments

Comments 3

Could you please provide a world that can be used to reproduce this?

Sorry for the delay, been a bit busy. Here is a world backup which should help reproduce the issue. When opened in 1.17.1 vanilla you should see a double chest placed on lime concrete with a single stack of lime concrete. On the purple concrete is a wood chest from my mod Expanded Storage which has a stack of purple concrete. ( but that doesn't really pertain to the issue much )

 

If you open this world in 1.18 (pre-5 as of writing this) instead you shouldn't be able to see the vanilla chest despite it being there, also the items in the inventory are gone.

 

The world:

[media]

I believe the root cause of this is the use of tagged choice / tagged union types for block entity IDs. This is acceptable for vanilla because it has a fixed, hard-coded list of IDs, but it is woefully inadequate for mods (regardless of modding platform) because it requires knowing all block entity ids before datafixers are compiled.

user-e7175

(Unassigned)

Plausible

Datafixer

1.18 Pre-release 1, 1.18.1

Retrieved