FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [View Raw Code]   [Original HTTPS Page]

docs/iris/12-regions.md at master · VolmitSoftware/docs · GitHub

Repository navigation

Latest commit

 

History

History
237 lines (173 loc) · 16.1 KB
  1. docs
  2. iris

12-regions.md

File metadata and controls

237 lines (173 loc) · 16.1 KB
title Regions
description Iris documentation: Regions
published true
date 2026-10-24 00:00:00 UTC
tags iris
editor markdown
dateCreated 2026-08-09 00:00:00 UTC

A region selects the biomes and content allowed in part of a dimension. Files live at regions/<loadKey>.json. Each region defines land, sea, shore, and cave biome lists, their zoom levels, and the shoreline band width.

Region and biome selection

The dimension's regions list selects which regions can appear. Each region supplies separate landBiomes, seaBiomes, shoreBiomes, and caveBiomes lists.

Set the broad land and sea distribution with the dimension's continentalStyle and landChance. Regions supply the biome choices; include sea and shore biomes wherever terrain can reach the water line. See Land-only dimensions before leaving those lists empty.

Region zooms multiply the dimension zooms. For example, landBiomeZoom: 3.5 makes land biome patches in that region roughly 3.5 times wider than at the dimension's base scale.

Rarity and list order

rarity controls relative frequency: a candidate with rarity: 2 has half the selection weight of one with rarity: 1; rarity: 10 has a tenth. Region rarity is capped at 128, and biome rarity at 512. These ratios do not guarantee an exact percentage of the map.

Array order affects adjacency. Nearby entries tend to become neighbors in the world, so reordering a list can change biome borders. Distribution also depends on the dimension's regionStyle and regionZoom. Use /iris studio regions to measure each region's share of a sample area.

The shore band

The dimension fluidHeight and the region's shore-height settings determine where sea, shore, and land biomes appear along the coast.

Column height (relative to fluidHeight) Resulting role
below fluidHeight sea
exactly fluidHeight shore
fluidHeight - 1 up to fluidHeight + shoreHeight shore
above fluidHeight + shoreHeight land

shoreHeightMin and shoreHeightMax set the vertical beach band. shoreHeightZoom controls how quickly its height varies along the coast: lower values give frequent changes, while higher values give longer, more uniform stretches.

Flat coastlines with a high shoreHeightMax produce wide beaches. Steep cliffs cross the same height band quickly, leaving narrow beaches. Set shoreMinimumWidth above zero to widen the band according to the local slope and preserve more beach across steep ground.

Renaming a region, changing landBiomeZoom, or changing the number of land biomes can also alter the shore-height pattern.

Add a region

Start with a valid dimension and an existing root biome.

  1. Create regions/tutorial.json:
{
  "name": "Tutorial",
  "rarity": 1,
  "color": "#9BEE61",
  "landBiomes": ["starter"],
  "seaBiomes": [],
  "shoreBiomes": []
}

Replace starter with the exact load key of your existing biome. List only root biomes, never a biome that is already another biome's child.

  1. Add "tutorial" to the dimension regions array.
  2. Set "focusRegion": "tutorial" on the dimension. This selects that region for every column while you edit.
  3. Validate the pack. Then open Studio on seed 1337 (/iris studio open <pack> seed=1337 on Bukkit or /iris studio open <pack> 1337 on mod loaders).
  4. Fly into freshly generated chunks and run /iris what region.

Success: it reports tutorial everywhere. /iris what biome reports starter. Validation logs no unresolved keys.

  1. Remove focusRegion. Reopen Studio. Travel until tutorial shows up on its own. Now add sea and shore biomes together, then cave biomes. Validate after each group.

Walkthrough: make biomes bigger in one region only

Suppose the tutorial region biomes are too small and choppy. The rest of the dimension is fine.

{
  "name": "Tutorial",
  "rarity": 1,
  "landBiomes": ["starter", "starter-hills"],
  "landBiomeZoom": 3.5
}

Observable result: individual land biome patches in this region become roughly 3.5x wider. Nothing outside the region changes. The dimension biomeZoom still applies on top. The bundled temperate region uses 3.5 for land, 6 for sea and 0.15 for shore. Shores are deliberately zoomed down so beach variants change every few dozen blocks along a coastline instead of running for hundreds of blocks.

Change one zoom at a time. Regenerate a fresh area between comparisons. Zooms do not affect already generated chunks.

Walkthrough: widen the beaches

{
  "shoreHeightMin": 1,
  "shoreHeightMax": 5.2,
  "shoreHeightZoom": 1.14
}

