Problem / Motivation
Some mods should be able to layer behavior over existing worldgen instead of replacing the selected worldgen provider entirely.
Examples:
- ecology layer converting static generated trees into lifecycle trees
- gas pockets or cave atmosphere initialization
- ore replacement
- ruins/decorations
- biome corruption initialization
- compatibility transforms over vanilla or modded terrain
Currently, a mod that wants to affect generated terrain generally needs to become the worldgen provider itself. That makes composition between independent mods difficult.
Proposed solution
Add post-worldgen hooks/passes that run after the selected worldgen provider emits terrain writes, but before generated terrain is finalized/persisted.
Possible shape:
- selected worldgen provider generates a column/region
- one or more registered post-worldgen passes receive the generated output or a mutable column view
- passes can emit additional/replacement terrain writes
- host validates final writes before persistence
This should be generic terrain/structure transformation, not a tree-specific or biome-specific engine feature.
Alternatives considered
Replacing the entire worldgen provider works for standalone worlds, but it prevents clean layering.
Hardcoding transformation behavior into vanilla or engine core would not scale to different game types.
Problem / Motivation
Some mods should be able to layer behavior over existing worldgen instead of replacing the selected worldgen provider entirely.
Examples:
Currently, a mod that wants to affect generated terrain generally needs to become the worldgen provider itself. That makes composition between independent mods difficult.
Proposed solution
Add post-worldgen hooks/passes that run after the selected worldgen provider emits terrain writes, but before generated terrain is finalized/persisted.
Possible shape:
This should be generic terrain/structure transformation, not a tree-specific or biome-specific engine feature.
Alternatives considered
Replacing the entire worldgen provider works for standalone worlds, but it prevents clean layering.
Hardcoding transformation behavior into vanilla or engine core would not scale to different game types.