Kzeroko KTM2

Terrain configuration

Every KTM2 terrain setting, palette field, default, valid range and reload boundary.

Updated Sep 26, 2026 22 min read

Terrain configuration controls placement, geometry, materials and local atmosphere for the KTM2 world generator. Generation takes a server-local snapshot, so editing a live object does not rebuild an existing world or move its saved World Tree.

Where the files live

Edit the terrain object in config/isekaiexpansion.json. autoPatchExoticShaders is a separate top-level client preference in the same file. These are configuration settings, not namespaced data-pack files; resource-pack priority does not select their values.

The packaged data/isekaiexpansion/terrain/ktm2.json is the bundled ReTerraForged preset, read from the mod’s classpath. It is not this configuration format or a normal reloadable data-pack override. See the terrain runtime for that integration.

Minimal example

This is a fragment to merge into the existing configuration; retain other settings. Missing fields use the declared initial defaults. Avoid explicit null objects.

{
  "terrain": {
    "enabled": true
  },
  "autoPatchExoticShaders": true
}

Fields

All paths below are relative to terrain except the first table. Numeric geometry distances are blocks unless another unit is stated. Finite range checks reject invalid values; they do not clamp them.

FieldTypeDefaultWhat it does
terrainobjectDefaults belowServer-owned world-generation settings; also sent to clients for presentation.
autoPatchExoticShadersbooleantrueLocal client preference: allows compatible shader-source overlays when a pack loads.
terrain.enabledbooleantrueEnables custom landforms, landmark placement and decoration. Does not remove the bundled preset or its registered biomes.

The following object fields use the nested tables. Explicit null values can fail snapshot or palette construction, even when the corresponding family is disabled.

FieldTypeDefaultWhat it does
placementobjectDefaults belowSettings group; preserve the object structure and do not use null.
landformsobjectDefaults belowSettings group; preserve the object structure and do not use null.
haloCrownobjectDefaults belowSettings group; preserve the object structure and do not use null.
sentinelIslesobjectDefaults belowSettings group; preserve the object structure and do not use null.
verdantKnivesobjectDefaults belowSettings group; preserve the object structure and do not use null.
amberBasinobjectDefaults belowSettings group; preserve the object structure and do not use null.
crystalLandobjectDefaults belowSettings group; preserve the object structure and do not use null.
giantSkyLandobjectDefaults belowSettings group; preserve the object structure and do not use null.
aquapolisobjectDefaults belowSettings group; preserve the object structure and do not use null.
evernightTundraobjectDefaults belowSettings group; preserve the object structure and do not use null.
abyssalVolcanoobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
gardenOfTheFirmamentobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
giantStoneValleyobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
riftborneMonolithobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
infernalDeepCavernobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
sunkenAzureGrottoobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
viridianToxicDepthsobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
worldrootHollowobjectFamily defaults belowServer-owned shape, palette and atmosphere settings.
greatPlainsobjectDefaults belowSettings group; preserve the object structure and do not use null.
surfacesobjectDefaults belowSettings group; preserve the object structure and do not use null.
decorationobjectDefaults belowSettings group; preserve the object structure and do not use null.
worldTreeobjectDefaults belowSettings group; preserve the object structure and do not use null.
worldTree.placementobjectDefaults belowSettings group; preserve the object structure and do not use null.
worldTree.geometryobjectDefaults belowSettings group; preserve the object structure and do not use null.
worldTree.woodlandobjectDefaults belowSettings group; preserve the object structure and do not use null.
worldTree.materialsobjectDefaults belowSettings group; preserve the object structure and do not use null.

Placement and shared geometry

FieldTypeDefaultWhat it does
placement.districtSpacinginteger23041024–16384 blocks between district cells.
placement.districtChancenumber10–1; one admission roll per cell, not a guaranteed generated district.
placement.siteAttemptsinteger641–128 stratified candidate sites per family in a cell.
placement.biomeBlendWidthnumber0.050.005–0.25; controls the transition budget; terrain relief can widen it.
placement.replaceableBiomesarray33 IDs listed belowExact original biome IDs allowed for admission; an empty list admits no ordinary districts. Unknown strings do not match; null is invalid.

