Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Structure set: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Sync: updated from Minecraft
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(6 intermediate revisions by the same user not shown)
Line 18: Line 18:
****{{nbt|float|spacing}}: Size in chunks of the grid space used to place the structure
****{{nbt|float|spacing}}: Size in chunks of the grid space used to place the structure
****{{nbt|float|separation}}: Padding between placements of set placements.
****{{nbt|float|separation}}: Padding between placements of set placements.
****{{nbt|string|spread_type}}: Algorithm used when placing structures. Can be <code>linear</code>.
****{{nbt|string|spread_type}}: Algorithm used when placing structures. Can be <code>linear</code> or <code>triangular</code>.
***{{nbt|list|structures}}: Weighted list of structures that can be placed.
***{{nbt|list|structures}}: Weighted list of structures that can be placed.
****{{nbt|compound}}: A structure to be placed.
****{{nbt|compound}}: A structure to be placed.
*****{{nbt|string|structure}}: A structure identifer.
*****{{nbt|string|structure}}: A structure identifier.
*****{{nbt|float|weight}}: Determines the chance of it being chosen over others. Must be a positive integer.
*****{{nbt|float|weight}}: Determines the chance of it being chosen over others. Must be a positive integer.
</div>
</div>
Line 28: Line 28:
=== random_spread ===
=== random_spread ===
[[File:Random spread distribution plot.png|300px|thumb|right|Orange line is {{cd|linear}} distribution of offset value and blue line is {{cd|triangular}}]]
[[File:Random spread distribution plot.png|300px|thumb|right|Orange line is {{cd|linear}} distribution of offset value and blue line is {{cd|triangular}}]]
Structures are spread evenly throughout the entire world. In vanilla, this placement type is used for most structures (like [[Minecraft:bastion remnant]]s or [[Minecraft:swamp hut]]s{{only|java}}). Starting from chunk 0 0 and moving outwards {{nbt|int|spacing}} number of chunks, a grid of initial positions is created. After that the offset is applied to each position by X and Z separately based on the additional fields.
Structures are spread evenly throughout the entire world. In vanilla, this placement type is used for most structures (like [[Minecraft:bastion remnant]]s or [[Minecraft:swamp hut]]s{{only|java}}). Starting from chunk 0 0 and moving outwards {{nbt|int|spacing}} number of chunks, a grid of initial positions is created. After that the offset is applied to each position by X and Z separately based on the additional fields. Note that it attempts to generate a structure for each '''spacing'''×'''spacing''' chunk region from the initial grid.


<div class="treeview">
<div class="treeview">
* additional fields:
* additional fields:
** {{nbt|string|spread_type}}: (optional, defaults to {{cd|linear}}) One of {{cd|linear}} or {{cd|triangular}}. {{cd|linear}} sets offset to a random value between 0 and {{cd|spacing - separation - 1}} (inclusive). {{cd|triangular}} takes the sum of 2 random numbers between 0 and {{cd|spacing - separation - 1}} (inclusive) then divides that sum by 2, rounding down to nearest integer. This value results in less random offset, where values have a much higher chance to be closer to the middle of the distribution, than to the sides.
** {{nbt|string|spread_type}}: (optional, defaults to {{cd|linear}}) One of {{cd|linear}} or {{cd|triangular}}. {{cd|linear}} sets offset to a random value between 0 and {{cd|spacing - separation - 1}} (inclusive). {{cd|triangular}} takes the sum of 2 random numbers between 0 and {{cd|spacing - separation - 1}} (inclusive) then divides that sum by 2, rounding down to nearest integer. This value results in less random offset, where values have a much higher chance to be closer to the middle of the distribution, than to the sides.
** {{nbt|int|spacing}}: Average distance between two neighboring generation attempts. Value between 0 and 4096 (inclusive).
** {{nbt|int|spacing}}: Average distance (in chunks) between two neighboring generation attempts. Value between 0 and 4096 (inclusive).
** {{nbt|int|separation}}: Minimum distance (in chunks) between two neighboring attempts. Value between 0 and 4096 (inclusive). Has to be strictly smaller than {{nbt|int|spacing}}. The maximum distance of two neighboring generation attempts is {{cd|2*spacing - separation}}.
** {{nbt|int|separation}}: Minimum distance (in chunks) between two neighboring attempts. Value between 0 and 4096 (inclusive). Has to be strictly smaller than {{nbt|int|spacing}}. The maximum distance of two neighboring generation attempts is {{cd|2*spacing - separation}}.
</div>
</div>
Line 39: Line 39:
=== concentric_rings ===
=== concentric_rings ===
{{exclusive|java|section=1}}
{{exclusive|java|section=1}}
[[File:Strongholds 1.9.svg|300px|thumb|right|Concenthic rings, used in [[stronghold]]s]]
[[File:Strongholds 1.9.svg|300px|thumb|right|Concentric rings, used in [[stronghold]]s]]
A fixed number of structures are placed in concentric rings around the origin of the world. In vanilla, this placement is only used for [[Minecraft:stronghold]]s.  
A fixed number of structures are placed in concentric rings around the origin of the world. In vanilla, this placement is only used for [[Minecraft:stronghold]]s.  


