Iris uses a sophisticated worm-based carving system to generate caves and ravines that feel organic and natural. These features can branch, fork, and create complex underground networks.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/VolmitSoftware/Iris/llms.txt
Use this file to discover all available pages before exploring further.
Caves
Caves are defined in thecaves/ folder and use 3D worm generation to carve through terrain.
Basic Cave Configuration
Worm Configuration
The worm is the pathfinding system that determines how caves and ravines travel through the world.Movement Styles
xStyle, yStyle, zStyle
Control movement curvature on each axis using noise generators.
- min/max: Movement range in blocks per iteration
- generator: Noise type (PERLIN, SIMPLEX, CELLULAR, etc.)
Distance & Iterations
maxDistance (default: 128)
Maximum block distance the worm can travel from its starting point.
maxIterations (default: 512)
Number of steps the worm takes. More iterations = longer caves.
Thickness (Girth)
girth
Defines cave tunnel thickness using a styled range.
Loop Prevention
allowLoops (default: false)
By default, worms stop when looping back into themselves. This is an optimization.
Cave-Specific Options
Vertical Range
verticalRange
Constrains the Y levels where caves can generate.
Cave Shape
shape
Defines the 3D shape of the cave using noise-based masking.
Custom Biomes
customBiome
Force caves to generate a specific custom biome.
Forking
fork
Create branching cave systems using the carving system.
Ravines
Ravines are vertical cuts through terrain defined in theravines/ folder. Unlike caves, they use 2D worm movement with vertical expansion.
Basic Ravine Configuration
Ravine Worm
Ravines use the same worm system as caves, but typically ignore Y movement:Depth & Width
depthStyle
Determines how deep the ravine cuts.
baseWidthStyle
Controls the base width of the ravine.
Angles
angle (default: 18, range: 1-100)
Angle at which the ravine widens from base toward the surface.
topAngle (default: 38, range: 1-100)
Additional widening angle near the surface for dramatic openings.
Rib Thickness
ribThickness (default: 3, range: 1-8)
Thickness of the vertical segments that make up the ravine walls.
Node Threshold
nodeThreshold (default: 5)
Minimum worm nodes required to generate a ravine. Reduces “ravine holes” where paths are too short.
Lava Level
lavaLevel (default: -1)
Fill the ravine with lava from the bottom up to this height (relative to bottom).
-1 to disable lava.
Custom Biomes
customBiome
Force a custom biome in the ravine.
Forking
fork
Ravines can spawn additional caves or ravines along their path.
Forking & Carving
Both caves and ravines support forking to create complex networks.Fork Configuration
chance
Probability (0-1) of forking at each worm node.
maxRecursion
Maximum fork depth to prevent infinite recursion.
caves / ravines
Arrays of cave/ravine IDs that can spawn as forks.
Advanced Examples
Deep Cave System
Dramatic Canyon
Lava-Filled Ravine
Performance Considerations
- Limit maxDistance: Keep under 300 for most use cases
- Control iterations: Higher iterations = longer generation time
- Manage fork recursion: Never exceed 5 levels of recursion
- Optimize girth: Extremely thick caves (>15) can lag during carving
- Use vertical ranges: Constrain Y levels to reduce wasted processing
Troubleshooting
Caves breaking the surface
Adjust the worm’syStyle to reduce upward movement:
Ravines too short
IncreasemaxIterations and decrease nodeThreshold:
Performance issues
- Reduce
maxDistanceandmaxIterations - Lower fork
chanceandmaxRecursion - Decrease
girthvalues - Simplify noise generators (use PERLIN instead of CELLULAR)
Water-filled caves when unintended
The cave system automatically detects when it breaks above the fluid height and fills with water. AdjustverticalRange to keep caves below sea level: