Lithium (Fabric/NeoForge)

Lithium (Fabric/NeoForge)

36M Downloads

Overworld is removed from world_gen_settings when used with WilderWild and custom ChunkGenerator class

quiqueck opened this issue ยท 2 comments

commented

The base issue came up in this report: quiqueck/BCLib#113

I am still not sure what is happening, but I figured out some things while testing. The crash happens when BClib, Lithium and WilderWild are installed. But I think the issue is not with WilderWild, but instead with QuiltDataFixes in general.

Let me explain the setting:
BCLib is defining a custom ChunkGenerator class, that is registered as bclib:betterx to the builtin ChunkGenerator Registry. I checked, and the registry contains the codec reference. We use this Generator for the Nether and the End. The overworld is using the vanilla ChunkGenerator.

Then there is QuiltDataFixes.updateWithAllFixers, which is used by the Mod WilderWild. It just registers some simple fixes, as far as I can tell, nothing that is messing with the dimensions of a world.

Using BCLib and WilderWild will not cause any issues. When I add Lithium to the mix, the Overworld (remember the only dimension that does not use the custom ChunkGenerator) is deleted when the DataFixerers for DataFixTypes.WORLD_GEN_SETTINGS are executed in LevelStorage.readGeneratorProperties.

With and without Lithium, the DataFixer will issue an error:

Unsupported key: bclib:betterx; Unsupported key: bclib:betterx

(which indicates, that there is a problem reading the custom ChunkGenerator, which is caused by a Vanilla DataFixer called MissingDimensionFix). When I create a new world with BCLib that does not include the custom ChunkGenerators, the error is not produced (as expected) and the overworld is not deleted. But as I said, without Lithium the missing generator type does not cause any issues, except for the error message.

Which leads me to suspect, that there is an interior problem between Lithium and QuiltDataFixes? However, I am not sure if this is caused by Lithium or QSL...

To confirm that the root cause of the problem is MissingDimensionFix (which is hard coded to the vanilla generator types), I went and added some Mixins, that add the custom type to the Vanilla DataFixers. This indeed solves the issue. However that feels quite intrusive.

Since there are other mods out there that intruduce custom ChunkGenerators as well, this might be an issue worth looking into?

commented

WilderWilds is using its own port of Quilt DFU API; it is disabled on our (QSL)'s end and not usable by mods through QSL or QFAPI.

commented

Fixed on Wilder Wild's side. can close