-
Notifications
You must be signed in to change notification settings - Fork 3
Nether Jigsaw Structure
moogs_structures:moogs_structures_generic_nether_jigsaw_structure is a second structure type for the nether. It finds a place to sit by scanning the terrain column rather than using a heightmap, which is what the nether needs given it has floor, ceiling and floating ledges rather than one surface.
For a worked example see Nether Structure. This page is the field reference.
From MNS2's mega fortress, pinned at a fixed height:
{
"type": "moogs_structures:moogs_structures_generic_nether_jigsaw_structure",
"start_pool": "mns:mega_fortress/start/start_pool",
"size": 128,
"max_distance_from_center": 128,
"biomes": "#mns:has_structure/nether_biomes",
"land_search_direction": "FIXED_HEIGHT",
"step": "surface_structures",
"terrain_adaptation": "none",
"start_height": { "absolute": 19 }
}Shared with the regular jigsaw structure:
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
start_pool |
pool | yes | ||
size |
int | yes | 0 to 128. Branching depth, not a piece count. See below. | |
start_height |
height provider | yes | Meaning depends on land_search_direction. |
|
y_allowance |
object | no |
min_y_allowed and max_y_allowed, both optional ints. |
|
cannot_spawn_in_liquid |
bool | no | false |
|
valid_biome_radius_check |
int | no | 1 to 100. | |
max_distance_from_center |
int | no | 80 |
1 to 128. Horizontal half-width the structure may sprawl. |
pools_that_ignore_boundaries |
list | no | [] |
See gotchas. |
use_bounding_box_hack |
bool | no | false |
Reserves vertical room for tall follow-on pieces after short ones. |
liquid_settings |
string | no | vanilla default |
Nether only:
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
land_search_direction |
string | yes |
HIGHEST_LAND, LOWEST_LAND or FIXED_HEIGHT. Uppercase. |
|
ledge_offset_y |
int | no | 0 |
0 to 100. Lifts the structure off the ledge it landed on. Cannot be negative. |
enhanced_terrain_adaptation |
object | no | See Enhanced terrain adaptation. |
Required, and the values are uppercase. Lowercase is rejected at load.
| Value | Behaviour | What start_height means |
|---|---|---|
HIGHEST_LAND |
Scans down from well below the nether roof for the first solid block with air above it. | An offset added to the block it found. |
LOWEST_LAND |
Scans up from just above sea level for the first solid block with clear space above. | An offset added to the block it found. |
FIXED_HEIGHT |
No scan. Places the structure at the height you give. | The absolute world Y of the start piece's lowest layer. |
FIXED_HEIGHT is for structures that must sit at a known Y regardless of terrain, like the mega fortress above at Y 19.
Nether basalt columns and basalt delta blobs will happily generate inside your structure. Two structure tags stop that:
data/moogs_structures/tags/worldgen/structure/no_basalt.json
data/moogs_structures/tags/worldgen/structure/no_delta.json
Written into MSL's namespace, listing your own structure ids:
{ "values": ["mns:mega_fortress", "mns:nether_tower"] }Suppression applies within 4 blocks of each individual piece, not the whole structure bounding box, so the empty space between distant pieces still gets normal nether features.
The two behave slightly differently. no_basalt blocks each column individually. no_delta cancels a whole delta if its origin lands near a piece, so a delta starting just outside can still spill in.
These work on any structure, not only MSL's types.
-
Four fields from the regular jigsaw structure do nothing here.
project_start_to_heightmap,terrain_height_radius_check,allowed_terrain_height_rangeandburying_typeare not read by the nether type, and writing them produces no error. Terrain flatness gating in particular is not available, so do not try to gate a nether structure that way. -
sizeis branching depth, not a piece count. Asizeof 128 permits a chain 128 pieces deep from the start, and the finished structure can hold far more pieces than that.size: 0places the start piece alone. -
y_allowanceclamps rather than rejects. On the nether type it slides the structure to fit the range instead of cancelling it. If the range is shorter than the structure is tall, it ends up abovemax_y_allowed. -
pools_that_ignore_boundariesmatches the pool'sfallbackid. Listing the pool a jigsaw block points at does nothing. List the id in that pool'sfallbackfield instead. -
max_distance_from_centeris horizontal only. Vertical sprawl is fixed at 120 below and 180 above the start piece and cannot be configured. -
ledge_offset_yonly goes up. There is no way to sink a structure with it.
- Nether Structure for a worked example.
- Enhanced terrain adaptation, which only works on this structure type.
- Structure Files for the shared structure fields.
Getting started
Core concepts
- pillar
- spawner_randomizing
- trial_spawner_randomizing
- vault_randomizing
- equip_armor_stand
- close_off_fluid_sources
- flood_with_water
- remove_floating_blocks
- random_replace_with_properties
- super_gravity
Advanced
- versioned_single_pool_element
- Nether jigsaw structures
- Enhanced terrain adaptation
- Entity processor framework
- Debug commands
- Advanced Topics
Examples