Skip to main content
Version: v1.4.0

Changelog

1.4.0 — 2026-10-30​

  • Every loader now shares one early loading window on the client that looks like the game's loading screen before its first frame. It is not yet supported on macOS and can be turned off with -Dpoly.earlyWindow=off.
  • Fabric mods next to NeoForge 26.2: more Fabric API modules load (resource conditions, crash report info, and block and item modules built on NeoForge's hooks), so more Fabric mods run; 47 loaded (was 40) in the popular Fabric mods set.
  • Fixed NeoForge stopping at start when Forgified Fabric API was installed, preventing conflicts from its nested loader plugin.
  • With Forge: Fabric API fluid and item hooks are only claimed where they really run, and a few mods (like fabric-biome-api-v1 next to Forge) are now left out instead of failing later.

1.3.0 — 2026-10-28​

  • The loading screens are Poly Mod Loader's with every loader and keep Minecraft's look: Forge's and NeoForge's early window shows Poly Mod Loader's spinning gold cube in place of the anvil and the fox, and the game's loading screen keeps the Mojang logo and progress bar with Poly Mod Loader's cube, name and each loader's mod count.
  • The game window is titled Minecraft* Poly <Minecraft version> with every loader, from the first frame.
  • Minecraft 26.1 and 26.1.2: Fabric mods next to Forge mods no longer stop the game as it starts (with Fabric API); 76 and 83 mods of the other loaders load in the popular-mod sets.

1.2.5 — 2026-10-28​

  • Minecraft 26.3: Fabric and Quilt mods run next to NeoForge and Forge mods again. In 1.2.4 these games stopped at startup or while loading.
  • Minecraft 26.3 with Forge: Fabric API's registry sync and the mods that need it load; Fabric mods that add blocks no longer stop the game, and data packs with Fabric API load without a crash.
  • With Forge, Puzzles Lib's Fabric build (and the mods that need it) loads again on 26.2.
  • Mods that Poly Mod Loader cannot run next to Forge or NeoForge are left out before the game starts, with the reason, instead of crashing it.

1.2.4 — 2026-10-27​

  • Fixes three bugs from 1.2.2: NeoForge mods such as JEI, Kotlin for Forge, Lithium and MoreCulling load again; a Fabric dedicated server with Fabric API starts again; and Fabric API's entity attributes work next to Forge and NeoForge.
  • Fabric and NeoForge mods together: JEI's MezzConfig no longer stops the server.
  • Minecraft 26.3: Fabric mods that use the renamed rendering classes (AppleSkin, Cloth Config, GeckoLib, YACL, ...) are no longer left out on servers.
  • The installer is now one .jar for every system (Java 17 or newer); the Windows .exe is gone.

1.2.3 — 2026-10-26​

  • Loading screen text rendering glitch fix: resolved font rendering and character set corruption on the custom Poly loading overlay across Minecraft 26.1, 26.2, and 26.3 using standard Component literal formatting with ChatFormatting color codes.
  • Direct GitHub Issues routing: error screens, crash handlers, and report documentation links now navigate directly to official GitHub Issues for immediate tracking and transparent issue resolution.
  • NeoForge Fabric API compatibility adaptations: added NeoForgeInjectionPoints to route injection point replacements for client screens, container menus, and data attachment hooks under NeoForge.

1.2.2 — 2026-10-26​

  • Dedicated custom Poly loading screen (PolyLoadingOverlay): sleek dark #0E131F loading overlay replaces vanilla and third-party loader loading screens across Minecraft 26.1, 26.2, and 26.3.
  • Live mod count badge overlay: displays real-time active mod counts per loader (Fabric, Forge, NeoForge, Quilt, and Poly) on the loading screen.
  • Host loader mod count suppression: hides Forge/NeoForge early progress windows and cleans "(X mods loaded)" branding text from title screens.
  • Fabric API compatibility adaptations on Forge and NeoForge: adapted fabric-item-api-v1, fabric-registry-sync-v0, fabric-content-registries-v0, fabric-data-generation-api-v1, fabric-entity-events-v1, and fabric-object-builder-api-v1.
  • Modernized documentation and brand identity: unified branding to "Poly", reinforced security/verification transparency, and clarified in-game engine identity.

1.2.1 — 2026-10-25​

  • The installer window has a language menu in its top right corner: switch between English and 한국어 (Korean) at any time; what you have entered stays.

1.2.0 — 2026-10-25​

  • Minecraft 26.3 is supported. Poly Mods run on it without being rebuilt, default key bindings included: 26.3 reads the keyboard through SDL, and Poly Mod Loader converts its key codes for it (KeyCodes keep their values). A key 26.3 does not have starts unbound (POLY-CLIENT-008).
  • On 26.3, Forge mods run with Forge 26.3-66.1.0 and NeoForge mods with NeoForge 26.3.0.98. Fabric, Quilt, Forge and NeoForge mods are checked with the compatibility test mods on 26.3; popular-mod runs on 26.3 are not done yet.
  • A mod can carry data and assets for several Minecraft versions: Poly Mod Loader reads the overlays of a mod's pack.mcmeta, as the game does for its own packs. 26.3 changed some data formats (worldgen/feature, material_rule in noise settings) and compiles shaders with #include and a layout(location = N) on every input and output, so mods with such files need a 26.3 overlay. An unreadable pack.mcmeta is POLY-RESOURCE-010.
  • Poly Mod Loader is open source under the Mozilla Public License 2.0.

1.1.0 — 2026-10-25​

  • NeoForge mods now run in the same game as Fabric and Quilt mods, on Minecraft 26.1, 26.1.2 and 26.2, as Forge mods already do: one Mixin serves every loader, and Fabric mods start with NeoForge's registries open. On the client, about 60 Fabric and 50 NeoForge mods join a saved world, play, save and quit; the game test server, the dedicated server and a network join into the play phase pass too. Quilt mods next to NeoForge mods were checked on the game test server.
  • Only Forge mods and NeoForge mods in one game are still not possible: Forge runs and the NeoForge mods are left out with the reason (POLY-COMPAT-221).
  • Fabric injections that do not fit NeoForge's patch do not run and are reported (POLY-COMPAT-138). Most are in Fabric API, where NeoForge does the same work itself.
  • A mod built for Fabric and for NeoForge or Forge runs once, also when each build spells the mod ID its own way: the NeoForge or Forge build runs and the other is left out (POLY-COMPAT-139). Before, Cloth Config's two builds stopped the client. Mods that need the left-out build run with the other one when the two are mostly the same code (Better Shulker Boxes with NeoForge's Cloth Config, FusionFix with Forge's Fusion).
  • With NeoForge and Fabric API on the client, these no longer stop the game: Registry is already frozen after mod initialization, a ClassCastException while the game renderer starts, Failed to encode packet ... minecraft:register when joining a world, a disconnect with Unknown addon about two seconds after joining, and Conflicting default methods while rendering a world.
  • A NeoForge mod's Mixin configuration no longer drops whole when one of its targets loaded early; only the mixins into that class are skipped (POLY-COMPAT-220). With Iris and Fabric mods on 26.2, Lithium's mixins now apply and the integrated server no longer stops.
  • New codes: POLY-COMPAT-220, 221, 222 and 223. See Error codes.

1.0.0 — 2026-10-24​

  • The first stable release: Fabric, Forge, NeoForge and Quilt mods are all fully supported on Minecraft 26.1, 26.1.2 and 26.2, each checked with popular real mods on the client, the game test server, the dedicated server and installed profiles.
  • NeoForge mods now run by default with NeoForge's own loader, no option needed (NeoForge 26.1.0.19-beta on 26.1, 26.1.1.15-beta on 26.1.1, 26.1.2.122 on 26.1.2, 26.2.0.93 on 26.2). The files NeoForge needs are downloaded on the first start. On the client, popular NeoForge mods play a saved world, save it and quit (54 on 26.2, Sodium and Iris among them), and an installed server runs NeoForge mods from mods/.
  • Fabric, Forge and Quilt mods can be mixed in one game. NeoForge mods do not run in the same game as Fabric or Quilt mods yet: they are left out with the reason (POLY-COMPAT-216).
  • The title screen has a "NeoForge mods" line, also with mods such as FancyMenu that draw the title screen's branding themselves, and the log counts NeoForge mods on their own.
  • Sodium's NeoForge build now loads as under NeoForge, so Iris, Sodium Extra and Reese's Sodium Options find it on the client.
  • Fixed a NeoForge launch that could hang while mods were being set up.

0.2.0-beta.3 — 2026-10-24​

  • Quilt mods are fully supported on Minecraft 26.1, 26.1.2 and 26.2: checked with every Quilt-only build on Modrinth for each version on the client, the game test server and the dedicated server, also together with Forge mods, and compared with real Quilt Loader. The installed server and launcher profile run Quilt mods too. Mods that need Quilt Standard Libraries (QSL) are still left out with the reason, because QSL has no release for 26.x.
  • Fabric mods built for Quilt that require Quilt Loader, such as Better Shulker Boxes and F34, now load, as they do under Quilt Loader.
  • A Fabric or Quilt mod with a mixin that Mixin itself refuses is now left out before the game starts, with the reason (POLY-COMPAT-140). Before, a mod like Even Better Moon and Sun kept the client from joining a world.
  • A mod no longer gets the "works only in part" warning (POLY-COMPAT-124) only because nested mods for the other side are left out, such as Fabric API's client modules on a dedicated server. Fabric Loader and Quilt Loader leave them out there too.

0.2.0-beta.2 — 2026-10-24​

  • Quilt mods (experimental, Minecraft 26.2): Poly Mod Loader now reads quilt.mod.json with Quilt Loader's rules and runs Quilt mods with the Quilt Loader API, their Mixins and access wideners, next to Fabric mods and Poly Mods. Checked with Simple Voice Chat's Quilt build. Mods that need Quilt Standard Libraries (QSL) are left out with the reason, because QSL has no release for Minecraft 26.x.
  • NeoForge preview (still experimental and off by default): a NeoForge mod that NeoForge would refuse is now left out with the reason instead of stopping the launch, and more real mods run, such as mods that need Kotlin for Forge or YACL, and Lithium.
  • The title screen and the log count Quilt mods on their own line.

0.2.0-beta.1 — 2026-10-24​

  • Beta: MinecraftForge mods are fully supported on Minecraft 26.1, 26.1.2 and 26.2, checked with real popular Forge mods on the client, the game test server, the dedicated server and installed profiles.
  • NeoForge preview (experimental, off by default): with -Dpoly.neoforge=on, Poly Mod Loader runs NeoForge's own loader (NeoForge 26.2.0.93) and loads NeoForge mods with it. Without it, NeoForge mods are left out as before.

0.1.0-alpha.18 — 2026-10-23​

  • Forge, Fabric and Poly mods see each other: Forge mods find Fabric and Poly mods through FML's ModList, Fabric mods find Forge mods through FabricLoader, and Poly Mods find every loader's mods through the new ModContext.mods(). Physics Mod (Forge) with Sodium (Fabric) now draws block debris and ragdolls.
  • With Fabric API and Forge together, crafting works again (it failed on every crafting remainder), Fabric data behind resource conditions no longer stops the data pack from loading, and Fabric's block breaking events fire.
  • The title screen shows how many mods each loader loaded, in the bottom-left corner above the game version: "Poly mods: 2", "Fabric mods: 14", "Forge mods: 3", in the game's language (English and Korean so far). With Forge mods, the lines go above Forge's own branding lines.
  • With Forge, more of Fabric API works: its networking and recipe APIs' server connection access, tag files that remove entries with fabric:remove (next to Forge's own remove), and the data generation advancement builder. Fabric API's default attribute changes (FabricDefaultAttributeRegistry.MODIFY) still do not work with Forge, and now say why instead of crashing with a ClassCastException.
  • Forge and Fabric mods together now also run on Minecraft 26.1 in tests, and the 26.1 Forge client and a server installed for 26.1.2 run too.

