{ "_comment": "The contract between the heightmap source and the numpy pipeline's square canvas. Read by Scripts/Authoring/generate_heightmap.py and create_world.py through world_manifest.py; see README.md next to this file.", "_comment_level": "L_Canvas_Proto, not L_World. This pipeline is legacy - Docs/Terrain.md (D-47) settles that the numpy path is not to be extended, and the ground the game uses is the planet-map region in Region.json, which owns L_World now. The name is deliberately not the real world's: create_world.py empties the level it is given and rebuilds it from scratch, so a manifest still pointing at L_World would be a loaded gun - one run and 98 landscapes are replaced by a 14 km square, with no warning and no prompt. Kept rather than deleted because this is still the only path that carries the erosion pass's flow, wear and deposit maps into Unreal.", "level": "/Game/Maps/L_Canvas_Proto", "vertices_per_side": 4081, "quad_cm": 350, "elevation_m": { "min": -460, "max": 2800 }, "sea_level_m": 0, "spawn_pad_m": 150, "streaming_grid_components": 1, "source": { "kind": "noise", "seed": 7 }, "erosion": { "enabled": true, "coarse_factor": 4, "coarse_droplets": 800000, "coarse_lifetime": 120, "fine_droplets": 2000000, "fine_lifetime": 40, "fine_scale": 0.5, "min_erode_slope": 0.25, "max_change": 0.2, "thermal_passes": 24, "talus_deg": 35, "strata_period_m": 160, "strata_contrast": 0.6 }, "layers": { "rock_slope_start": 0.55, "rock_slope_full": 1.05, "high_altitude_start_m": 1400, "high_altitude_full_m": 2000, "breakup_m": 18 } }