Skip to content

Structure Location Section

Ryandw11 edited this page Jun 23, 2024 · 3 revisions

The structure location section is property section the defines the locations of where a structure is allowed to spawn.

StructureLocation:
  Worlds:
    - world
  WorldBlacklist: []
  SpawnY: top
  SpawnYHeightMap: 'WORLD_SURFACE'
  CalculateSpawnFirst: true
  Biome: []
  DistanceFromOthers: 200
  SpawnDistance:
    x: 10
    z: 10

Limiting Worlds

You can limit what worlds a structure can spawn in using a whitelist or blacklist.
Note: The global world blacklist and whitelist will take precedence over these settings.

Whitelist

Using the Worlds property you can limit the worlds that a structure can spawn in. The Worlds property is a string list. It is not a required property and has a default value of allowing all worlds.

Worlds:
  - world
  - demo_world

Each entry above denotes the name of the world where the structure can spawn. So in the example above, the structure would only be able to spawn in the world and demo_world worlds.
If you want to allow all worlds you can simply omit the property or set it to an empty list as shown below:

Worlds: []

Quick Reference:
Required: False
Value: A list containing world names.
Default Value: All worlds.

Blacklist

Using the WorldBlacklist property, you can prevent structures from spawning in specific worlds. It is not a required property and has a default value of allowing all worlds.

WorldBlacklist:
  - demo_world

Each entry above denotes the name of the world where the structure should not spawn. So in the example above, the structure would be able to spawn in any world other than the world and demo_world worlds.
If you want to allow all worlds you can simply omit the property or set it to an empty list as shown below:

WorldBlacklist: []

An AND operation is used when combined with the Worlds property. If one disallows the spawning in a world, then it cannot spawn there. So for example is both list demo_world, then demo_world won't be able to spawn.


Quick Reference:
Required: False
Value: A list containing world names.
Default Value: No worlds.

Spawn Y

The SpawnY property allows you to configure where the structure should spawn on the y axis. This property takes in what is know as a SpawnY String by the plugin. A SpawnY String is a versatile configuration string that defines where the structure spawns on the y axis (including values relative to the terrain height).

Remember: The schematic of a structure will spawn at its origin point. The origin point of a schematic is where you were standing when you created the schematic. If your structure is spawning too low in the ground, consider standing lower when creating your schematic.

Defined below are the different possible inputs allowed in a SpawnY String.

Surface Spawning

SpawnY: 'top'

The top value denotes that the plugin should spawn the structure at the height block in the world (aka being flush with the terrain or on the surface). What the plugin considers to be the top of the world can be configured using the SpawnYHeightMap property.

Integer Value (Number)

SpawnY: 10

Suppling a single integer value will tell the plugin that the structure should spawn at that y-level exactly. So in the example above, the structure will always spawn at a y-level of 10. You can supply any integer value (including negative numbers) as long as it is within the world height constraints.

You can also provide a range of integers that the plugin can spawn the structure on. When a structure is placed, the plugin will pick a random y position in the range (inclusive) to place the structure.

SpawnY: '[20;30]'

In the format above [x;y] represents a range from the integer value x to the integer value y. Note: The following condition must hold true: x < y.

Spawn X Blocks Above the Surface

SpawnY: '+[10]'

Often you might want to spawn a structures some blocks above the surface. You can do this by putting +[x] where x is the number of blocks you want to spawn above the surface. You can also provide a range so that the plugin can vary the spawning position like with integer spawning.

SpawnY: '+[5;10]'

In the format above +[x;y] represents a range from the integer value x to the integer value y. Note: The following condition must hold true: x < y.

Spawn X Blocks Below the Surface

SpawnY: '-[10]'

Similar to spawning a structure above the surface, you might want to spawn a structures some blocks below the surface. You can do this by putting -[x] where x is the natural number of blocks you want to spawn below the surface. You can also provide a range so that the plugin can vary the spawning position like with integer spawning.

SpawnY: '-[5;10]'

In the format above -[x;y] represents a range from the natural number x to the natural number y. Note: The following condition must hold true: |x| < |y|.

Did you know? A natural number is defined as a number ranging from 0 to positive infinity. (0, 1, 2, ..., +inf)


Quick Reference:
Required: True
Value: SpawnY String
Default Value: None (Required)

SpawnY Height Map

You can define the way the plugin determines what the surface is:

SpawnYHeightMap: 'WORLD_SURFACE'

Currently, Spigot provides three options:

  • WORLD_SURFACE: This is the highest non-air block.
  • OCEAN_FLOOR: The highest non-air, solid block. (The structure will not spawn on top of water).
  • MOTION_BLOCKING: The highest block that blocks motion or contains a fluid.

Quick Reference:
Required: True
Value: Enumeration String
Default Value: None (Required)

Calculate Spawn First

This allows you to pick whether the SpawnY for the structure is picked first or last in the structure picking process. Setting this value to false will allows properties such as SpawnInWater, SpawnInLaveLakes, and WhitelistSpawnBlock to be done first.

CalculateSpawnFirst: true

So if SpawnY is 60, and this value is false, then the structure would not spawn over water since it checks to see if the spawn block is water before moving the structure up to y = 60.


Quick Reference:
Required: False
Value: Boolean
Default Value: True

Biome

You can define a list of biomes where a structure can spawn.

Biome:
  - DESERT
  - SAVANNA

In the example above, the structure can spawn in two biomes: desert and savanna. The plugin uses the Spigot biome names to define biomes. You can find a list of valid biomes here.

If you want a structure to spawn in all biomes, you can simply omit this property or set it to an empty list.

Biome: []

Remember: What you perceive as a single biome can actually be multiple biomes. For example, a savanna biome is defined as SAVANNA and SAVANNA_PLATEAU.

Did you know? Structures can support Custom Biomes defined by datapacks or other plugins by using the CSCustomBiomes addon.


Quick Reference:
Required: False
Value: String List
Default Value: Any Biome

Distance From Others

The DistanceFromOthers property is used to define the minimum distance required between the structure being spawned and other structures. This prevents structures from spawning too close together.

DistanceFromOthers: 200

Quick Reference:
Required: False
Value: Positive Integer
Default Value: 200

Distance From Same

The DistanceFromSame property is used to define the minimum distance required between the structure being spawned and another structure of the same type. This prevents two of the same structure from spawning too close together.

DistanceFromSame: 200

Quick Reference:
Required: False
Value: Positive Integer
Default Value: 200

Spawn Distance

Defines a grid around the origin of the world (0, 0) on the xz-plane where structures cannot spawn. This is used to prevent certain structures from spawning too close to the spawn point of a world.

SpawnDistance:
  x: 500
  z: 500

In the example above, a 500x500 block grid is marked as off-limits for the structure to spawn in. So any instance of this structure must have an x > 500 and a z > 500.


Quick Reference:
Required: False
Value: x and z values (in blocks from the origin)
Default Value: 0