Minecraft version
26.1.x
Describe the bug
FAPI's WorldLoderMixin replacies RegistryDataLoader.WORLDGEN_REGISTRIES with DynamicRegistries.getBootstrappingRegistries(), but FFAPI has no such mixin. This results in modded dynamic registries not being present in the RegistryOps, which can cause resource load failures when a modded Codec expects to be able to locate a Holder for its own registry objects. Sometimes these resource load failures can also crash the game.
Steps to reproduce
The easiest way to reproduce this issue is to use Big Globe, as it registers quite a few dynamic registries.
- Install Sinytra Connector, Forgified Fabric API, and Big Globe.
- Launch the game once.
- Close the game, open
.minecraft/config/bigglobe/mixins.properties, and set builderb0y.bigglobe.mixins.Biome_DontFreezeRiverWater to false. This is a workaround for a different issue and is unrelated to this issue.
- Launch the game again and attempt to create a world.
- AutoCodec (a JIJ dependency of Big Globe) should error out with a message similar to "Registry not present in RegistryOps", and you will not be able to successfully create a world.
Logs
The log submitted to me can be found here.
Additional context
A reference implementation of the required mixin can be found here. However, looking through the parent folder would indicate that FAPI has a lot of other mixins that FFAPI is lacking. I suspect some of this functionality may be provided natively by NeoForge. I did not check if NeoForge replaces the reference to RegistryDataLoader.WORLDGEN_REGISTRIES with something else, as I do not have a NeoForge dev environment setup right now. All the code digging I did for this issue was done in a fabric dev environment. This issue serves as my best guess as to what the problem is.
Minecraft version
26.1.x
Describe the bug
FAPI's
WorldLoderMixinreplaciesRegistryDataLoader.WORLDGEN_REGISTRIESwithDynamicRegistries.getBootstrappingRegistries(), but FFAPI has no such mixin. This results in modded dynamic registries not being present in theRegistryOps, which can cause resource load failures when a moddedCodecexpects to be able to locate aHolderfor its own registry objects. Sometimes these resource load failures can also crash the game.Steps to reproduce
The easiest way to reproduce this issue is to use Big Globe, as it registers quite a few dynamic registries.
.minecraft/config/bigglobe/mixins.properties, and setbuilderb0y.bigglobe.mixins.Biome_DontFreezeRiverWatertofalse. This is a workaround for a different issue and is unrelated to this issue.Logs
The log submitted to me can be found here.
Additional context
A reference implementation of the required mixin can be found here. However, looking through the parent folder would indicate that FAPI has a lot of other mixins that FFAPI is lacking. I suspect some of this functionality may be provided natively by NeoForge. I did not check if NeoForge replaces the reference to
RegistryDataLoader.WORLDGEN_REGISTRIESwith something else, as I do not have a NeoForge dev environment setup right now. All the code digging I did for this issue was done in a fabric dev environment. This issue serves as my best guess as to what the problem is.