Repository navigation
Residual vanilla Dirt survives total-conversion terrain replacement #255
Description
Environment
- Minecraft 1.18.2
- Forge 40.3.0
- OreSpawn 4.0.6.118021 (published CurseForge dependency)
- CakeWorld
master-1.18.2, provider revision 56 - CakeWorld
cakeworld:edible_worldtotal-conversion template
Summary
Literal minecraft:dirt survives in fresh CakeWorld chunks after OreSpawn terrain and biome-surface replacement. The remaining blocks are small underground/underwater surface-system pockets surrounded by CakeWorld materials, not minecraft:ore_dirt placed features.
CakeWorld must be able to declare that natural Dirt, Grass, Gravel, Sand, Clay and similar vanilla terrain sources are converted without using global ore suppression or implementing a child-mod cleanup sweep.
Reproduction
A focused GameTest is present in the current CakeWorld validation worktree at:
D:\CakeWorld\CakeWorld 118\CakeWorld\src\main\java\com\mcmoddev\cakeworld\gametest\EdibleWorldIntegrityGameTests.java
From D:\CakeWorld\CakeWorld 118\CakeWorld with Java 17:
$env:JAVA_HOME='C:\Users\johnb\.jdks\jdk-17.0.1'
$env:GRADLE_USER_HOME='D:\CakeWorld\.gradle-verify-cache'
.\gradlew.bat runGameTestServer --no-daemon `
-PcakeworldFreshWorldgenRuntime=true `
-PcakeworldFreshWorldgenRunDirectory=run-edible-integrity-repro `
-PcakeworldGameTestNamespaces=cakeworld_edible_integrityThe test pre-generates an 11-by-11 chunk halo, then scans the inner 9-by-9 region in the Overworld, Nether and End. Bedrock is the only accepted literal vanilla geology exception.
Actual result
fixedWorldContainsNoUnexpectedNaturalBlocks fails with:
- 66
minecraft:dirtblocks - 63 in
cakeworld:candy_plains - 3 in
cakeworld:soda_ocean - Y range 46 through 61
- adjacent blocks include 197 Chocolate Sponge faces, 49 Lemonade faces, 23 Biscuit Crumbs faces and CakeWorld geology/resources
The Dirt count and positions remain stable after save/reload.
The companion feature-ownership test passes: registered CakeWorld biomes contain no minecraft:ore_dirt, vanilla tree placed features or vanilla ore placed features. Fresh generation also contains all eight expected CakeWorld Overworld resource roles and all three Nether roles, with no literal vanilla coal or other vanilla resource ores in the scanned region.
Expected result
Fresh total-conversion chunks contain no naturally generated literal vanilla Dirt. Existing chunks remain untouched.
Likely boundary
StoneReplacerreplaces OreSpawn's supported stone-family terrain throughout the chunk.BiomeSurfaceFeature.findOpenGroundselects the top open ground in a column, andapplyGroundreplaces only that block plus the configured filler depth.- Vanilla surface-generated Dirt beside underground or underwater openings can therefore remain outside both replacement passes.
This is not fixed by vanilla-ore takeover: Dirt is not a resource ore, and global suppression would incorrectly affect unknown third-party ore features.
Required capability / acceptance
Please add a pre-baked, provider-declared way for terrain replacement to convert additional natural source blocks such as Dirt, Grass, Coarse/Rooted Dirt, Gravel, Sand, Clay and Terracotta.
Acceptance expectations:
- generation-only; no silent rewrite of existing chunks;
- preserves Bedrock, fluids and block entities;
- does not rewrite player-authored blocks or unknown third-party blocks;
- does not require
suppress_all_ore_featuresor a CakeWorld-owned cleanup feature; - fresh fixed-seed and same-save reload integrity scans both report zero unexpected vanilla terrain;
- no meaningful world-generation performance regression.
Activity
SkyBlade1978 commentedon Aug 26, 2026
Fixed for Forge 1.15.2 in the planned OreSpawn 4.0.9.115021
The 1.15 test reproduced the problem: provider declared natural terrain was being replaced after some later worldgen stages. The existing StoneReplacer now runs at the start of local modifications, before provider surfaces, while ores/fluids and bedrock keep their original stages.
Fresh and exact-reload tests now replace all 108 marked natural sources, including 54 cave and 54 underwater pockets, while preserving 108 later structure blocks, 108 vegetation blocks, bedrock, fluids and chest block entities.
SkyBlade1978 commentedon Aug 26, 2026
Forge 1.16.5 is fixed in 4.0.9.116051 (PR #257).
The fresh/reload regression converted all 108 provider-declared natural terrain sources while preserving matching blocks placed later by structures and vegetation, plus cave/underwater pockets, bedrock, fluids and block entities. Existing chunks are not rewritten.
This has passed automated and manual 1.16.5 testing; leaving the issue open while the remaining Minecraft branches are fixed.
SkyBlade1978 commentedon Aug 27, 2026
Forge 1.17.1 is fixed in OreSpawn 4.0.9.117011 (PR #258).
The target-native fresh/reload regression converted all 117 provider-declared natural terrain sources, including the 1.17 Rooted Dirt case, while preserving 117 matching structure blocks, 117 vegetation blocks, 54 cave pockets, 63 underwater pockets, bedrock and block entities. Existing chunks are not rewritten.
Hosted build/audit, wrapper validation, CodeQL and manual Eclipse/world testing passed. Leaving this issue open while the remaining Minecraft branches are qualified.
SkyBlade1978 commentedon Sep 9, 2026
Closing as completed. The natural-host repair landed from the 4.0.9 line onward: provider-declared natural terrain is converted during the existing early geology pass, while air, fluids, bedrock, block entities and later authored structure/vegetation blocks remain protected. Existing chunks are not rewritten.
The reported 1.18.2 case is included in #259/#270, and the repair or target-native legacy equivalent is now merged across the full Forge/NeoForge campaign through the final 1.10.2 merge in #300. Fresh and exact-save reload coverage retained the natural-source and sentinel contracts on each applicable target.