Line 57: Line 57:
! {{Tooltip|Spacing|Average distance (in chunks) between two neighboring attempts}}
! {{Tooltip|Spacing|Average distance (in chunks) between two neighboring attempts}}
! Salt
! Salt
! Spread type
! Notes
! Notes
|-
|-
| <code>ancient_cities</code>
| <code>abandoned_camp</code>
| {{EnvLink|Abandoned Camp}}
| 8
| 37 {{only|java|short=1}}, 34 {{only|bedrock|short=1}}
| 91231127
| {{cd|linear}} {{only|java|short=1}}, {{cd|triangular}} {{only|bedrock|short=1}}
| All types of abandoned camp are in the structure set
|-
| <code>ancient_cities</code> {{only|java|short=1}}
| {{EnvLink|Ancient City}}
| {{EnvLink|Ancient City}}
| 8
| 8
| 24
| 24
| 20083232
| 20083232
| {{cd|linear}}
|
|
|-
|-
| <code>buried_treasures</code>
| <code>buried_treasures</code> {{only|java|short=1}}
| {{EnvLink|Buried Treasure}}
| {{EnvLink|Buried Treasure}}
| 0
| 0
| 1
| 1
| 0
| 0
| {{cd|linear}}
| Probability of 1%, locate_offset of x:9, y:0, z:9
| Probability of 1%, locate_offset of x:9, y:0, z:9
|-
|-
| <code>desert_pyramids</code>
| <code>desert_pyramids</code> {{only|java|short=1}}
| {{EnvLink|Desert Pyramid}}
| {{EnvLink|Desert Pyramid}}
| 8
| 8
| 32
| 32
| 14357617
| 14357617
| {{cd|linear}}
|
|
|-
|-
| <code>end_cities</code>
| <code>end_cities</code> {{only|java|short=1}}
| {{EnvLink|End City}}
| {{EnvLink|End City}}
| 11
| 11
| 20
| 20
| 10387313
| 10387313
| {{cd|triangular}}
|
|
|-
|-
| <code>igloos</code>
| <code>igloos</code> {{only|java|short=1}}
| {{EnvLink|Igloo}}
| {{EnvLink|Igloo}}
| 8
| 8
| 32
| 32
| 14357618
| 14357618
| {{cd|linear}}
|
|
|-
|-
| <code>jungle_temples</code>
| <code>jungle_temples</code> {{only|java|short=1}}
| {{EnvLink|Jungle Pyramid}}
| {{EnvLink|Jungle Pyramid}}
| 8
| 8
| 32
| 32
| 14357619
| 14357619
| {{cd|linear}}
|
|
|-
|-
| <code>mineshafts</code>
| <code>mineshafts</code> {{only|java|short=1}}
| {{EnvLink|Mineshaft}}<br/>{{EnvLink|Badlands Mineshaft|link=Mineshaft}}
| {{EnvLink|Mineshaft}}<br/>{{EnvLink|Badlands Mineshaft|link=Mineshaft}}
| 0
| 0
| 1
| 1
| 0
| 0
| {{cd|linear}}
| Probability of 0.4%
| Probability of 0.4%
|-
|-
| <code>nether_complexes</code>
| <code>nether_complexes</code> {{only|java|short=1}}
| 40% {{EnvLink|Nether Fortress}}<br/>60% {{EnvLink|Bastion Remnant}}
| 40% {{EnvLink|Nether Fortress}}<br/>60% {{EnvLink|Bastion Remnant}}
| 4
| 4
| 27
| 27
| 30084232
| 30084232
| {{cd|linear}}
|
|
|-
|-
| <code>nether_fossils</code>
| <code>nether_fossils</code> {{only|java|short=1}}
| {{EnvLink|Nether Fossil}}
| {{EnvLink|Nether Fossil}}
| 1
| 1
| 2
| 2
| 14357921
| 14357921
| {{cd|linear}}
|
|
|-
|-
| <code>ocean_monuments</code>
| <code>ocean_monuments</code> {{only|java|short=1}}
| {{EnvLink|Ocean Monument}}
| {{EnvLink|Ocean Monument}}
| 5
| 5
| 32
| 32
| 10387313
| 10387313
| Triangular spread type
| {{cd|triangular}}
|
|-
|-
| <code>ocean_ruins</code>
| <code>ocean_ruins</code> {{only|java|short=1}}
| {{EnvLink|Ocean Ruin}}
| {{EnvLink|Ocean Ruin}}
| 8
| 8
| 20
| 20
| 14357621
| 14357621
| {{cd|linear}}
|
|
|-
|-
| <code>pillager_outposts</code>
| <code>pillager_outposts</code> {{only|java|short=1}}
| {{EnvLink|Pillager Outpost}}
| {{EnvLink|Pillager Outpost}}
| 8
| 8
| 32
| 32
| 165745296
| 165745296
| {{cd|linear}}
| Probability of 20%, exclusion zone of 10 chunks from any village
| Probability of 20%, exclusion zone of 10 chunks from any village
|-
|-
| <code>ruined_portals</code>
| <code>ruined_portals</code> {{only|java|short=1}}
| {{EnvLink|Ruined Portal}}
| {{EnvLink|Ruined Portal}}
| 15
| 15
| 40
| 40
| 34222645
| 34222645
| {{cd|linear}}
|
|
|-
|-
| <code>shipwrecks</code>
| <code>shipwrecks</code> {{only|java|short=1}}
| {{EnvLink|Shipwreck}}
| {{EnvLink|Shipwreck}}
| 4
| 4
| 24
| 24
| 165745295
| 165745295
| {{cd|linear}}
|
|
|-
|-
| <code>strongholds</code>
| <code>strongholds</code> {{only|java|short=1}}
| {{EnvLink|Stronghold}}
| {{EnvLink|Stronghold}}
|
|
|
|
| 0
| 0
| N/A
| Concentric rings distance=32 count=128 spread=3
| Concentric rings distance=32 count=128 spread=3
|-
|-
| <code>swamp_huts</code>
| <code>swamp_huts</code> {{only|java|short=1}}
| {{EnvLink|Swamp Hut}}
| {{EnvLink|Swamp Hut}}
| 8
| 8
| 32
| 32
| 14357620
| 14357620
| {{cd|linear}}
|
|
|-
|-
Line 176: Line 201:
| 34
| 34
| 83469867
| 83469867
| {{cd|linear}}
|
|
|-
|-
Line 183: Line 209:
| 34
| 34
| 94251327
| 94251327
|
| {{cd|linear}}
| The bedrock values are unknown but the structure set can be overwritten.
|-
|-
| <code>villages</code>
| <code>villages</code> {{only|java|short=1}}
| {{EnvLink|Plains Village}}<br/>{{EnvLink|Desert Village}}<br/>{{EnvLink|Savanna Village}}<br/>{{EnvLink|Snowy Village}}<br/>{{EnvLink|Taiga Village}}
| {{EnvLink|Plains Village}}<br/>{{EnvLink|Desert Village}}<br/>{{EnvLink|Savanna Village}}<br/>{{EnvLink|Snowy Village}}<br/>{{EnvLink|Taiga Village}}
| 8
| 8
| 34
| 34
| 10387312
| 10387312
| {{cd|linear}}
|
|
|-
|-
|<code>woodland_mansions</code>
|<code>woodland_mansions</code> {{only|java|short=1}}
| {{EnvLink|Woodland Mansion}}
| {{EnvLink|Woodland Mansion}}
| 20
| 20
| 80
| 80
| 10387319
| 10387319
| Triangular spread type
| {{cd|triangular}}
|
|}
|}
== History ==
{{info needed section|General history of structure sets on Java Edition.}}
=== ''Bedrock Edition'' ===
{{HistoryTable
|{{HistoryLine|bedrock}}
|{{HistoryLine||1.21.50|exp=Data-Driven Jigsaw Structures|dev=Preview 1.21.50.26|Structure sets have been added and can be customized in [[Minecraft:add-on]]s, using files json.}}
|{{HistoryLine||1.21.120|dev=Preview 1.21.120.23|Structure sets can now be customized without using any experiments.}}
}}


