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: new page from Minecraft
 
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(8 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 27: Line 27:
The placement type determines how the structures are spread in a world. There are two placement types.
The placement type determines how the structures are spread in a world. There are two placement types.
=== random_spread ===
=== random_spread ===
Structures are spread evenly in 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, grid of initial positions is created. After that the offset is applied to each position by X and Z separatelly based on the additional fields.
[[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. Note that it attempts to generate a structure for each '''spacing'''×'''spacing''' chunk region from the initial grid.


[[File:Random spread distribution plot.png|300px|thumb|right|Orange line is {{cd|linear}} distribution of offset value and blue line is {{cd|triangular}}]]
<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 radnom value between 0 and {{cd|spacing - separation - 1}}(inclusive). {{cd|triangular}} takes sum of 2 random numbers between 0 and {{cd|spacing - separation - 1}} (inclusive) then divides that sum by 2, rounding down to nearest integer. That value results in less random offset, where values have much higher chance to be closer to the middle of 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}}
A fixed number of structures is placed in concentric rings around the origin of the world. In vanilla, this placement is only used for [[Minecraft: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.  


<div class="treeview">
<div class="treeview">
* additional fields:
* additional fields:
** {{nbt|integer|distance}}: The thickness of a ring plus that of a gap between two rings. Value between 0 and 1023 (inclusive). Unit is '''6 chunks'''
** {{nbt|integer|distance}}: 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'''
** {{nbt|integer|count}}: The total number of generation attempts in this dimension. Value between 1 and 4095 (inclusive).
** {{nbt|integer|count}}: The total number of generation attempts in this dimension. Value between 1 and 4095 (inclusive).
** {{nbt|string}}{{nbt|list|preferred_biomes}}: {{json ref/biome|tag=1}} &mdash; Biomes in which the structure is likely to be generated{{info needed|it is unclear how the "likely" mechanic works}}.
** {{nbt|string}}{{nbt|list|preferred_biomes}}: {{json ref/biome|tag=1}} &mdash; 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 {{nbt|string}}{{nbt|list|preferred_biomes}} 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.
** {{nbt|integer|spread}}: 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: {{cd|spread * (N^2 + 3 * N + 2) / 6}}, until the number of attempts reaches the total {{nbt|integer|count}}.
** {{nbt|integer|spread}}: 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: {{cd|spread * (N^2 + 3 * N + 2) / 6}}, until the number of attempts reaches the total {{nbt|integer|count}}.
</div>
</div>
Line 56: 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 175: Line 201:
| 34
| 34
| 83469867
| 83469867
| {{cd|linear}}
|
|
|-
|-
Line 182: 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:结构集