Skip to main content
Version: Minecraft 26.2

Run Fabric and Forge mods together

Poly Mod Loader runs Fabric mods and Forge mods in the same Minecraft instance, on Minecraft 26.1, 26.1.1, 26.1.2, 26.2. You install one loader, put both kinds of jars in one mods/ folder, and play.

This page explains how it works, what has been checked, what does not work yet, and how to set it up.

Short answer​

QuestionAnswer
Can Fabric and Forge mods run in one game?Yes, on Minecraft 26.1, 26.1.1, 26.1.2, 26.2
Do I need Fabric Loader or the Forge installer?No. Poly Mod Loader provides the Fabric Loader API itself. The first start with a Forge mod downloads Forge's files
Will every mod work?Not guaranteed. The tests check that mods load, start, open or create a world, tick, and save. Each mod's features were not checked one by one, and some Fabric hooks do not run next to Forge (below)
Older Minecraft versions such as 1.20.1 or 1.21.1?Not supported. See Supported versions and loaders

How it works​

  • One loader owns the game. Every loader wants to define Minecraft's classes itself, and only one can. With Poly Mod Loader, its game class loader defines them, and mods from the other loaders run on top of it.
  • Fabric mods run the way Fabric Loader runs them, without Fabric Loader. Poly Mod Loader provides the Fabric Loader API (FabricLoader.getInstance()), applies Mixin and MixinExtras in Fabric Loader's order, reads class tweakers, and unpacks nested jars.
  • Forge mods run on Forge itself. Poly Mod Loader runs Forge and FML and hands them the Forge mods it found. Forge's patches are applied to the game on your PC; Poly Mod Loader does not ship Forge. Which Forge version runs on which Minecraft version is in Supported versions and loaders.
  • Where the two meet: before Mixin starts, Poly Mod Loader checks each Fabric mixin against the classes Forge patched. An injection point that Forge moved follows it. An injection point that Forge removed does not run and is reported (POLY-COMPAT-138); the rest of the mod still runs.
  • The mod lists see each other. Forge's ModList.isLoaded sees Fabric mods and Poly Mods, and Fabric's isModLoaded sees Forge mods. getModContainerById returns Forge mods only.
  • Decided before startup, not by a crash. Before game code runs, every mod is either loaded or left out with a reason. A Forge mod that Forge would refuse is left out on its own (POLY-COMPAT-209), where FML would stop loading every mod.

What has been checked​

These checks use the compatibility mod set: the most downloaded Fabric and Forge mods on Modrinth for each Minecraft version, plus the mods they require.

Fabric and Forge mods in one game, on the game test server: world created, GameTest passed, world savedResult
26.2 (Forge 65.1.5)33 of 39 Forge mods, next to 90 Fabric mods
26.1 (Forge 62.0.9)21 of 37 Forge mods
26.1.2 (Forge 64.1.5)30 of 35 Forge mods

The Forge mods left out are ones that real Forge also leaves out or cannot run: client-only mods on a server, mods built for another Forge or Minecraft version, and Mixin configurations that stop Forge's own Mixin.

With the real Fabric API next to Forge, these work: Fabric's block break events (before, after, and canceled, in survival and creative), skipping data whose Fabric resource conditions do not match, and crafting remainders. On the client on 26.2, Physics Mod (Forge) and Sodium (Fabric) together draw block debris and ragdolls as Physics Mod does alone.

Each loader on its own (client, dedicated server, game test server) is covered in Supported versions and loaders.

What does not work yet​

  • Some Fabric injections do not run next to Forge. In the 26.2 mixed set, 25 injection points do not run (2026-10-23), each reported with POLY-COMPAT-138. Among them:
    • Fabric API's fluid swimming, drowning, and boat hooks (5 points in fabric-content-registries-v0)
    • the bed direction and occupancy in sleep events
    • the ItemStack.useOn wrap and the enchanting table's canBeEnchantedWith
    • the Language.loadDefault redirect and 2 data generation points
    • 3 Lithium points, 4 Architectury spawner points, and 1 Balm crop point
  • Fabric API's FabricDefaultAttributeRegistry.MODIFY does not work with Forge, because Forge changed the type of the field it uses. Calling it gives POLY-COMPAT-214 instead of a crash.
  • One jar with both a Fabric and a Forge build of the same mod runs as its Forge build only (POLY-COMPAT-139).
  • Forge's loading warnings. If any mod gives Forge a loading warning, Forge turns off its main event bus before showing the warning screen and does not turn it back on, so game events stop reaching every mod. Real Forge does the same, but one mod with a warning can make other mods silently stop working.
  • Scope. Running Fabric and Forge mods in one game is outside Forge's full-support criteria; the results above are what has been checked. The launcher runs reproduce how the Minecraft Launcher starts the game; there is no record of a run with the real launcher yet.
  • NeoForge and Quilt. NeoForge mods are Blocked by default and cannot run next to Fabric mods yet (POLY-COMPAT-216). Quilt mods are Experimental, on 26.2 only, and have not been checked next to Forge mods. See Supported versions and loaders.

Set it up​

  1. In the Minecraft Launcher, run vanilla Minecraft once in the version you want, then close the launcher.
  2. Get the installer from the download page and install the Poly Mod Loader <Minecraft version> profile. Step by step: Install.
  3. Put your Fabric mods and Forge mods for that Minecraft version in the launcher folder's mods/.
    • Fabric mods that need Fabric API need the regular Fabric API jar, the one the tests above use.
    • Forge mods must fit the Forge version Poly Mod Loader runs for your Minecraft version. A mod built for another Forge version is left out (POLY-COMPAT-209).
  4. Choose the Poly Mod Loader profile and play. The first start with Forge mods downloads Forge's files, so it needs an internet connection. A profile made by an older installer has to be installed again for Forge mods (POLY-COMPAT-206).
  5. The title screen shows how many mods each loader loaded, in the bottom-left corner. With Forge, Poly Mod Loader's lines go above Forge's own lines.

If a mod is missing, look for a POLY-COMPAT- code in logs/latest.log and look it up in Error codes. The full list of left-out mods and reasons is in .poly/startup-report.json (blockedFiles and foreignMods).

Dedicated server: the same installer sets up a server (see Install). Put the same mods in the server's mods/. Client-only mods are left out on a server (Fabric POLY-COMPAT-108, Forge POLY-COMPAT-209).

What it costs​

Measured on one PC, Minecraft 26.2, on the game test server, against vanilla with no mods. Neither set was compared with Forge's or Fabric Loader's own launcher, and Fabric and Forge mods together were not measured.

Mods (session)Start to stop, medianMemory after GC, largestServer tick p50
Forge 65.1.5 + 32 Forge mods (2026-10-23)6.281 s → 22.864 s139.2 → 267.3 MiB8.13 → 12.49 ms
97 Fabric mods (2026-10-22)6.025 s → 15.005 s141.6 → 182.9 MiB7.91 → 4.04 ms

Each pair is vanilla → Poly Mod Loader with that set, measured in the same session.

  • The Forge tick time is recorded as a measured cost, but that PC split runs into two groups (about 8 ms and about 12.3 ms) in the same session, so machine state is not ruled out.
  • The Fabric set's shorter ticks are not a Poly Mod Loader improvement: the set includes Lithium, a server optimization mod, and its mixins applied.

Method and the other measurements: Performance.

Next​

Buy me a coffee