Shared landforms

FieldTypeDefaultWhat it does
landforms.radiusnumber680128–min(2048, districtSpacing × 0.32) blocks before family scaling.
landforms.reliefnumber21032–512 blocks of base vertical relief.
landforms.rockRoughnessnumber0.180–0.4; fractures in ordinary rock formations.

Halo Crown

FieldTypeDefaultWhat it does
haloCrown.sizeMultipliernumber10.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
haloCrown.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
haloCrown.ringRadiusnumber12532–256 blocks before vertical scaling.
haloCrown.ringThicknessnumber228–48 blocks; must be less than half ringRadius, with ringRadius + ringThickness below 0.6 × district radius.
haloCrown.ringChancenumber10–1; additional admission roll for this family.
haloCrown.haloCrownWeightnumber10–100 relative family weight; 0 disables selection.

Sentinel Isles

FieldTypeDefaultWhat it does
sentinelIsles.sizeMultipliernumber10.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
sentinelIsles.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
sentinelIsles.islandChancenumber0.550–1; used as relative selection weight for ocean districts; 0 disables selection.
sentinelIsles.pillarHeightnumber26048–512 blocks before vertical scaling.

Verdant Knives

FieldTypeDefaultWhat it does
verdantKnives.sizeMultipliernumber1.150.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
verdantKnives.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
verdantKnives.verdantKnivesWeightnumber10–100 relative weight.
verdantKnives.formationCountinteger248–48 target blade formations; completeness requires at least 8, so the target is not guaranteed.

Amber Basin

FieldTypeDefaultWhat it does
amberBasin.sizeMultipliernumber1.10.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
amberBasin.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
amberBasin.amberBasinWeightnumber10–100 relative weight.
amberBasin.terraceHeightnumber228–48 blocks before vertical scaling.

Great Plains

FieldTypeDefaultWhat it does
greatPlains.greatPlainsEnabledbooleantrueEnables the separate settlement-plain planner.
greatPlains.greatPlainsRadiusnumber22001024–3072 blocks; placement cell spacing is radius × 3.5.
greatPlains.greatPlainsBuildRadiusnumber768512–0.55 × greatPlainsRadius blocks; preferred buildable core.
greatPlains.greatPlainsMinimumBuildRadiusnumber512256–greatPlainsBuildRadius blocks; search may reduce the core toward this value.
greatPlains.greatPlainsChancenumber0.650–1 roll per plains placement cell.

Prismatic Barrens

FieldTypeDefaultWhat it does
crystalLand.sizeMultipliernumber10.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
crystalLand.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
crystalLand.weightnumber10–100 relative weight.
crystalLand.crystalHeightnumber19024–240 blocks before vertical scaling.
crystalLand.stormMinimumSecondsnumber63–180 seconds between client atmospheric flashes.
crystalLand.stormMaximumSecondsnumber12stormMinimumSeconds–180 seconds; not global weather.
crystalLand.stormIntensitynumber0.550–1 flash intensity.
crystalLand.thunderVolumenumber0.250–1, further multiplied by biome blend weight.
crystalLand.palettesarrayFamily defaults below1–16 named palette objects; fields below. IDs must be unique within this family.

Skyreach Archipelago

FieldTypeDefaultWhat it does
giantSkyLand.sizeMultipliernumber10.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
giantSkyLand.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
giantSkyLand.weightnumber10–100 relative weight.
giantSkyLand.islandAltitudenumber744Y 700–840; not changed by scale.
giantSkyLand.tierHeightnumber4224–64 blocks before vertical scaling; island layout also bounds tier separation by radius.
giantSkyLand.vegetationnumber0.650–1; tree/ground-vegetation density control, not a fixed percentage of covered area.
giantSkyLand.cloudSeaDepthnumber11248–240 blocks below islandAltitude for the shader cloud-sea height; does not alter terrain or waterfall length.
giantSkyLand.palettesarrayFamily defaults below1–16 named palette objects; fields below. IDs must be unique within this family.

