COWMODSКаталог модов

Jauml

The shared library behind NightBeam mods: typed JSON configs with comments, server events and a tick scheduler, and one platform API for Fabric, NeoForge and Forge on 1.20.1, 1.21.1, 26.2 and 26.3.

Автор: NAIZO200,4 тыс.12обновлён 23 окт. 2026 г.
БиблиотекиОптимизацияУтилиты

Описание

Jauml 3.0

The common library behind NightBeam mods

Jauml (Just Another Utility Minecraft Library) holds the code our mods share: typed JSON configs with comments, server events with a tick scheduler, and one platform API for Fabric, NeoForge and Forge.

Playing? If a mod asks for Jauml, put the jar for your loader and Minecraft version in your mods folder. It adds nothing to the game by itself.

3.0 is available for Fabric, NeoForge and Forge on 1.20.1, 1.21.1, 26.2 and 26.3. Mods built for Jauml 2.x keep working on it.

divider

Typed configs

Write a class. Get a config.

Write your settings as a plain Java class and bind it with JaumlConfig.bind("my_mod", "common", MyConfig.class).

  • Comments in the file. @Comment text, @Range bounds, allowed enum values and defaults are written as // lines above each option. Players can add their own comments too; the file still loads.
  • Safe loading. Missing options get their defaults, values of the wrong type are converted or reset, and numbers outside their range are clamped, each with a warning in the log.
  • Nested sections from nested classes, plus lists and maps. Map entries a player removes stay removed.
  • Live updates. reload(), reloadIfChanged(), update(...) and change listeners. A file that breaks while the game runs keeps the last good values; one that breaks before startup is moved to .bak and replaced with defaults.
  • Migrations run before binding, so renamed or moved options carry over.

Server events

Hook the server on every loader

  • ServerEvents: starting, started, stopping, stopped, tick start and tick end, for dedicated and singleplayer servers. ServerEvents.currentServer() returns the running server.
  • PlayerEvents: join and leave.
  • Scheduler: runLater, runRepeating and queueServerWork (the MCreator work queue, same meaning), always on the server thread. Pending tasks are dropped when the server stops.
  • One listener works on Fabric, NeoForge and Forge. Start a server with -Djauml.selfTest=true to see every event in the log; the card above shows that log from a NeoForge 26.3 boot.

Platform

One API. Three loaders.

  • Services.load(IMyHelper.class) loads your own loader-specific implementations, so you can delete the copy of the MultiLoader Services class from your mod.
  • Platform: the loader, physical client or dedicated server, development environment, game and config directories, the Minecraft version, and the version and name of any loaded mod.
  • Version-aware integrations: Platform.isModLoaded("geckolib", ">=4.4") and Platform.isMinecraft(">=26.2").

JSON toolkit

Every config you already have

The 2.x config API is all still here:

  • ConfigFile via JaumlConfig.open(...): typed getters, dot paths such as server.port or users[0].name, lists, atomic saves, reload on change and backups of broken files.
  • JsonSchema for type, range, enum, length and required-key checks, JsonMigrator for versioned upgrades, and JsonLib for safe parsing, deep merge, normalization and stable output.
  • JaumlConfigLib, the static helpers older mods call, keeps every method and signature for the whole 3.x line.

Utilities

The helpers you keep rewriting

  • Cooldowns: per-player (or per-anything) cooldowns on wall-clock time or server ticks.
  • Version and VersionRange: compare 1.20.1, 26.3.0.95-beta or 0.165.0+26.3, and check ranges written as [2.1,3), >=2.1 <3, ~2.3, ^2, 1.x or a || b.
  • Event: a small listener list with priorities for your own events.

Downloads & compatibility

Every version. Every loader.

MinecraftLoadersJavaAlso install
1.20.1Fabric, Forge17Fabric API (Fabric, recommended)
1.21.1Fabric, NeoForge21Fabric API (Fabric, recommended)
26.2 · 26.3Fabric, NeoForge25Fabric API (Fabric, recommended)
  • Download the file that matches your loader and Minecraft version, for example jauml-fabric-26.3-3.0.0.jar.
  • Install it wherever the mod that needs it is installed: client, server or both.
  • On Fabric, configs work without Fabric API; server events and the scheduler need it, and Jauml logs a warning when it is missing. Fabric on 1.20.1 needs Fabric Loader 0.16.10 or newer.
  • Updating from 2.x: replace the old jar. Your config files and the mods that use them carry on as before.
  • Minecraft 1.21.11 or 26.1.2? Keep Jauml 2.3.1; 3.0 is not built for those versions.