== External links ==
== External links ==

Latest revision as of 11:21, 19 October 2026

A structure set is used to determine the position of structures in the world during world generation. They are configured using Minecraft:JSON files stored within a Minecraft:data pack in the path Template:Cd or an Minecraft:add-on in the path Template:Cd. Structure sets are not referenced in a dimension or biome. Instead, the existence of the resource is enough to make the structures generate. The valid biomes of a structure are determined by the structure itself (see Minecraft:Structure/JSON format).

The structure sets uses the Template:Nbt to determine the placement of structures. For any position a random structure is selected from the Template:Nbt list. If the selected structure can't be placed because its not in a valid biome, a different structure is selected.

JSON format

Template:El:

Template:El:

Placement types

The placement type determines how the structures are spread in a world. There are two placement types.

random_spread

File:Random spread distribution plot.png
Orange line is Template:Cd distribution of offset value and blue line is Template:Cd

Structures are spread evenly throughout the entire world. In vanilla, this placement type is used for most structures (like Minecraft:bastion remnants or Minecraft:swamp hutsTemplate:Only). Starting from chunk 0 0 and moving outwards Template:Nbt number of chunks, a grid of initial positions is created. After that the offset is applied to each position by X and Z separately based on the additional fields. Note that it attempts to generate a structure for each spacing×spacing chunk region from the initial grid.

  • additional fields:
    • Template:Nbt: (optional, defaults to Template:Cd) One of Template:Cd or Template:Cd. Template:Cd sets offset to a random value between 0 and Template:Cd (inclusive). Template:Cd takes the sum of 2 random numbers between 0 and Template:Cd (inclusive) then divides that sum by 2, rounding down to nearest integer. This value results in less random offset, where values have a much higher chance to be closer to the middle of the distribution, than to the sides.
    • Template:Nbt: Average distance (in chunks) between two neighboring generation attempts. Value between 0 and 4096 (inclusive).
    • Template:Nbt: Minimum distance (in chunks) between two neighboring attempts. Value between 0 and 4096 (inclusive). Has to be strictly smaller than Template:Nbt. The maximum distance of two neighboring generation attempts is Template:Cd.

