Fabric is a lightweight, experimental modding toolchain for Minecraft.

design

  • Fabric’s APIs are lightweight and modular, making porting faster and game instances leaner.
  • Fabric development targets snapshots as well as release versions, allowing earlier mod updates and more informed community planning.
  • The Fabric toolchain is available for everyone to use - even if you only want to use some of it!

installation

To install Fabric, you need the Fabric Loader, which you can download here.

In addition, most mods depend on an API mod, containing commonly used hooks. They can be found here:

projects

enigma

The Fabric project maintains a fork of Enigma, a tool for deobfuscation of Java classes originally by Cuchaz Interactive. Our changes include countless bugfixes, optimizations and improvements across the codebase, as well as user experience and compatibility improvements.

Downloads can be found here.

tiny-remapper

The tiny-remapper project provides a fast, optimized tool for accurately remapping .JAR files using the Tiny mapping format.

other tools

  • Fernflower, a modified version of JetBrains’ upstream with line number mapping information exposed.
  • Matcher, sfPlayer1’s tool for tracking elements in obfuscated Java archives across releases used for updating Yarn mappings.
  • Stitch is an assortment of small tools providing various functionality used by the Fabric project in command-line form, such as generating and updating “intermediaries” for cross-version name stability, based on Matcher output or merging client and server Minecraft .JARs.
  • Weave is an earlier iteration of Stitch and is now generally only used to export Enigma-format mappings to Tiny-format files.

libraries

  • Mixin, a trait/mixin framework for Java bytecode created by Mumfrey for Sponge - forked by Fabric to adapt to our use cases.
  • tiny-mappings-parser, a library for processing Tiny-format mapping files.

components

  • intermediary, providing stable cross-version names and match information between Minecraft releases,
  • yarn, providing deobfuscated/friendly names for the most recent versions of the game based on community contributions,
  • fabric-loom is our Gradle-based build system, used for developing Fabric mods.
  • fabric-loader is our version-independent mod loader, providing mod loading and code patching functionality.
  • fabric-api is our “hook layer”, providing the most common hooks and interoperability required for Fabric mods,
  • Fabric language modules for supporting other languages: Kotlin, Scala.
  • fabric-installer, a tool for creating Fabric-ready profiles for the official Minecraft launcher.