Skip to content

Releases: xyrz47-spec/Plexus-Mod-Loader

Plexus Mod Loader 1.5.0

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 31 Oct 06:29

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 is plexusmodloader-<Minecraft version>, the server jar is plexusmodloader-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 PolySystem type, the poly dependency 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 key polymodloader-<minecraft> → plexusmodloader-<minecraft>; install moves a 1.4.x profile, uninstall removes both.
  • Dedicated server jar polymodloader-server.jar → plexusmodloader-server.jar, default server folder Plexus Mod Loader Server.
  • SLF4J logger and log prefix Poly Mod Loader → Plexus Mod Loader; built-in transform rule, event and system IDs poly:* → plexus:* (system poly:game_brand is still accepted).
  • System properties poly.* → plexus.* (a poly.* property is copied to its plexus.* name at launch); report and cache folder .poly/ → .plexus/; world backup files config/plexus/ and <world>/plexus/ (1.4.x files are read when the new ones do not exist yet).
  • Public API PolySystem → PlexusSystem; classes compiled against PolySystem (either package) are remapped at class load.
  • Gradle plugin: polyResources → plexusResources, tasks generatePlexusResources, checkPlexusResources, validatePlexusModJson, newPlexusMod, initPlexusMod, properties plexusMinecraft, 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, packages dev.polymodloader.*, plugin ID dev.polymodloader.mod, SDK group dev.polymodloader (existing versions), dependency ID poly, and the structure piece ID poly:code_structure_piece saved 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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 30 Oct 14:29

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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 30 Oct 12:16

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.json first, while retaining 100% backward compatibility for existing mods with poly.mod.json.
  • Updated game brand system ID to plexus:game_brand, with seamless alias fallback for poly:game_brand and default brand string plexus.
  • Runtime mod ID now recognizes plexus in mod dependency declarations while continuing to support poly.

주요 변경

  • 인게임 브랜딩, 초기 로딩 창 및 게임 윈도우 타이틀을 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 Plexus mod counts.
  • Updated title screen mod count translation keys to display "Plexus mods" (English) and "Plexus 모드" (Korean).
  • GameBrandSystem.ID is now plexus:game_brand with GameBrandSystem.LEGACY_ID (poly:game_brand) mapped transparently in system replacement resolution.
  • ModFileScanner now checks plexus.mod.json first and falls back to poly.mod.json for native mods.
  • ModDependencyResolver supports both plexus and poly as 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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 29 Oct 15:24

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 by clientWorldReloadTest on 26.2 and 26.3, neoForgeClient and forgeClient on 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-v1 14.5.0+poly.neoforge.26.2 in poly-fabric-api-neoforge-v26_2), replacing the original on POLY-COMPAT-224 under NeoForge 26.2.0.93. Replaced FabricItemImpl with ItemTooltipHandlerMixin, added ClientItemEventHooks, declared getOrDefault in DataComponentMapBuilderMixin, and prioritized EnchantmentEvents.ALLOW_ENCHANTING in IItemExtensionMixin. Modules now compile against NeoForge's patched client jar via installNeoForgeClient and ClassTweakedJarTask. HostPatchAdjustments now recognizes mod interfaces extending host interfaces as overriding defaults (POLY-COMPAT-226). corpusFabricNeoForge 26.2 improved to 47 loaded / 69 excluded (was 46 / 70, 3 224 modules left), corpusFabricOnNeoForge to 81 / 77 (was 78 / 80), and corpusFabricNeoForgeClientMixins verified 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). corpusFabricNeoForge 26.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-v1 3.1.0+poly.neoforge.26.2 in poly-fabric-api-neoforge-v26_2), allowing HostModules to replace the module on POLY-COMPAT-224 under NeoForge 26.2.0.93; corpusFabricNeoForge 26.2 improved to 46 loaded / 70 excluded (was 45 / 71) with 4 224 exclusions remaining. Updated ModLinkVerifier to inspect host-patched jars before vanilla jars, identifying that fabric-biome-api-v1 accesses ChunkGenerator.featuresPerStep as a Supplier against Forge's ClearableLazy field and excluding it with POLY-COMPAT-112; corpusFabricForge is now 85 / 81 on 26.2 (was 86 / 80) and 84 / 82 on 26.3 (was 85 / 81), and corpusQuiltForge 26.3 is 97 / 84 (was 98 / 83).
  • ADR-0031에 따라 첫 호스트 모듈(fabric-block-api-v1 3.1.0+poly.neoforge.26.2, 모듈 poly-fabric-api-neoforge-v26_2)을 탑재하여 NeoForge 26.2.0.93에서 원본 모듈이 POLY-COMPAT-224로 제외될 때 HostModules가 대체하도록 했습니다. corpusFabricNeoForge 26.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), corpusQuiltForge 26.3은 97 / 84(이전 98 / 83)가 되었습니다.
  • Fixed NeoForge stopping with POLY-COMPAT-208 (NoSuchMethodError: FabricLoaderImpl.setup()) when Forgified Fabric API was installed due to its nested forgified-fabric-loader FML plugin. Poly Mod Loader now patches FMLLoader.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 in COMPATIBILITY.md.
  • Forgified Fabric API 설치 시 중첩된 forgified-fabric-loader FML 플러그인이 자체 로더를 구동하여 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-v1 loads. An @Inject in RegistryLoadTask$PendingRegistration.loadFromResource moves before NeoForge's conditional codec call (NeoForgeInjectionPoints), checking Fabric conditions first. A new bridge (HostConditionalSkip) in SimpleJsonResourceReloadListener (also its scanDirectoryWithModifier, which RecipeManager uses) converts Fabric's skip marker to DataResult.success(Optional.empty()), matching NeoForge's skip and dropping the head handler; other shapes remain POLY-COMPAT-224. New task neoForgeFabricApiGameTest passes. corpusFabricNeoForge loads 45 foreign mods (was 44 / 72; 5 modules left out with 224), corpusFabricNeoForgeClientMixins loads 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, 224 5개 모듈), corpusFabricNeoForgeClientMixins는 108개 설정의 대상 클래스 747개를 실패 0개로 로드했습니다. 26.3은 변동 없이 유지됩니다(43 / 73, 7개 모듈 제외).
  • With NeoForge (26.2 and 26.3): Fabric API's fabric-crash-report-info-v1 loads. NeoForge moved ServerWatchdog.createWatchdogCrashReport into createWatchdogCrashReport(String, long, String) calling ThreadInfoUtil.getEntireStacktrace(threadInfo). A @WrapOperation bridge (HostThreadDump) runs Fabric's printEntireThreadDump handler; only a static (Object)Object handler calling ThreadPrinting.fullThreadInfoToString is bridged (POLY-COMPAT-224 otherwise). corpusFabricNeoForge loads 44 foreign mods on 26.2 (was 43 / 73, 6 left out with 224) and 43 / 73 on 26.3 (was 42 / 74, 7 left out) without POLY-COMPAT-225. corpusFabricNeoForgeClientMixins loads 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, 224 6개), 26.3에서 43 / 73개(전에는 42 / 74, 224 7개)이며 POLY-COMPAT-225는 없습니다. corpusFabricNeoForgeClientMixins는 107개 설정의 대상 클래스 744개를 실패 0개로 로드했습니다. 감시견 자체는 게임에서 트리거되지 않았습니다.
  • Before launch, HostPatchAdjustments now compares bytecode when checking conflicting interface default methods added by Fabric mixins and host ...
