Tags
Creators
Details
All versions
2.3.0+neoforge-26.2
Release
2.3.0 · neoforge · 26.22 weeks ago 122
Compatibility
Minecraft: Java Edition
26.2
Platform
NeoForge
Supported environments
Client and server
Changes
[2.3.0] - 2026-09-10
Added
ConfigFile:asJsonObject()/getRoot()returning a deep clone of the root JSON object.ConfigFile: Path-based accessors —getByPath,setByPath,getStringByPath,getIntByPath,getBooleanByPath,getDoubleByPath(with default-value overloads).ConfigFile:setBackupRotation(int)for multi-generation.bakrotation on corrupted config recovery.ConfigFile:reloadIfChanged()to reload only when file size or mtime changed.ConfigFile:setStableSave(boolean)opt-in deterministic save viaJsonLib.stableStringify.JaumlConfig:invalidate(String, String),invalidate(Path), andclearCache()for cache management.JsonMigrator:setPreferredVersionKey(String)to control which version key is read and updated during migration.JsonLib:detectVersion(JsonElement, String preferredKey)overload checking a preferred key first.JaumlInitializer:initializeWithDemoConfig()for explicit demo config workflow;initialize()now skips demo config write in production.JsonSchema: Optional constraint keywords —enum,minimum/maximum,minLength/maxLength,additionalProperties: false, andminItems/maxItems. Schemas that omit these keywords behave exactly as before.tn.naizo.jauml.util: Optional utility package —PlatformUtil,JaumlLogger,ModuleVersion, andLifecyclehelpers. Additive only; core config API unchanged.
Changed
- Build (Phase 4): Explicit
compileOnlyGson and SLF4J API dependencies in all MultiLoader workspaces;26.1.2migrated frombuildSrcto compositebuild-logic(aligned with26.2). SeeBUILD.md. ConfigFile:save()now writes atomically via a temp file andFiles.move(withATOMIC_MOVEwhen supported).JaumlInitializer:initialize()logs compatibility and library version but only writes demo config in development environments or when-Djauml.writeDemoConfig=true.- Version alignment:
LIBRARY_VERSION, all workspacegradle.properties, and allMOD_VERSIONconstants bumped to 2.3.0. - README: Fixed usage example to use
asJsonObject()and typed getters instead of nonexistentconfig.get().
Fixed
- Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
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:XEi7C6CK"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ihvBalM2:XEi7C6CK"
}

