All versions
1.0.3
Release
MilkyWayLib 1.0.33 weeks ago 1,422
Compatibility
Minecraft: Java Edition
1.21.1
Platform
NeoForge
Supported environments
Client and server
Changes
1.0.3
API Changes
- Added
net.galaxihd.milkywaylib.util.DatapackDiagnostics: one place for datapack loaders to report file problems (unknown fields, unknown ids, bad values). Every problem is logged and kept so a command can list it in-game. Each loader clears its own source on reload MobVariantManager,ItemTimerExtenderManager,DatapackKeywordManager,DatapackLootPoolManagerandRoomTemplateManagernow report through it instead of silently skipping or falling back. Files merge in sorted id order, soreplace/last-wins results are deterministic. An unknown item id in a timer extender is now skipped instead of registering Air- Added
RoomTemplateManager(String folderName, Set<String> extraKnownKeys)so consumers can declare their own extra template fields without them being flagged as unknown, plusDatapackLootPoolManager.knownConditions(...) - Added
ProceduralChunkGenerator.reloadStamp()andDormantWakeEngine.scanDue(tickCount, entityId, interval) ItemTimerExtenderManageris deprecated: prefer a NeoForge item data map. It still works
Performance
ProceduralChunkGenerator's edge cache is now a bounded table (64K slots per world seed) instead of an unbounded map behind a global lock, which grew without limit over long sessions. Generated worlds are identicalContagionSpreadLogicandDormantWakeEngineno longer load chunks while scanning; dormant-wake scans are staggered per entity (same 20-tick cadence)
Fixes
- Fixed exiting a world hanging forever on the saving screen with Create installed.
MultiblockCrackSyncread block states without checking the chunk was loaded; a Create drill or saw clearing its crack during shutdown, next to an unloaded chunk, made the server thread wait for a chunk load that never comes (reported by Kwerz). It now skips unloaded chunks
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:3xkG1Dfb:kUIG1El5"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:3xkG1Dfb:kUIG1El5"
}