Aquapolis Cataracts

FieldTypeDefaultWhat it does
aquapolis.sizeMultipliernumber10.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
aquapolis.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
aquapolis.weightnumber10–100 relative weight.
aquapolis.terraceHeightnumber3812–48 blocks before vertical scaling.
aquapolis.vegetationnumber0.650–1; tree and ground-vegetation density control.
aquapolis.palettesarrayFamily defaults below1–16 named palette objects; fields below. IDs must be unique within this family.

Evernight Aurora Tundra

FieldTypeDefaultWhat it does
evernightTundra.sizeMultipliernumber10.6–2; multiplies shared horizontal radius. Scaled radius + 32 must be less than half the district spacing.
evernightTundra.scalenumber10.5–1.5; scales relief, ring dimensions, pillar/terrace heights and exotic vertical features; island altitude stays fixed.
evernightTundra.weightnumber10–100 relative weight.
evernightTundra.chasmDepthnumber8016–120 blocks before vertical scaling.
evernightTundra.fossilScalenumber20.5–2.25 before multiplication by scale.
evernightTundra.auroraIntensitynumber0.80–2 client aurora strength.
evernightTundra.crystalHeightnumber577.2–72 blocks before vertical scaling.
evernightTundra.palettesarrayFamily defaults below1–16 named palette objects; fields below. IDs must be unique within this family.

Volcanic, highland and cavern families

The following fields are relative to each of abyssalVolcano, gardenOfTheFirmament, giantStoneValley, riftborneMonolith, infernalDeepCavern, sunkenAzureGrotto, viridianToxicDepths, worldrootHollow. Missing members retain that family’s defaults, including a partial object containing only a weight. Explicit null palettes reject.

FieldTypeDefaultWhat it does
sizeMultipliernumber1 / 0.8 / 1.250.6–2; horizontal radius multiplier, default 0.8 for underground families and 1.25 for Abyssal Volcano.
scalenumber10.5–1.5; multiplies formation, terrace and chamber heights.
weightnumber10–100; relative placement weight; 0 disables selection.
formationHeightnumber24080–520 blocks before scale; surface formation height control. Family overrides below.
terraceHeightnumber18 / 288–48 blocks before scale; terrace separation control; underground default 28.
chamberHeightnumber160 / 21080–240 blocks before scale; underground default 210; chamber depth, shortened when the dimension floor requires it.
roofThicknessnumber3624–96 blocks; minimum underground rock cover; no surface entrance is carved.
vegetationnumber0.080–1; sparse vegetation control; overrides below.
poolCoveragenumber0.280–0.6; pool/channel size control, not a fixed percentage of the floor. Stone Valley and Riftborne Monolith have no reservoirs.
formationCountinteger124–32; formation count control; each formation may contain multiple segments.
atmosphereStrengthnumber0.80–1; shader atmosphere blend strength; does not change global weather.
viridianToxicDepths.toxicWaterbooleantruePresent only on Viridian Toxic Depths; controls water-contact Poison.
palettesarray11–16 named palette objects using the shared fields below; IDs must be unique within the family.
FamilyformationHeightterraceHeightvegetationpoolCoverageformationCount
abyssalVolcano3101800.2812
gardenOfTheFirmament460360.650.3412
giantStoneValley260180.08012
riftborneMonolith43018009
infernalDeepCavern3102800.2812
sunkenAzureGrotto240280.40.4212
viridianToxicDepths240280.180.4812
worldrootHollow240280.50.1218

Ordinary surface materials

