OVERWORLD · NETHER · RUINS
Ruined Portal
Page updated
A broken Nether portal among scattered masonry, netherrack, and treasure. Players salvage obsidian and gold, collect lodestones, and repair the frames that can be fixed for Nether travel.
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 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.Game data and source research
Where it generates in Java 26.3
The configurations separate standard Overworld, desert, jungle, swamp, mountain, ocean and Nether starts. The union covers the configured Overworld and Nether biome sets, but each variant has its own allowed-biome tag. [2][5]
Candidate positions and rarity
Java 26.3 selects one potential starting chunk per 40×40-chunk region (640 blocks on each side). Candidate selection happens before successful structure generation; this is not a measured density or an average travel distance. [3][4]
Placement mode depends on the configuration: ocean and swamp starts use ocean-floor placement, desert starts are partly buried, and jungle starts use land-surface placement. Standard and mountain configurations each split their two setup weights equally; these are conditional setup choices within that variant. [1][3][4][5]
What the starting position means
The implementation derives a starting height from the selected placement mode and samples the template bounding-box corners while searching for support. A portal candidate therefore does not imply a surface-visible portal at a fixed Y. [1][4][5]
A damaged frame and its surroundings
The template set contains ten ordinary portal shapes and three giant shapes. Damaged or toppled frames stand among stonework and Nether blocks; placement processing adds further variation, so the saved template is not an exact block-for-block preview of the world. [6]
Repairing the frame requires ordinary obsidian in a valid Nether-portal shape. Crying obsidian cannot substitute for those frame blocks. Check the existing shape and inventory before assuming the ruin supplies everything needed to light a portal. [8]
| Part | What to look for |
|---|---|
| Frame | Ordinary and giant designs have different broken outlines. [6] |
| Surrounding patch | Netherrack, magma or lava can make the approach hazardous. [7] |
| Chest area | Check around and beneath the ruin; terrain placement can obscure parts of the structure. [7] |
Inspect the ground before repairing
The placement code changes surface and subsurface blocks around the ruin, including Nether-themed patches and conditional magma. Treat the approach as part of the structure rather than walking directly toward the chest. [7]
The audited templates contain no living residents or mob-spawner blocks. Repairing a portal creates a usable travel route, but it does not clear surrounding mobs or guarantee a safe destination. [6]
Loot and rewards in Java 26.3
The Java 26.3 ruined-portal chest rolls 4-8 times from total weight 398. Obsidian, flint, iron nuggets, flint and steel, and fire charges each weigh 40. Enchanted golden apple, bell and gold-block entries each weigh 1. [9]
Golden weapons, tools and player armor use random enchantments from the on_random_loot tag; the golden horse armor entry has no enchantment modifier. The chest table is separate from the portal frame and the blocks decorating its surroundings. [9]
A second one-roll pool weighs empty 1 and lodestone 2. It can supply 1-2 lodestones, which are chest loot here rather than a guarantee that the generated portal contains a placed lodestone. The table contains no netherite or armor-trim entry. [9]
Compared directly with Java 1.20.1, the Java 26.3 tables differ. The inspected ruined portal table gains Lodestone. Use the current weights rather than carrying older chest percentages forward. [9][11]
| Item | Where the rule applies | What the data establishes |
|---|---|---|
| One ruined-portal-table chest | 1.5% chance of at least one apple selection. [9][10] | |
| One ruined-portal-table chest | 46.4% chance of at least one selection; 1-2 blocks per selection. [9][10] | |
| One ruined-portal-table chest | 46.4% chance of at least one selection. [9][10] | |
| One ruined-portal-table chest | 66.7% chance; 1-2 lodestones when the separate pool selects its entry. [9][10] |
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. [12]
| Version | Released | What changed |
|---|---|---|
| Java 1.16 (20w16a) | April 15, 2020 | Introduced ruined portals. [12][14] |
| Java 1.16 (20w17a) | April 22, 2020 | Reduced generation frequency and stopped treating badlands portals as mountain portals. [12][15] |
| Java 1.16 (20w18a) | April 29, 2020 | Reduced the golden-apple loot weight from 40 to 15. [12][16] |
| Bedrock 1.16.0 | June 23, 2020 | Released ruined portals after adopting blackstone Nether masonry and four to eight chest-loot rolls. [12][17] |
| Bedrock 1.16.100 | November 16, 2020 – November 17, 2020 | Changed glistering melon slice loot stacks to four through twelve. [12][18] |
| Bedrock 1.21.60 | February 11, 2025 | Added lodestones to ruined-portal chest loot. [12][19] |
| Java 1.21.5 | March 25, 2025 | Added lodestones to ruined-portal chest loot. [12][20] |
Checked in game by SeedLookout
Screenshots