concentric_rings

Template:Exclusive

File:Strongholds 1.9.svg
Concentric rings, used in strongholds

A fixed number of structures are placed in concentric rings around the origin of the world. In vanilla, this placement is only used for Minecraft:strongholds.

  • additional fields:
    • Template:Nbt: The thickness of a ring plus the thickness of a gap between two rings. Ring and gap are equal in thickness. Value between 0 and 1023 (inclusive). Unit is 6 chunks
    • Template:Nbt: The total number of generation attempts in this dimension. Value between 1 and 4095 (inclusive).
    • Template:NbtTemplate:Nbt: Template:Json ref/biome — Biomes in which the structure is likely to be generated. After choosing the initial position of generation, a search in a square with a radius of 112 blocks begins. It proceeds from -X to +X, from -Z to +Z in 4×4 squares. When a position inside a biome from Template:NbtTemplate:Nbt is found, it is considered the new position. If multiple positions are found, one is chosen randomly. If no positions are found, the initial position is used.
    • Template:Nbt: How many attempts are on the closest ring to spawn. Value between 0 and 1023 (inclusive). The number of attempts on the Nth ring is: Template:Cd, until the number of attempts reaches the total Template:Nbt.

Default structure sets

Structure set Structures Template:Tooltip Template:Tooltip Salt Spread type Notes
abandoned_camp Template:EnvLink 8 37 Template:Only, 34 Template:Only 91231127 Template:Cd Template:Only, Template:Cd Template:Only All types of abandoned camp are in the structure set
ancient_cities Template:Only Template:EnvLink 8 24 20083232 Template:Cd
buried_treasures Template:Only Template:EnvLink 0 1 0 Template:Cd Probability of 1%, locate_offset of x:9, y:0, z:9
desert_pyramids Template:Only Template:EnvLink 8 32 14357617 Template:Cd
end_cities Template:Only Template:EnvLink 11 20 10387313 Template:Cd
igloos Template:Only Template:EnvLink 8 32 14357618 Template:Cd
jungle_temples Template:Only Template:EnvLink 8 32 14357619 Template:Cd
mineshafts Template:Only Template:EnvLink
Template:EnvLink
0 1 0 Template:Cd Probability of 0.4%
nether_complexes Template:Only 40% Template:EnvLink
60% Template:EnvLink
4 27 30084232 Template:Cd
nether_fossils Template:Only Template:EnvLink 1 2 14357921 Template:Cd
ocean_monuments Template:Only Template:EnvLink 5 32 10387313 Template:Cd
ocean_ruins Template:Only Template:EnvLink 8 20 14357621 Template:Cd
pillager_outposts Template:Only Template:EnvLink 8 32 165745296 Template:Cd Probability of 20%, exclusion zone of 10 chunks from any village
ruined_portals Template:Only Template:EnvLink 15 40 34222645 Template:Cd
shipwrecks Template:Only Template:EnvLink 4 24 165745295 Template:Cd
strongholds Template:Only Template:EnvLink 0 N/A Concentric rings distance=32 count=128 spread=3
swamp_huts Template:Only Template:EnvLink 8 32 14357620 Template:Cd
trail_ruins Template:EnvLink 8 34 83469867 Template:Cd
trial_chambers Template:EnvLink 12 34 94251327 Template:Cd The bedrock values are unknown but the structure set can be overwritten.
villages Template:Only Template:EnvLink
Template:EnvLink
Template:EnvLink
Template:EnvLink
Template:EnvLink
8 34 10387312 Template:Cd
woodland_mansions Template:Only Template:EnvLink 20 80 10387319 Template:Cd

History

Template:Info needed section

Bedrock Edition

Template:HistoryTable

External links

Navigation

Template:Navbox Java Edition technical

Minecraft:de:Konstruktionssammlung Minecraft:fr:Ensemble de structures Minecraft:pt:Conjunto de estruturas Minecraft:zh:结构集