NETHER · NETHER STRUCTURES
Nether Fortress
Page updated
Nether-brick bridges and enclosed corridors that can stretch across lava or cut through netherrack. Players come for blaze rods, Nether wart, and wither skeleton skulls.
This guide follows vanilla Java 26.3. Historical changes retain their own edition and version. Bedrock generation and loot can differ. Screenshots and verified seeds below retain their own game versions.

28462718234064871 · Java 26.3 · netherReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.Game data and source research
Where it generates in Java 26.3
Nether Wastes, Soul Sand Valley, Crimson Forest, Warped Forest and Basalt Deltas are all eligible starting biomes. [2][5]
Candidate positions and rarity
Java 26.3 selects one potential starting chunk per 27×27-chunk region (432 blocks on each side). Candidate selection happens before successful structure generation; this is not a measured density or an average travel distance. [3][4]
The shared 27×27-chunk Nether grid first chooses fortress weight 2 or bastion weight 3. Failed entries can be retried, so 40% is an initial selection share, not a universal chance of finding a fortress in a region. Basalt Deltas exclude bastions but remain eligible for fortresses. [1][3][4][5]
What the starting position means
The fortress generator creates connected pieces and calls moveInsideHeights with 48 and 70. This is a vertical layout adjustment; it does not mean every fortress block is guaranteed to lie between those two heights. [1][4][5]
Open bridges and enclosed corridors
Fortresses use two connected piece families: exposed bridges and crossings, then enclosed corridors, stairs and balconies. The interior family can include a nether-wart room; an exposed bridge alone does not mean that every resource-bearing room is nearby. [7]
Blaze-spawner balconies and nether-wart rooms are limited optional piece types. Their selector limits are maxima, not a guarantee of two of each. Mark the transition between bridge and interior sections to make the return route easier. [7]
| Part | What to look for |
|---|---|
| Bridge network | Open crossings and stairs can extend over lava or through terrain. [7] |
| Interior corridors | Turns, intersections and balconies lead toward optional side pieces. [7] |
| Nether-wart room | Soul-sand beds carry nether wart in this selected room type. [7] |
| Blaze balcony | The MonsterThrone piece places a blaze spawner. [7] |
Spawner blazes and natural fortress mobs
The fortress monster-spawn list includes blazes, zombified piglins, wither skeletons, skeletons and magma cubes. Those eligible natural spawns are separate from the blaze-spawner block. Breaking a spawner does not remove the fortress spawn list. [6]
The spawner piece saves a flag after installing its blaze spawner so structure processing does not keep installing new blocks. Once present, the spawner itself is repeatable. Keep both open bridge sightlines and enclosed corners in mind when planning a safe route. [7]
Loot and rewards in Java 26.3
The fortress chest uses the nether_bridge table: 2-4 main selections from total weight 78, followed by one separate Rib trim draw. Blaze rods and wither skeleton skulls are entity drops, not entries in this chest table. [8]
The blaze table requires killed_by_player. Without Looting its rod count is uniformly 0 or 1, so a qualifying kill has a 50% chance of one rod. Looting changes the count; do not carry that baseline across every killing method. [8]
The wither skeleton skull pool also requires killed_by_player. Its unenchanted random gate is 2.5%; the configured Looting chance is 3.5% at level I, with one percentage point added for each higher level. These rules describe the ordinary entity loot table, independently from special drop behavior outside it. [8]
Compared directly with Java 1.20.1, the Java 26.3 tables differ. The inspected nether bridge table gains Copper horse armor; its first pool changes from total weight 73 to 78. Use the current weights rather than carrying older chest percentages forward. [8][10]
| Item | Where the rule applies | What the data establishes |
|---|---|---|
| One fortress-table chest | 6.7% chance; one template when selected. [8][9] | |
| One fortress-table chest | 17.9% chance of at least one selection; 1-3 diamonds per selection. [8][9] | |
| One fortress-table chest | 17.9% chance of at least one selection; 3-7 items per selection. [8][9] | |
| Player-credited blaze kill without Looting | 50% from a uniform count of 0-1; the player-credit condition must pass. [8] | |
| Player-credited wither skeleton kill without Looting | 2.5% random gate; one skull when the gated pool runs. [8] |
Version history and release dates
These milestones retain their edition and exact build labels. Snapshot, beta and preview dates belong to those development builds; full releases and staggered Pocket platform releases are dated separately. Historical introduction claims come from the cited Wiki history. [11]
| Version | Released | What changed |
|---|---|---|
| Java 1.0.0 | November 18, 2011 | Fortresses debuted during development in Beta 1.9 Prerelease 1. [11][13] |
| Java 1.4.2 | October 25, 2012 | Skeletons and wither skeletons joined the fortress spawn list. [11][14] |
| Java 1.6.1 | July 1, 2013 | Fortress corridors gained loot chests. [11][15] |
| Java 1.8 | September 2, 2014 | Chest loot gained obsidian. [11][16] |
| Pocket 0.12.1 | September 4, 2015 – September 9, 2015 | Pocket Edition added Nether fortresses. [11][17] |
| Java 1.16 | June 23, 2020 | Fortresses gained soul-sand-valley and basalt-delta generation and a more even distribution across the Nether. [11][18] |
| Java 1.18.2 | February 28, 2022 | A fortress now replaces a bastion attempt rejected in basalt deltas. [11][19] |
| Java 1.19.4 (Update 1.20 experiment) | March 14, 2023 | Rib armor trims entered fortress chest loot in the Update 1.20 experiment. [11][20] |
SeedLookout in-game verification
Screenshots

