Skip to content

Missing mixin in fabric-registry-sync-v0 suspected to break modded registry loading #280

Description

@Builderb0y

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.

  1. Install Sinytra Connector, Forgified Fabric API, and Big Globe.
  2. Launch the game once.
  3. 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.
  4. Launch the game again and attempt to create a world.
  5. 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.

Metadata

Metadata

Assignees

Labels

26.1.xTargets Minecraft 26.1.xbugSomething isn't working

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions