World Builder Configuration
Configure terrain generation presets — flat, procedural surface, cave, and sky island worlds.
A world builder preset is the terrain-generation recipe a world is built from. There are four builder types, each with its own preset file format: FlatWorld (a flat test world), Default (full procedural surface generation), Cave (an underground-only dimension), and SkyIsland (floating islands in a void). A mod can ship any number of named presets per type — the base game ships one preset per type, all named genesis (or super-flat-world for FlatWorld).
This is paired with a World Type Configuration, which controls physics (gravity, day length) separately from terrain.
File Location
Presets are not referenced from your mod’s manifest — they’re loaded by type and name directly from fixed folders:
mods/<YourMod>/world-builders/default/<preset-name>.yaml
mods/<YourMod>/world-builders/flat-world/<preset-name>.yaml
mods/<YourMod>/world-builders/cave/<preset-name>.yaml
mods/<YourMod>/world-builders/sky-island/<preset-name>.yaml
Each file is a single object at the document root (no wrapping list) — its exact shape depends on the builder type, covered in its own section below.
Selecting a Preset
A world’s builder type and preset are chosen when the world is created and stored in that world’s save data as default-world-preset-type (FlatWorld/Default/Cave/SkyIsland) and default-world-preset (the file name, without .yaml). The in-game “Create World” menu only lets a player choose the type; which preset file loads for a given type is currently fixed to genesis (super-flat-world for FlatWorld) rather than mod-selectable through the UI — a mod adding its own preset makes it available for a save file to reference, but a player can’t yet pick it from the new-world screen.
Default World Builder
Full procedural surface generation — the standard overworld. Biomes, terrain layers, caves, ore/structure placement, and static object spawning are all driven by the biomes defined in Biome Terrain Generation; this file only selects which defined biomes are in play and configures world-wide generation systems (caves, pools, underground features, sky islands).
Full Field Reference
biomes: # Required. At least one must resolve or the whole preset fails to load
- 'plains'
- 'forest'
default-biome: 'plains' # Optional. Used where no other biome matches
cave-generation: true # Optional. Default: true
generate-caves-above-ground: false # Optional. Default: false
cave-layers: # Optional. Which block layers caves carve into
- 1
cave-generator: # Optional. See Cave Generator below
noise-scale: 0.01
smooth-steps: 4
expansion-steps: 1
final-polish: true
min-region-size: 20
pool-generation: false # Optional. Default: false
pools: # Optional. Fluid pool placement in caves
- block: 'water'
max-altitude: -100
noise-scale: 0.008
noise-threshold: 0.7
global-underground-features: # Optional. Feature names (see Underground Feature Configuration)
- 'glow_cave'
sky-island-features: # Optional. Feature names (see Sky Island Feature Configuration)
- meadow_islands
| Field | Required | Default | Description |
|---|---|---|---|
biomes | Yes | — | Names of already-registered biomes this preset can use. A name that doesn’t resolve is skipped with a warning, not a hard failure — but if none resolve, the whole preset fails to load. |
default-biome | No | (engine fallback) | Biome used where no other biome’s placement rules match. |
cave-generation | No | true | Whether caves are carved at all. |
generate-caves-above-ground | No | false | If false, caves are only carved below the local surface altitude. |
cave-layers | No | (none) | Which block layers (0 = background, 1 = foreground/collision, 2+ = overlay) caves are carved into. |
cave-generator | No | (defaults, see below) | Cave shape algorithm and tuning. |
pool-generation | No | false | Whether fluid pools are placed inside caves at all. |
pools | No | (none) | List of fluid pool configs — see Pools. |
global-underground-features | No | (none) | Names of underground features (scanned from this mod’s underground-features/ folder) that apply everywhere, not just where a biome opts in. |
sky-island-features | No | (none) | Names of sky island features (scanned from this mod’s sky-island-features/ folder) to overlay as floating islands above this preset’s terrain. |
Every name field on this page follows the standard rule: a bare name resolves to your own mod, and you only write a OtherMod: prefix for cross-mod references. See Naming & namespacing.
Changed. This used to be inconsistent:
biomes,default-biomeand the flat preset’s own biome key were looked up verbatim, so a bare name never matched anything and every preset had to spell outMod:name;sky-island-featureswas hardcoded to fall back toCreation:, so a third-party mod could not reference its own features without a prefix. Both now namespace to the preset’s own mod. Presets that already write explicit prefixes are unaffected — an explicit prefix is still used as-is.
Cave Generator
A preset’s caves are carved by a cellular automaton seeded from simplex noise. cave-generator says
which algorithm and tunes it:
cave-generator:
type: cellular_automata # Required. The only type a preset's caves accept
noise-scale: 0.01
smooth-steps: 4
| Field | Default | Description |
|---|---|---|
type | (required) | cellular_automata — see the note below on why it’s written out. |
noise-scale | 1.0 | Noise sampling scale — lower values produce larger, smoother caverns; higher values produce noisier, tighter caves. |
smooth-steps | 4 | Number of initial cellular-automata smoothing iterations. |
expansion-steps | 1 | Number of erosion iterations that widen passages. |
final-polish | true | Whether to apply one extra smoothing pass at the end. |
min-region-size | 20 | Cave clusters smaller than this (in blocks) are filled back in as solid. |
noise-threshold | 0.45 | Noise cutoff for the initial wall/open split. |
Renamed, and now carries a
type. This block wascave-grid-options, and an underground feature had a block by the same name that drove a different algorithm — a plain per-block noise threshold with no automaton — while accepting this same key set. Sosmooth-stepsand friends looked valid there and did nothing. Both blocks are nowcave-generatorwith an explicittype, and each type accepts only the keys its algorithm reads:cellular_automatahere,simplex_thresholdon a feature.
region-size-chunksis gone. It was accepted and documented here as sizing a cached grid, and was read by no code at all. It is now rejected as an unknown key.
Pools
Each entry places a fluid pool (e.g. underground lakes) using its own noise field:
| Field | Required | Default | Description |
|---|---|---|---|
block | Yes | — | The fluid block to place (must already be registered). An entry with an unresolvable block is skipped. |
max-altitude | No | -100 | Pools only form at or below this world-Y. |
noise-scale | No | 0.008 | Noise sampling scale controlling pool placement. |
noise-threshold | No | 0.7 | Noise cutoff above which a pool forms. |
Note: older copies of the shipped
genesis.yamlalso setcave-room-generation,cave-room-generation-x-scale/-y-scale,cave-room-chance,cave-tunnel-generation,cave-tunnel-generation-x-scale/-y-scale, andcave-tunnel-chance. These were leftover from a since-replaced cave generation approach and are not read by any code — they have been removed from the shipped preset. Don’t add them to a new preset; usecave-generatorinstead.
Flat World Builder
A minimal flat world, mainly useful for testing. No structures, ores, or static object spawning (trees, etc.) occur — generate-static-objects always returns nothing.
Full Field Reference
default-biome: 'plains' # Required
surface-altitude: 5 # Optional, but omitting it logs a warning (spawn point may be wrong)
altitude-bands: # Required
- min-altitude: 5
max-altitude: 5
block: 'grass'
- min-altitude: 3
max-altitude: 4
block: 'dirt'
- min-altitude: 1
max-altitude: 2
block: 'stone'
background-block: 'stone' # Optional
background-bands: # Optional
- min-altitude: 1
max-altitude: 4
block: 'stone_wall'
standalone-background-bands: # Optional
- min-altitude: 8
max-altitude: 10
block: 'stone_wall'
fluid-bands: # Optional
- min-altitude: -3
max-altitude: -1
block: 'water'
layer: 1
| Field | Required | Default | Description |
|---|---|---|---|
default-biome | Yes | — | The single biome applied to the entire world. Named to match every other preset’s biome-selection key; a flat world has only this one, so it is always the biome used. Missing or unresolvable aborts the whole preset. |
surface-altitude | No | (warns if absent) | The world’s single surface height, used to compute the default player spawn. Qualified rather than a bare altitude so it reads as a position like every other *-altitude in the schema. |
altitude-bands | Yes | — | List of {min-altitude, max-altitude, block} ranges mapping world-Y to a foreground (layer 1) block. See Layer Entries. |
background-block | No | (none) | Fallback block placed on layer 0 (background) everywhere a foreground block exists. |
background-bands | No | (none) | Per-Y-range background blocks, same shape as altitude-bands. Takes priority over background-block for any range it covers. |
standalone-background-bands | No | (none) | Same shape as background-bands, but places unconditionally regardless of whether a foreground block exists — useful for walls behind air gaps. |
fluid-bands | No | (none) | List of {min-altitude, max-altitude, block, layer} ranges. layer defaults to 1. Places fluid only where the position is otherwise unoccupied, and triggers flood fill. |
Layer Entries
Every layer list (altitude-bands, background-bands, standalone-background-bands, fluid-bands) uses the same {min-altitude, max-altitude, block} shape:
max-altitudemust be greater than or equal tomin-altitude(both are world-Y bounds, inclusive).- World-Y
0is always skipped (the zero-crossing boundary) — a range that spans it logs a warning but otherwise proceeds normally around the gap. - A single malformed entry (missing
min-altitude/max-altitude/block) stops processing the rest of that list, so double-check each entry if blocks seem to be missing from one of these layer sets.
Cave World Builder
An underground-only dimension: there is no surface, no above-ground air, and no pool generation. Every block starts solid and caves are carved out; the biome itself supplies both the “rock” (fill block) and cave wall/floor/ceiling blocks.
Full Field Reference
biomes: # Required
- 'cave_shallow'
- 'cave_sand'
- 'cave_red_sand'
- 'cave_gravel'
- 'cave_dirt'
- 'cave_deep'
default-biome: 'cave_shallow' # Optional
cave-generator: # Optional, same fields as the default builder
noise-scale: 0.007
smooth-steps: 5
expansion-steps: 2
final-polish: true
min-region-size: 25
global-underground-features: # Optional — the shipped genesis preset omits this
- 'glow_cave'
| Field | Required | Default | Description |
|---|---|---|---|
biomes | Yes | — | Names of already-registered cave biomes. Same per-entry tolerance as the default builder — one bad entry is skipped, but the whole preset fails if none resolve. |
default-biome | No | (engine fallback) | Biome used for cave positions no other biome selection matches. |
cave-generator | No | (defaults, see Default World Builder) | Same cellular-automata tuning as the default builder. |
global-underground-features | No | (none) | Same as the default builder’s field — underground features that apply everywhere. |
Cave biome selection uses two domain-warped noise axes (depth and lateral position) rather than the surface builder’s altitude/temperature/precipitation model — this is handled entirely by the engine and isn’t configurable from the preset file.
Lighting note: a cave dimension has no sky, so the only light comes from glowing blocks. The shipped
genesispreset sets noglobal-underground-features, so the only illumination is whatever the biomes bring themselves — currently justCAVE_DEEP, whose fill block isglow_rock. The upper/mid biomes (CAVE_SHALLOW,CAVE_SAND, etc.) have no light source and are dark until the player brings one. If you want lit pockets throughout (as the overworld gets), addglow_cavetoglobal-underground-features.
Sky Island World Builder
A floating-islands dimension: the entire world defaults to empty air, and landmasses only appear where a sky island feature is active.
Full Field Reference
sky-island-features:
- meadow_islands
default-biome: meadow_island
| Field | Required | Default | Description |
|---|---|---|---|
sky-island-features | No | (none) | Names of sky island features, scanned from this mod’s sky-island-features/ folder, that drive all island placement in this dimension. |
default-biome | No | (none — see warning) | Biome used for void (non-island) positions. |
A sky-island-features name without a colon is namespaced to your own mod, like every other reference — so write your own feature names bare (meadow_islands, not YourMod:meadow_islands). Use an explicit Mod:name prefix only to reference another mod’s feature. (This changed: the lookup was once hardcoded to fall back to Creation:, which forced even a mod’s own features to carry a prefix here.)
Spawn note: the first feature in
sky-island-featuresdetermines where the player spawns — the engine looks for a landing spot in the middle of that feature’smin-altitude/max-altitudeband. In the shipped preset, listingmeadow_islands(altitude 80–160) first is what spawns the player on the meadow islands rather than the higherstone_islands(altitude 200–280). If you want players to start in a different band, list that feature first.
Warning:
default-biomemust name a biome actually registered in the biome manager. An empty/placeholder biome produces biome ID0, which the client doesn’t have mapped, showing as “no biome” in-game.
Complete Examples
Based on the real shipped presets.
Default (world-builders/default/genesis.yaml):
biomes:
- 'tropical_ocean'
- 'plains'
- 'mesa'
- 'forest'
- 'cherry_forest'
- 'desert'
- 'snow_tundra'
default-biome: 'cherry_forest'
cave-generation: true
generate-caves-above-ground: false
cave-layers:
- 1
cave-generator:
type: cellular_automata
noise-scale: 0.01
smooth-steps: 4
expansion-steps: 1
final-polish: true
min-region-size: 20
pool-generation: true
pools:
- block: 'water'
max-altitude: -100
noise-scale: 0.008
noise-threshold: 0.7
global-underground-features:
- 'glow_cave'
sky-island-features:
- meadow_islands
- stone_islands
Flat (world-builders/flat-world/super-flat-world.yaml):
default-biome: 'plains'
surface-altitude: 5
altitude-bands:
- min-altitude: 5
max-altitude: 5
block: 'grass'
- min-altitude: 3
max-altitude: 4
block: 'dirt'
- min-altitude: 1
max-altitude: 2
block: 'stone'
Cave (world-builders/cave/genesis.yaml):
biomes:
- 'cave_shallow'
- 'cave_sand'
- 'cave_red_sand'
- 'cave_gravel'
- 'cave_dirt'
- 'cave_deep'
default-biome: 'cave_shallow'
cave-generator:
type: cellular_automata
noise-scale: 0.007
smooth-steps: 5
expansion-steps: 2
final-polish: true
min-region-size: 25
Sky Island (world-builders/sky-island/genesis.yaml):
sky-island-features:
- meadow_islands
default-biome: meadow_island