28462718234064871 · Java 26.3 · netherReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.Our screenshots of naturally generated structures in Minecraft. Each caption gives the seed, coordinates and version. Select one to open it at full size.
Seeds with this nether fortress
None of our verified seeds includes this structure yet. The guide cites game data, code analysis and other references; it does not verify a seed.
Sources
References identify the edition, version and evidence behind the guide. Game code and data describe generation rules; the seed table records locations checked in game. Research reviewed 2026-10-02.
- Mojang Java 26.3: structure configuration ↗
Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/worldgen/structure/fortress.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure/fortress.json = 64be8e806034c2230608c06c3fe492b65dad78fcaa117a966fcf1e5119087116
- Mojang Java 26.3: Nether fortress and bastion eligibility tags ↗
Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/tags/worldgen/biome/has_structure/bastion_remnant.json; data/minecraft/tags/worldgen/biome/has_structure/nether_fortress.json; data/minecraft/tags/worldgen/biome/is_nether.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/tags/worldgen/biome/has_structure/bastion_remnant.json = 862effc2d174ddc9293d4a88e1e970387a25cb0c9b2c4ebb423018087a011a69; data/minecraft/tags/worldgen/biome/has_structure/nether_fortress.json = 61876e4e6ea82be32485b15b18bbe420dc4eda30dd603fea31965eb63a3dc0eb; data/minecraft/tags/worldgen/biome/is_nether.json = da1035d0fe19ee941dbb288d23e1cf5400c03ec4d2bef9a90d6300191dc9593a
- Mojang Java 26.3: candidate placement settings ↗
Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/worldgen/structure_set/nether_complexes.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure_set/nether_complexes.json = f768903738bcecc5f5114be3635ea7b8e267b3e887435e6b8eccfcbe80bc821d
- Mojang Java 26.3: candidate filtering and weighted retries ↗
Inner archive META-INF/versions/26.3/server-26.3.jar: net/minecraft/world/level/chunk/ChunkGenerator.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$ExclusionZone.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReducer.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReductionMethod.class; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement.class; net/minecraft/world/level/levelgen/structure/placement/RandomSpreadStructurePlacement.class. Methods: RandomSpreadStructurePlacement.getPotentialStructureChunk; AbstractSpreadingStructurePlacement.isStructureChunk; ChunkGenerator.createStructures / tryGenerateStructure
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. Implementation inspected using CFR 0.152; reconstructed Java is not an original Mojang source publication. SHA-256 by archive member: net/minecraft/world/level/chunk/ChunkGenerator.class = 7e5145ec6e36cbc7af979e869d4947c85e4715b8d13105f1369f0a385c40851d; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$ExclusionZone.class = eb0d49eb1ffb0714fbdb04abde954fbdbd50cfeafd411f593de8159a06488300; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReducer.class = e2887ebf5f8937ca3b038d6e1c40bc1c77f983a97b5b7ed9bdcd78b59d103e82; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement$FrequencyReductionMethod.class = 3664480026b9e91c8235bdbf6d98fdbbb78586f8d0decee70f9ea788d3291a71; net/minecraft/world/level/levelgen/structure/placement/AbstractSpreadingStructurePlacement.class = 0775a5cd47242fafd7f9977a9cfb821a6fffe5d1defcbc3bf8cded7e2427a4a8; net/minecraft/world/level/levelgen/structure/placement/RandomSpreadStructurePlacement.class = 8fbeed7711f96285b9b39b2e8363ffaa6ea80dd03baea4c1e6fa98e90b7f8eb9
- Mojang Java 26.3: generation entry points ↗
Inner archive META-INF/versions/26.3/server-26.3.jar: net/minecraft/world/level/levelgen/structure/Structure$GenerationContext.class; net/minecraft/world/level/levelgen/structure/Structure$GenerationStub.class; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings$Builder.class; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings.class; net/minecraft/world/level/levelgen/structure/Structure.class; net/minecraft/world/level/levelgen/structure/pieces/StructurePiecesBuilder.class; net/minecraft/world/level/levelgen/structure/structures/NetherFortressStructure.class. Methods: NetherFortressStructure.findGenerationPoint; Structure.findValidGenerationPoint; Structure.GenerationContext.isValidBiome; StructurePiecesBuilder.moveBelowSeaLevel / moveInsideHeights
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. Implementation inspected using CFR 0.152; reconstructed Java is not an original Mojang source publication. SHA-256 by archive member: net/minecraft/world/level/levelgen/structure/Structure$GenerationContext.class = 0c4335baa022b0482299b5cc0a3d0492fd3160542640b2538a5b8934822cc12b; net/minecraft/world/level/levelgen/structure/Structure$GenerationStub.class = e7a25f7418cfbfafaa6ecc1558a4bacde160ab247be6997df4aef3288da76a52; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings$Builder.class = e9b9a37f14f156749ceb686ab31f34954c3b65c0e9f1ff43cdebb508a72b1261; net/minecraft/world/level/levelgen/structure/Structure$StructureSettings.class = 5796d330ef7ea491ee64b34ccdfe6c08a62b71886441bd87cd327a2fc6188f80; net/minecraft/world/level/levelgen/structure/Structure.class = fa023ce735376b7042242948275a0869a7e22d30e5e4c5c6502b521578577188; net/minecraft/world/level/levelgen/structure/pieces/StructurePiecesBuilder.class = cd5a2c5d9d185a35017c843344d551b3953d3ea8774ecad76859eb0b45eb2e83; net/minecraft/world/level/levelgen/structure/structures/NetherFortressStructure.class = e91bbd6ee80a3133c370fa255f80138b2996b69adcf8754304c779fa8f18b520
- Mojang Java 26.3: nether fortress templates and data ↗
data/minecraft/worldgen/structure/fortress.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c; inner META-INF/versions/26.3/server-26.3.jar SHA-256 a362163eec5d1612d520772bc16e5b39c09e3b234fdc045f56bf544284ee8ae6. NBT dimensions are unrotated saved template bounds (X × Y × Z), including air and connectors, not usable interior dimensions.
- Mojang Java 26.3: nether fortress layout and encounter implementation ↗
net.minecraft.world.level.levelgen.structure.structures.NetherFortressPieces; net.minecraft.world.level.BaseSpawner; NetherFortressPieces.BRIDGE_PIECE_WEIGHTS / CASTLE_PIECE_WEIGHTS, MonsterThrone.postProcess, CastleStalkRoom.postProcess; BaseSpawner.serverTick / delay; data/minecraft/worldgen/structure/fortress.json.
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c; inner META-INF/versions/26.3/server-26.3.jar SHA-256 a362163eec5d1612d520772bc16e5b39c09e3b234fdc045f56bf544284ee8ae6. Official bytecode inspected through CFR 0.152; reconstructed implementation, not an original source checkout.
- Mojang Java 26.3: nether fortress loot data ↗
Inner META-INF/versions/26.3/server-26.3.jar: data/minecraft/loot_table/chests/nether_bridge.json; data/minecraft/loot_table/entities/blaze.json; data/minecraft/loot_table/entities/wither_skeleton.json
Evidence details
Verified official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. File SHA-256s: nether_bridge.json: aea0bfceda48b7c602d4a75bec8efd2582f46f4f22dabf88178dce2124876c20; blaze.json: c3656972373f367cba716bfe068220a1c248871789c7f5468409e10cc79dcbaf; wither_skeleton.json: 0ac5594b83b1947e9bd30ecfa5141f959b0decf4294ac00d95320b77b3405cc0. Table identity and conditional item rules are distinct from any particular generated container.
- Java 26.3 nether fortress: calculated selection odds ↗
Relevant /pools indices in the data reference; LootPool.addRandomItem/addRandomItems; UniformContainerBase.uniformFields; UniformGenerator.getIntUnsafe.
Evidence details
For direct unconditional weighted pools, chance of at least one selection is 1 minus the average of (1−weight/totalWeight)^n over inclusive uniform integer rolls. Values are theoretical table-invocation probabilities, not seed frequencies. Exact inputs: [{"itemId":"minecraft:rib_armor_trim_smithing_template","table":"data/minecraft/loot_table/chests/nether_bridge.json","pool":1,"fraction":"1/15","chance":0.06666666666666667,"weight":1,"total":15,"rolls":[1]},{"itemId":"minecraft:diamond","table":"data/minecraft/loot_table/chests/nether_bridge.json","pool":0,"fraction":"19881965/111045168","chance":0.1790439454330872,"weight":5,"total":78,"rolls":[2,3,4]},{"itemId":"minecraft:nether_wart","table":"data/minecraft/loot_table/chests/nether_bridge.json","pool":0,"fraction":"19881965/111045168","chance":0.1790439454330872,"weight":5,"total":78,"rolls":[2,3,4]}]
- Mojang Java 1.20.1: inspected historical nether fortress loot ↗
data/minecraft/loot_tables/chests/nether_bridge.json
Evidence details
Limited comparison of the listed data files; no claim that all intermediate releases share either table. SHA-256s: nether_bridge.json: 56fceac267476866f2381335b4ac1b3eeab33993610d854752cd2f011c2062e6
- Minecraft Wiki: Nether Fortress — pinned history ↗
History section, retaining edition, release grouping, development-version and experimental-toggle qualifiers.
Evidence details
Pinned article revision 3792235 from 2026-09-24T19:17:32Z. Historical claims only; not an audited game build or release-date source.
- Minecraft Wiki: Nether Fortress description ↗
Opening description and History
Evidence details
Pinned article revision 3792235; retrieved October 1, 2026. Article history supports historical introductions; current generation and loot are audited separately from game data.
- Java 1.0.0: release date ↗
2011: Minecraft 1.0 Released – and the First Port Arrives; November 18, 2011
Evidence details
Official Xbox retrospective establishes the public launch date. Mojang legacy metadata retains releaseTime 2011-11-17T22:00:00+00:00; its UTC calendar day is not the public launch date.
- Java 1.4.2: release date ↗
Version infobox release date
Evidence details
Public release calendar date from pinned version article. Legacy metadata date 2012-11-24 disagrees; its timestamp and URL remain preserved separately.
- Java 1.6.1: release date ↗
Version infobox release date
Evidence details
Public release calendar date from pinned version article. Legacy metadata date 2013-06-28 disagrees; its timestamp and URL remain preserved separately.
- Java 1.8: release date ↗
/id; /releaseTime
Evidence details
Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.
- Pocket 0.12.1: release date ↗
Version infobox release date
Evidence details
Platform releases were staggered: Fire OS – September 4, 2015; iOS, Windows Phone, Windows 10 – September 8, 2015; Android – September 9, 2015. These dates describe full Pocket releases, separately from earlier betas.
- Java 1.16: release date ↗
/id; /releaseTime
Evidence details
Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.
- Java 1.18.2: release date ↗
/id; /releaseTime
Evidence details
Date belongs to the exact 1.18.2 build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.
- Java 1.19.4 (Update 1.20 experiment): release date ↗
/id; /releaseTime
Evidence details
Full 1.19.4 release date; Update 1.20 experimental features required their separate toggle. Feature introduction is independently sourced to the structure history.
Item art uses vanilla Java 26.3 assets from the official client release. Icons retain their game version alongside the guide.
Descriptions adapted from the Minecraft Wiki retain its attribution under CC BY-NC-SA 3.0. Calculations and code analysis are SeedLookout research. Screenshot captions identify each capture. The seed table contains our published verified seeds; checking a location does not establish particular room contents or chest loot.