mojira.dev
MC-196336

Custom Biome map changes on relog

I've created a datapack with some custom dimensions and custom biomes. the biomes are organized by color and use a surface builder coded with that color concrete. when I load this datapack, everything works fine: the concrete and biomes match. however when I save and quit, and reload, all generated biomes get swapped to something else. they still use the original surface builder as when it was first generated, but the biome colors no longer match the surface generators. pretty game breaking issue, as biomes should be consistent and shouldn't change when you reload.

upon first loading the datapack, this is the purple biome. it uses purple concrete on the surface and has purple fog and particles.

[media]

however, upon reloading, this biome is now yellow. the surrounding generated biomes have changed to different biomes as well. new chunks don't seem to be affected, but all chunks generated will change on relog. the biomes appear to have the same borders and follow similar rules, IE all purple biomes will be yellow (unconfirmed if this is the same across multiple save files).

[media]

Pretty gamebreaking issue for custom dimensions, hoping we see a fix for this soon.

Linked issues

Attachments

Comments 8

Please attach the data pack in question - also, please add the launcher log using these instructions to this ticket - please copy the log after the error has occurred.

Quick Links:
📓 Issue Guidelines – 🛠 Community Support – 📧 Customer Support – ✍️ Feedback and Suggestions – 📖 Game Wiki
💬 Mojira Subreddit – 💬 Mojira Discord

Edit: Datapack attached: meant to attach it previously. on my way to a funeral but I'll attach the launcher log tonight.

Launcher log attached: I loaded a fresh world with the datapack, save and quit, and loaded it again. also confirmed that the purple biome became yellow again when I reloaded.

https://paste.ubuntu.com/p/86p9kkKYKc/

Bug appears to be fixed in 1.16.2 pre-1: more testing needed, will do soon.

Yeah, by looking at the save data of a chunk, I can already tell you, this is not fixed. Neither level.dat nor region files have a biome ID mapping saved. Meaning the numerical IDs are assigned on load. The biome division in a chunk still has only numerical IDs. meaning that if biomes get added, the auto-assigned IDs may change based on load order, changing the order of custom biomes in existing chunks.

The ONLY fix for this, is to save the string ID to numerical ID mapping to file. (best solution would be to save it the same way as block state mappings)

Confirmed for 1.16.5 and 21w03a.

IF @unknown wouldn't mind, I'd like to request ownership of this report.

Is this the same as MC-202036? According to that bug report it only happens when you add new biomes. Is there a reliable way to get this to happen even without adding new biomes?

Adding new biomes is mandatory (new vanilla biomes will also shift custom biomes). The original reporter didn't understand the issue that well.
So yes, it is the same issue.

Zachary Perl

(Unassigned)

Community Consensus

Custom Worlds

20w30a, 21w03a, 1.16.5

Retrieved