All versions
2.0.2
Release
iafdragonfix 2.0.22 months ago 699
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Dedicated servers only
Changes
Changelog
2.0.2 - 2026-08-24
Performance
- Moved dragon roost surface-height resolution out of
findGenerationPoint()so/locate structure iafdragonfix:*_dragon_roostno longer performs terrain-height queries for every scanned candidate chunk. - Moved dragon cave depth resolution out of
findGenerationPoint()as well, removing the previous 20x20OCEAN_FLOOR_WGscan from the/locatehot path. - Added lazy, deterministic Y resolution in
DragonDenPiece.postProcess()so actual world generation still uses the same terrain-derived placement logic when the target chunks are being generated.
Fixed
- Replaced the custom dragon den geometry implementation with Ice and Fire's native dragon cave and dragon roost generation methods.
- Added
ChunkBoundLevelto safely replay Ice and Fire's feature generators inside structure-piece chunk bounds, preventing cross-chunk block writes from being dropped as far-chunk writes. - Ensured dragons are spawned only by the structure pass that owns the resolved den center, preventing duplicate dragons while multi-chunk structure pieces replay generation.
- Added fallback handling for unusable surface heightmap results so surface roost dragons stay at the resolved roost height instead of dropping to the world bottom.
- Moved the spawn-distance check into
findGenerationPoint()so/locatedoes not report structures rejected later duringpostProcess(). - Removed the broken
MixinRandomSpreadPlacement, which crashed during startup because constructor variable injection targeted a record constructor before initialization was valid.
Changed
- Dragon den pieces now persist deterministic den parameters through
DenParams, including radius, cave dragon age, gender, lazy height state, cave depth offset and per-den generation seed. - Dragon den pieces now persist center X/Z independently from their bounding box so lazy Y resolution does not affect structure scheduling.
- Lazy-Y pieces use a broad vertical bounding box while preserving the original X/Z generation radius, allowing the resolved roost or cave height to generate correctly later.
- Fire dragon cave and roost biome tags now include desert biomes plus explicit warm plains entries:
minecraft:plains,minecraft:sunflower_plainsandminecraft:meadow. - Structure-set defaults now match the server config defaults: dragon roosts use
spacing=24,separation=6,frequency=0.6; dragon caves usespacing=32,separation=8,frequency=0.6.
Removed
- Removed unused custom geometry helpers after switching den shape generation back to Ice and Fire's native implementation.
- Removed unused helper methods and imports from the dragon type, feature and mixin classes.
2.0.1 - 2026-08-07
- Initial structure-based dragon den registration with server-configurable placement.
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:4WaVCnfB:U7gBtYLQ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:4WaVCnfB:U7gBtYLQ"
}

