MCPcopy Index your code
hub / github.com/FabricMC/fabric-loom

github.com/FabricMC/fabric-loom @v1.17.13

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.17.13 ↗ · + Follow
3,785 symbols 11,682 edges 551 files 382 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Fabric Loom

A Gradle plugin to setup a deobfuscated development environment for Minecraft mods. Primarily used in the Fabric toolchain.

  • Has built in support for tiny mappings (Used by Yarn)
  • Utilises the Fernflower and CFR decompilers to generate source code with comments.
  • Designed to support modern versions of Minecraft (Tested with 1.14.4 and upwards)
  • Built in support for IntelliJ IDEA, Eclipse and Visual Studio Code to generate run configurations for Minecraft.
  • Loom targets the latest version of Gradle 7 or newer
  • Supports Java 16 upwards

Use Loom to develop mods

To get started developing your own mods please follow the guide on Setting up a mod development environment.

Debugging Loom (Only needed if you want to work on Loom itself)

This guide assumes you are using IntelliJ IDEA, other IDE's have not been tested; your experience may vary.

  1. Import as a Gradle project by opening the build.gradle
  2. Create a Gradle run configuration to run the following tasks build publishToMavenLocal -x test. This will build Loom and publish to a local maven repo without running the test suite. You can run it now.
  3. Prepare a project for using the local version of Loom:
  4. A good starting point is to clone the fabric-example-mod into your working directory
  5. Add mavenLocal() to the repositories:
    • If you're using id 'fabric-loom' inside plugins, the correct repositories block is inside pluginManagement in settings.gradle
    • If you're using apply plugin: for Loom, the correct repositories block is inside buildscript in build.gradle
  6. Change the loom version to 0.6.local. For example id 'fabric-loom' version '0.6.local'
  7. Create a Gradle run configuration:
  8. Set the Gradle project path to the project you have just configured above
  9. Set some tasks to run, such as clean build you can change these to suit your needs.
  10. Add the run configuration you created earlier to the "Before Launch" section to rebuild loom each time you debug
  11. You should now be able to run the configuration in debug mode, with working breakpoints.

Extension points exported contracts — how you extend this code

FabricModJsonSource (Interface)
A mod may be a zip, directory or Gradle SourceSet This abstraction allows easily reading a contained file from t [14 implementers]
src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonSource.java
LoomInternalDecompiler (Interface)
(no doc) [5 implementers]
src/decompilers/common/net/fabricmc/loom/decompilers/LoomInternalDecompiler.java
InjectedInterface (Interface)
(no doc)
src/test/resources/projects/interfaceInjection/src/main/java/InjectedInterface.java
FileSpec (Interface)
FileSpec should be used in MappingsSpec's that take an input file. The input file can either be a local file or a gradle [5 …
src/main/java/net/fabricmc/loom/api/mappings/layered/spec/FileSpec.java
GenericInjectedInterface (Interface)
(no doc)
src/test/resources/projects/interfaceInjection/src/main/java/GenericInjectedInterface.java
MappingsSpec (Interface)
A MappingsSpec is an immutable set of data used to create the MappingLayer. The hashCode is used to generate a hash [5 …
src/main/java/net/fabricmc/loom/api/mappings/layered/spec/MappingsSpec.java
OwnInjectedInterface (Interface)
(no doc)
src/test/resources/projects/interfaceInjection/src/main/java/OwnInjectedInterface.java
IORunnable (Interface)
(no doc) [22 implementers]
src/main/java/net/fabricmc/loom/task/prod/TracyCapture.java

Core symbols most depended-on inside this repo

get
called by 369
src/main/java/net/fabricmc/loom/util/service/ServiceFactory.java
add
called by 264
src/main/java/net/fabricmc/loom/api/MixinExtensionAPI.java
get
called by 241
src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMetadataProvider.java
map
called by 142
src/main/java/net/fabricmc/loom/util/fmj/gen/GeneratorUtils.java
get
called by 117
src/main/java/net/fabricmc/loom/LoomGradleExtension.java
getLogger
called by 112
src/main/java/net/fabricmc/loom/api/mappings/layered/MappingContext.java
of
called by 111
src/main/java/net/fabricmc/loom/util/Lazy.java
getProject
called by 95
src/main/java/net/fabricmc/loom/util/DeprecationHelper.java

Shape

Method 3,039
Class 584
Interface 141
Enum 20
Function 1

Languages

Java99%
Kotlin1%

Modules by API surface

src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java60 symbols
src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java60 symbols
src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java55 symbols
src/main/java/net/fabricmc/loom/configuration/providers/minecraft/AnnotationsApplyVisitor.java54 symbols
src/main/java/net/fabricmc/loom/api/fmj/FabricModJsonV1Spec.java53 symbols
src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java42 symbols
src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionImpl.java38 symbols
src/main/java/net/fabricmc/loom/task/tool/ValidateModProvidedJavadocTask.java37 symbols
src/main/java/net/fabricmc/loom/task/AbstractRemapJarTask.java37 symbols
src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java36 symbols
src/main/java/net/fabricmc/loom/configuration/providers/mappings/extras/annotations/validate/AnnotationsDataValidator.java36 symbols
src/main/java/net/fabricmc/loom/LoomGradleExtension.java34 symbols

For agents

$ claude mcp add fabric-loom \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page