0.1.0-alpha.17 — 2026-10-23​

  • Fixed a crash on the first frame when Sodium (Fabric) and a Forge mod such as Physics Mod are installed together.
  • When Forge changes a game method that a Fabric mod hooks into, Poly Mod Loader now adapts the hook if Forge only added parameters, instead of losing other mods' changes to the same class.
  • Forge mods now also run together on Minecraft 26.1 in a test (a world is created, tested and saved).

0.1.0-alpha.16 — 2026-10-23​

  • Forge mods now work in the Poly Mod Loader you install. Put Forge mods in mods/ and the launcher profile or a server from the installer runs them. In a test the client entered a world with Forge test mods next to a Fabric mod, and the installed server ran a Forge mod.
  • The first start with Forge mods downloads Forge's files (about 50 MB) from Forge's servers; without Forge mods nothing changes.
  • Profiles and servers installed with an older installer cannot run Forge mods: install again with this version.
  • Forge support is still experimental.

0.1.0-alpha.15 — 2026-10-23​

  • PolyLoader is now Poly Mod Loader. The installer is PolyModLoader-<version>.exe / .jar, the launcher profile is Poly Mod Loader <Minecraft version>, and the releases live at github.com/xyrz47-spec/Poly-Mod-Loader.
  • A profile from an older installer stays in the launcher next to the new one; remove it there if you no longer need it.
  • Mods made with the old dev.polyloader SDK need to be rebuilt with the new SDK.
  • Forge mods now run on the client and on Minecraft 26.1 in the test setup. The installed Poly Mod Loader does not run Forge mods yet; that is the next step.

0.1.0-alpha.14 — 2026-10-23​

  • Forge mods and Fabric mods now run together in one game. In a test on a Minecraft 26.2 server, 91 popular Fabric mods (Fabric API among them) ran next to the Forge mods: the world was created and saved.
  • Where a Fabric mod changes a part of the game that Forge changed too, Poly Mod Loader moves the change to Forge's version when it can, and otherwise logs which part of the mod does not run under Forge, instead of crashing.
  • When the same mod is installed for both Fabric and Forge, the Forge version runs.
  • Forge on the client is still in progress.

0.1.0-alpha.13 — 2026-10-23​

  • Real Forge mods now run on a Minecraft 26.2 server through Poly Mod Loader: in a test set of 38 popular Forge mods, 30 load and the world is created and saved. The other 8 are client-only mods or need a different Minecraft version; Poly Mod Loader leaves them out and logs the reason.
  • Fixed a Forge config save failure on Windows (AccessDeniedException) when a mod writes its config right after Forge creates it.
  • Forge on the client, and Forge mods next to Fabric mods, are still in progress.

0.1.0-alpha.12 — 2026-10-23​

  • Forge mods can now use access transformers and Mixin, as they do under Forge. Forge support is still in progress: Forge mods do not run next to Fabric mods yet.

0.1.0-alpha.11 — 2026-10-22​

  • Fabric mods are now fully supported on Minecraft 26.1 and 26.2. With popular Fabric mods together (138 on 26.2, Sodium, Iris and Lithium among them) you can play a world, save it and quit, and they start a dedicated server. The only mods left out in tests are ones Fabric Loader refuses too.
  • CustomSkinLoader and veinminer now work, and collective now loads on servers.