Getting started

Jauml is on the Modrinth Maven. Use the version number shown on the Versions tab, which ends in your loader and Minecraft version:

repositories {
    maven { url = "https://api.modrinth.com/maven" }
}

dependencies {
    // Fabric 1.20.1 / 1.21.1 and Forge 1.20.1 remap mod jars:
    modImplementation "maven.modrinth:jauml:3.0.0+fabric-1.21.1"
    // NeoForge, and Fabric on 26.x (unobfuscated):
    implementation "maven.modrinth:jauml:3.0.0+neoforge-26.3"
}

Then declare it in fabric.mod.json ("jauml": ">=3.0.0") or neoforge.mods.toml / mods.toml (versionRange = "[3.0.0,)"). The migration guide walks through every API with examples.

Questions

Does Jauml do anything on its own? No. It is a library: it loads, writes one small demo config in development environments only, and waits for mods that use it.

Do I need it on the server and the client? Install it wherever the mod that requires it is installed. Jauml itself sends nothing over the network.

Will my mods that were built for Jauml 2.x still work? Yes. 3.0 removes nothing from 2.x and changes no signature; a test in the build pins every method released mods call.

Where are the configs? In your config folder, under the folder each mod chose, for example config/my_mod/common.json.

Where are the docs? Source and README · Migration guide · Changelog · Roadmap · Issues

Where can I talk to you? Discord · YouTube · More NightBeam mods on Modrinth and CurseForge · Support us


Jauml is licensed under Apache-2.0. Made by NightBeam Studio.

Последние версии

Все версии →
release

3.0.0 · neoforge · 26.3

3.0.0+neoforge-26.3
23 окт. 2026 г.110Minecraft: 26.3neoforge
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

3.0.0 · fabric · 26.3

3.0.0+fabric-26.3
23 окт. 2026 г.395Minecraft: 26.3fabric
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

3.0.0 · neoforge · 26.2

3.0.0+neoforge-26.2
23 окт. 2026 г.81Minecraft: 26.2neoforge
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

3.0.0 · fabric · 26.2

3.0.0+fabric-26.2
23 окт. 2026 г.248Minecraft: 26.2fabric
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

3.0.0 · neoforge · 1.21.1

3.0.0+neoforge-1.21.1
23 окт. 2026 г.577Minecraft: 1.21.1neoforge
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

3.0.0 · fabric · 1.21.1

3.0.0+fabric-1.21.1
23 окт. 2026 г.270Minecraft: 1.21.1fabric
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

3.0.0 · forge · 1.20.1

3.0.0+forge-1.20.1
23 окт. 2026 г.692Minecraft: 1.20.1forge
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

3.0.0 · fabric · 1.20.1

