What You’ll Build
By the end of this guide, you’ll have:- A working datapack that uses Lithostitched modifiers
- A custom biome feature addition that adds flowers to plains biomes
- Understanding of the modifier system and JSON structure
Prerequisites
- Lithostitched installed (see Installation)
- Basic understanding of Minecraft datapacks
- A text editor (VS Code, IntelliJ IDEA, etc.)
Project Setup
Creating Your First Modifier
Let’s create a modifier that adds poppy flowers to plains biomes.Step 1: Define the Modifier
Createdata/my_worldgen_pack/lithostitched/worldgen_modifier/add_poppies.json:
add_poppies.json
The
priority field determines the order in which modifiers are applied. Lower numbers = higher priority. Default is 1000.type- The modifier type. SeeLithostitched.java:103-118for all available typespriority- Execution order (optional, defaults to 1000)biomes- Target biomes (can be a tag like#minecraft:is_overworldor single biome)features- Features to add (can be a list or single feature)step- Generation step (see Generation Steps)
Step 2: Test the Modifier
Understanding Modifier Types
Lithostitched provides many modifier types. Here are the most commonly used:Biome Modifiers
Add Features
Add placed features to biomes during specific generation steps:Remove Features
Remove existing features from biomes:Replace Biome Effects
Customize biome colors, particles, sounds, and music:Structure Modifiers
Add Surface Rules
Add custom terrain generation rules:Add Template Pool Elements
Add structure pieces to jigsaw pools:Advanced Example: Bandlands Terrain
Create custom banded terrain similar to badlands:Step 1: Define the Bandlands
Createdata/my_worldgen_pack/lithostitched/bandlands/custom_bands.json:
custom_bands.json
Step 2: Apply with Surface Rule
Create a modifier that uses the bandlands:use_bandlands.json
- 3 blocks of red terracotta at the base
- 2 blocks of orange terracotta above
- Repeating pattern of yellow and white terracotta (4 blocks high, repeating 10 times)
Generation Steps
When using feature modifiers, specify the correct generation step:| Step | Description | Examples |
|---|---|---|
raw_generation | Terrain features | Lakes, springs |
lakes | Lake generation | - |
local_modifications | Local terrain edits | Amethyst geodes, icebergs |
underground_structures | Underground features | Dungeons, monster rooms |
surface_structures | Surface structures | Villages, temples |
strongholds | Stronghold generation | - |
underground_ores | Ore generation | All ores |
underground_decoration | Underground decorations | Pointed dripstone, roots |
fluid_springs | Spring features | Water/lava springs |
vegetal_decoration | Plant features | Trees, flowers, grass |
top_layer_modification | Final layer changes | Freeze top layer |
Debugging Tips
Enable Debug Logging
Createconfig/lithostitched.json in your instance folder:
lithostitched.json
Lithostitched.java:234-238.
Common Issues
Modifier not loading:- Check JSON syntax with a validator
- Verify file is in correct location:
data/<namespace>/lithostitched/worldgen_modifier/ - Check logs for parsing errors
- Ensure you’re in a newly generated chunk
- Verify biome selector matches target biomes
- Check modifier priority doesn’t conflict with other mods
- Use
/locateto verify features exist - Check feature namespaces are correct
- Ensure referenced tags are defined
Next Steps
Now that you’ve created your first modifier, explore more advanced features:Modifier Reference
Complete list of all modifier types and their options
Surface Rules
Learn about custom terrain generation with surface rules
Structure System
Advanced structure customization and processors
Common Patterns
Real-world examples and use cases