0.1.0-alpha.10 — 2026-10-22​

  • The installer window is tidier: names and fields line up, and the window keeps its size when you switch between client and server or open "Advanced".
  • Poly Mods can now wait until Fabric mods are initialised (LifecycleEvents.MODS_INITIALIZED). Lifecycle and threads

0.1.0-alpha.9 — 2026-10-22​

  • The installer sets up a dedicated server. Choose "Server" and a folder; it downloads Mojang's server and writes run.bat, run.sh and polymodloader-server.jar. You accept Minecraft's EULA yourself. Install

0.1.0-alpha.8 — 2026-10-22​

  • A Forge mod now runs through Poly Mod Loader in tests: Forge creates it, runs its setup event and registers its item, next to a Poly mod in the same game. An installed Poly Mod Loader does not load Forge mods yet.

0.1.0-alpha.7 — 2026-10-22​

  • The installer is simpler: the Minecraft version, the game's memory and Install. Everything else is under "Advanced".
  • MinecraftForge itself now starts through Poly Mod Loader in tests: Forge loads, creates a world and passes a game test. Forge mods do not load in an installed Poly Mod Loader yet.

0.1.0-alpha.6 — 2026-10-22​

  • Groundwork for Forge mods: Poly Mod Loader can now give mods the Java module setup Forge is built on. Forge mods do not run yet, and nothing changes for players.

