Set up a Fabric, Quilt or Legacy Fabric mod
Checked against Linen’s templates on 2 November 2026. Every value on this page is copied from the template files
themselves: gradle.properties, build.gradle, settings.gradle and the Gradle wrapper.
Fabric
Section titled “Fabric”What New mod writes for each Minecraft version:
| Minecraft | Java | Gradle | Gradle runs on | Gradle plugin | Names in code |
|---|---|---|---|---|---|
| 1.14.4 – 1.16.5 | 8 | 9.7.1 | Java 25 | net.fabricmc.fabric-loom-remap 1.18-SNAPSHOT |
Mojang names (default) or Yarn |
| 1.17 – 1.17.1 | 16 | 9.7.1 | Java 25 | net.fabricmc.fabric-loom-remap 1.18-SNAPSHOT |
Mojang names (default) or Yarn |
| 1.18 – 1.20.4 | 17 | 9.7.1 | Java 25 | net.fabricmc.fabric-loom-remap 1.18-SNAPSHOT |
Mojang names (default) or Yarn |
| 1.20.5 – 1.21.11 | 21 | 9.7.1 | Java 25 | net.fabricmc.fabric-loom-remap 1.18-SNAPSHOT |
Mojang names (default) or Yarn |
| 26.1 and newer | 25 | 9.7.1 | Java 25 | net.fabricmc.fabric-loom 1.18-SNAPSHOT |
Mojang’s names, built into the game |
- Fabric Loader 0.18.0 or newer, and the Fabric API build for your Minecraft version.
- “Java” is what your mod compiles for (
options.releaseand the Java toolchain). “Gradle runs on” is the Java that runs Gradle itself. - Mojang names come from
mappings loom.officialMojangMappings(); Yarn frommappings "net.fabricmc:yarn:${project.yarn_mappings}:v2". On 26.1 and newer there is nomappingsline, and the dependencies useimplementationinstead ofmodImplementation. - Every project gets a mixin config (
<modid>.mixins.json) and a class tweaker (<modid>.classtweaker), named in bothbuild.gradle(loom { accessWidenerPath = ... }) andfabric.mod.json("accessWidener"). Its first line isclassTweaker v1 namedbefore 26.1 andclassTweaker v1 officialfrom 26.1.
Pinned versions
Section titled “Pinned versions”Linen also keeps one template per version with every number fixed. These are the exact versions:
| Minecraft | Fabric Loader | Fabric API | Gradle plugin | Java | Gradle | Names in code |
|---|---|---|---|---|---|---|
| 1.20.1 | 0.19.5 | 0.92.12+1.20.1 | net.fabricmc.fabric-loom-remap 1.18.2 |
17 | 9.7.1 | Mojang names + Parchment 2023.09.03 |
| 1.21.1 | 0.19.5 | 0.116.17+1.21.1 | net.fabricmc.fabric-loom-remap 1.18.2 |
21 | 9.7.1 | Mojang names + Parchment 2024.11.17 |
| 1.21.11 | 0.19.5 | 0.141.6+1.21.11 | net.fabricmc.fabric-loom-remap 1.18.2 |
21 | 9.7.1 | Mojang names + Parchment 2025.12.20 |
| 26.1.2 | 0.19.5 | 0.155.3+26.1.2 | net.fabricmc.fabric-loom 1.18.2 |
25 | 9.7.1 | Mojang’s names, built in |
| 26.2 | 0.19.5 | 0.161.0+26.2 | net.fabricmc.fabric-loom 1.18.2 |
25 | 9.7.1 | Mojang’s names, built in |
| 26.3 | 0.19.5 | 0.162.0+26.3 | net.fabricmc.fabric-loom 1.18.2 |
25 | 9.7.1 | Mojang’s names, built in |
Parchment is layered on Mojang’s names in build.gradle:
mappings loom.layered() { officialMojangMappings() parchment("org.parchmentmc.data:parchment-${project.parchment_minecraft_version}:${project.parchment_mappings_version}@zip")}Commands
Section titled “Commands”| Task | Command |
|---|---|
Build the mod jar (in build/libs/) |
./gradlew build |
| Start the game with your mod | ./gradlew runClient |
| Start a test server | ./gradlew runServer |
| Run data generation (pinned templates only) | ./gradlew runDatagen |
The pinned templates set up data generation with fabricApi { configureDataGeneration { ... } } and write its output to
src/generated/resources. On Windows, use gradlew.bat or .\gradlew.
Fabric’s own guide: Creating a Project. Current versions: fabricmc.net/develop.
New mod offers Quilt for the versions that have an official Quilt template:
| Minecraft | Java | Gradle | Gradle runs on | Gradle plugin org.quiltmc.loom |
Names in code |
|---|---|---|---|---|---|
| 1.18.2 | 17 | 7.4.2 | Java 17 | 0.12.+ |
Quilt Mappings (default) or Mojang names |
| 1.19.2 | 17 | 7.6 | Java 17 | 1.0.+ |
Quilt Mappings (default) or Mojang names |
| 1.19.4 | 17 | 8.1.1 | Java 17 | 1.2.+ |
Quilt Mappings (default) or Mojang names |
| 1.20.1 | 17 | 8.4 | Java 17 | 1.4.1 |
Quilt Mappings (default) or Mojang names |
| 1.20.2 | 17 | 8.4 | Java 17 | 1.4.1 |
Quilt Mappings (default) or Mojang names |
| 1.20.4 | 17 | 8.8 | Java 17 | 1.6.5 |
Quilt Mappings (default) or Mojang names |
| 1.20.6 | 21 | 8.9 | Java 21 | 1.7.4 |
Quilt Mappings (default) or Mojang names |
Quilt Loader 0.17.0 or newer (0.26.3 or newer on 1.20.6), with Quilted Fabric API. The access widener is
<modid>.accesswidener, first line accessWidener v2 named. Commands: ./gradlew build, ./gradlew runClient,
./gradlew runServer.
Legacy Fabric
Section titled “Legacy Fabric”| Minecraft | Java | Gradle | Gradle runs on | Gradle plugins | Names in code |
|---|---|---|---|---|---|
| 1.12.2, 1.13.2 | 8 | 9.4.0 | Java 21 | net.fabricmc.fabric-loom-remap and legacy-looming, both 1.16-SNAPSHOT |
Legacy Yarn |
Legacy Fabric Loader 0.16.0 or newer. On 1.12.2 the template adds Legacy Fabric API 1.13.5+1.12.2; 1.13.2 has no
Legacy Fabric API, so its example registers straight into the game’s registries. The access widener’s first line is
accessWidener v2 named. Commands: ./gradlew build, ./gradlew runClient, ./gradlew runServer. More:
legacyfabric.net.
In Linen
Section titled “In Linen”- New mod writes these projects. Pick a loader and a version; Ctrl or Shift and a click adds more, so one mod can target several versions or loaders at once.
- Linen installs the Java version the project needs.
- Play the game runs the dev client with the Game Log; if it crashes, Crash Doctor says why.
- Linen Check reads registrations, models, loot tables, names, mixins and the build, and names the file and the fix.
- Hovers show names in Mojang, Yarn, intermediary and Parchment, where the version has them.