Tags
Creators
Details
All versions
3.0.0+fabric-1.21.1
Release
3.0.0 · fabric · 1.21.1yesterday 172
Compatibility
Minecraft: Java Edition
1.21.1
Platform
Fabric
Supported environments
Client and server
Changes
[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.@Commenttext and@Rangebounds 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/reloadIfChangedandJsonMigratormigrations are supported. - Platform facade (
tn.naizo.jauml.platform):Platform(loader, physical side, game and config directories, Minecraft version, mod versions with range checks) andServices.loadfor a mod's ownMETA-INF/servicesimplementations. Replaces the per-mod MultiLoaderServices/IPlatformHelpercopy. - Server events and scheduler (
tn.naizo.jauml.server):ServerEvents(starting, started, stopping, stopped, tick start/end,currentServer()),PlayerEvents(join, leave) andScheduler(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) andCooldowns(per-key cooldowns on any clock). PlatformProviderdefault 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=trueboot 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.isCompatibleaccepts 2.x requirements (API_BASELINE_MAJOR = 2).JaumlConfigLibstays deprecated but is no longer marked for removal; its signatures are pinned by a test.Constants.MOD_VERSIONreadsJaumlConfig.LIBRARY_VERSION, and a test fails if it drifts fromgradle.properties.- Platform providers are loaded once and shared (
PlatformUtil,JaumlInitializerandJaumlConfigno longer each scanServiceLoader). - 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).
Optional dependencies
Any compatible version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ihvBalM2:q27S13F7"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ihvBalM2:q27S13F7"
}