FieldTypeDefaultWhat it does
surfaces.surfaceDepthinteger4Integer 1–12 blocks of soil below the top.
surfaces.mountainRockstringminecraft:stoneSolid dry full-cube block state; shared by Halo Crown, Verdant Knives and Great Plains.
surfaces.mountainTopstringminecraft:grass_blockTop block for those families; exposed steep slopes use rock.
surfaces.mountainSoilstringminecraft:dirtSoil beneath their top; also the woodland surface-rule soil.
surfaces.islandRockstringminecraft:andesiteSolid dry full-cube rock for Sentinel Isles.
surfaces.islandTopstringminecraft:moss_blockSentinel Isles top material.
surfaces.islandSoilstringminecraft:dirtSentinel Isles soil.
surfaces.basinRockstringminecraft:calciteAmber Basin rock.
surfaces.basinTopstringminecraft:grass_blockAmber Basin top.
surfaces.basinSoilstringminecraft:dirtAmber Basin soil.

Weathering and woodland

FieldTypeDefaultWhat it does
decoration.enabledbooleantrueControls ordinary weathering and woodland trees; does not disable exotic decoration or the world tree itself.
decoration.mossCoveragenumber0.280–1 threshold controlling moss placement.
decoration.vineChancenumber0.0550–1; participates in a further dampness/probability test.
decoration.vineLengthinteger24Integer 1–64 length control; support checks can end strands early.
decoration.weatheredRockstringminecraft:tuffSolid dry full-cube weathered stone.
decoration.mossstringminecraft:moss_blockSolid dry full-cube moss material.
decoration.vinesstringminecraft:vineDry block state without a block entity, exposing north/south/east/west attachment properties.
decoration.groveTreeChancenumber0.720–1 tree-plan probability in Luminous Grove.
decoration.gladeTreeChancenumber0.160–1 tree-plan probability in Starlit Glade.
decoration.woodlandTreeHeightinteger42Integer 18–64 baseline tree height.

World-tree placement

FieldTypeDefaultWhat it does
worldTree.placement.enabledbooleantrueEnables the unique reservation and tree.
worldTree.placement.searchRadiusinteger24000Integer 4096–100000 blocks around the selected search origin. Existing region files can shift that origin beyond explored terrain.
worldTree.placement.searchAttemptsinteger256Integer 16–2048 global probes, followed by bounded local refinement.

World-tree geometry

FieldTypeDefaultWhat it does
worldTree.geometry.biomeRadiusnumber1600800–2400 blocks for the woodland reservation.
worldTree.geometry.crownRadiusnumber560192–0.45 × biomeRadius blocks.
worldTree.geometry.ceilingClearanceinteger8Integer 2–64 blocks below the dimension ceiling.
worldTree.geometry.foliageDepthinteger6Integer 2–16 blocks of leaf shell around each hollow canopy cluster.
worldTree.geometry.branchCountinteger14Integer 8–24 main branches.
worldTree.geometry.branchDepthinteger3Integer 1–3 recursive branching depth.
worldTree.geometry.barkReliefnumber0.180–0.4 bark-rib relief.

World-tree woodland

FieldTypeDefaultWhat it does
worldTree.woodland.decorationAttemptsinteger3Integer 0–16 luminous shrub attempts per eligible chunk. Independent of decoration.enabled.

World-tree materials

FieldTypeDefaultWhat it does
worldTree.materials.trunkstringminecraft:dark_oak_log[axis=y]Main trunk state.
worldTree.materials.branchesstringminecraft:dark_oak_woodBranch state.
worldTree.materials.rootsstringminecraft:mangrove_rootsRoot state.
worldTree.materials.leavesstringminecraft:azalea_leaves[persistent=true]Leaf state; persistent is forced true when that property exists.
worldTree.materials.floweringLeavesstringminecraft:flowering_azalea_leaves[persistent=true]Flowering leaf state, with the same persistence rule; painted in blossom patches on canopy tops.
worldTree.materials.glowstringminecraft:shroomlightMust emit nonzero block light; used for woodland shrubs and for lantern fruit at the tips of some leaf strands under the canopy.
worldTree.materials.groundstringminecraft:moss_blockWoodland ground and surface-rule top; therefore must also pass solid full-cube validation.
worldTree.materials.weatheredBarkstringminecraft:spruce_woodWeathered bark strips and knots.
worldTree.materials.mossyBarkstringminecraft:moss_blockMossy bark on low roots and ledges.

Named exotic palette fields

