All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Jauml

Jauml

by NAIZO • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

About

Jauml Banner

Support me on Ko-fi

This beta release of Jauml lays a solid foundation for managing mod configurations in Minecraft. Whether you're adding new settings or validating existing ones, this library streamlines the process with clean, maintainable code. It’s an essential tool for mod developers looking to enhance their projects with flexible config options.

YouTube GitHub CurseForge Modrinth

Usage for Developers

Jauml is a library dependency. Players usually install it because another mod requires it.

Step Action
Add dependency Depend on Jauml from your Fabric / Forge / NeoForge build
Create config Define your settings with Jauml’s JSON config helpers
Load on startup Read and validate config when your mod initializes
Save changes Write updates back through the same config layer
Ship with your mod List Jauml as a required dependency on CurseForge / Modrinth

Configuration

Jauml itself is a library. Your mod owns the config files.

Typical pattern:

  • Your mod declares settings through Jauml
  • JSON config files are generated / updated under the usual Minecraft config folder
  • Invalid or missing values can be validated and restored to safe defaults

Example shape (illustrative):

{
  "enabled": true,
  "debug": false,
  "values": {
    "exampleOption": 1
  }
}

Exact keys depend on the mod using Jauml.

Compatibility

  • Singleplayer
  • Multiplayer / dedicated servers (as required by dependent mods)
  • Fabric
  • Forge
  • NeoForge
  • Large modpacks
  • Client + server (library; follow the dependent mod’s side requirements)

Community & Support

License

Jauml is licensed under the Apache License 2.0.

You are free to use, modify, and redistribute Jauml in accordance with the terms of the Apache License 2.0.

Feel free to include Jauml in modpacks.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.3
Neoforge
1d ago 1
26.3
Fabric
1d ago 1
26.2
Neoforge
1d ago 1
26.2
Fabric
1d ago 1
26.1.2
Neoforge
1d ago 1
26.1.2
Fabric
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.20.1
Forge
1d ago 1
1.20.1
Fabric
1d ago 1
26.2
Neoforge
1d ago 1
26.1.2
Neoforge
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Forge
1d ago 1
26.2
Fabric
1d ago 1
26.1.2
Fabric
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.1
Fabric
1d ago 1
1.20.1
Fabric
1d ago 1
26.2
Neoforge
1d ago 1
26.1.2
Neoforge
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Forge
1d ago 1
26.2
Fabric
1d ago 1
26.1.2
Fabric
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.1
Fabric
1d ago 1
1.20.1
Fabric
1d ago 1
26.2
Neoforge
1d ago 1
26.1.2
Neoforge
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Forge Neoforge
1d ago 1
26.2
Fabric
1d ago 1
26.1.2
Fabric
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.1
Fabric
1d ago 1
1.20.1
Fabric
1d ago 1
26.1.2
Neoforge
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Forge Neoforge
1d ago 1
26.1.2
Fabric
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.1
Fabric
1d ago 1
1.20.1
Fabric
1d ago 1
26.1.2
Neoforge
1d ago 1
26.1.2
Fabric
1d ago 1
26.1.1
Neoforge
1d ago 1
26.1.1
Fabric
1d ago 1
26.1
Neoforge
1d ago 1
26.1
Fabric
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.8
Neoforge
1d ago 1
1.21.8
Fabric
1d ago 1
1.21.5
Neoforge
1d ago 1
1.21.5
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.20.1
Forge Neoforge
1d ago 1
1.20.1
Fabric
1d ago 1
1.21.11
Fabric
1d ago 1
1.21.11
Neoforge
1d ago 1
1.21.8
Fabric
1d ago 1
1.21.8
Neoforge
1d ago 1
1.21.5
Fabric
1d ago 1
1.21.5
Neoforge
1d ago 1
1.21.1
Fabric
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Fabric
1d ago 1
1.20.1
Forge Neoforge
1d ago 1
1.21.8
Neoforge
1d ago 1
1.21.5
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Forge Neoforge
1d ago 1
1.19.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.16.5
Forge
1d ago 1
1.21.5
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Forge Neoforge
1d ago 1
1.19.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.16.5
Forge
1d ago 1
1.21.5
Neoforge
1d ago 1
1.21.1
Neoforge
1d ago 1
1.20.1
Forge Neoforge
1d ago 1
1.19.2
Forge
1d ago 1
1.18.2
Forge
1d ago 1
1.16.5
Forge
1d ago 1
1.20.1
Forge
1d ago 1
## [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).
## [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).
## [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).
## [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).
## [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).
## [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).
## [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).
## [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).
## [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).
## [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).
## [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).
## [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).
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
## [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 .bak rotation on corrupted config recovery.
  • ConfigFile**: reloadIfChanged() to reload only when file size or mtime changed.
  • ConfigFile**: setStableSave(boolean) opt-in deterministic save via JsonLib.stableStringify.
  • JaumlConfig**: invalidate(String, String), invalidate(Path), and clearCache() 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, and minItems/maxItems. Schemas that omit these keywords behave exactly as before.
  • tn.naizo.jauml.util**: Optional utility package — PlatformUtil, JaumlLogger, ModuleVersion, and Lifecycle helpers. Additive only; core config API unchanged.

### Changed
  • Build (Phase 4)**: Explicit compileOnly Gson and SLF4J API dependencies in all MultiLoader workspaces; 26.1.2 migrated from buildSrc to composite build-logic (aligned with 26.2). See BUILD.md.
  • ConfigFile**: save() now writes atomically via a temp file and Files.move (with ATOMIC_MOVE when 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 workspace gradle.properties, and all MOD_VERSION constants bumped to **2.3.0**.
  • README**: Fixed usage example to use asJsonObject() and typed getters instead of nonexistent config.get().

### Fixed
  • Documentation and migration guide updated for 2.3.0 compatibility matrix while preserving 2.0 API support.
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-neoforge-26.2-2.1.1.jar
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-neoforge-26.1.2-2.1.1.jar
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-neoforge-1.21.11-2.1.1.jar
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-neoforge-1.21.1-2.1.1.jar
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-forge-1.20.1-2.1.1.jar
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-fabric-26.2-2.1.1.jar
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-fabric-26.1.2-2.1.1.jar
[2.1.1] Jauml 2.1.1 by NAIZO on Oct 18, 2026
Download
## Jauml 2.1.1

### Bug Fixes
  • Fixed Fabric/NeoForge 26.1.2 crash from stub MixinMinecraft missing @Mixin (#3/#4).

### File
  • jauml-fabric-1.21.11-2.1.1.jar
Jauml Icon
Download Jauml
Select game version
Select platform