3.0.0+fabric-1.20.1
23 окт. 2026 г.202Minecraft: 1.20.1fabric
Скачать
Что нового
## [3.0.0] - 2026-10-23 JAUML grows from a JSON config library into the common library for NightBeam mods. Every 2.x API is kept with unchanged signatures; mods built against 2.x keep working. ### Added - **Typed configs** (`tn.naizo.jauml.config`): `JaumlConfig.bind(subdir, name, MyConfig.class)` binds a plain Java class to a JSON file. `@Comment` text and `@Range` bounds are written as `//` comment lines, comments are accepted when reading, missing keys get defaults, wrong types are coerced, out-of-range values are clamped, and change listeners, `update`, `reload`/`reloadIfChanged` and `JsonMigrator` migrations are supported. - **Platform facade** (`tn.naizo.jauml.platform`): `Platform` (loader, physical side, game and config directories, Minecraft version, mod versions with range checks) and `Services.load` for a mod's own `META-INF/services` implementations. Replaces the per-mod MultiLoader `Services`/`IPlatformHelper` copy. - **Server events and scheduler** (`tn.naizo.jauml.server`): `ServerEvents` (starting, started, stopping, stopped, tick start/end, `currentServer()`), `PlayerEvents` (join, leave) and `Scheduler` (`runLater`, `runRepeating`, `queueServerWork`), fired from Fabric API, NeoForge and Forge events. - **`Event<T>`** (`tn.naizo.jauml.event`): a small prioritized listener list for mods' own events. - **Utilities**: `Version`/`VersionRange` (Maven ranges, comparators, `~`/`^`, wildcards) and `Cooldowns` (per-key cooldowns on any clock). - **`PlatformProvider`** default methods: `getGameDirectory`, `isPhysicalClient`, `getModVersion`, `getModName`, `getLoadedModIds`, `getMinecraftVersion`. - Root Gradle build (`./gradlew buildAll`, `testAll`, `cleanAll`, `syncVersion -PmodVersion=x.y.z`) and a CI workflow that tests and builds every workspace. - `-Djauml.selfTest=true` boot check that logs every server event and a scheduler run, plus GameTest server runs (`runGameTestServer`, `runGametest`) in the 26.x loader modules and 1.20.1 Forge to use it without a EULA prompt. ### Changed - **Supported Minecraft versions: 1.20.1, 1.21.1, 26.2 and 26.3.** The 1.21.11 and 26.1.2 workspaces are removed. - Each jar declares only its own Minecraft version (`[26.2,26.3)`, `[26.3,26.4)` instead of `[26.x,27)`). - On Fabric, JAUML recommends Fabric API; without it configs still work and server events stay idle with a warning. - Fabric 1.20.1 now needs Fabric Loader 0.16.10 or newer (the minimum of current Fabric API 0.92.12). - `JaumlConfig.isCompatible` accepts 2.x requirements (`API_BASELINE_MAJOR = 2`). - `JaumlConfigLib` stays deprecated but is no longer marked for removal; its signatures are pinned by a test. - `Constants.MOD_VERSION` reads `JaumlConfig.LIBRARY_VERSION`, and a test fails if it drifts from `gradle.properties`. - Platform providers are loaded once and shared (`PlatformUtil`, `JaumlInitializer` and `JaumlConfig` no longer each scan `ServiceLoader`). - Loader entrypoints no longer log template "Hello world" messages. - **Toolchains**: 26.2 and 26.3 on Gradle 9.8.1, Fabric Loom 1.19.3 and ModDevGradle 2.0.148; Fabric API 0.165.0+26.3 / 0.161.0+26.2 / 0.116.17+1.21.1 / 0.92.12+1.20.1; NeoForge 26.3.0.95 (stable) / 26.2.0.93 / 21.1.264; Forge 47.4.28; Parchment 2024.11.17 for 1.21.1; Fabric Loom 1.10.5 for 1.21.1. ### Removed - Minecraft 1.21.11 and 26.1.2 builds (use JAUML 2.3.1 on those versions).
release

2.3.1 · neoforge · 26.3

2.3.1+neoforge-26.3
30 сент. 2026 г.83Minecraft: 26.3neoforge
Скачать
Что нового
## [2.3.1] - 2026-09-30 ### Added - Minecraft **26.3** MultiLoader workspace (Fabric and NeoForge), matching the existing `26.2` layout. ### Changed - **Version alignment**: `LIBRARY_VERSION`, all workspace `gradle.properties`, and all `MOD_VERSION` constants bumped to **2.3.1**. - **Build (26.3)**: Gradle 9.7.0, Fabric Loom 1.18.2, and ModDevGradle 2.0.148 (required for NeoForge 26.3 artifact generation).
release

2.3.1 · fabric · 26.3

2.3.1+fabric-26.3
30 сент. 2026 г.408Minecraft: 26.3fabric
Скачать
Что нового
## [2.3.1] - 2026-09-30 ### Added - Minecraft **26.3** MultiLoader workspace (Fabric and NeoForge), matching the existing `26.2` layout. ### Changed - **Version alignment**: `LIBRARY_VERSION`, all workspace `gradle.properties`, and all `MOD_VERSION` constants bumped to **2.3.1**. - **Build (26.3)**: Gradle 9.7.0, Fabric Loom 1.18.2, and ModDevGradle 2.0.148 (required for NeoForge 26.3 artifact generation).