Skip to content

Structure Limitations Section

Ryandw11 edited this page Mar 19, 2023 · 2 revisions

The structure limitation section contains limitations for where the structure can spawn, what spawns in it, and other limitation factors.

StructureLimitations:
  IterationLimit: 20
  WorldHeightRestriction: 10
  WhitelistSpawnBlocks:
    - GRASS_BLOCK
    - Dirt
    - Stone
    - air
  BlacklistSpawnBlocks: []
  BlockLevelLimit:
    Mode: flat
    CornerOne:
      x: -5
      z: -5
    CornerTwo:
      x: 5
      z: 5

  ReplaceBlocks:
    'STONE': 'AIR'

  ReplaceBlockDelay: 0

Iteration Limit

The iteration limit controls how deep sub-schematic recursion is permitted to go. This should only be changed if you are creating a recursive structure. See more about recursive structure here.

IterationLimit: 20

Quick Reference:
Required: False
Value Type: Integer
Default Value: 2

World Height Restriction

The WorldHeightRestriction property defines how much vertical space is required for a structure to spawn. A structure will not spawn at the top of a world if it does not have enough space.

WorldHeightRestriction: 10

In the example above, 10 blocks of vertical space is needed for a structure to spawn.


Quick Reference:
Required: False
Value Type: Integer
Default Value: 0

Whitelist Spawn Blocks

The WhitelistSpawnBlocks property determines what blocks a structure is allowed to spawn on. The origin point of a structure is the only block that is checked by this property.

WhitelistSpawnBlocks:
  - GRASS_BLOCK
  - DIRT
  - STONE
  - AIR

In the example above, the structure origin point can spawn on four blocks: GRASS_BLOCK, DIRT, STONE, and AIR. You can find a complete list of block names here.

If you want a structure to spawn on any block, you can simply omit this property or set it to an empty list.

WhitelistSpawnBlocks: []

Quick Reference:
Required: False
Value Type: String List
Default Value: Any Block

Blacklist Spawn Blocks

The BlacklistSpawnBlocks property determines what blocks a structure is not allowed to spawn on. The origin point of a structure is the only block that is checked by this property.

BlacklistSpawnBlocks:
  - SNOW_BLOCK
  - DIRT

In the example above, the structure origin point cannot spawn on two blocks: SNOW_BLOCK and DIRT. You can find a complete list of block names here.

If do not want to ban the structure from spawning on any blocks, you can simply omit this property or set it to an empty list.

BlacklistSpawnBlocks: []

Quick Reference:
Required: False
Value Type: String List
Default Value: No Blocks

Block Level Limit

The BlockLevelLimit property is a way to require your structure to spawn on relatively flat ground. There are two mode: flat and flat_error.

BlockLevelLimit:
  Mode: 'flat'
  CornerOne:
    x: -5
    z: -5
  CornerTwo:
    x: 5
    z: 5

Quick Reference:
Required: False
Default Behavior: Feature Disabled

Flat Mode

The flat mode requires the section of ground specified by CornerOne and CornerTwo to be completely flat in order for the structure to spawn.

BlockLevelLimit:
  Mode: 'flat'
  CornerOne:
    x: -5
    z: -5
  CornerTwo:
    x: 5
    z: 5

In the example above the plugin will check a box with the structure spawn point as its origin. The box has a width of 10, length of 10, and a height of 1.
Note: CornerOne.x < CornerTwo.x and CornerOne.z < CornerTwo.z.

Consider The Following: Require a large area to be flat will greatly reduce the probability of your structure spawning. Consider using flat_error mode instead or increasing the probability and priority of your structure.

Flat Error Mode

The flat_error mode works the same as the flat mode, except that a margin of error is allowed. This means it is accepted for the the ground to not be completely flat, but close to it. This is the better system to use as it will likely have less of an impact on where your structure can spawn.

BlockLevelLimit:
  Mode: flat_error
  Error: 0.40
  CornerOne:
    x: -5
    z: -5
  CornerTwo:
    x: 5
    z: 5

In the example above, the Error: 0.40 defines a 40% margin of error for the structure to spawn. The way this works is that it counts every block that is not valid according to the flat conditions, adding one to the error counter each time. It then calculates error/BoxVolume and compares it to the Error: 0.40 value. If error/BoxVolume is greater than 0.40, then the plugin will not spawn the structure.

Replace Blocks

The ReplaceBlocks property allows you to replace any blocks within your schematics with another block. This means it will also replace the blocks within subschematics too.

ReplaceBlocks:
  'STONE': 'AIR'
  'SPONGE': 'GRASS_BLOCK'

In the example above, all stone blocks are replaced with air and all sponge blocks are replaced with grass blocks. The property follows to format of REPLACEE: REPLACER. You can find a list of valid materials here.

Note: Replacement occurs after the schematics are pasted into the world. That means that existing blocks from the terrain can be replaced if place air is set to false, or a mask is used.


Quick Reference:
Required: False
Value Type: Key-Value List
Default Value: No Replaced Blocks

Replace Block Delay

The ReplaceBlockDelay property allows you to set a delay between when the structure spawns the schematic, and when it performs any block replacement (this includes chest content replacement and sign replacement).

ReplaceBlockDelay: 0

Note: If you are using FAWE or some other asynchronous WorldEdit plugin, then you will need to modify this value.


Quick Reference:
Required: False
Value Type: Double (In Seconds)
Default Value: 0