0.1.0-alpha.5 — 2026-10-22​

  • The installer sets the game's memory: maximum (-Xmx) and starting (-Xms) memory, written to the launcher profile. It suggests a maximum that fits your PC. Install
  • When the install is done, a notification says whether it worked, and the installer closes by itself. Click the notification to open the mods folder.
  • The website is easier to read, with short lines and a gentle page transition.

0.1.0-alpha.4 — 2026-10-22​

  • Fabric mods that use Mixin now run, the way Fabric Loader runs them: Mixin and MixinExtras, interface injection from class tweakers, and Fabric's entrypoint timing. Compatibility
  • Of 52 popular Fabric mods for 26.2, 42 load on the client and 28 on a dedicated server (most of the rest are client-only). All 44 Fabric API modules load.
  • 137 Fabric mods together, Sodium, Iris and Lithium among them, load on the client and join a world. 99 get through a real dedicated server start.
  • Fabric mods that use getGameInstance or class tweaker enum extension (extend-enum) now load too. Poly Mod Loader now provides every part of Fabric Loader's public API.
  • NeoForge and Forge mods still do not run. Work on Forge has started.
  • The download page shows what changed in every build.

0.1.0-alpha.3 — 2026-10-22 (first public release)​

  • Minecraft 26.1, 26.1.1 and 26.1.2 are supported next to 26.2. The installer asks which version to install.
  • Mod development without the Poly Mod Loader source: the SDK is on this site's Maven repository. Download the mod template and run initPolyMod. Get the mod template
  • Native API: event priorities and decision results, interaction events (use block, item and entity, attack), cancellable block break and place, server, world, respawn and entity lifecycle events, tags, mod creative tabs, item tooltips. Events, Tags and creative tabs
  • Fabric mods with class tweakers (access wideners) load when they need nothing else that is missing. Compatibility
  • Website: English and Korean, a download page, a page for mod developers.
  • Fixed: a respawned player lost its entity data (EntityDataKey), and EntityEvents.DIED never fired for players.

0.1.0-alpha.2 — 2026-10-21 (not published; included in 0.1.0-alpha.3)​

Installer and the first Poly Mod tutorial (2026-10-21)​

  • The player installer (PolyModLoader-<version>.exe and .jar) adds a Poly Mod Loader profile to the Minecraft Launcher. Install guide
  • Mods built with the Native API are now called Poly Mods
  • Create your first Poly Mod is rewritten around Crystal Garden, a growing crystal mod
  • When you run from a launcher profile and the game jar is not found, the error is POLY-BOOTSTRAP-006
  • License: PolyLoader Non-Commercial License 1.0

Server tick, heap, and GC measurement (2026-10-21)​

  • :poly-bootstrap:tickBenchmark: runs vanilla and Poly Mod Loader alternately under the same load and compares server tick time p50/p95/p99, the share of ticks over 50ms, peak heap, and GC. The result is "no significant difference" (Performance)
  • Measurement agent tools/tick-probe

