-
Notifications
You must be signed in to change notification settings - Fork 3
pillar_processor
Extends a pillar from a trigger marker block until it reaches solid ground. You place a single marker block in your NBT (say lime stained glass), and at generation time the processor replaces the marker and grows a column of your chosen block down (or up) through air and liquids until it hits terrain. Use it for legs under stilted builds, chains hanging from a ceiling, or to extend the base of a structure down to the surface.
The pillar logic is ported from RepurposedStructures (TelepathicGrunt). The altitude-aware block randomizer is inspired by YUNG's API.
A marker of lime stained glass grows a chain pillar upward, up to 60 blocks:
{
"processor_type": "moogs_structures:pillar_processor",
"direction": "up",
"pillar_length": 60,
"pillar_trigger_and_replacements": [
{
"trigger": { "Name": "minecraft:lime_stained_glass" },
"replacement": { "Name": "minecraft:chain" }
}
]
}| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
pillar_trigger_and_replacements |
array of {trigger, replacement}
|
yes | Each entry maps one marker block-state to the block the pillar fills with. Both are full block-state objects (Name + optional Properties). |
|
direction |
direction string | no | down |
Axis the pillar grows along. down samples the terrain and stops at ground; up (and any other direction) skips terrain sampling. |
pillar_length |
int | no | 1000 |
Max blocks from the marker before the pillar stops. |
original_replaced_block |
block-state | no | (the trigger's replacement) |
What the marker position itself becomes. Set to minecraft:structure_void to make the marker vanish while the pillar still fills. |
forced_placement |
bool | no | false |
false fills only through non-occluding blocks (air, liquids, plants) and stops at the first solid. true also carves through breakable solids, ignoring the terrain floor; stops only at unbreakable blocks, build height, or pillar_length. |
pillar_processor_list |
resource location | no | minecraft:empty |
A registered processor_list run over every block the pillar places, in order. Use it to weather or decorate the fill. |
pillar_state_randomizer |
object | no | (none) | Vary the fill block by roll and altitude instead of a flat replacement. See below. |
When present, each pillar block is rolled from this instead of the flat replacement.
"pillar_state_randomizer": {
"default": { "Name": "minecraft:deepslate" },
"entries": [
{ "block": { "Name": "minecraft:magma_block" }, "probability": 0.35, "max_y": 32 },
{ "block": { "Name": "minecraft:cobbled_deepslate" }, "probability": 0.2 }
]
}| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
default |
block-state | yes | Used when no entry is picked, or a picked entry fails its altitude check. | |
entries |
array | no | [] |
Weighted candidates. |
entries[].block |
block-state | yes | The candidate block. | |
entries[].probability |
float | yes | 0.0 to 1.0. Entries occupy probability bands in list order; leftover probability falls to default. |
|
entries[].min_y / max_y
|
int | no | (none) | Inclusive altitude bounds. Outside the range, the entry is skipped and the roll falls to default. |
Probabilities are cumulative bands, not independent chances: two entries at 0.35 and 0.2 leave 0.45 for default. If they sum past 1.0, later entries never get reached.
- The marker block is consumed. If you leave
original_replaced_blockunset, the marker position becomes that trigger'sreplacement, not air. Useminecraft:structure_voidif you want the marker gone. -
downis the only direction that stops at terrain.upwill run the fullpillar_lengthunless it hits something solid, so set a sane length. - Multiple triggers in one processor share the
pillar_state_randomizerand other settings. For different behaviour per marker, use multiplepillar_processorentries in the list.
- Structure Processors overview.
-
super_gravity_processorfor blocks that fall onto terrain rather than fill toward it.
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