FieldTypeDefaultWhat it does
palettes[].idstringdefaultUnique within the family; matches [a-z0-9_]+. Forms persistent biome IDs.
palettes[].rockstringminecraft:stoneSolid dry full-cube base rock.
palettes[].topstringminecraft:grass_blockSolid dry full-cube top surface.
palettes[].soilstringminecraft:dirtSolid dry full-cube soil.
palettes[].crystalstringminecraft:amethyst_blockSolid dry full-cube crystal and roof material.
palettes[].weatheredstringminecraft:andesiteSolid dry full-cube weathered material.
palettes[].mossstringminecraft:moss_blockSolid dry full-cube moss.
palettes[].icestringminecraft:blue_iceSolid dry full-cube frozen material.
palettes[].bonestringminecraft:bone_blockSolid dry full-cube fossil material.
palettes[].skeletalVariantstringleviathanleviathan or serpent; all family palettes are validated.
palettes[].structurestringminecraft:quartz_blockSolid dry full-cube architecture material.
palettes[].fluidstringminecraft:waterSource fluid block state, no block entity; flowing states reject.
palettes[].woodstringminecraft:oak_logSolid dry full-cube wood for exotic vegetation.
palettes[].leavesstringminecraft:oak_leaves[persistent=true]Dry leaf block without a block entity; persistent is forced true.
palettes[].flowerstringminecraft:azure_bluetDry single-block flower without a block entity; underground families also accept mushrooms and fungi.
palettes[].vinesstringminecraft:vineDry wall-attached vine block without a block entity.
palettes[].waterColorinteger0x35B8BEInteger RGB 0–16777215.
palettes[].fogColorinteger0xB5C9DAInteger RGB 0–16777215.
palettes[].auroraPurpleinteger0xA96DE8Integer RGB 0–16777215; tundra aurora colour.
palettes[].auroraGreeninteger0x51D6AEInteger RGB 0–16777215; tundra aurora colour.
palettes[].auroraCrimsoninteger0xD64C78Integer RGB 0–16777215; tundra aurora colour.

Default whitelist and palettes

The default placement.replaceableBiomes list contains these 33 exact IDs:

minecraft:plains, minecraft:forest, minecraft:birch_forest, minecraft:flower_forest, minecraft:meadow, minecraft:windswept_hills, minecraft:windswept_forest, minecraft:stony_peaks, minecraft:jagged_peaks, minecraft:stony_shore, minecraft:frozen_peaks, minecraft:snowy_slopes, minecraft:grove, minecraft:windswept_gravelly_hills, minecraft:ocean, minecraft:deep_ocean, minecraft:lukewarm_ocean, minecraft:deep_lukewarm_ocean, minecraft:cold_ocean, minecraft:deep_cold_ocean, minecraft:frozen_ocean, minecraft:deep_frozen_ocean, minecraft:taiga, minecraft:old_growth_pine_taiga, minecraft:old_growth_spruce_taiga, minecraft:old_growth_birch_forest, minecraft:dark_forest, minecraft:cherry_grove, minecraft:sunflower_plains, minecraft:snowy_plains, minecraft:snowy_taiga, minecraft:river, minecraft:frozen_river

The original four exotic families each start with one palette, with the overrides below. Every other member uses the generic palettes[] defaults above; crystal is minecraft:amethyst_block in all four. Hexadecimal RGB is shown for readability; JSON values must be decimal integers.

FamilyidrocktopsoilwaterColorfogColor
crystalLandamethystminecraft:deepslateminecraft:andesiteminecraft:deepslate0x35B8BE0xB5C9DA
giantSkyLandverdantminecraft:stoneminecraft:grass_blockminecraft:dirt0x35B8BE0xB5C9DA
aquapoliscalciteminecraft:calciteminecraft:grass_blockminecraft:dirt0x35B8BE0xB5C9DA
evernightTundraborealminecraft:deepslateminecraft:snow_blockminecraft:packed_ice0x5968990x141E38