Transform engine: ordering contract, call-site changes, access widening, cache limit (2026-10-21)​

  • Rules that change the same method are applied together when after defines a single order (start hooks and return hooks run in declaration order) (design decision ADR-0013)
  • New action: call-site change, which replaces a specific call inside a method with a static hook
  • Access widening (same meaning as the Fabric access widener: accessible, extendable, mutable). See accessWidenings in the poly.mod.json schema
  • Size limit for the transform cache (default 256 MiB, -Dpoly.transformCacheMaxMegabytes)

Shader textures, mod uniforms, per-state block models (2026-10-21)​

  • Textures for mod shader pipelines (ShaderPipelineDefinition.Builder.texture, Sampler0 to 3) and texture coordinates (VertexSink.vertex(x, y, z, u, v, argb)). Drawing and camera
  • Mod uniforms (Builder.uniform, ShaderUniform): the std140 block ModUniforms, values uploaded every frame on the render thread, invalid values give POLY-CLIENT-007
  • Per-state block models in block entity drawing (BlockEntityCanvas.block(BlockStateView, …), defaultState) and the state copy BlockStateView.with
  • Fixed: compiling the version modules failed on a clean checkout (no build/)

Rename: Poly Mod Loader (2026-10-21)​

  • The project is renamed from Void Mod Loader (VML) to Poly Mod Loader. Package dev.polymodloader, modules poly-*, metadata poly.mod.json, error codes POLY-* (numbers and meanings unchanged), mod ID poly, report folder .poly/. The full mapping is in design decision ADR-0012

Docs site and API reference (2026-10-21)​

  • site/ is now a Docusaurus 3 docs site: Getting started, Native API, Testing, Reference, and Contributing sections, a per-Minecraft-version docs dropdown, offline search (including Korean), and a single place for version values (site/src/versionInfo.js)
  • API reference: ./gradlew apiReference builds one page per package from the Javadoc of the public API (signature, description, arguments, return value, and exceptions for every type and member)

Structure for supporting several Minecraft versions (2026-10-21)​

  • Supported version list gradle/minecraft-versions.properties (versions, default version, Java per version). The minecraft entry in the version catalog is removed
  • The adapter and game layer module of each version is included automatically from the list and compiled with that version's jar and Java
  • -PpolyMinecraft=<version> selects the version to run and verify. Mod projects use polyMinecraft in gradle.properties
  • ./gradlew newMinecraftVersion -Pfrom=<version> -Pto=<new version>: copies the modules of the closest version and renames them. ./gradlew minecraftVersions: lists supported versions
  • "minecraft" in poly.mod.json accepts wildcards (26.*) and ranges (>=26.2 <27). The Native examples and the template use 26.*
  • A version adapter can cover several hotfix versions (GameVersionAdapter.gameVersions())
  • Decision record: ADR-0011

