Added quilt to my project but class names are hashed?

I just added quilt to my multi-platform mod workspace but after importing all classnames come back as net.minecraft.class_3222 rather than net.minecraft.world.entity.player.Player causing all kinds of weird compile errors.

I working against Minecraft 1.19.4 with the following quilt versions

  • QuiltLoader: 0.19.0-beta.18
  • QuiltMappings: 1.19.4+0.19.0
  • QuiltStandardLibraries: 5.0.0-beta.10+1.19.4
  • QuiltFabricAPI: 6.0.0-beta.9+0.83.0-1.19.4

I am also attempting to use layered mappings to apply official Mojang & Parchment mappings ontop of Quilt mappings.


Update: So it seems if I have any fabric-loom project included, my quilt project will use fabric-loom to setup the subproject, even though I am telling it to use quilt-loom?

I am using fabric-loom for 2 other project.

  • Common - which is a shared project for every platform.
  • Fabric - project to add fabric support for my mod.

How can I include quilt without it doing this weird thing forcing fabric-loom to be used in the quilt project?

Ive tried switching the above 2 projects to using quilt-loom but fabric fails to include the dependencies correctly leading missing fabric API classes.

This seems to be a bug in loom itself rather than something I am doing wrong, as if I remove the fabric-loom projects, quilt imports and works perfectly fine.

So I have gone ahead and made a issue on github.

Ive tried switching the above 2 projects to using quilt-loom but fabric fails to include the dependencies correctly leading missing fabric API classes.

This happens because Quilt Loom excludes Fabric dependencies by default, because the expectation is that you’re using Quilt Loom with the Quilt toolchain.

If you’re trying to make a Fabric mod with Quilt Loom, you need to set the system property loom.excludeFabricReplacedDependencies to true.
If you have a Quilt submodule, you’ll need to add this snippet to THE SUBMODULE’s build.gradle (syntax may not be exact):

configurations.all {
  exclude(group: "net.fabricmc", module: "fabric-loader")
  exclude(group: "net.fabricmc.fabric-api")
}```
This will prevent having both Fabric and Quilt loader/api present in only the Quilt submodule.