-
Notifications
You must be signed in to change notification settings - Fork 2
Complex Structure
This walkthrough demonstrates creating a large, complex jigsaw structure using the Cathedral structure from MoogsVoyagerStructures as an example. Complex structures use multiple pools, jigsaw expansion, and advanced features.
The Cathedral structure demonstrates:
- Large jigsaw expansion (
size: 17) - Maximum distance limits (
max_distance_from_center: 35) - Multiple template pools
- Spawn overrides for custom entities
- Rare structure placement
data/mvs/
├── structure/
│ └── cathedral/
│ ├── base/
│ │ ├── base.nbt
│ │ └── bottom.nbt
│ ├── corridors/
│ │ └── (multiple .nbt files)
│ ├── special/
│ │ └── (multiple .nbt files)
│ └── ...
└── worldgen/
├── structure/
│ └── cathedral.json
├── structure_set/
│ └── cathedral.json
└── template_pool/
└── cathedral/
└── temp.json
Complex structures require many pieces:
-
cathedral/base/base.nbt- Main base piece -
cathedral/base/bottom.nbt- Bottom section -
cathedral/cathedral_start.nbt- Starting piece
-
cathedral/corridors/corridor_1.nbtthroughcorridor_8.nbt - Various corridor configurations
-
cathedral/special/room_1.nbtthroughroom_13.nbt - Special rooms and features
Each piece contains jigsaw blocks that connect to other pieces:
- Base connects to corridors
- Corridors connect to special rooms
- Corridors connect to other corridors
- Special rooms connect back to corridors
Jigsaw Block Setup:
-
Name: Pool to connect to (e.g.,
mvs:cathedral/corridor) -
Target: Jigsaw block name in target pieces (e.g.,
cathedral_corridor)
File: data/mvs/worldgen/template_pool/cathedral/temp.json
{
"name": "temp",
"fallback": "minecraft:empty",
"elements": [
{
"weight": 1,
"element": {
"element_type": "minecraft:single_pool_element",
"projection": "rigid",
"location": "mvs:cathedral/base/base",
"processors": "minecraft:empty"
}
}
]
}File: data/mvs/worldgen/template_pool/cathedral/corridor.json
{
"name": "mvs:cathedral/corridor",
"fallback": "minecraft:empty",
"elements": [
{
"weight": 1,
"element": {
"location": "mvs:cathedral/corridors/corridor_1",
"processors": "minecraft:empty",
"projection": "rigid",
"element_type": "minecraft:single_pool_element"
}
},
{
"weight": 1,
"element": {
"location": "mvs:cathedral/corridors/corridor_2",
"processors": "minecraft:empty",
"projection": "rigid",
"element_type": "minecraft:single_pool_element"
}
}
// ... more corridor variants
]
}File: data/mvs/worldgen/template_pool/cathedral/special.json
{
"name": "mvs:cathedral/special",
"fallback": "minecraft:empty",
"elements": [
{
"weight": 1,
"element": {
"location": "mvs:cathedral/special/room_1",
"processors": "minecraft:empty",
"projection": "rigid",
"element_type": "minecraft:single_pool_element"
}
}
// ... more special room variants
]
}File: data/mvs/worldgen/structure/cathedral.json
{
"type": "moogs_structures:moogs_structures_generic_jigsaw_structure",
"start_pool": "mvs:cathedral/temp",
"size": 17,
"max_distance_from_center": 35,
"project_start_to_heightmap": "WORLD_SURFACE_WG",
"cannot_spawn_in_liquid": true,
"terrain_height_radius_check": 1,
"allowed_terrain_height_range": 5,
"liquid_settings": "ignore_waterlogging",
"biomes": "#mvs:has_structure/overworld_biomes",
"step": "surface_structures",
"terrain_adaptation": "beard_thin",
"start_height": {
"absolute": 0
},
"spawn_overrides": {
"monster": {
"bounding_box": "full",
"spawns": [
{
"type": "minecraft:skeleton",
"weight": 1,
"minCount": 1,
"maxCount": 2
},
{
"type": "minecraft:zombie",
"weight": 2,
"minCount": 2,
"maxCount": 5
}
]
}
}
}{
"size": 17
}What this does:
- Allows structure to expand up to 17 jigsaw connections
- Creates large, complex structures
- Higher values = larger structures (max 30)
{
"max_distance_from_center": 35
}What this does:
- Limits how far pieces can extend from center
- Prevents structures from growing too large
- 35 blocks = pieces must be within 35 blocks of center
Why: Controls total structure size even with high size value.
{
"terrain_height_radius_check": 1,
"allowed_terrain_height_range": 5
}What this does:
- Checks terrain in 1 chunk radius
- Allows up to 5 block height difference
- More lenient than simple structures (cathedrals are large)
{
"liquid_settings": "ignore_waterlogging"
}What this does:
- Handles waterlogging in structure blocks
- Important for large structures near water
{
"spawn_overrides": {
"monster": {
"bounding_box": "full",
"spawns": [
{
"type": "minecraft:skeleton",
"weight": 1,
"minCount": 1,
"maxCount": 2
},
{
"type": "minecraft:zombie",
"weight": 2,
"minCount": 2,
"maxCount": 5
}
]
}
}
}What this does:
- Spawns custom entities in the structure
-
monstercategory spawns hostile mobs -
bounding_box: "full"spawns throughout entire structure - Weighted random selection:
- Skeletons: 1/3 chance, 1-2 spawn
- Zombies: 2/3 chance, 2-5 spawn
File: data/mvs/worldgen/structure_set/cathedral.json
{
"structures": [
{
"structure": "mvs:cathedral",
"weight": 1
}
],
"placement": {
"type": "moogs_structures:advanced_random_spread",
"salt": 303685798,
"spacing": 105,
"separation": 98,
"min_distance_from_world_origin": 1000
}
}Spacing: 105 chunks (~1680 blocks)
- Very rare structure
- High spacing = uncommon spawns
Separation: 98 chunks (~1568 blocks)
- High separation = far apart
- Prevents multiple cathedrals nearby
Minimum Distance: 1000 blocks
- Only spawns far from world spawn
- Creates exploration goal
- End-game content
1. Start Pool places base piece
↓
2. Base jigsaw blocks reference corridor pool
↓
3. Corridor pool selects random corridor piece
↓
4. Corridor connects to base
↓
5. Corridor jigsaw blocks reference:
- More corridors (continues expansion)
- Special rooms (branches off)
↓
6. Process repeats until:
- size limit (17) reached
- max_distance_from_center (35) reached
- No more jigsaw connections available
Base Piece (base.nbt):
- Contains jigsaw blocks:
- Name:
mvs:cathedral/corridor - Target:
cathedral_corridor
- Name:
Corridor Piece (corridor_1.nbt):
- Contains jigsaw blocks:
- Name:
mvs:cathedral/corridor(continues corridor) - Target:
cathedral_corridor - Name:
mvs:cathedral/special(branches to rooms) - Target:
cathedral_special
- Name:
Special Room (room_1.nbt):
- Contains jigsaw blocks:
- Name:
mvs:cathedral/corridor(returns to corridor) - Target:
cathedral_corridor
- Name:
- Create a new world with your datapack/mod
- Travel far from spawn (1000+ blocks)
- Use
/locate structure mvs:cathedralto find cathedrals - Verify:
- Structure expands correctly
- Stays within size limits
- Custom entities spawn
- Proper spacing from other cathedrals
- Terrain is suitable
Solutions:
- Reduce
sizevalue - Lower
max_distance_from_center - Limit jigsaw connections in NBT files
Check:
- Jigsaw blocks are placed correctly
- Pool names match jigsaw block names
- Target names match between pieces
-
sizeis high enough
Check:
- Spawn override syntax is correct
- Entity types are valid
-
bounding_boxis set correctly - Structure has valid spawn locations
For decorative elements that can extend beyond limits:
{
"pools_that_ignore_boundaries": [
"mvs:cathedral/decorative_pool"
]
}Allows decorative pools to extend beyond max_distance_from_center.
To have multiple cathedral variants:
Structure Set:
{
"structures": [
{
"structure": "mvs:cathedral",
"weight": 3
},
{
"structure": "mvs:cathedral_ruined",
"weight": 1
}
]
}Ruined cathedrals spawn 1/3 as often as regular cathedrals.
- Plan Your Layout - Sketch structure before building
- Modular Pieces - Create reusable corridor/room pieces
- Clear Connections - Use consistent jigsaw naming
- Test Incrementally - Test each pool separately
-
Limit Growth - Use
max_distance_from_centerto control size - Variety - Multiple variants keep structures interesting
- Documentation - Note jigsaw connections for reference
| Feature | Simple (Cart) | Complex (Cathedral) |
|---|---|---|
| Size | 1 | 17 |
| Max Distance | Not set | 35 |
| Pools | 1 | Multiple |
| Jigsaw | None | Extensive |
| Spawn Overrides | None | Custom entities |
| Spacing | 34 chunks | 105 chunks |
| Min Distance | None | 1000 blocks |
Now that you understand complex structures:
- Advanced Topics - More advanced features
- Structure Files - Complete reference
- Template Pools - Advanced pool techniques
See Also:
- Structure Files - All structure options
- Template Pools - Jigsaw connections
- Placement Systems - Rare structure placement
- Advanced Topics - Advanced features