Repository navigation
Releases: xyrz47-spec/Plexus-Mod-Loader
Release list
Plexus Mod Loader 1.5.0
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- Every remaining Poly name is now Plexus: the installer is
PlexusModLoader-<version>.jar, the launcher profile key isplexusmodloader-<Minecraft version>, the server jar isplexusmodloader-server.jar, logs read[Plexus Mod Loader], and the title screen counts "Plexus mods". - Reinstalling over 1.4.x moves your existing launcher profile (memory and other settings kept) to the new name instead of adding a second one.
- Mods and worlds from 1.4.x keep working: old metadata, package names, the
PolySystemtype, thepolydependency ID,-Dpoly.*settings and saved code structures are still understood. - Mod developers: the SDK, plugin and template use Plexus names throughout (
plexusResources,-PplexusMinecraft,newPlexusMod); the former names still work in existing projects.
주요 변경
- 남아 있던 Poly 이름을 모두 Plexus로 바꿨습니다. 설치 파일은
PlexusModLoader-<버전>.jar, 런처 프로필 키는plexusmodloader-<Minecraft 버전>, 서버 jar는plexusmodloader-server.jar이고, 로그는[Plexus Mod Loader], 타이틀 화면은 "Plexus 모드"로 표시합니다. - 1.4.x 위에 다시 설치하면 기존 런처 프로필을 새 이름으로 옮깁니다(메모리 등 설정 유지). 프로필이 두 개로 늘지 않습니다.
- 1.4.x용 모드와 월드는 그대로 동작합니다. 이전 메타데이터·패키지 이름,
PolySystem타입,poly의존 ID,-Dpoly.*설정, 저장된 코드 구조물을 계속 읽습니다. - 모드 개발자: SDK·플러그인·템플릿이 모두 Plexus 이름을 씁니다(
plexusResources,-PplexusMinecraft,newPlexusMod). 기존 프로젝트의 이전 이름도 계속 동작합니다.
Full changes
Renamed
- Installer
PolyModLoader-<version>.jar→PlexusModLoader-<version>.jar(release asset,installerDistributions). - Launcher version
polymodloader-<plexus>-<minecraft>→plexusmodloader-<plexus>-<minecraft>, profile keypolymodloader-<minecraft>→plexusmodloader-<minecraft>; install moves a 1.4.x profile, uninstall removes both. - Dedicated server jar
polymodloader-server.jar→plexusmodloader-server.jar, default server folderPlexus Mod Loader Server. - SLF4J logger and log prefix
Poly Mod Loader→Plexus Mod Loader; built-in transform rule, event and system IDspoly:*→plexus:*(systempoly:game_brandis still accepted). - System properties
poly.*→plexus.*(apoly.*property is copied to itsplexus.*name at launch); report and cache folder.poly/→.plexus/; world backup filesconfig/plexus/and<world>/plexus/(1.4.x files are read when the new ones do not exist yet). - Public API
PolySystem→PlexusSystem; classes compiled againstPolySystem(either package) are remapped at class load. - Gradle plugin:
polyResources→plexusResources, tasksgeneratePlexusResources,checkPlexusResources,validatePlexusModJson,newPlexusMod,initPlexusMod, propertiesplexusMinecraft,plexusTests,plexusLocalSdk(the former extension and property names still work). - Title screen line and early loading window: "Plexus mods"; resource namespace
assets/plexus.
Kept for compatibility
- Mod metadata
poly.mod.json, packagesdev.polymodloader.*, plugin IDdev.polymodloader.mod, SDK groupdev.polymodloader(existing versions), dependency IDpoly, and the structure piece IDpoly:code_structure_piecesaved in worlds.
Install: run PlexusModLoader-1.5.0.jar (Java 17 or newer) on any system.
설치: 어느 시스템에서나 PlexusModLoader-1.5.0.jar(Java 17 이상)를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Plexus Mod Loader 1.4.2
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- Full package migration to dev.plexusmodloader.* across all modules with automatic class-loading remapping (LegacyPackageRemapper) for existing mods compiled against dev.polymodloader.
- Renamed all 26 root Gradle modules to plexus-* and internal classes to Plexus* (PlexusLoadingOverlay, PlexusRuntime, PlexusLauncherMain, etc.).
- Renamed all error code prefixes from POLY- to PLEXUS- across mod metadata, dependency resolution, transformation engine, and bridges.
- Native mod projects now use plexus.mod.json as the primary metadata descriptor.
주요 변경
- 모든 모듈의 Java 패키지를 dev.plexusmodloader.*로 마이그레이션하였으며, 기존 dev.polymodloader로 컴파일된 모드를 클래스 로딩 시 자동으로 리매핑하는 LegacyPackageRemapper를 도입했습니다.
- 26개 루트 Gradle 모듈을 plexus-로, 내부 클래스를 Plexus(PlexusLoadingOverlay, PlexusRuntime, PlexusLauncherMain 등)로 리네이밍했습니다.
- 모드 메타데이터, 의존성 해결, 변환 엔진 및 브릿지 전반의 내부/공개 에러 코드 접두사를 POLY-에서 PLEXUS-로 변경했습니다.
- 모드 프로젝트 메타데이터 파일로 plexus.mod.json을 기본 지원합니다.
Full changes
Architecture & Refactoring
- Root Gradle modules renamed from poly-* to plexus-* (26 modules).
- Java package namespace shifted from dev.polymodloader.* to dev.plexusmodloader.*.
- Added LegacyPackageRemapper in plexus-runtime-impl to remap legacy dev/polymodloader/ references in mod bytecode transparently.
- All internal classes (PolyLoadingOverlay, PolyRuntime, PolyLauncherMain, PolyMixinService, etc.) renamed to Plexus*.
- Error codes updated across all diagnostics (PLEXUS-METADATA-, PLEXUS-DEPENDENCY-, PLEXUS-COMPAT-, PLEXUS-TRANSFORM-, PLEXUS-SYSTEM-*, etc.).
- Full verification passed on Minecraft 26.2 (check, serverBootSmokeTest, worldCreateSaveTest) and 26.3 (compatibilityCorpus).
Install: run PolyModLoader-1.4.2.jar (Java 17 or newer) on any system.
설치: 어느 시스템에서나 PolyModLoader-1.4.2.jar(Java 17 이상)를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Plexus Mod Loader 1.4.1
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- Rebranded in-game branding, early loading window titles, and game window titles to Plexus Mod Loader.
- Native mod specification now looks for
plexus.mod.jsonfirst, while retaining 100% backward compatibility for existing mods withpoly.mod.json. - Updated game brand system ID to
plexus:game_brand, with seamless alias fallback forpoly:game_brandand default brand stringplexus. - Runtime mod ID now recognizes
plexusin mod dependency declarations while continuing to supportpoly.
주요 변경
- 인게임 브랜딩, 초기 로딩 창 및 게임 윈도우 타이틀을 Plexus Mod Loader로 변경했습니다.
- 네이티브 모드 메타데이터 명세로
plexus.mod.json을 기본 지원하며, 기존poly.mod.json을 사용하는 모드와의 100% 하위 호환성을 유지합니다. - 게임 브랜드 시스템 ID를
plexus:game_brand로 갱신하고poly:game_brand별칭 및 기본 브랜드 문자열plexus를 완벽 지원합니다. - 모드 의존성 선언(
depends)에서 런타임 모드 ID로plexus를 공식 지원하며 기존poly선언도 그대로 동작합니다.
Full changes
Rebranding & Compatibility
- Updated game window titles across supported versions (26.1, 26.2, 26.3) to display
Minecraft[*] Plexus <version>. - Updated early loading window and loading overlay branding to display Plexus Mod Loader, with mod loader line showing
Plexusmod counts. - Updated title screen mod count translation keys to display "Plexus mods" (English) and "Plexus 모드" (Korean).
GameBrandSystem.IDis nowplexus:game_brandwithGameBrandSystem.LEGACY_ID(poly:game_brand) mapped transparently in system replacement resolution.ModFileScannernow checksplexus.mod.jsonfirst and falls back topoly.mod.jsonfor native mods.ModDependencyResolversupports bothplexusandpolyas reserved runtime mod identifiers.
Install: run PolyModLoader-1.4.1.jar (Java 17 or newer) on any system.
설치: 어느 시스템에서나 PolyModLoader-1.4.1.jar(Java 17 이상)를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Poly Mod Loader 1.4.0
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- 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.
주요 변경
- 클라이언트에서 모든 로더가 게임의 첫 프레임 이전 로딩 화면과 똑같이 생긴 하나의 초기 로딩 창을 함께 띄웁니다. macOS는 아직 지원하지 않으며
-Dpoly.earlyWindow=off로 끌 수 있습니다. - NeoForge 26.2와 함께 쓰는 Fabric 모드: 리소스 조건, 충돌 보고서 정보, NeoForge 훅 기반 블록 및 아이템 모듈이 로드되어 더 많은 Fabric 모드가 실행됩니다. 인기 Fabric 모드 묶음에서 47개가 로드(이전 40개)됩니다.
- Forgified Fabric API가 설치되었을 때 중첩된 로더 플러그인으로 인해 NeoForge가 시작 시 멈추던 문제가 해결됩니다.
- Forge 환경: Fabric API 유체 및 아이템 훅은 실제로 실행되는 곳에서만 적용되며, Forge 옆의 fabric-biome-api-v1 등 일부 모드는 나중에 실패하는 대신 미리 제외됩니다.
Full changes
Loading screen
- Every loader now shares one early loading window on the client that opens as Poly Mod Loader starts and looks exactly like the game's loading screen before its first frame: the Mojang red background (or black with the monochrome logo option), the Mojang Studios logo, and the progress bar, plus Poly Mod Loader's spinning gold cube and name at the bottom right, mods per loader under the bar, and launch steps at the bottom left. MinecraftForge and NeoForge no longer open FML's early window, and the window closes 0.3 seconds after the game's window draws its first loading screen frame, 20 seconds after the game names its window, or at the latest 3 minutes after launch. The window is not yet supported on macOS and can be turned off with
-Dpoly.earlyWindow=off, verified byclientWorldReloadTeston 26.2 and 26.3,neoForgeClientandforgeClienton 26.2, and headless checks (check,worldCreateSaveTest,compatibilityMatrix,forgeGameTest,neoForgeWorldTest). - 클라이언트에서 모든 로더가 Poly 모드 로더 시작 시점부터 게임의 첫 프레임 이전 로딩 화면과 완전히 똑같이 생긴 하나의 초기 로딩 창을 띄웁니다: Mojang 빨간색 배경(단색 로고 옵션 시 검은색), Mojang Studios 로고, 진행 막대, 오른쪽 아래의 회전하는 금색 Poly 큐브와 이름, 막대 아래의 로더별 모드 수, 왼쪽 아래의 부팅 진행 상태를 보여 줍니다. MinecraftForge와 NeoForge는 더 이상 FML 자체 초기 창을 열지 않으며, 창은 게임 창이 첫 로딩 화면 프레임을 그리고 0.3초 뒤, 게임이 창 이름을 지정하고 20초 뒤, 또는 시작 후 최대 3분 뒤에 닫힙니다. macOS는 아직 지원하지 않으며
-Dpoly.earlyWindow=off로 끌 수 있고, 26.2와 26.3의clientWorldReloadTest, 26.2의neoForgeClient와forgeClient, 헤드리스 검증 작업(check,worldCreateSaveTest,compatibilityMatrix,forgeGameTest,neoForgeWorldTest)으로 확인했습니다.
Fixes
- Shipped the second host module under ADR-0031 (
fabric-item-api-v114.5.0+poly.neoforge.26.2inpoly-fabric-api-neoforge-v26_2), replacing the original onPOLY-COMPAT-224under NeoForge 26.2.0.93. ReplacedFabricItemImplwithItemTooltipHandlerMixin, addedClientItemEventHooks, declaredgetOrDefaultinDataComponentMapBuilderMixin, and prioritizedEnchantmentEvents.ALLOW_ENCHANTINGinIItemExtensionMixin. Modules now compile against NeoForge's patched client jar viainstallNeoForgeClientandClassTweakedJarTask.HostPatchAdjustmentsnow recognizes mod interfaces extending host interfaces as overriding defaults (POLY-COMPAT-226).corpusFabricNeoForge26.2 improved to 47 loaded / 69 excluded (was 46 / 70, 3224modules left),corpusFabricOnNeoForgeto 81 / 77 (was 78 / 80), andcorpusFabricNeoForgeClientMixinsverified 756 target classes (109 configs, 0 failed). - ADR-0031에 따라 두 번째 호스트 모듈인 NeoForge 26.2.0.93용
fabric-item-api-v1(14.5.0+poly.neoforge.26.2, 모듈poly-fabric-api-neoforge-v26_2)을 탑재하여POLY-COMPAT-224발생 시 대체하도록 했습니다.FabricItemImpl을 제거하고ItemTooltipHandlerMixin,ClientItemEventHooks,DataComponentMapBuilderMixin,IItemExtensionMixin수정을 적용했습니다.installNeoForgeClient와ClassTweakedJarTask를 통해 패치된 클라이언트 jar를 대상으로 컴파일하며,HostPatchAdjustments는 호스트 인터페이스를 확장하는 모드 인터페이스의 기본 메서드를 재정의로 허용합니다(POLY-COMPAT-226).corpusFabricNeoForge26.2는 47개 로드·69개 제외(이전 46 / 70,224모듈 3개)로 개선되었고,corpusFabricOnNeoForge는 81 / 77(이전 78 / 80),corpusFabricNeoForgeClientMixins는 109개 설정의 756개 대상 클래스 모두 실패 0개로 통과했습니다. - Shipped the first host module under ADR-0031 (
fabric-block-api-v13.1.0+poly.neoforge.26.2inpoly-fabric-api-neoforge-v26_2), allowingHostModulesto replace the module onPOLY-COMPAT-224under NeoForge 26.2.0.93;corpusFabricNeoForge26.2 improved to 46 loaded / 70 excluded (was 45 / 71) with 4224exclusions remaining. UpdatedModLinkVerifierto inspect host-patched jars before vanilla jars, identifying thatfabric-biome-api-v1accessesChunkGenerator.featuresPerStepas aSupplieragainst Forge'sClearableLazyfield and excluding it withPOLY-COMPAT-112;corpusFabricForgeis now 85 / 81 on 26.2 (was 86 / 80) and 84 / 82 on 26.3 (was 85 / 81), andcorpusQuiltForge26.3 is 97 / 84 (was 98 / 83). - ADR-0031에 따라 첫 호스트 모듈(
fabric-block-api-v13.1.0+poly.neoforge.26.2, 모듈poly-fabric-api-neoforge-v26_2)을 탑재하여 NeoForge 26.2.0.93에서 원본 모듈이POLY-COMPAT-224로 제외될 때HostModules가 대체하도록 했습니다.corpusFabricNeoForge26.2는 46개 로드, 70개 제외(이전 45 / 71)로 개선되었으며224제외는 4개가 남았습니다. 패치된 jar를 먼저 검사하도록 링크 검사(ModLinkVerifier)를 변경해 Forge에서ClearableLazy로 변경된ChunkGenerator.featuresPerStep을Supplier로 쓰는fabric-biome-api-v1을POLY-COMPAT-112로 제외했습니다.corpusFabricForge는 26.2에서 85 / 81(이전 86 / 80), 26.3에서 84 / 82(이전 85 / 81),corpusQuiltForge26.3은 97 / 84(이전 98 / 83)가 되었습니다. - Fixed NeoForge stopping with
POLY-COMPAT-208(NoSuchMethodError: FabricLoaderImpl.setup()) when Forgified Fabric API was installed due to its nestedforgified-fabric-loaderFML plugin. Poly Mod Loader now patchesFMLLoader.loadPlugins(NeoForgeSharedMixinPatch, FML 11 and 12) to exclude foreign Fabric Loader plugins (PolyFml.withoutForeignFabricLoader) when Fabric's Mixin is shared. The game, 48 NeoForge mods, and the Fabric test mod now load and pass GameTest. Two results still differ from the original Fabric API, so route A is not yet listed as supported inCOMPATIBILITY.md. - Forgified Fabric API 설치 시 중첩된
forgified-fabric-loaderFML 플러그인이 자체 로더를 구동하여POLY-COMPAT-208(NoSuchMethodError: FabricLoaderImpl.setup())로 NeoForge가 중단되던 문제를 수정했습니다. Fabric Mixin 공유 시FMLLoader.loadPlugins를 패치(NeoForgeSharedMixinPatch, FML 11·12)하여 외부 Fabric Loader 플러그인을 제외(PolyFml.withoutForeignFabricLoader)하도록 처리했습니다. 게임, 48개 NeoForge 모드, Fabric 테스트 모드가 정상 로드되어 GameTest를 통과합니다. 다만 원본 Fabric API 대비 두 결과가 달라 경로 A는 아직COMPATIBILITY.md에 지원으로 기재하지 않습니다. - With NeoForge 26.2: Fabric API's
fabric-resource-conditions-api-v1loads. An@InjectinRegistryLoadTask$PendingRegistration.loadFromResourcemoves before NeoForge's conditional codec call (NeoForgeInjectionPoints), checking Fabric conditions first. A new bridge (HostConditionalSkip) inSimpleJsonResourceReloadListener(also itsscanDirectoryWithModifier, whichRecipeManageruses) converts Fabric's skip marker toDataResult.success(Optional.empty()), matching NeoForge's skip and dropping the head handler; other shapes remainPOLY-COMPAT-224. New taskneoForgeFabricApiGameTestpasses.corpusFabricNeoForgeloads 45 foreign mods (was 44 / 72; 5 modules left out with224),corpusFabricNeoForgeClientMixinsloads 747 target classes (108 configs, 0 failed). 26.3 is unchanged (43 / 73, 7 modules left out). - NeoForge 26.2와 함께: Fabric API의
fabric-resource-conditions-api-v1이 로드됩니다.RegistryLoadTask$PendingRegistration.loadFromResource의@Inject가 NeoForge 조건부 코덱 호출 앞으로 이동하여(NeoForgeInjectionPoints) Fabric 조건을 먼저 검사합니다.SimpleJsonResourceReloadListener(RecipeManager가 쓰는scanDirectoryWithModifier포함)에서는 새 다리(HostConditionalSkip)가 Fabric의 스킵 마커를DataResult.success(Optional.empty())로 변환하고 헤드 처리기를 생략하며, 다른 형태는POLY-COMPAT-224로 처리합니다. 신규 작업neoForgeFabricApiGameTest가 통과했습니다.corpusFabricNeoForge는 외래 모드 45개를 로드하고(전에는 44 / 72,2245개 모듈),corpusFabricNeoForgeClientMixins는 108개 설정의 대상 클래스 747개를 실패 0개로 로드했습니다. 26.3은 변동 없이 유지됩니다(43 / 73, 7개 모듈 제외). - With NeoForge (26.2 and 26.3): Fabric API's
fabric-crash-report-info-v1loads. NeoForge movedServerWatchdog.createWatchdogCrashReportintocreateWatchdogCrashReport(String, long, String)callingThreadInfoUtil.getEntireStacktrace(threadInfo). A@WrapOperationbridge (HostThreadDump) runs Fabric'sprintEntireThreadDumphandler; only a static(Object)Objecthandler callingThreadPrinting.fullThreadInfoToStringis bridged (POLY-COMPAT-224otherwise).corpusFabricNeoForgeloads 44 foreign mods on 26.2 (was 43 / 73, 6 left out with224) and 43 / 73 on 26.3 (was 42 / 74, 7 left out) withoutPOLY-COMPAT-225.corpusFabricNeoForgeClientMixinsloads 744 target classes (107 configs, 0 failed); the watchdog was not triggered in game. - NeoForge와 함께(26.2·26.3): Fabric API의
fabric-crash-report-info-v1이 로드됩니다. NeoForge가ServerWatchdog.createWatchdogCrashReport본문을createWatchdogCrashReport(String, long, String)로 옮겨ThreadInfoUtil.getEntireStacktrace(threadInfo)를 호출하므로, 새@WrapOperation다리(HostThreadDump)가 Fabric의printEntireThreadDump처리기를 실행합니다.ThreadPrinting.fullThreadInfoToString만 호출하는 정적(Object)Object처리기만 연결되며 다른 것은POLY-COMPAT-224입니다.corpusFabricNeoForge: 26.2에서 외래 모드 44개가 로드되고(전에는 43 / 73,2246개), 26.3에서 43 / 73개(전에는 42 / 74,2247개)이며POLY-COMPAT-225는 없습니다.corpusFabricNeoForgeClientMixins는 107개 설정의 대상 클래스 744개를 실패 0개로 로드했습니다. 감시견 자체는 게임에서 트리거되지 않았습니다. - Before launch,
HostPatchAdjustmentsnow compares bytecode when checking conflicting interface default methods added by Fabric mixins and host ...
Poly Mod Loader 1.3.0
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- 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.
주요 변경
- 어느 로더로 실행해도 로딩 화면이 Poly 모드 로더의 것이 되고, Minecraft의 모습은 그대로입니다. Forge·NeoForge 초기 창은 모루·여우 자리에 회전하는 Poly 금색 큐브를 보여 주고, 게임의 로딩 화면은 Mojang 로고와 진행 막대를 그대로 두고 Poly 큐브와 이름, 로더별 모드 수를 덧그립니다.
- 게임 창 제목이 어느 로더에서든 첫 화면부터
Minecraft* Poly <Minecraft 버전>입니다. - Minecraft 26.1·26.1.2: Forge 모드와 함께 쓰는 Fabric 모드가 더는 게임을 멈추지 않습니다. 인기 모드 묶음에서 다른 로더의 모드가 각각 76개, 83개 로드됩니다.
Full changes
Loading screen
- The loading screens are Poly Mod Loader's with every loader, and keep the game's look. MinecraftForge's and NeoForge's early loading window shows Poly Mod Loader's spinning gold cube in place of Forge's anvil and logo and NeoForge's running fox (and NeoForge's window icon and label), and the game's own loading screen that follows keeps the Mojang logo, background and progress bar, with the same cube and name at the bottom right and the mods each loader runs under the bar. Before, Forge and NeoForge showed their own early window, and the game's screen turned into a dark Poly Mod Loader screen. The three system properties that were meant to turn the early window off (
neoforge.earlyprogresswindow,fml.earlyprogresswindow,forge.forceDisplay) were never read by FML and are gone. - The game window's title is
Minecraft* Poly <Minecraft version>with every loader (Minecraft* Forge 26.2andMinecraft NeoForge* 26.3before), from the early window on. - 로딩 화면이 어느 로더에서든 Poly 모드 로더의 것이 되고, 게임의 모습은 그대로 둡니다. MinecraftForge·NeoForge의 초기 로딩 창은 Forge의 모루·로고와 NeoForge의 달리는 여우(NeoForge는 창 아이콘과 글자도) 자리에 회전하는 Poly 금색 큐브를 보여 주고, 이어지는 게임의 로딩 화면은 Mojang 로고·배경·진행 막대를 그대로 두고 오른쪽 아래에 같은 큐브와 이름을, 막대 아래에 로더별 모드 수를 덧그립니다. 전에는 Forge·NeoForge가 자기 초기 창을 띄웠고, 게임 화면은 어두운 Poly 화면으로 바뀌었습니다. 초기 창을 끄려던 시스템 속성 세 개(
neoforge.earlyprogresswindow,fml.earlyprogresswindow,forge.forceDisplay)는 FML이 읽지 않는 것이라 지웠습니다. - 게임 창 제목이 로더와 상관없이 초기 창부터
Minecraft* Poly <Minecraft 버전>입니다(전에는Minecraft* Forge 26.2,Minecraft NeoForge* 26.3).
Fixes
- Minecraft 26.1 and 26.1.2, with Forge: Fabric API no longer stops the game with
POLY-COMPAT-225(MinecraftServerMixin.onUnloadWorldAtShutdown). Forge renamed the localleveltolevelxonly where the server closes its worlds, and the check before launch looked for the name in the whole method; it now looks in scope at the injection point, and the@Localcaptures the renamed local (POLY-COMPAT-212).corpusFabricForge: 76 foreign mods load on 26.1, 83 on 26.1.2. - With Forge, an injection at
Mob.setTarget'sasValidTargetcall moves to the target of Forge'sLivingChangeTargetEvent, which Forge assigns there instead (Puzzles Lib's change-target event on 26.3). Puzzles Lib 26.3 is still left out next to Forge, for Fabric API modules it needs. - Minecraft 26.1 and 26.1.2, Forge와 함께: Fabric API가 더는
POLY-COMPAT-225로 게임을 멈추지 않습니다(MinecraftServerMixin.onUnloadWorldAtShutdown). Forge는 서버가 월드를 닫는 자리에서만 지역 변수level을levelx로 바꿨는데, 시작 전 검사는 메서드 전체에서 이름을 찾았습니다. 이제 주입 지점에서 보이는 범위에서 찾고,@Local이 바뀐 이름을 따라갑니다(POLY-COMPAT-212).corpusFabricForge: 26.1에서 외부 모드 76개, 26.1.2에서 83개가 로드됩니다. - Forge와 함께일 때
Mob.setTarget의asValidTarget호출에 대한 주입은 Forge가 그 자리에서 대입하는LivingChangeTargetEvent의 대상으로 옮겨집니다(26.3의 Puzzles Lib 대상 변경 이벤트). 26.3의 Puzzles Lib은 필요한 Fabric API 모듈 때문에 Forge 옆에서 아직 빠집니다.
Install: run PolyModLoader-1.3.0.jar (Java 17 or newer) on any system.
설치: 어느 시스템에서나 PolyModLoader-1.3.0.jar(Java 17 이상)를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Poly Mod Loader 1.2.5
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- 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.
주요 변경
- Minecraft 26.3: Fabric·Quilt 모드를 NeoForge·Forge 모드와 한 게임에서 다시 쓸 수 있습니다. 1.2.4에서는 이런 게임이 시작하거나 불러오는 중에 멈췄습니다.
- Minecraft 26.3, Forge와 함께: Fabric API의 레지스트리 동기화와 그것이 필요한 모드가 로드됩니다. 블록을 더하는 Fabric 모드가 게임을 멈추지 않고, Fabric API가 있을 때 데이터 팩도 크래시 없이 읽습니다.
- Forge와 함께일 때 26.2에서 Puzzles Lib의 Fabric 판(과 그것이 필요한 모드)이 다시 로드됩니다.
- Forge·NeoForge 옆에서 실행할 수 없는 모드는 게임을 멈추는 대신 게임 시작 전에 이유와 함께 빠집니다.
Full changes
Fixes
- With Forge, Puzzles Lib's Fabric build loads again (and with it the Fabric mods that need it): its injection into
ServerPlayer.dropfollows Forge'sForgeHooks.onPlayerTossEvent, and its@Localcapture is matched by the vanilla local's name where Forge added a second local of the same type. - With Forge, Fabric injections into
PersistentEntitySectionManager.addEntitymove into Forge'saddEntityWithoutEvent, which holds the vanilla body. - With NeoForge, Fabric API's registry sync
@InjectatBootstrap.wrapStreams()moves toGameData.vanillaSnapshot(), which NeoForge calls there instead.fabric-registry-sync-v0is still left out for other parts. - Minecraft 26.3: Fabric and Quilt mods next to NeoForge mods start again. NeoForge 26.3's FML 12 adds a second Mixin class processor (
neoforge:mixin_frame_context), which Poly Mod Loader's shared Mixin left empty, so every such game stopped withPOLY-COMPAT-208before 1.2.5. The shared Mixin now fills it, and the shape checks accept FML 11 and FML 12 only. - Minecraft 26.3, with Forge: a Forge mod that ships a newer MixinExtras (Carry On 2.12.0) no longer stops the game. With a shared Mixin, FML's copy of MixinExtras is left out of the game layer, as NeoForge's host already did.
- Next to Forge, the check before launch now leaves out a Fabric or Quilt mod with
POLY-COMPAT-224when Forge's patch made a call it redirects static or instance (All Stacks Infinite'sconsumeFuel), or changed the type of a field it@Shadows (Dwarfs and Giants'RangedBowAttackGoal.mob). Before, Mixin stopped the game withPOLY-COMPAT-225. - Minecraft 26.3, with Forge: loading data packs with Fabric API no longer stops with a
ClassCastException. Forge 66 wraps the registry element decoder inConditionCodec, so the call Fabric API's loot table hook wraps returns anOptional; the hook now runs through a bridge that hands it the table and gives Forge back itsOptional, so Forge's condition check andonJsonDataParsedstill run (POLY-COMPAT-226). Other wraps of such a call are left out before launch (POLY-COMPAT-224). - Next to NeoForge, a Fabric mod's own copy of the host loader's classes (Forge Config API Port's Fabric build carries 36 of FML's and NeoForge's config classes) is checked against the host's classes, which are the ones that run. A mod that uses a member the host's class lacks is left out before the game starts with the new
POLY-COMPAT-141. Before, the 26.3 server stopped withNoSuchFieldError: ModConfig$Type.SERVER. - Minecraft 26.3, with Forge: Fabric and Quilt mods that register blocks or creative tabs in their initializer no longer stop the game with "Registry minecraft:block is already frozen". Without Fabric API's registry sync (left out under Forge 66), vanilla freezes the built-in registries before mods initialize; Poly Mod Loader now opens them (and Forge's wrappers' own
frozenflag) around that initialization and freezes them again afterwards. It reads Forge's write checks from the class files first; a Forge release that checks something else stops the launch with the newPOLY-COMPAT-227before those mods run.corpusQuiltForgeon 26.3 passes: 91 foreign mods loaded, 90 left out. - Minecraft 26.3, with Forge: Fabric API's registry sync (
fabric-registry-sync-v0) loads again, and with itfabric-object-builder-api-v1. Forge 66's data generators readRegistryDataLoader.getWorldAndDimensionRegistries()where vanilla readsWORLD_REGISTRIES, which registry sync redirects; the redirect now moves to Forge's call through a bridge that returns Fabric's list followed by Forge's own entries (POLY-COMPAT-226).corpusFabricForgeon 26.3: 80 foreign mods loaded (was 76);corpusQuiltForge: 95 (was 91). - Minecraft 26.3: Fabric·Quilt 모드와 NeoForge 모드를 함께 쓰는 게임이 다시 시작됩니다. NeoForge 26.3의 FML 12가 Mixin 클래스 처리기를 하나 더 두는데(
neoforge:mixin_frame_context), Poly 모드 로더의 공유 Mixin이 이를 비워 두어 이런 게임은 모두POLY-COMPAT-208로 멈췄습니다. 이제 공유 Mixin이 그 자리를 채우고, 형태 검사는 FML 11과 FML 12만 받아들입니다. - Minecraft 26.3, Forge와 함께: 더 새 MixinExtras를 품은 Forge 모드(Carry On 2.12.0)가 있어도 게임이 멈추지 않습니다. Mixin을 공유할 때는 FML의 MixinExtras 사본을 게임 계층에서 뺍니다(NeoForge 쪽은 이미 그렇게 했습니다).
- Forge와 함께일 때, Forge 패치가 리다이렉트 대상 호출을 static↔인스턴스로 바꿨거나(All Stacks Infinite의
consumeFuel)@Shadow필드의 형을 바꾼 경우(Dwarfs and Giants의RangedBowAttackGoal.mob) 시작 전 검사가 그 Fabric·Quilt 모드를POLY-COMPAT-224로 뺍니다. 전에는 Mixin이POLY-COMPAT-225로 게임을 멈췄습니다. - Minecraft 26.3, Forge와 함께: Fabric API가 있을 때 데이터 팩을 읽다가
ClassCastException으로 멈추지 않습니다. Forge 66은 레지스트리 요소 디코더를ConditionCodec으로 감싸서, Fabric API의 전리품 테이블 훅이 감싸는 호출이Optional을 돌려줍니다. 이제 그 훅은 브리지를 거쳐 테이블을 받고 Forge에는 다시Optional을 돌려주므로, Forge의 조건 검사와onJsonDataParsed도 그대로 실행됩니다(POLY-COMPAT-226). 그런 호출을 다르게 감싸는 경우는 시작 전에 뺍니다(POLY-COMPAT-224). - NeoForge와 함께일 때, Fabric 모드가 품은 호스트 로더 클래스의 사본(Forge Config API Port의 Fabric 판은 FML·NeoForge 설정 클래스 36개를 품음)을 실제로 실행되는 호스트의 클래스와 대조합니다. 호스트 클래스에 없는 멤버를 쓰는 모드는 새 오류 코드
POLY-COMPAT-141로 게임 시작 전에 뺍니다. 전에는 26.3 서버가NoSuchFieldError: ModConfig$Type.SERVER로 멈췄습니다. - Minecraft 26.3, Forge와 함께: 초기화에서 블록이나 크리에이티브 탭을 등록하는 Fabric·Quilt 모드가 "Registry minecraft:block is already frozen"으로 게임을 멈추지 않습니다. Fabric API의 레지스트리 동기화가 빠지면(Forge 66에서) 바닐라가 모드 초기화 전에 내장 레지스트리를 얼립니다. 이제 Poly 모드 로더가 그 초기화 동안 레지스트리(와 Forge 래퍼 자신의
frozen표시)를 열고 끝나면 다시 얼립니다. 먼저 클래스 파일에서 Forge의 쓰기 검사를 읽고, 다른 것을 검사하는 Forge 릴리스면 그 모드들이 실행되기 전에 새 오류 코드POLY-COMPAT-227로 시작을 멈춥니다. 26.3corpusQuiltForge가 통과합니다(외부 모드 91개 로드, 90개 제외). - Minecraft 26.3, Forge와 함께: Fabric API의 레지스트리 동기화(
fabric-registry-sync-v0)가 다시 로드되고, 그것이 필요한fabric-object-builder-api-v1도 로드됩니다. Forge 66의 데이터 생성기는 바닐라가WORLD_REGISTRIES를 읽는 자리에서RegistryDataLoader.getWorldAndDimensionRegistries()를 부르는데, 레지스트리 동기화가 바로 그 읽기를 바꿉니다. 이제 그@Redirect는 브리지를 거쳐 Forge의 호출로 옮겨지고, Fabric의 목록 뒤에 Forge 자신의 항목을 붙여 돌려줍니다(POLY-COMPAT-226). 26.3corpusFabricForge는 외부 모드 80개(전에는 76개),corpusQuiltForge는 95개(전에는 91개)를 로드합니다. - Forge의
ForgeHooks.onPlayerTossEvent를 따라 Puzzles Lib의ServerPlayer.drop주입을 옮기고, Forge가 같은 형의 지역 변수를 하나 더 만든 곳에서@Local을 바닐라 변수 이름으로 찾습니다. 그래서 Forge와 함께 Puzzles Lib의 Fabric 판(과 그것이 필요한 Fabric 모드)이 다시 로드됩니다. - Forge와 함께일 때
PersistentEntitySectionManager.addEntity에 대한 Fabric 주입은 바닐라 본문을 가진 Forge의addEntityWithoutEvent로 옮겨집니다. - NeoForge와 함께일 때 Fabric API 레지스트리 동기화의
Bootstrap.wrapStreams()주입(@Inject)은 NeoForge가 그 자리에서 부르는GameData.vanillaSnapshot()으로 옮겨집니다.fabric-registry-sync-v0는 다른 부분 때문에 여전히 빠집니다.
Install: run PolyModLoader-1.2.5.jar (Java 17 or newer) on any system.
설치: 어느 시스템에서나 PolyModLoader-1.2.5.jar(Java 17 이상)를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Poly Mod Loader 1.2.4
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- 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
.jarfor every system (Java 17 or newer); the Windows.exeis gone.
주요 변경
- 1.2.2에서 생긴 버그 세 가지를 고쳤습니다. JEI, Kotlin for Forge, Lithium, MoreCulling 같은 NeoForge 모드가 다시 로드되고, Fabric API를 넣은 Fabric 전용 서버가 다시 시작되며, Forge·NeoForge와 함께일 때 Fabric API의 엔티티 속성 기능이 동작합니다.
- Fabric 모드와 NeoForge 모드를 함께 쓸 때 JEI의 MezzConfig 때문에 서버가 멈추지 않습니다.
- Minecraft 26.3: 이름이 바뀐 렌더링 클래스를 쓰는 Fabric 모드(AppleSkin, Cloth Config, GeckoLib, YACL 등)가 서버에서 더 이상 빠지지 않습니다.
- 설치 프로그램은 이제 모든 시스템에서
.jar하나입니다(Java 17 이상). Windows.exe는 없어졌습니다.
Full changes
Fixes
- NeoForge mods with a
[modproperties.<id>]table inneoforge.mods.tomlload again. Since 1.2.2 they were left out withPOLY-COMPAT-217("Invalid key: Unexpected ':'"), whether or not Fabric mods were installed: on 26.2 JEI, Kotlin for Forge, Lambda Dynamic Lights, Lithium and MoreCulling, and the mods that need them. - A Fabric dedicated server with Fabric API starts again. Since 1.2.2 Poly Mod Loader added a
getBuilder()toAttributeSupplier$Builderalso without Forge or NeoForge, and Mixin then refused Fabric API's accessor inBootstrap.validate. Now only Forge's and NeoForge's patched class gets it. - With Forge or NeoForge, Fabric API's
getBuilder()onAttributeSupplier$Builderno longer throwsLinkageError(loader constraint violation on Guava'sImmutableMap$Builder); the game class loader has its own copy of the bridge. - With NeoForge, a mod shipped as a game library whose JarJar holds the mod (MezzConfig's
-standalone.jar, needed by JEI) counts as one NeoForge runs, so its Fabric build is left out (POLY-COMPAT-139) instead of running next to it. Before, the server stopped: "More than one MezzConfig physical-side provider is present". - NeoForge injection points: the four client entries 1.2.3 added named calls vanilla does not make, so they moved nothing.
ServerPlayer.openMenunow has the two calls NeoForge really moved (closeContainer()andsend(Packet)), and the other three are removed.NeoForgeInjectionPointsTestchecks every entry against NeoForge's patched client and the vanilla client. - Minecraft 26.3:
com.mojang.renderpearl(Blaze3D's new name) counts as a client package in the link check. Before, nine Fabric mods of the 26.3 corpus (AppleSkin, Cloth Config, GeckoLib, YACL, ...) and the mods that need them were left out on the server withPOLY-COMPAT-112. neoforge.mods.toml에[modproperties.<id>]표가 있는 NeoForge 모드가 다시 로드됩니다. 1.2.2부터 Fabric 모드가 있든 없든POLY-COMPAT-217("Invalid key: Unexpected ':'")로 빠졌습니다. 26.2에서는 JEI, Kotlin for Forge, Lambda Dynamic Lights, Lithium, MoreCulling과 이것들이 필요한 모드입니다.- Fabric API를 넣은 Fabric 전용 서버가 다시 시작됩니다. 1.2.2부터 Forge·NeoForge가 없어도
AttributeSupplier$Builder에getBuilder()를 넣어, Mixin이Bootstrap.validate에서 Fabric API의 accessor를 거부했습니다. 이제 Forge·NeoForge가 패치한 클래스에만 넣습니다. - Forge·NeoForge와 함께일 때 Fabric API의
AttributeSupplier$Builder.getBuilder()가 더 이상LinkageError(GuavaImmutableMap$Builder의 로더 제약 위반)를 던지지 않습니다. 게임 클래스로더가 브리지를 따로 한 벌 정의합니다. - NeoForge에서, 실제 모드를 JarJar로 품은 game library jar(JEI가 필요로 하는 MezzConfig의
-standalone.jar)도 NeoForge가 실행하는 모드로 셉니다. 그래서 같은 모드의 Fabric 판은 함께 실행되지 않고 빠집니다(POLY-COMPAT-139). 전에는 서버가 "More than one MezzConfig physical-side provider is present"로 멈췄습니다. - NeoForge 주입 지점: 1.2.3에서 넣은 클라이언트 항목 4개는 바닐라에 없는 호출을 가리켜 아무것도 옮기지 않았습니다.
ServerPlayer.openMenu는 NeoForge가 실제로 옮긴 호출 두 개(closeContainer(),send(Packet))로 고쳤고, 나머지 셋은 지웠습니다.NeoForgeInjectionPointsTest가 모든 항목을 NeoForge의 패치된 클라이언트와 바닐라 클라이언트에 대조합니다. - Minecraft 26.3: 링크 검사가
com.mojang.renderpearl(Blaze3D의 새 이름)을 클라이언트 패키지로 봅니다. 전에는 26.3 모드 묶음의 Fabric 모드 9개(AppleSkin, Cloth Config, GeckoLib, YACL 등)와 이것들이 필요한 모드가 서버에서POLY-COMPAT-112로 빠졌습니다.
Installer
- The installer is
PolyModLoader-<version>.jaronly, on every platform (Java 17 or newer). The Windows.exeand its Rust launcher are gone, and releases attach the jar andSHA256SUMS.txt. Releases up to 1.2.3 keep their.exe. - 설치 프로그램은 모든 시스템에서
PolyModLoader-<버전>.jar하나입니다(Java 17 이상). Windows.exe와 그 Rust 실행기를 없앴고, 릴리스에는 jar와SHA256SUMS.txt만 올립니다. 1.2.3까지의 릴리스에 있는.exe는 그대로 둡니다.
Install: run PolyModLoader-1.2.4.jar (Java 17 or newer) on any system.
설치: 어느 시스템에서나 PolyModLoader-1.2.4.jar(Java 17 이상)를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Poly Mod Loader 1.2.3
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- 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 for bug reports: 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.
주요 변경
- 로딩 화면 텍스트 깨짐 현상 수정: Minecraft 26.1, 26.2, 26.3 커스텀 Poly 로딩 오버레이에서 발생하던 폰트 렌더링 및 문자 깨짐 오류를 표준 Component literal 및 ChatFormatting 색상 코드로 수정하여 깨짐 없이 선명하게 렌더링되도록 개선했습니다.
- 오류 발생 시 GitHub Issues 바로 연결: 오류 발생 화면 및 버그 리포트 링크를 공식 GitHub Issues 페이지로 직접 연결하여 신속하고 투명하게 문제를 접수/추적할 수 있도록 개선했습니다.
- NeoForge 환경 Fabric API 호환 적응점 확대: NeoForge 환경에서 클라이언트 화면, 컨테이너 메뉴, 데이터 어태치먼트 훅을 위한 주입점 대체 규칙(
NeoForgeInjectionPoints)을 추가하여 호환성을 한층 더 강화했습니다.
Full changes
Client and loader adaptations
- Standardized text rendering in
PolyLoadingOverlay: replaced manual glyph manipulation with Minecraft's built-inComponent.literalandChatFormattingpipeline acrosspoly-game-v26_1,poly-game-v26_2, andpoly-game-v26_3, eliminating character encoding artifacts and unmapped glyph square icons across diverse GPU backends and window sizes. - Streamlined crash report and error handling: routed error and feedback CTAs directly to
https://github.com/xyrz47-spec/Poly-Mod-Loader/issues/new, providing user-friendly diagnostic issue reporting. - Added
NeoForgeInjectionPoints: adapted client screen mixins, menu hooks, and data attachments for NeoForge host patches.
Install: run PolyModLoader-1.2.3.jar (Java 17 or newer) on any system; on Windows without Java, run PolyModLoader-1.2.3.exe.
설치: 어느 시스템에서나 PolyModLoader-1.2.3.jar(Java 17 이상)를 실행합니다. Java가 없는 Windows에서는 PolyModLoader-1.2.3.exe를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Poly Mod Loader 1.2.2
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- Dedicated custom Poly loading screen (
PolyLoadingOverlay): runs a sleek dark#0E131Floading overlay across Minecraft 26.1, 26.2 and 26.3, replacing vanilla and third-party loader loading screens. - Live loader mod count badge overlay: displays real-time active mod counts per loader (
Fabric,Forge,NeoForge,Quilt, andPoly) directly on the Poly loading screen. - Suppressed host loader early windows and branding mod counts: hides Forge and NeoForge early progress windows, and strips third-party "(X mods loaded)" counts from title screen branding.
- Extensive Fabric API adaptations on Forge and NeoForge: adapted
fabric-item-api-v1,fabric-registry-sync-v0,fabric-content-registries-v0(via FluidWrap),fabric-data-generation-api-v1,fabric-entity-events-v1(via BedWrap),fabric-object-builder-api-v1(via AttributeBuilderBridge), and Priority 3 modules so multi-loader modpacks run without crash or incompatibility. - Modernized documentation and brand identity: unified branding as "Poly", clarified in-game bytecode engine identity vs external launchers, and enhanced security and verification transparency.
주요 변경
- Poly 전용 독자 로딩 화면(
PolyLoadingOverlay): Minecraft 26.1, 26.2, 26.3 전 버전에 걸쳐 기존 및 타 로더의 로딩 화면을 대체하는 세련된#0E131F다크 테마 커스텀 로딩 화면을 적용했습니다. - 실시간 로더별 모드 수 오버레이: 로딩 화면 상단에 로더별(
Fabric,Forge,NeoForge,Quilt,Poly) 및 통합 모드 수를 실시간으로 보여주는 커스텀 뱃지 UI를 탑재했습니다. - 타 로더 조기 로딩 창 및 모드 수 표기 차단: Forge 및 NeoForge의 고유 조기 진행 윈도우(
earlyprogresswindow)를 끄고, 타이틀 화면 브랜딩 문자열에서 타 로더 모드 수 표기((X mods loaded)등)를 완전히 제거했습니다. - Forge 및 NeoForge 환경에서의 Fabric API 호환성 대폭 강화:
fabric-item-api-v1,fabric-registry-sync-v0,fabric-content-registries-v0(FluidWrap),fabric-data-generation-api-v1,fabric-entity-events-v1(BedWrap),fabric-object-builder-api-v1(AttributeBuilderBridge) 및 Priority 3 모듈을 호스트 패치에 맞추어 자동 적응하도록 브릿지를 구축하여 충돌 없이 함께 실행됩니다. - 브랜드 정체성 및 사이트 신뢰성 강화: 공식 명칭을 "Poly"로 단일화하고, 런처가 아닌 마인크래프트 내부 바이트코드 변환 엔진 정체성을 명시하였으며, 보안 검증(SHA-256, 코드 서명) 체계를 보강했습니다.
Full changes
Fabric and Quilt mods next to a host loader
- Adapted
fabric-content-registries-v0: addedFluidWrap(@WrapOperationbridge) adaptations inHostPatchAdjustmentsand injection point replacements inForgeInjectionPointsfor Forge's custom fluid patches acrossAbstractBoat(checkInWater&isUnderwater->canBoatInFluid),Entity(updateSwimming->isInWaterOrSwimmableandcanStartSwimming;isVisuallyCrawling->isInWaterOrSwimmable), andLivingEntity(travelInFluid->travelInFluid(Vec3, FluidState),baseTick->ForgeHooks.onLivingBreathe, andaiStep->jumpInFluid), filtering out dangling MixinExtras@Expression/@Definitionsannotations. The number of Fabric API modules blocked byPOLY-COMPAT-224under MinecraftForge drops to 2 (fabric-item-api-v1,fabric-registry-sync-v0). - Adapted
fabric-data-generation-api-v1: added compound method & point retargeting forPlacement.IN_METHODinHostPatchAdjustmentsand injection point replacements inForgeInjectionPointsfor Forge's tag saving lambda changes onTagsProvider.lambda$run$5(DataProvider.saveStable->lambda$run$6, andTagFile.<init>(List, boolean)->lambda$run$6:TagFile.<init>(List, boolean, List)), allowing Fabric API's tag-building injectors to cleanly adapt across MinecraftForge. The number of Fabric API modules blocked byPOLY-COMPAT-224under MinecraftForge drops to 3 (fabric-content-registries-v0,fabric-item-api-v1,fabric-registry-sync-v0). - Adapted
fabric-entity-events-v1: added@WrapOperation bridgeadaptations inHostPatchAdjustmentsand injection point replacements inForgeInjectionPointsfor Forge's bed patches onLivingEntity(getBedOrientation->BlockState.getBedDirection,lambda$stopSleeping$0->BlockState.setBedOccupied), routing Fabric API'sEntitySleepEvents.MODIFY_SLEEPING_DIRECTIONandEntitySleepEvents.SET_BED_OCCUPATION_STATEcleanly across MinecraftForge. The number of Fabric API modules blocked byPOLY-COMPAT-224under MinecraftForge drops to 4 (fabric-content-registries-v0,fabric-data-generation-api-v1,fabric-item-api-v1,fabric-registry-sync-v0). - Adapted
fabric-object-builder-api-v1: addedAttributeBuilderBridgeto bridgeAttributeSupplierBuilderAccessor.getBuilder()(ImmutableMap.Builder) with Forge/NeoForge'sMapfield onAttributeSupplier$Builder, adapted the@AccessorviaPOLY-COMPAT-212inHostAddedMembers, and injected the bridge method and interface viaFabricClassTransformer. The number of Fabric API modules blocked byPOLY-COMPAT-224under MinecraftForge drops to 5. - Priority 3 Fabric API native patch adaptations: supported equivalent collection getters in
HostAddedMembers(allowingTagFile.remove()on Forge and NeoForge to be served by the host's record component accessor, resolvingfabric-tag-api-v1withPOLY-COMPAT-212), addedsameReturnTyperetargeting for@ModifyExpressionValueinHostPatchAdjustments, and added NeoForge 3-argBlockParticleOptionconstructor retarget rules forEntity.spawnSprintParticleandLivingEntity.checkFallDamage(fabric-particles-v1). The number of Fabric API modules blocked byPOLY-COMPAT-224under MinecraftForge drops to 6. - Before the dependency check,
HostPatchCheckasks each bridge which mods cannot run as written on the host's patched classes (ModLoaderBridge.hostIncompatibilities, read from the host's jars, no class defined); those get a blockingPOLY-COMPAT-224with every mixin and reason, and the mods that need them are left out with114. Every copy of a mod (installed and nested, in different versions) is checked. - Kept, because the mixin still works as written: injections moved to where the host put the same point, bridges for added or reordered parameters, calls with trailing arguments, calls moved into a helper (new information code
POLY-COMPAT-226), members the patch added with the same code and renamed locals (212), receiver guards (222). - Removed: forcing every injector of those mods to
require = 0and local capture toCAPTURE_FAILSOFT, leaving mixins out of their configuration, taking injector annotations off, renaming mixin methods (213) and accessors that throw when called (214).138,213and214are retired. - The comparison now also sees slice boundaries the patch removed, injection points the patch moved out of a slice,
NEWof a constructor the patch no longer calls, and, for a selector without a descriptor, only the first method of that name, as Mixin picks it (NeoForge'sBaseContainerBlockEntity.setItem(int, ItemStack)now calls a new overload that holds the vanilla body). - A failure the check before the launch did not foresee is no longer skipped: the second check before Mixin starts stops the launch, and a Mixin error in the game keeps Mixin's action, as under Fabric Loader. Both are reported as Poly Mod Loader's (
POLY-COMPAT-225), with the mod to remove. - 26.2, game test server (headless, 2026-10-25; 26.1 and 26.1.2 not run again):
corpusFabricForgeloads 42 foreign mods and leaves out 124 (before: 91 and 75), 14 of them with224(10 Fabric API modules, Architectury, Balm, Lithium, Puzzles Lib);corpusFabricNeoForgeloads 28 Fabric mods (before: 54), 16 Fabric API modules with224;corpusFabricOnNeoForge37 (before: 96). Next to NeoForge, Fabric API's resource loader is left out, so most Quilt mods' data packs are no longer enabled (corpusQuiltNeoForge), and Fabric API's registry sync no longer registers itsfabric:channels (corpusFabricNeoForgeJoin).forgeFabricApiGameTestno longer shows Fabric's block break events next to Forge, because the modules behind them are left out. Every run creates, tests and saves its world with no Mixin error.
Install: run PolyModLoader-1.2.2.jar (Java 17 or newer) on any system; on Windows without Java, run PolyModLoader-1.2.2.exe.
설치: 어느 시스템에서나 PolyModLoader-1.2.2.jar(Java 17 이상)를 실행합니다. Java가 없는 Windows에서는 PolyModLoader-1.2.2.exe를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.
Poly Mod Loader 1.2.1
Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3
Highlights
- 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. The window still opens in your system's language.
주요 변경
- 설치 프로그램 창 오른쪽 위에 언어 메뉴가 생겼습니다. English와 한국어를 언제든 바꿀 수 있고, 입력한 값은 그대로 남습니다. 창은 여전히 시스템 언어로 열립니다.
Full changes
Installer
InstallerWindow.Language: the window starts inLanguage.system(); choosing another language rebuilds the window in place and carries over the target, Minecraft version, folders, memory sizes, check boxes, the Advanced section and the log. The menu is disabled while an install runs.
Building from source
- The public source repository holds the loader's source and build:
examples/,test-mods/,docs/and the CI workflows are not in it. Withoutexamples/andtest-mods/the build includes neither; the loader, the installer and the unit tests build, and the game test tasks that need those mods stop with a message. - Minecraft asset downloads no longer fail when several projects fill the shared cache at once on a fresh machine (Windows refused the second move of the same file); I/O errors and HTTP 429/5xx answers are retried.
Install: run PolyModLoader-1.2.1.jar (Java 17 or newer) on any system; on Windows without Java, run PolyModLoader-1.2.1.exe.
설치: 어느 시스템에서나 PolyModLoader-1.2.1.jar(Java 17 이상)를 실행합니다. Java가 없는 Windows에서는 PolyModLoader-1.2.1.exe를 실행합니다.
NOT AN OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.