Menu

Guidefor modders3 min read

Reading Fabric, NeoForge and Quilt version numbers

Every loader numbers itself differently, and NeoForge encodes the Minecraft version in its own. How to read each one, and which numbers must match what.

Three loaders, three philosophies

The numbering is not arbitrary. Each scheme reflects a design decision about how tightly the loader is bound to the game.

Fabric

Fabric splits into two pieces that are numbered independently, and understanding the split is most of what you need.

Fabric Loader, something like 0.17.4. Plain semantic versioning, and deliberately not tied to a Minecraft version. One loader build works across many Minecraft versions, which is a large part of why Fabric supports a new release within days: the loader usually does not need to change at all.

Fabric API, something like 0.130.0+26.2. The part after the + is the Minecraft version it targets. This one is absolutely version specific, because it is the layer that actually touches the game.

So the loader is version independent and the API is not, and mixing them up is the most common failure in a fresh Fabric install: the loader starts fine, no mods load, and nothing obviously says why. If a Fabric setup loads nothing, install Fabric API.

NeoForge

NeoForge encodes the Minecraft version inside its own version number, which looks strange until you see the rule:

26.2.0.35
│  │ │ └── build number
│  │ └──── patch of the Minecraft version (0 for 26.2 itself)
│  └────── Minecraft minor
└───────── Minecraft major

So 26.2.0.35 is the 36th NeoForge build for Minecraft 26.2. 26.2.1.4 would be for 26.2.1.

It carried the same idea across the numbering change. Under the old scheme it dropped the leading 1, so 21.11.44 meant Minecraft 1.21.11. Under the calendar scheme it uses the year directly, so 26.2.0.35 means Minecraft 26.2. Two different shapes for the same rule, which is worth knowing if you parse these strings: a three-part NeoForge version is 1.x, a four-part one starting with a year is calendar era.

Builds carry a -beta suffix while a Minecraft version is new. That is NeoForge telling you it is not finished with that version yet, and it is worth believing.

Because the Minecraft version is inside the number, there is nothing to match up. Pick the NeoForge version whose first parts are your Minecraft version. Current builds are on the NeoForge page, from NeoForge's own API.

Quilt

Quilt follows Fabric's shape, because it began as a Fabric fork.

Quilt Loader, like 0.29.1, version independent in the same way Fabric's is.

Quilt Standard Libraries (QSL), the equivalent of Fabric API, tied to a Minecraft version.

Quilt also runs most Fabric mods and can load Fabric API, so a Quilt setup often has both sets of libraries present. That is normal rather than a mistake.

Forge

Forge, the predecessor to NeoForge, uses MINECRAFT-FORGE, such as 1.20.1-47.2.0. The Minecraft version is stated outright rather than folded in, which is easier to read and is why NeoForge's scheme surprises people who came from it.

Forge is still used by older modpacks pinned to older Minecraft versions. New work is on NeoForge.

What has to match what

ThingMust match your Minecraft version?
Fabric LoaderNo
Fabric APIYes
Quilt LoaderNo
QSLYes
NeoForgeYes, and it is in the number
ForgeYes, and it is in the number
Any individual modYes, and the loader too

The last row is the one that catches people. Whatever the loader's rules, every mod is built for one Minecraft version and one loader, and no loader flexibility changes that. See why mods are loader specific.

Picking a version to build against

If you write mods:

  • Target the loader version, not the newest. Requiring a loader release from last week excludes everyone who has not updated, for no benefit.
  • Be exact about the Minecraft version in your metadata. Writing 1.21 when you mean every 1.21.x version, or the reverse, is what makes catalogues and users disagree about what you support. Ours reads the release metadata rather than the description, so that field is what people see.
  • Declare your API dependency with a range where you can, so a patch release of the API does not break your mod for everyone.

Frequently asked

Why does NeoForge use 26.2.0.35 instead of a normal version?

The first two parts are the Minecraft version it targets. NeoForge derives its own number from the game's, so 26.2.0.35 is the 36th build for Minecraft 26.2. It carried the same idea through the calendar switch: 21.11.44 meant Minecraft 1.21.11.

Does the Fabric loader version have to match my Minecraft version?

No, and this is what makes Fabric quick to update. The loader is version independent, so one loader build works across many Minecraft versions. What is version specific is Fabric API, which is a separate mod.

What is the difference between Fabric loader and Fabric API?

The loader starts the game and loads mods. Fabric API supplies the hooks mods actually call. The loader is not version specific; the API very much is, and forgetting it is the most common Fabric install failure.

Can I mix a NeoForge build with a different Minecraft version?

No. The Minecraft version is baked into the NeoForge version number precisely because they are not separable.

Referenced on this site

Last reviewed 2026-07-27. Version data on this site updates automatically; this guide is reviewed by hand when the ecosystem changes.