Read more

Poly Mod Loader 1.3.0

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 28 Oct 11:54

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.2 and Minecraft NeoForge* 26.3 before), 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 local level to levelx only 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 @Local captures 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's asValidTarget call moves to the target of Forge's LivingChangeTargetEvent, 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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 28 Oct 07:10

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.drop follows Forge's ForgeHooks.onPlayerTossEvent, and its @Local capture is matched by the vanilla local's name where Forge added a second local of the same type.
  • With Forge, Fabric injections into PersistentEntitySectionManager.addEntity move into Forge's addEntityWithoutEvent, which holds the vanilla body.
  • With NeoForge, Fabric API's registry sync @Inject at Bootstrap.wrapStreams() moves to GameData.vanillaSnapshot(), which NeoForge calls there instead. fabric-registry-sync-v0 is 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 with POLY-COMPAT-208 before 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-224 when Forge's patch made a call it redirects static or instance (All Stacks Infinite's consumeFuel), or changed the type of a field it @Shadows (Dwarfs and Giants' RangedBowAttackGoal.mob). Before, Mixin stopped the game with POLY-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 in ConditionCodec, so the call Fabric API's loot table hook wraps returns an Optional; the hook now runs through a bridge that hands it the table and gives Forge back its Optional, so Forge's condition check and onJsonDataParsed still 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 with NoSuchFieldError: 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 frozen flag) 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 new POLY-COMPAT-227 before those mods run. corpusQuiltForge on 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 it fabric-object-builder-api-v1. Forge 66's data generators read RegistryDataLoader.getWorldAndDimensionRegistries() where vanilla reads WORLD_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). corpusFabricForge on 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.3 corpusQuiltForge가 통과합니다(외부 모드 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.3 corpusFabricForge는 외부 모드 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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 27 Oct 13:15

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 .jar for every system (Java 17 or newer); the Windows .exe is 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 in neoforge.mods.toml load again. Since 1.2.2 they were left out with POLY-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() to AttributeSupplier$Builder also without Forge or NeoForge, and Mixin then refused Fabric API's accessor in Bootstrap.validate. Now only Forge's and NeoForge's patched class gets it.
  • With Forge or NeoForge, Fabric API's getBuilder() on AttributeSupplier$Builder no longer throws LinkageError (loader constraint violation on Guava's ImmutableMap$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.openMenu now has the two calls NeoForge really moved (closeContainer() and send(Packet)), and the other three are removed. NeoForgeInjectionPointsTest checks 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 with POLY-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(Guava ImmutableMap$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>.jar only, on every platform (Java 17 or newer). The Windows .exe and its Rust launcher are gone, and releases attach the jar and SHA256SUMS.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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 26 Oct 14:47

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-in Component.literal and ChatFormatting pipeline across poly-game-v26_1, poly-game-v26_2, and poly-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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 26 Oct 13:33

Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3

Highlights

  • Dedicated custom Poly loading screen (PolyLoadingOverlay): runs a sleek dark #0E131F loading 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, and Poly) 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: added FluidWrap (@WrapOperation bridge) adaptations in HostPatchAdjustments and injection point replacements in ForgeInjectionPoints for Forge's custom fluid patches across AbstractBoat (checkInWater & isUnderwater -> canBoatInFluid), Entity (updateSwimming -> isInWaterOrSwimmable and canStartSwimming; isVisuallyCrawling -> isInWaterOrSwimmable), and LivingEntity (travelInFluid -> travelInFluid(Vec3, FluidState), baseTick -> ForgeHooks.onLivingBreathe, and aiStep -> jumpInFluid), filtering out dangling MixinExtras @Expression / @Definitions annotations. The number of Fabric API modules blocked by POLY-COMPAT-224 under MinecraftForge drops to 2 (fabric-item-api-v1, fabric-registry-sync-v0).
  • Adapted fabric-data-generation-api-v1: added compound method & point retargeting for Placement.IN_METHOD in HostPatchAdjustments and injection point replacements in ForgeInjectionPoints for Forge's tag saving lambda changes on TagsProvider.lambda$run$5 (DataProvider.saveStable -> lambda$run$6, and TagFile.<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 by POLY-COMPAT-224 under MinecraftForge drops to 3 (fabric-content-registries-v0, fabric-item-api-v1, fabric-registry-sync-v0).
  • Adapted fabric-entity-events-v1: added @WrapOperation bridge adaptations in HostPatchAdjustments and injection point replacements in ForgeInjectionPoints for Forge's bed patches on LivingEntity (getBedOrientation -> BlockState.getBedDirection, lambda$stopSleeping$0 -> BlockState.setBedOccupied), routing Fabric API's EntitySleepEvents.MODIFY_SLEEPING_DIRECTION and EntitySleepEvents.SET_BED_OCCUPATION_STATE cleanly across MinecraftForge. The number of Fabric API modules blocked by POLY-COMPAT-224 under 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: added AttributeBuilderBridge to bridge AttributeSupplierBuilderAccessor.getBuilder() (ImmutableMap.Builder) with Forge/NeoForge's Map field on AttributeSupplier$Builder, adapted the @Accessor via POLY-COMPAT-212 in HostAddedMembers, and injected the bridge method and interface via FabricClassTransformer. The number of Fabric API modules blocked by POLY-COMPAT-224 under MinecraftForge drops to 5.
  • Priority 3 Fabric API native patch adaptations: supported equivalent collection getters in HostAddedMembers (allowing TagFile.remove() on Forge and NeoForge to be served by the host's record component accessor, resolving fabric-tag-api-v1 with POLY-COMPAT-212), added sameReturnType retargeting for @ModifyExpressionValue in HostPatchAdjustments, and added NeoForge 3-arg BlockParticleOption constructor retarget rules for Entity.spawnSprintParticle and LivingEntity.checkFallDamage (fabric-particles-v1). The number of Fabric API modules blocked by POLY-COMPAT-224 under MinecraftForge drops to 6.
  • Before the dependency check, HostPatchCheck asks 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 blocking POLY-COMPAT-224 with every mixin and reason, and the mods that need them are left out with 114. 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 = 0 and local capture to CAPTURE_FAILSOFT, leaving mixins out of their configuration, taking injector annotations off, renaming mixin methods (213) and accessors that throw when called (214). 138, 213 and 214 are retired.
  • The comparison now also sees slice boundaries the patch removed, injection points the patch moved out of a slice, NEW of 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's BaseContainerBlockEntity.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): corpusFabricForge loads 42 foreign mods and leaves out 124 (before: 91 and 75), 14 of them with 224 (10 Fabric API modules, Architectury, Balm, Lithium, Puzzles Lib); corpusFabricNeoForge loads 28 Fabric mods (before: 54), 16 Fabric API modules with 224; corpusFabricOnNeoForge 37 (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 its fabric: channels (corpusFabricNeoForgeJoin). forgeFabricApiGameTest no 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

Choose a tag to compare

@xyrz47-spec xyrz47-spec released this 25 Oct 04:28

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 in Language.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. Without examples/ and test-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.