Skip to content

Authoring world-gen details

Sandbox world profiles point at a WGD file (WorldGenerator/WGD_*.json) that tells the New Earth terrain system what to build. This page covers the parts you usually retune. Pair it with Sandbox world profiles for the menu entry, sky, gravity, and save rules.

Two recipes that work

Approach When to use Starting point
Rich world You want ores, biomes, prefabs, and surface seating like New Earth Clone the game’s New Earth WGD and retune (Example Mod Flatlands)
Bare sandpit You want a simple test surface Keep only the passes you need (Example Mod Moon: SurfaceHeight + marble fill)

Do not invent a third pipeline — pack worlds still run through New Earth’s generator. You change inputs, not the engine.

WGD fields that matter

Field Role
SurfaceTileHeight Vertical seating for the surface (tile Y). Horizon / sky often track this ground level.
DefaultBlockID Fill block when nothing else paints a tile (e.g. dirt 2, marble 17).
WorldGenPassUUIDs Ordered terrain passes by built-in id (Stone, SurfaceHeight, Tunnels, …). Packs can also ship extra pass JSON under WorldGenerator/.
OreGenPassUUIDs Ore distribution passes (CopperOre, Coal, …). Empty list = no ore.
BackgroundWGBDPath Optional background layers. Prefer a pack-relative file beside the WGD (e.g. WGBD_Moon.json).
FlatnessRegions Softer / flatter bands of surface along X (percent of map width).
PrefabGroups / Prefabs Placed structures and seating density.
StructureGroups / ItemGroups / Creatures Ambient structures, loose items, and creature rolls.
SimpleOverlayDistributions Light overlays (scatter, cover).

Stock pass ids stay available. You do not need every New Earth pass — Moon proves a one-pass world is valid.

Flatness and prefabs

  • Raise FlatnessPercent toward 1.0 for plains-style seating (Flatlands).
  • StartPercent / EndPercent are fractions of map width.
  • On SMALL maps, dense prefab groups over-seat easily — lower CountPerTile (or similar density fields) when you shrink the recommended size.

Sky and horizon

Prefer ParallaxDefinitionPath on the world profile (pack parallax_*.json) over borrowing a stock style alone. That keeps the sky with your pack and lets the horizon follow the world’s ground level.

For asteroid-style mirrored hills on an Earth-pipeline surface:

  • Use HorizonMode: AsteroidAltitude with the stock void/bias values (512 / 600).
  • Set HorizonReferenceGroundTileY (stock asteroid uses 900) so live world Y remaps into that skyline space.
  • Avoid PinTopToGround for that art — it parks hill peaks on the terrain line and hides the cliffs.

Stock Asteroid vs Xenoid Bauble skies share hill art but differ in lighting (fixed noon vs day/night cycle). Copy the one that matches the mood you want, then retune layers in your pack file.

Spawns

SpawnDetailsName on the profile must match the Name inside your Spawning/SPWN_*.json. An empty or missing spawn file means no ambient fauna from that path.

Checklist before you publish

  1. Profile JSON points at real pack-relative WGD / SPWN / parallax paths.
  2. Mod Prep Validate passes on the pack folder.
  3. Create a SMALL Sandbox world of your type and walk the surface, caves, and sky once.
  4. Confirm a save of that world still requires your pack enabled to load.

See also