A palette ID produces isekaiexpansion:<family>_<id>. Sky palettes additionally create _grove and _wetland biomes. The default sky IDs are isekaiexpansion:giant_sky_land_verdant, isekaiexpansion:giant_sky_land_verdant_grove and isekaiexpansion:giant_sky_land_verdant_wetland. These IDs become part of saved biome-source bindings; renaming or removing palettes is a world-format change.

Additional palette defaults

All unspecified fields use the shared palette defaults. Each row starts with soil minecraft:deepslate, weathered minecraft:basalt, crystal minecraft:glowstone and fluid minecraft:water, then applies the overrides shown. Underground palettes also set flower to minecraft:brown_mushroom.

FamilyidrocktopOther overrides
abyssalVolcanobasaltminecraft:blackstoneminecraft:basaltsoil=minecraft:blackstone, weathered=minecraft:red_nether_bricks, crystal=minecraft:magma_block, fluid=minecraft:lava, fogColor=0x563444
gardenOfTheFirmamentverdantminecraft:stoneminecraft:grass_blocksoil=minecraft:dirt, weathered=minecraft:andesite, fogColor=0xB6D6DD
giantStoneValleyweatheredminecraft:andesiteminecraft:tuffweathered=minecraft:stone, fogColor=0x939F9E
riftborneMonolithriftstoneminecraft:deepslateminecraft:polished_basaltcrystal=minecraft:shroomlight, fogColor=0x487182
infernalDeepCavernbasaltminecraft:blackstoneminecraft:basaltsoil=minecraft:blackstone, weathered=minecraft:red_nether_bricks, crystal=minecraft:magma_block, fluid=minecraft:lava, fogColor=0x563444
sunkenAzureGrottoazureminecraft:deepslateminecraft:moss_blockweathered=minecraft:tuff, structure=minecraft:mossy_stone_bricks, crystal=minecraft:sea_lantern, waterColor=0x27C6CF, fogColor=0x254F65
viridianToxicDepthsviridianminecraft:blackstoneminecraft:tuffcrystal=minecraft:ochre_froglight, waterColor=0x39D65B, fogColor=0x245E43
worldrootHollowancientminecraft:deepslateminecraft:moss_blockwood=minecraft:dark_oak_wood, crystal=minecraft:shroomlight, fogColor=0x365653

Validation

Block strings accept block-state syntax such as minecraft:oak_leaves[persistent=true]. Ordinary surface fields and the exotic rock/top/soil/crystal/weathered/moss/ice/bone/structure/wood fields require non-air, dry, full-cube blocks without block entities. World-tree materials use the less restrictive dry/non-air/no-block-entity rule, except ground also participates in solid surface validation and glow must emit light. Exotic leaves, flowers, vines and fluid have the additional type requirements in their rows.

All numbers checked by the geometry validators must be finite and within range. Family size and vertical scale are checked independently, then combined geometry must still satisfy ring fit and the placement-cell margin. Passing field validation does not guarantee an admitted district: habitat, available height, reserved landmarks and whole-shape checks can reject a candidate.

Palette lists require 1–16 entries with unique IDs per family. Colours are integers 0–16777215. Setting a family weight or enabled to zero/false does not exempt its settings from construction-time validation. Null groups, malformed block states, unsupported skeleton variants or invalid geometry can abort registry/world setup; there is no per-field fallback to silently repair them.

The mod’s validators do not report arbitrary unknown JSON keys. A misspelt setting is not a reliable way to detect configuration mistakes. Empty palette lists reject; an empty replacement whitelist is accepted but stops normal district admission.

Reloading

Set generation options before creating/loading the world, then restart to obtain a fresh registry/generator snapshot. /reload is not a terrain regeneration command. Already generated chunks are not rewritten by these paths, and the saved World Tree reservation keeps its coordinates and geometry.

IsekaiCore 0.4.0-build61 supplies login-time synchronisation of the terrain object. Generation deliberately reads server-local values; atmosphere reads the active server-synchronised view. This bridge does not live-push edits to connected clients. The separate shader toggle remains local, and shader overlays are prepared when Iris loads a pack; disabling it takes effect on a subsequent pack load.