Native API stage 4 (2026-10-20)​

  • Batch A: entity data options (tracker sync, version and migration), reload listeners for all file types (onDataFiles/onAssetFiles), PlayerEvents.LOGIN_CHECK, a limit on world backup count (max-backups-per-world)
  • Batch B: block shapes and collision shapes (BlockShape, per state and per direction), flying and swimming mobs (flying, swimming: pathfinding, movement control, wander goal), keyframe animation for mob models (KeyframeAnimation, ALWAYS/WHILE_MOVING/ON_DEMAND, MobView.playAnimation)
  • Batch C: code placed features (feature, FeaturePlacement), code density functions that plug into noise terrain (densityFunction), code structures (structure, StructureDefinition), and configured/placed feature, structure, and structure_set in the generated pack
  • Batch D: drawing in the world (worldPainter: lines, boxes, points, text, shader quads), block models (BlockEntityCanvas.block) and shader quads in block entity drawing, mod core shader pipelines (shaderPipeline)
  • Batch E: exchange during the join-preparation stage (configurationExchange: server request, client reply, server check and rejection, wait time)
  • Fixed:
    • The custom_goal_seeks_glow_block game test failed about 1 time in 10 (the target block was at the edge of the search radius)
    • The game froze during feature placement in a noise dimension that used a biome changed with addFeature (the generator's feature index is now rebuilt)

Native API stage 3 (2026-10-19)​

  • Advanced content: named block properties (choice), per-state light, slot-layout menus and progress bars, item data components and real stack references (ItemStackRef), projectiles, natural spawning
  • Gameplay: per-mob AI goals (AiGoal, MobView), speed, direction, gravity, and riding APIs with a steerable vehicle mob, damage modification (MODIFY_DAMAGE), advancement triggers with grant and revoke
  • World: code biomes (written to the generated pack), code terrain generators (TerrainGenerator), forced chunk loading, chunk load and unload events, biomeAt. The generated pack version is set by a content hash
  • Client drawing: mob box models with part animation, block entity drawing (items and text), mod particle types, field-of-view events and perspective switching, mod post-processing shaders, dynamic textures and HudCanvas.drawTexture
  • Resources, network, and operations: data and asset reload listeners, entity data (saving, persistence across respawn, self sync), storage versions, migration, and client sync, block entity data versions, permission nodes and providers, client join and leave events with leaveWorld, automatic backup of worlds whose mods changed, the game test area TestArea
  • Fixed: mod block states were not in the game's state ID table, so they could not be sent to the client (a defect present since stage 1)

Native API stage 2 (2026-10-19)​

  • Block state properties, block entities (data, ticks, sync), chest-style inventories, world storage, task scheduling, WorldEvents.READY
  • Mob types (AI goals, attributes, spawn eggs, renderers), status effects, game rules, sounds, particles, damage cancellation and death events
  • KnownPack marking for mod packs: data registries (world generation, dimensions, damage types) are used as stable. Biome feature addition, dimension travel
  • Mod screens (Screen) and widgets, ModContext.configDirectory()
  • Transform engine: RETURN_IF_NON_NULL for methods that return a primitive

Native API stage 1 (2026-10-19)​

  • Native API (poly-game-api, all PREVIEW): blocks, items, food, creative tabs, world, entity, and player views, player, block, and client events, commands, network payload channels, key bindings, HUD layers, in-game tests
  • assets/ and data/ in a mod jar are added automatically as required resource and data packs
  • Game layer poly-game-v26_2: compiled against the Minecraft 26.2 jar and loaded by the game class loader (ADR-0010)
  • New transform actions: InvokeHookAtHead (passes arguments, cancel and early return), InvokeHookBeforeReturn (passes arguments and the return value, rejected if a parameter is reassigned)
  • Gradle: the poly.minecraft-compile plugin, a gameTests task for mod projects, the FabricMC repository added to the mod plugin (fixes the template failing to resolve polyRuntime)
  • The example native-showcase-mod, and item and game test samples in the template

0.1.0-alpha.1 — 2026-10-19 (developer preview)​

The first preview, for Minecraft 26.2 / Java 25. All public APIs are PREVIEW.

  • Bootstrap, transforming class loader, and loading pipeline (discovery → metadata → dependencies → system conflicts → transform plan → system registration → entrypoints → game → shutdown)
  • poly.mod.json schema 1: entrypoints, dependencies, conflicts, permissions (capabilities), system replacement, transform declarations
  • System replacement poly:game_brand, server lifecycle events
  • Transform engine: pre-planning, descriptor and bytecode preconditions, conflict rejection, entry hooks, hash-based cache
  • Loader bridge: Fabric entrypoint execution (Experimental), per-feature diagnostics for Fabric, NeoForge, and Forge
  • Development tools: the dev.polymodloader.mod Gradle plugin, a mod template, real-game verification tasks, a mixed-loader matrix, a startup time benchmark

The source is CHANGELOG.md in the Poly Mod Loader repository.

Buy me a coffee