28462718234064871 · Java 26.3 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.
17108149081942125 · Java 26.3
2734971658 · Java 1.20.1
6161254073401392 · Java 26.3
-1844727049180781334 · Java 26.3Our 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 ruined portal
We found each ruined portal at these coordinates in the seed's Java version. Other versions and Bedrock may generate a different world.
Show 85 more seedsShow fewer seeds12 of 97
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/ruined_portal.json; data/minecraft/worldgen/structure/ruined_portal_desert.json; data/minecraft/worldgen/structure/ruined_portal_jungle.json; data/minecraft/worldgen/structure/ruined_portal_mountain.json; data/minecraft/worldgen/structure/ruined_portal_nether.json; data/minecraft/worldgen/structure/ruined_portal_ocean.json; data/minecraft/worldgen/structure/ruined_portal_swamp.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure/ruined_portal.json = e8151a138c44a5c75c5dc4b84883ebb596ae90eca15f44e77149f710bf9a61b7; data/minecraft/worldgen/structure/ruined_portal_desert.json = 3e635eb9c50196cd332ff5cd1783b3bea0f908c3a187a9dead0b330efd456af2; data/minecraft/worldgen/structure/ruined_portal_jungle.json = 257ef8e3ab68fd0bb2176c2e0c420ef547a1f2b2e915a215ec74341362f759e5; data/minecraft/worldgen/structure/ruined_portal_mountain.json = b0eff0c4a476090c5e6fb099457856cdeff582dd26b864f44d254284ae9d75be; data/minecraft/worldgen/structure/ruined_portal_nether.json = f2fcfb0c13fbe2dc7054aa23e5c19c4a5994cbc600c6e42062c4a078df364c20; data/minecraft/worldgen/structure/ruined_portal_ocean.json = 048d15c54b4ea2a517492da1e8b8d339a474bc81311303675f211b717b2bd4a9; data/minecraft/worldgen/structure/ruined_portal_swamp.json = 45c63cd9db34f4cba3b27817a763556b4bfdf29f6500425b47477ec50d60aa13
- Mojang Java 26.3: resolved starting-biome tags ↗
Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_desert.json; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_jungle.json; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_mountain.json; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_nether.json; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_ocean.json; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_standard.json; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_swamp.json; data/minecraft/tags/worldgen/biome/is_badlands.json; data/minecraft/tags/worldgen/biome/is_beach.json; data/minecraft/tags/worldgen/biome/is_deep_ocean.json; data/minecraft/tags/worldgen/biome/is_forest.json; data/minecraft/tags/worldgen/biome/is_hill.json; data/minecraft/tags/worldgen/biome/is_jungle.json; data/minecraft/tags/worldgen/biome/is_mountain.json; data/minecraft/tags/worldgen/biome/is_nether.json; data/minecraft/tags/worldgen/biome/is_ocean.json; data/minecraft/tags/worldgen/biome/is_river.json; data/minecraft/tags/worldgen/biome/is_taiga.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_desert.json = 594283bb70e915f9eee7b58179d48940b60b1167057181659ee31c9c0df97bb7; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_jungle.json = 072faff2cb4d001d13c0575e15099dceb3fe96ea0cd24edbba3bec815ea3ab27; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_mountain.json = 22d233c68333f254da4734490b43ef625814a4f525f1bb6488e7ed9fb1423581; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_nether.json = 61876e4e6ea82be32485b15b18bbe420dc4eda30dd603fea31965eb63a3dc0eb; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_ocean.json = 90c1397d9c54faf76cfb6d148aa497e8ffcb88523a9c5ec6baf4bc33661efd57; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_standard.json = 86767a1f1fb3fd4dd6123cc6333e23fc1a771de7c625db1e28d21d42954019fc; data/minecraft/tags/worldgen/biome/has_structure/ruined_portal_swamp.json = d6be84f238a9f362222daff4dee7cc7ab52c6dcfe9327190f1fd091dd74bb446; data/minecraft/tags/worldgen/biome/is_badlands.json = 018be7eee89d60f4c844797b6d66b7226738c1c20ac72020b82a50bf9e140f6b; data/minecraft/tags/worldgen/biome/is_beach.json = ce247502128c04e5999203db4139eaa317fe3586e62c671a0bd22ed3f792aea1; data/minecraft/tags/worldgen/biome/is_deep_ocean.json = 5c8de7b8025f2a7f93887aeeca0a5af1bf67f58004031742e082a16302c7a783; data/minecraft/tags/worldgen/biome/is_forest.json = 67e7a7611d9633a31182bb1b8a109cc04f959996d0cf5fbd4369460543ded7b5; data/minecraft/tags/worldgen/biome/is_hill.json = 040147f6b9e0a52e5f3296cae881774225ceba247ac7bc96a4636841d3c5302a; data/minecraft/tags/worldgen/biome/is_jungle.json = f753b2d91f0a5b2ed96d25dbb65d5c23527131e6c7d20677dc805a2742268df4; data/minecraft/tags/worldgen/biome/is_mountain.json = da761310afa4c0a9cd978036150b91ecb0c427e65192d4d60486eb7206b03fe4; data/minecraft/tags/worldgen/biome/is_nether.json = da1035d0fe19ee941dbb288d23e1cf5400c03ec4d2bef9a90d6300191dc9593a; data/minecraft/tags/worldgen/biome/is_ocean.json = e86dbd183dbfc27044b1e9bfd9892f1098284cbf45e28d3218c9e45fcbd1a895; data/minecraft/tags/worldgen/biome/is_river.json = e710cc66051a66f2383bfd1d40a95c9c58334127792d5db832ecaf233627e054; data/minecraft/tags/worldgen/biome/is_taiga.json = ddabb0fa36936b6c10fdbf5822644f3f5a890203b49e426ed92e98982527049b
- Mojang Java 26.3: candidate placement settings ↗
Inner archive META-INF/versions/26.3/server-26.3.jar: data/minecraft/worldgen/structure_set/ruined_portals.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure_set/ruined_portals.json = 153eddf906448b98a51d8adff2345f5682de0d4244a68aa114d3798621721613
- 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/structures/RuinedPortalStructure$Setup.class; net/minecraft/world/level/levelgen/structure/structures/RuinedPortalStructure.class. Methods: RuinedPortalStructure.findGenerationPoint; Structure.findValidGenerationPoint; Structure.GenerationContext.isValidBiome
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/structures/RuinedPortalStructure$Setup.class = 1f62384bcb7488bb4474a2baa16da4cf46429d066f75a34dd5012a218587d246; net/minecraft/world/level/levelgen/structure/structures/RuinedPortalStructure.class = 4754f99a816eb6b1f4a602511265f5032b55ffac567c6f09677c79c06f8c5720
- Mojang Java 26.3: ruined portal templates and data ↗
data/minecraft/worldgen/structure/ruined_portal.json; data/minecraft/worldgen/structure/ruined_portal_desert.json; data/minecraft/worldgen/structure/ruined_portal_jungle.json; data/minecraft/worldgen/structure/ruined_portal_mountain.json; data/minecraft/worldgen/structure/ruined_portal_nether.json; data/minecraft/worldgen/structure/ruined_portal_ocean.json; data/minecraft/worldgen/structure/ruined_portal_swamp.json; data/minecraft/structure/ruined_portal/**/*.nbt
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: ruined portal layout and encounter implementation ↗
net.minecraft.world.level.levelgen.structure.structures.RuinedPortalPiece; RuinedPortalPiece.postProcess, spreadNetherrack, placeNetherrackOrMagma; ruined_portal/portal_1..10.nbt and giant_portal_1..3.nbt.
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.
- Minecraft Wiki: Ruined Portal ↗
Pinned article revision 3787536
Evidence details
Community description at the pinned revision; edition differences are retained where relevant.
- Mojang Java 26.3: ruined portal loot data ↗
Inner META-INF/versions/26.3/server-26.3.jar: data/minecraft/loot_table/chests/ruined_portal.json
Evidence details
Verified official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. File SHA-256s: ruined_portal.json: 3c4f5b7f457b075817c62ec727077a6834e4ee73eaef599027e78570c355087d. Table identity and conditional item rules are distinct from any particular generated container.
- Java 26.3 ruined portal: 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:enchanted_golden_apple","table":"data/minecraft/loot_table/chests/ruined_portal.json","pool":0,"fraction":"47140544330237741389/3147998965187991553280","chance":0.01497476487493782,"weight":1,"total":398,"rolls":[4,5,6,7,8]},{"itemId":"minecraft:obsidian","table":"data/minecraft/loot_table/chests/ruined_portal.json","pool":0,"fraction":"1142073779645849480/2459374191553118401","chance":0.46437576826185156,"weight":40,"total":398,"rolls":[4,5,6,7,8]},{"itemId":"minecraft:flint_and_steel","table":"data/minecraft/loot_table/chests/ruined_portal.json","pool":0,"fraction":"1142073779645849480/2459374191553118401","chance":0.46437576826185156,"weight":40,"total":398,"rolls":[4,5,6,7,8]},{"itemId":"minecraft:lodestone","table":"data/minecraft/loot_table/chests/ruined_portal.json","pool":1,"fraction":"2/3","chance":0.6666666666666666,"weight":2,"total":3,"rolls":[1]}]
- Mojang Java 1.20.1: inspected historical ruined portal loot ↗
data/minecraft/loot_tables/chests/ruined_portal.json
Evidence details
Limited comparison of the listed data files; no claim that all intermediate releases share either table. SHA-256s: ruined_portal.json: 3e5e2a0583273236f3f632e8588199cd990602f2b7a1c6336aaa12954b18585f
- Minecraft Wiki: Ruined Portal — pinned history ↗
History section, retaining edition, release grouping, development-version and experimental-toggle qualifiers.
Evidence details
Pinned article revision 3787536 from 2026-09-21T15:07:44Z. Historical claims only; not an audited game build or release-date source.
- Minecraft Wiki: Ruined Portal description ↗
Opening description and History
Evidence details
Pinned article revision 3787536; retrieved October 1, 2026. Article history supports historical introductions; current generation and loot are audited separately from game data.
- Java 1.16 (20w16a): release date ↗
/id; /releaseTime
Evidence details
Date belongs to the exact 20w16a build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.
- Java 1.16 (20w17a): release date ↗
/id; /releaseTime
Evidence details
Date belongs to the exact 20w17a build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.
- Java 1.16 (20w18a): release date ↗
/id; /releaseTime
Evidence details
Date belongs to the exact 20w18a build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.
- Bedrock 1.16.0: release date ↗
Version infobox release date
Evidence details
Platform releases were staggered: June 23, 2020<ref name="nether-release">{{cite|url=https://feedback.minecraft.net/hc/en-us/articles/360044928311|title=Minecraft - Nether Update - 1.16.0 (Bedrock)|date=June 23, 2020}}</ref>. These dates describe full Pocket releases, separately from earlier betas.
- Bedrock 1.16.100: release date ↗
Version infobox release date
Evidence details
Platform releases were staggered: Nintendo Switch: November 16, 2020; Android, iOS, iPadOS, Windows 10, Fire OS, Xbox One, PS4: November 17, 2020
- Bedrock 1.21.60: release date ↗
Version infobox release date
Evidence details
Pinned community version article date; snapshots, betas and previews have their own release dates, separately from the full version.
- Java 1.21.5: release date ↗
/id; /releaseTime
Evidence details
Date belongs to the exact 1.21.5 build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.
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.