Observable result: the shore role now claims everything from one block under the water line up to about 5 blocks above it. Gently sloped coasts get much wider sand. If you lower shoreHeightZoom, the beach width varies more rapidly along the coast. If you raise it, you get long, uniform stretches.

For steep coastlines, set shoreMinimumWidth or adjust the terrain slope in the generator.

Land-only dimensions

seaBiomes and shoreBiomes are optional in the schema. Leaving them empty is only safe when no column can ever land at or below fluidHeight. That means every biome in the region uses positive generator min values. The dimension landChance must also keep the continental noise on land. Otherwise the sea or shore role has an empty candidate list at those columns. When a declared land, sea, or shore pool loses every candidate to version content exclusions, the region is excluded from the dimension. Declare compatible alternatives or block fallbacks to keep that region available on older targets.

{
  "name": "Highlands",
  "rarity": 2,
  "landBiomes": ["highlands/plateau"],
  "seaBiomes": [],
  "shoreBiomes": []
}

landBiomes is always required.

Load key

Rule Detail
Folder regions/
Key Path relative to regions/ with .json stripped
Example regions/temperate.json -> key temperate
Referenced from The dimension regions array, using that key

Field reference

Identity and selection

Field Type Default What it does
name string "A Region" Display name shown by /iris what region and the studio map. Renaming can change the shore-height pattern. Required, minimum 2 characters.
rarity int 1-128 1 Controls relative selection weight. 2 gives half the weight of 1; 8 gives an eighth. Raise it for a region you want as an occasional surprise. Leave it at 1 for the backbone of the world.
color string null Hex color (#9BEE61) used by the studio map and /iris studio map. Set it when you are visually debugging region distribution. Without it Iris derives a color from the land biomes vanilla derivatives.

Biome lists

Field Type Required What it does
landBiomes string[] Yes Candidates for columns whose height ends up above the shore band. This is the list that defines the character of the region.
seaBiomes string[] No Candidates for columns below the water line. Empty is only valid if no column in this region can ever fall below fluidHeight.
shoreBiomes string[] No Candidates for the vertical band around the water line. Usually beaches and stony shores.
caveBiomes string[] No Candidates for the biome used underground for layers, decorators and cave-anchored structures. Omitted or empty lists use the surface biome for biome queries and saved generation history, unless a dimension carving band selects another biome.

Packs without caves, including superflat packs, can omit caveBiomes. This fallback does not enable cave generation or add entries to the cave decoration and structure pools.

List root parents only. Child biomes are declared on their parent via children (see 13 - Biomes). If you list a child here, it competes as a root as well and breaks the nesting you intended. Keys are load keys relative to biomes/. temperate/plains means biomes/temperate/plains.json.

A biome does not declare its own role. The role (LAND, SEA, SHORE, CAVE) comes from which list selected it. The same biome file can appear in more than one list. It then takes a different role in each.

Hydrology policy

hydrologyPolicy adjusts the water anywhere this region is selected; a biome policy overrides it again. Unset values inherit from the dimension. An explicitly empty shoreBiomes list clears the inherited list.

Policy field What it controls
rainfall Multiplier on the water that falls here, 0..16: more and larger streams, fuller ponds
pondDensity Multiplier on how many ponds form here, 0..16
streams, ponds ALLOW or BLOCK for streams starting here and ponds forming here
fluid Fluid profile from hydrology.fluids that fills the ponds and lakes here instead of ponds.fluid; channels keep their tier's fluid
decorators Plants for the water here, replacing the tier and pond decorator lists; an empty list grows none
shoreBiomes, shoreBiomeWidth Biomes placed along the water's edge, and the width of that band in blocks, 0..31

The drainage, tiers, pond and lake settings are dimension-owned. See 11 - Dimensions, 36 - Hydrology and 36b - Hydrology Policy.

Zooms and the shore band

Field Type Default What it does
landBiomeZoom double >= 0.0001 1 Multiplies the land biome patch size in this region only. Raise it for continent-scale biomes. Lower it for a busy patchwork.
seaBiomeZoom double >= 0.0001 1 Same for ocean-floor biomes. Oceans usually want a larger value than land so a single ocean type does not change every 200 blocks.
shoreBiomeZoom double >= 0.0001 1 Same for beach variants. Values well below 1 give a coastline that alternates between beach types frequently, which reads as natural variety.
caveBiomeZoom double >= 0.0001 1 Same for cave biomes. Larger values give long stretches of one cave character.
shoreHeightMin double >= 0 1.2 Lower bound, in blocks above the water line, of the shore band.
shoreHeightMax double >= 0 3.2 Upper bound of the shore band. Raise both to get taller, and therefore usually wider, beaches.
shoreHeightZoom double >= 0.0001 3.14 Horizontal scale of the noise that picks the band height per column. Small values make the beach width vary rapidly along the coast. Large values make it uniform.
shoreMinimumWidth double 0-64 0 Minimum beach width in blocks across the ground. 0 keeps the band purely vertical. Above zero the band also climbs with the local slope so a steep coast still gets a beach; the climb is capped at three blocks of height per block of width. Distinct from hydrologyPolicy.shoreBiomeWidth, which is the biome band along rivers, ponds and lakes.

Content attached to the region

Everything here applies anywhere this region is selected, on top of what the biome contributes.

Field Type Default What it does
objects object-placement array empty .iob placements that should exist across the whole region rather than in one biome. Regional landmarks, scattered wrecks. Use carvingSupport to choose surface or cave placement. See 20 - Object Placement.
proceduralObjects procedural-object settings empty Trees, ruins, formations, coral, fungi and crystals generated from parameters rather than .iob files. See 17 - Procedural Objects.
structures structure-placement array empty Jigsaw and native structure placements evaluated where this region owns the chunk center. Use this instead of copying a placement onto every biome in the region. See 21 - Jigsaw Structures.
entitySpawners string[] empty Keys under spawners/ that keep replenishing mobs while a player is in this region. See 23b - Entities & Spawners.
effects effect array empty Client-side ambience (potion effects, sounds, particles) delivered per player by packet. Use for regional mood. No two players see each other effects.
loot loot settings empty Loot tables that apply to containers generated in this region.
blockDrops block-drop array empty Overrides what blocks drop when broken inside this region.
deposits deposit array empty Blob-style deposits added on top of the dimension deposits. Use for regional stone variants and ore pockets.
depositVariants deposit-variant array empty Remaps deposit blocks inside a Y band. Evaluated after the biome variants and before the dimension. First matching rule in this tier wins.
ores noise-ore array empty Vein-style ores. Use generateSurface to choose surface or underground placement.
caveProfile cave profile default profile Cave density, thresholds and surface behavior for this region. Biome profiles override this. See 15 - Caves & Carving.
hydrologyPolicy hydrology policy or null inherit Adjusts the dimension hydrology policy for this region. See "Hydrology policy" above.

Deposit precedence across tiers: biome variants, then region variants, then dimension variants. First match wins within each tier.

Overworld sample: temperate

Path in the bundled pack: packs/overworld/regions/temperate.json.

Field Value Why
name / color Temperate / #9BEE61
rarity 1 Most common region. The world default character.
landBiomes 30 keys, e.g. temperate/plains, temperate/cherry-blossom-forest, vanilla/cherry_grove A large list keeps a single region visually varied without needing many regions.
seaBiomes 6 keys, e.g. ocean/deep, temperate/sea/ocean Natural below-sea-level biome selection. Rivers and ponds keep the biome they cross unless a hydrologyPolicy places shore biomes along them.
hydrologyPolicy rainfall 1.44, three shore biomes listed A wetter region than the dimension default. It lists temperate/shore/beach, temperate/shore/oak-beach and ocean/shore/beach as shore biomes; with no shoreBiomeWidth set, the band is off.
shoreBiomes 3 keys: temperate/shore/beach, temperate/shore/oak-beach, ocean/shore/beach
caveBiomes 6 keys, e.g. carving/drip, carving/moss-pillars
landBiomeZoom / seaBiomeZoom 3.5 / 6 Oceans stay recognisable across long swims.
shoreBiomeZoom / caveBiomeZoom 0.15 / 3.3 Beaches change type often. Caves keep one character for a while.
shoreHeightMin / Max / Zoom 1 / 5.2 / 1.14 Noticeably wide beaches with rapidly varying width.
deposits, loot, caveProfile present Iron/coal bands, FALLBACK loot mode, an enabled cave profile.

The file sets no objects, structures, ores, entitySpawners or effects. All of that lives on the biomes.

Region keys listed by the bundled overworld dimension: frozen, hot, terralost, mushroom, forests, tundra, magnetics, temperate, estranged, tropical, swamp, prismatics.

Placement rules

Region objects obey each placement's carvingSupport; cave-only placements do not appear on the surface. Structure placements from the dimension, region, surface biome, and cave biome can all apply to a chunk. The region and biome choices use the chunk center; cave biomes contribute only structures with cave anchors.

Region changes affect newly generated chunks. Use fresh terrain when comparing rarity, zoom, or content settings.

Related:


Back | FazBrowse Home | New Git URL