stfwi / engineers-decor

Engineer's Decor
MIT License
35 stars 16 forks source link

Loading existing world with engineers-decor causes forge (server) to load backup level.dat at startup 1.12.2 #86

Closed Dunothar closed 4 years ago

Dunothar commented 4 years ago

This seems to be a severe issue. Everytime we want to load your mod in our pack on our current world, forge immediately loads the backup level.dat at startup. /fml confirm or /fml cancel do nothing, server hangs at creating the backup. This issue happens on all mod versions on at least the newest forge 1.12.2. It also happens when trying to load the world with just your mod at startup. This issue only happens at existing worlds, Letting the server generate a new world, shutting it down and loading it works.

Log from our server: https://pastebin.com/QQQ1VQdL

stfwi commented 4 years ago

I removed a test block which was not visible to the user but registered. Shall I re-include it and re-upload the mod. [I have to revert that, was not in this mod].

stfwi commented 4 years ago

-> Until this is resolved I archived the version on curse.

stfwi commented 4 years ago

So what the problem in you log file is seems to be a reordering issue of some kind. The blocks in my mod get another ID assigned as a result. After 1736->4095 the ID range is exceeded and you get an exception. In your log the ED mod version is 1.0.4, we are now at version 1.0.18 release / 1.0.19-b2 beta.

Where did you download that?

Dunothar commented 4 years ago

Funny enough, I downloaded the engineersdecor-1.12.2-1.0.19-b2.jar from Curse just as usual. We fixed the issue for now by adding JustEnoughIDs-1.0.3-48.jar to our pack. It is really weird that there are no issues when we let the server create a new world. But as soon as we loaded our existing world we get IDs assigned that are higher than the 4096 limit. Egg on my face that I didn't see this one earlier, it happens as soon as we add another mod that adds blocks.

It seems that TinkersConstruct still somehow claims its block IDs even after months of not using it. When loading the world again with TC enabled, we get all naturally genrated blocks back. Like for example the flying slime islands. They are also clearly visible in MCEdit when you load the world. Normally FML should get rid of those blocks and make the IDs available for other mods. This also means that everything on your end should be working just fine! It's just Forge that is cocking up how IDs that are not used anymore are handled on an existing world. Never came across such a weird behaviour in like 8 years of minecraft modding.

stfwi commented 4 years ago

Ok, perfect that, main thing is that the saved world did not go pooof. I close this issue then. Cheers for pinging back with the analysis.