52 structures: eighteen are abandoned camps, and 23 do not fit the terrain at all
Stronghold spawns in 56 biomes and each village variant but plains in exactly one. 29 of the 52 structures adapt to the ground under them — the other 23 are placed as-is.
Minecraft ships 52 structures, and the list is lumpier than it sounds: eighteen of them are abandoned camps, seven are ruined portal variants and five are villages, so well over half of the "52" is three ideas wearing different biome tags. Counted from Mojang's shipped structure files for 26.3, which is the same data the reference on this page renders.
Almost everything generates in the surface step
| generation step | structures |
|---|---|
surface_structures | 44 |
underground_structures | 5 |
underground_decoration | 3 |
Generation step decides ordering, and ordering decides who wins when two structures overlap. With 44 of 52 in one step, most collisions are resolved inside surface_structures rather than between steps — which is why a village and a ruined portal can end up merged, but an ancient city and a village never argue.
Biome spread is the widest range in the data
| structure | biomes it can spawn in |
|---|---|
stronghold | 56 |
trial_chambers | 55 |
mineshaft | 52 |
ruined_portal | 25 |
| … | |
village_desert, village_savanna, village_snowy, village_taiga | 1 each |
Twenty-seven structures are locked to a single biome: the eighteen abandoned camps (one per biome family), the four non-plains villages, ancient_city, desert_pyramid, nether_fossil, ruined_portal_desert and swamp_hut. village_plains takes two.
The contrast is the point. Strongholds, trial chambers and mineshafts are effectively "anywhere" structures — they are placed by distance rules, not by biome — while every village variant is a biome tag with a building set attached. That is why village style tracks biome exactly and stronghold placement feels random.
29 of 52 adapt to the terrain
terrain_adaptation decides whether a structure reshapes the ground it lands on:
- 23 have none. They are placed as-is and the world is not moved for them.
beard_thin25 ·bury2 ·beard_box1 ·encapsulate1
So 23 structures — most of the older ones — do nothing about the terrain — which is the direct cause of the half-buried desert temple and the shipwreck hanging off a ledge. Those are not bugs; they are what "no adaptation" means.
The ones that do adapt are the ones that would be unusable otherwise — every village and every abandoned camp uses beard_thin to settle onto the ground, ancient_city uses beard_box to carve its floor flat in the Deep Dark, and the buried ones use bury.
28 are jigsaw structures
jigsaw 28 · ruined_portal 7 · mineshaft 2 · ocean_ruin 2 · shipwreck 2 · then eleven one-off types.
Jigsaw is the piece-assembly system — villages, bastions, trail ruins, ancient cities, trial chambers and abandoned camps are all built from a pool of templates rather than placed as one fixed model. If you are making a custom structure and want it to vary between instances, jigsaw is what vanilla uses for exactly that. The rest are either assembled from pieces in code — mansion, fortress, stronghold, mineshaft, end city, monument — or pick among a few fixed templates.
Reading it for a datapack
- Pick your generation step to match your collision expectations. Anything in
surface_structuresis competing with 43 others. - Set a terrain adaptation only if you need it. Vanilla leaves it unset on 23 of 52 — mostly the older structures; every village and abandoned camp sets
beard_thin. - Biome lists are the placement control for most structures. A one-biome list is how the village variants stay in their own biomes without any extra logic.