POLY-COMPAT-001 | Mod from a loader with no bridge (blocked) |
POLY-COMPAT-002 | The bridge failed while reading metadata (only that jar is blocked) |
POLY-COMPAT-003 | The bridge failed to prepare the launch (prepareLaunch, for example building the Fabric Loader API) (stops startup before the entry points) |
POLY-COMPAT-100 | Fabric: metadata (including format errors and unreadable version conditions, and a mixins list that cannot be read) |
POLY-COMPAT-101 | Retired (2026-10-22). Mixin no longer blocks a mod by itself. Mixin configurations are judged with 131, 132, and 136 |
POLY-COMPAT-102 | Retired (2026-10-21). A class tweaker no longer blocks a mod by itself. Its access lines are applied as access widenings (125 to 130) |
POLY-COMPAT-103 | Retired (2026-10-21). A nested jar is no longer blocked by itself. It is unpacked and judged (120 to 124) |
POLY-COMPAT-104 | Retired (2026-10-21). A dependency on another mod is no longer blocked by itself. It is judged with 114 |
POLY-COMPAT-105, 106 | Retired (2026-10-22). preLaunch and :: entrypoint values run as in Fabric Loader |
POLY-COMPAT-107, 108 | Fabric: other entrypoints (warning, other mods can receive them with FabricLoader.getEntrypoints), runtime environment |
POLY-COMPAT-110 | A Fabric entrypoint threw an exception (stops startup) |
POLY-COMPAT-111 | Link check: uses a loader runtime class or method that Poly Mod Loader does not provide (for example, Fabric Loader internal classes such as FabricLauncherBase) |
POLY-COMPAT-112 | Link check: references a Minecraft class, method, or field that does not exist in this game version |
POLY-COMPAT-113 | Link check (warning): a class of a mod that is not installed, a client class or a class of a client-only mod referenced on a dedicated server, a JDK incubator class, or a game member whose types no installed jar has |
POLY-COMPAT-114 | A required dependency is missing, blocked, or has the wrong version (including minecraft and java). For a blocked dependency, the reason is included. Quilt mods' depends follow Quilt Loader's rules: a bare version such as 1.0.0 means ^1.0.0, optional dependencies are checked only when that mod is installed, and a list of IDs means any of them |
POLY-COMPAT-115 | A mod declared in breaks is installed |
POLY-COMPAT-116 | A mod declared in conflicts is installed (warning) |
POLY-COMPAT-117 | Same ID (including aliases) as another installed mod |
POLY-COMPAT-118 | Link check: a class file this Java cannot read, or a JDK class that does not exist |
POLY-COMPAT-119 | Link check: the declared entrypoint class is in no jar |
POLY-COMPAT-120 | (Warning) A mod that came from a nested jar: the jar that held it, and the path |
POLY-COMPAT-121 | The outer jar that holds a nested mod is not loaded |
POLY-COMPAT-122 | Another copy of the same mod is used (Poly Mod > directly installed mod > nested copy with the highest version) |
POLY-COMPAT-123 | A nested jar listed in jars is missing or unreadable, or nesting is deeper than 8 levels (blocks the outer mod) |
POLY-COMPAT-124 | (Warning) Loaded, but some nested mods inside it are not loaded, so it works only in part. Nested mods left out only because they are for the other side (108, 305, such as Fabric API's client modules on a server) do not count: Fabric Loader and Quilt Loader leave them out there too |
POLY-COMPAT-125 | Fabric class tweaker: the file named by accessWidener is missing or unreadable, or has lines Fabric Loader would refuse. Each bad line is listed as file:line message |
POLY-COMPAT-126 | Fabric class tweaker: the namespace is not official (for example intermediary, which would need mappings that this game version does not have) |
POLY-COMPAT-127 | Retired (2026-10-22). Class tweaker inject-interface and extend-enum lines are applied as in Fabric Loader |
POLY-COMPAT-128 | Link check: a class tweaker target that is a class outside the game jar. Blocks the mod and, in turn, its dependents (with file:line) |
POLY-COMPAT-129 | (Informational) What a class tweaker widens |
POLY-COMPAT-130 | Link check (warning): on a dedicated server, class tweaker lines for client classes are left out |
POLY-COMPAT-131 | (Informational) The mod's Mixin configurations and which of them apply on this side |
POLY-COMPAT-132 | A Mixin configuration marked required needs a newer Mixin. Mixin would stop the game, so the mod is left out |
POLY-COMPAT-133 | A loader bridge's transformer (Fabric: environment stripping, interface injection, Mixin) failed on a class. The class does not load; the error names the class and, for Mixin, the mixin and its mod |
POLY-COMPAT-134 | Mixin could not start: a configuration cannot be used, two mods use the same configuration (Fabric Loader refuses this too), or Mixin failed to enter a phase. Stops startup |
POLY-COMPAT-135 | Link check: a class tweaker inject-interface line names an interface that no installed jar has. Blocks the mod |
POLY-COMPAT-136 | (Warning) A Mixin configuration that is missing, is not a JSON object, or is not required and needs a newer Mixin. Mixin logs an error and skips it, as under Fabric Loader |
POLY-COMPAT-137 | Link check (warning): a class tweaker line (access widening or interface injection) whose class or exact member this game version does not have. It is left out, as Fabric Loader applies such a line to nothing |
POLY-COMPAT-138 | (limited) With MinecraftForge in the same game, a Fabric mod's mixin meets a class Forge patched: an injection point the patch removed (the injection moves to where Forge put the same point, or does not run), a member the mixin uses that the patch removed (that mixin is left out), an accessor of a field whose type the patch changed (calling it throws 214), or a local an injection captures by name that the patch removed (that injection does not run). The rest of the mod runs |
POLY-COMPAT-139 | A Fabric mod that MinecraftForge also loads as a Forge mod with the same mod ID (the same mod built for both loaders) is not loaded; the Forge build runs. Mods that need the Fabric build are left out by the dependency check |
POLY-COMPAT-140 | A Fabric or Quilt mod's mixin has an injection point whose target Mixin itself refuses (for example "Lpkg/Type;name:()V", a colon before the descriptor). In a required Mixin configuration the target class would not load, so the mod is left out before the game starts (blocking); in an optional one Mixin skips that mixin (warning). Fabric Loader and Quilt Loader use the same Mixin |
POLY-COMPAT-200–204 | NeoForge (neoforge.mods.toml) and Forge (mods.toml), each reported by its own bridge: metadata, FML language provider, Mixin, Access Transformer, dependencies (warning) |
POLY-COMPAT-205 | NeoForge and Forge library jar (FMLModType manifest, blocked) |
POLY-COMPAT-206 | MinecraftForge's files (installer, libraries, patched game jar) could not be prepared, or Poly Mod Loader's class path lacks Forge's file systems; the Forge mods are not loaded |
POLY-COMPAT-207 | Retired in 0.1.0-alpha.14: Forge mods and Fabric mods now run together. Not reused |
POLY-COMPAT-208 | FML failed while starting (launch stops; the log has FML's own error) |
POLY-COMPAT-209 | A Forge mod FML would refuse is left out before FML starts, so the others still run: its language loader or forge/minecraft version range does not match, a required mod is missing or left out, an installed dependency's version is outside its range, or it is a client-only mod on a server (@OnlyIn(Dist.CLIENT) @Mod class, or minecraft needed on the client side only). Mods that need it are left out too |
POLY-COMPAT-210 | With MinecraftForge on the client, Poly Mod Loader cannot reach Forge's BrandingControl.forEachLine, which it calls to draw Forge's title screen branding with the mod counts per loader above it. The title screen fails to draw; the message names the method. Forge's patched title screen calls the same method, so this means a damaged Forge installation |
POLY-COMPAT-211 | Forge's ModList.getModFileById or ModList.isLoaded is not the code Poly Mod Loader checked, so it is left unchanged: Forge mods do not see the Fabric mods and Poly Mods in the same game through it. The launch goes on (ADR-0025) |
POLY-COMPAT-212 | (information) With MinecraftForge in the same game, a Fabric mod's mixin is adjusted to a class Forge patched and works as written: an accessor or invoker, or a method the mixin adds, that Forge's patch added with the same code is left to Forge's method; or a local an injection captures by name, which Forge's patch renamed, is captured under its new name |
POLY-COMPAT-213 | (limited) With MinecraftForge in the same game, a Fabric mod's mixin adds a method that Forge's patch also added with other code. The mixin's method gets its own name and the mod's own mixins call it; other code calling that name gets Forge's method. For an accessor the mod's configuration lets Mixin replace Forge's method, so Forge's code calling it gets the accessor |
POLY-COMPAT-214 | A Fabric mod called an accessor that cannot work with MinecraftForge in the same game, because Forge's patch changed the type of the field it reads or writes. The message names the mod, the accessor, the field and both types; that feature of the mod does not work with Forge (Fabric API's FabricDefaultAttributeRegistry.MODIFY) |
POLY-COMPAT-215 | (NeoForge) NeoForge's FMLLoader is not the code Poly Mod Loader checked, so Poly Mod Loader cannot make its game class loader define NeoForge's game layer; the launch stops instead of letting FML's own class loader own the game. The message names what was not found. It means a NeoForge release Poly Mod Loader has not checked. |
POLY-COMPAT-216 | (NeoForge) NeoForge cannot run in this launch, so its mods are left out and the rest of the game starts: Poly Mod Loader has no NeoForge release for this Minecraft version, NeoForge's files cannot be downloaded or checked, Fabric or Quilt mods are in the same game (NeoForge mods do not run together with them), or Poly Mod Loader was started without its Java agent, which NeoForge needs (the installed launcher profile and server start it). The message names the reason. |
POLY-COMPAT-217 | (NeoForge) A NeoForge mod that NeoForge's FML would refuse is left out before FML starts, so the other mods still run (FML would stop the whole launch). The reasons are those FML 11 checks in neoforge.mods.toml: the javafml loader version, a required mod that is missing or left out, a neoforge, minecraft or other mod version outside the declared range, or an incompatible mod that is installed. Mods that need the left-out mod are left out too. |
POLY-COMPAT-218 | (NeoForge) NeoForge's ModList.getModFileById or ModList.isLoaded is not the code Poly Mod Loader checked, so it is left unchanged: NeoForge mods do not see the Poly Mods in the same game through it. The launch goes on (ADR-0025, ADR-0026) |
POLY-COMPAT-219 | Retired (2026-10-24, before any release used it). Poly Mod Loader no longer calls NeoForge's BrandingControl itself: it adds the mod counts per loader to the list NeoForge's branding is drawn from, so there is nothing to reach. If NeoForge builds its branding differently, the mod counts are left out and the rule is reported as off |
POLY-COMPAT-300 | Quilt: quilt.mod.json is metadata Quilt Loader would refuse (not a JSON object, a schema_version other than 1, a missing or invalid id, group or version, a malformed entrypoints, jars, depends, breaks, provides, mixin or access_widener, an unreadable version range, an unknown intermediate_mappings or required_features). Blocks the mod; nothing else is reported for it |
POLY-COMPAT-301 | Quilt: the mod declares a loader plugin (experimental_quilt_loader_plugin). Poly Mod Loader does not provide Quilt Loader's plugin API. Blocks the mod |
POLY-COMPAT-302 | Quilt: the mod uses a language adapter (language_adapters, or an entrypoint whose adapter is not default). No Quilt language adapter exists for Minecraft 26.x. Blocks the mod |
POLY-COMPAT-303 | Quilt (warning): QSL entrypoints (init, client_init, server_init) are not run. Quilt Loader does not run them either without QSL, which has no release for Minecraft 26.x |
POLY-COMPAT-304 | Quilt (warning): another entrypoint key (for example modmenu) that Poly Mod Loader does not run; other mods can receive it with QuiltLoader.getEntrypoints or FabricLoader.getEntrypoints (like Fabric 107) |
POLY-COMPAT-305 | Quilt: minecraft.environment is for the other side (a client mod on a dedicated server, a dedicated_server mod on the client). Not loaded (like Fabric 108) |
POLY-COMPAT-306 | Quilt: required_features asks for the modifiable file system overlay (modifiable_filesystem_overlay), which Poly Mod Loader does not provide. Blocks the mod |
POLY-COMPAT-307 | Quilt (not an error): a nested Quilt mod that loads only when required (load_type if_required, the default) and that no loaded mod requires. Not loaded, as under Quilt Loader; not counted in the outer mod's 124 |
POLY-COMPAT-308 | Quilt: the mod depends on a QSL or Quilted Fabric API module (for example quilt_base, quilt_resource_loader, quilted_fabric_api). Neither has a release for Minecraft 26.x, so the dependency cannot be met under Quilt Loader either. The mod is left out with 114; this code gives the reason |
POLY-COMPAT-309 | Quilt (information): values Quilt Loader reads that have no effect in this launch: repositories, intermediate_mappings (26.x is not remapped), unknown quilt_loader keys, a top-level environment |
POLY-COMPAT-310 | (Warning) The jar has both fabric.mod.json and quilt.mod.json. Poly Mod Loader runs it as a Fabric mod, so jars that already run as Fabric mods keep doing so; Quilt Loader would read quilt.mod.json instead |