OVERWORLD · UNDERGROUND
Mineshaft
Page updated
Networks of abandoned mining tunnels with wooden supports, rails, chest minecarts, and cave spider spawners. Players explore them for supplies and rare loot, including the Bounce music disc in Sulfur Caves.
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 mesa variant is eligible in Badlands, Eroded Badlands and Wooded Badlands. The normal tag covers the other listed Overworld biomes except Deep Dark. [2][5]
Candidate positions and rarity
Java 26.3 tests each chunk as a potential start before its frequency filter. The configured frequency filter is 0.4%. Candidate selection happens before successful structure generation; this is not a measured density or an average travel distance. [3][4]
The placement frequency is 0.004, or a 0.4% candidate roll per chunk before successful structure generation. The two equal structure-entry weights do not halve the chance in each biome: a failed entry is removed and the other may be tried. [1][3][4][5]
What the starting position means
Normal layouts are moved below sea level. For the mesa variant, the generator moves the layout center to sea level if the sampled surface is lower, or chooses an inclusive height between sea level and the sampled surface when it is higher. This explains why badlands layouts can sit higher than ordinary mineshafts. [1][4][5]
Corridors, crossings and broken routes
Mineshafts grow from a start room into wooden-supported corridors, stairs and crossings. The normal and badlands variants use different material choices. Corridors can meet open caves, ravines or other passages, so a missing floor or broken support is a reason to inspect the next step. [6]
The corridor builder works in five-block sections and shortens candidates when they collide with existing pieces. It is a branching procedural layout rather than one fixed mine template. Rails, minecart chests and spider corridors are conditional additions. [6]
Cave-spider spawners are optional
A corridor first chooses whether it has rails. Only a corridor without rails can enter the separate spider-corridor branch. Its later placement still checks for an eligible interior position before installing a cave-spider spawner. A pool of corridor choices therefore cannot be converted directly into a guarantee of a spawner per mineshaft. [6]
A placed spawner is repeatable while its conditions are met. It is separate from ordinary hostile mobs in the dark tunnels. Cobwebs restrict movement around it, so prepare an exit before opening a narrow spider passage. [6]
Loot and rewards in Java 26.3
The abandoned_mineshaft table belongs to chest-minecart rewards. It has one valuables selection from total weight 71, 2-4 supplies selections from weight 98, and three rail/material selections. These are per assigned chest-minecart table invocation, not per entire tunnel network. [7][10]
In Java 26.3 the third pool includes music disc Bounce with weight 10 only when a location_check matches minecraft:sulfur_caves. Its other entries total weight 50. The eligible denominator therefore depends on the loot location; a general mineshaft percentage for Bounce would be misleading. [7]
The first pool includes a randomly enchanted book and an empty entry. The cave-spider spawner, tunnel blocks and mob drops are separate from this minecart table; finding the mineshaft does not establish that every corridor contains a reward container. [7][10]
Compared directly with Java 1.20.1, the Java 26.3 tables differ. The inspected abandoned mineshaft table gains Music disc bounce. Use the current weights rather than carrying older chest percentages forward. [7][9]
| Item | Where the rule applies | What the data establishes |
|---|---|---|
| One mineshaft-table chest minecart | 1.4% chance; a single weight-1 valuables draw. [7][8] | |
| One mineshaft-table chest minecart | 42.3% chance; weight 30 of total 71 in the valuables pool. [7][8] | |
| One mineshaft-table chest minecart | 8.9% chance of at least one selection; 1-2 diamonds per selection. [7][8] | |
| Third pool, only after sulfur-caves location check passes | Weight 10; location-dependent eligibility changes the pool total. No whole-mineshaft percentage is asserted. [7] |
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 Beta 1.8 | September 14, 2011 | Introduced mineshafts. [11][13] |
| Java 1.5 | March 13, 2013 | Replaced ordinary loot chests with chest minecarts. [11][14] |
| Pocket 0.9.0 | July 10, 2014 | Added mineshafts to Pocket Edition. [11][15] |
| Pocket 0.10.0 | November 18, 2014 | Added surface badlands mineshafts with dark-oak supports. [11][16] |
| Java 1.9 | February 29, 2016 | Expanded minecart loot with name tags and golden apples while removing saddles and iron horse armor. [11][17] |
| Java 1.10 | June 8, 2016 | Added the dark-oak badlands variant and surface generation. [11][18] |
| Java 1.17 | June 8, 2021 | Added improved log and chain supports and glow berries in chest minecarts. [11][19] |
| Java 1.18 | November 30, 2021 | Removed dirt floors from starting rooms and raised badlands mineshaft generation. [11][20] |
| Java 26.2 | June 16, 2026 | Added a chance for Bounce music discs in chest minecarts located in Sulfur Caves. [11][21] |
| Java 26.3 | September 15, 2026 | Added abandoned-camp explorer maps leading to mineshafts. [11][22] |
Checked in game by SeedLookout
Screenshots

28462718234064871 · Java 26.3 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.
2734971658 · Java 1.20.1Our 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 mineshaft
We found this mineshaft at these coordinates in the seed's Java version. Other versions and Bedrock may generate a different world.
| Seed | Version | Variant | X, Y, Z |
|---|---|---|---|
Abandoned zombie village beside a cherry grove2734971658 | Java 1.20.1 | Mineshaft | -215, -2, 115 |
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/mineshaft.json; data/minecraft/worldgen/structure/mineshaft_mesa.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure/mineshaft.json = 6a57c6185b33989ec410b747ab5639887cab50c11393cdd53d40de5a155abc5b; data/minecraft/worldgen/structure/mineshaft_mesa.json = 929f2484095cacc0833c0eb895d67a72f4c9b16c0d9bbda540cdd4cf291321af
- 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/mineshaft.json; data/minecraft/tags/worldgen/biome/has_structure/mineshaft_mesa.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_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/mineshaft.json = 40d48ba76ba66c7e7c450b301dde63e938c3948de8717d416469531c830626d1; data/minecraft/tags/worldgen/biome/has_structure/mineshaft_mesa.json = a5aa874c2c94e1e2bbe70ab34512a1e79e68530edd1facf20dcf9668b36d67ad; 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_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/mineshafts.json
Evidence details
Official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. SHA-256 by archive member: data/minecraft/worldgen/structure_set/mineshafts.json = b9b3c2d55d9ada95843c095f23ed2daa69a3fc5fa665e5fb5bdca9f0dadbac7c
- 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/MineshaftStructure$Type.class; net/minecraft/world/level/levelgen/structure/structures/MineshaftStructure.class. Methods: MineshaftStructure.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/MineshaftStructure$Type.class = 646beebf08e47c5bbdee3a6809c051ed9d4d0fb55eeb2e5632eb29e7d487cc32; net/minecraft/world/level/levelgen/structure/structures/MineshaftStructure.class = a272cefd1497c4c181d784a67ea988aab53df90defd3b6a67087cead4daec708
- Mojang Java 26.3: mineshaft layout and encounter implementation ↗
net.minecraft.world.level.levelgen.structure.structures.MineshaftPieces; net.minecraft.world.level.BaseSpawner; MineshaftPieces.MineShaftCorridor constructor, findCorridorSize / postProcess; MineShaftCrossing and MineShaftStairs; BaseSpawner.serverTick / delay; normal versus mesa type data.
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: mineshaft loot data ↗
Inner META-INF/versions/26.3/server-26.3.jar: data/minecraft/loot_table/chests/abandoned_mineshaft.json
Evidence details
Verified official server SHA-1 33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c. File SHA-256s: abandoned_mineshaft.json: 03a36071a254948001b4733c930b5def46551d4e2afa80d6503b6bc7639b31e6. Table identity and conditional item rules are distinct from any particular generated container.
- Java 26.3 mineshaft: 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/abandoned_mineshaft.json","pool":0,"fraction":"1/71","chance":0.014084507042253521,"weight":1,"total":71,"rolls":[1]},{"itemId":"minecraft:name_tag","table":"data/minecraft/loot_table/chests/abandoned_mineshaft.json","pool":0,"fraction":"30/71","chance":0.4225352112676056,"weight":30,"total":71,"rolls":[1]},{"itemId":"minecraft:diamond","table":"data/minecraft/loot_table/chests/abandoned_mineshaft.json","pool":1,"fraction":"8186991/92236816","chance":0.08876055522124701,"weight":3,"total":98,"rolls":[2,3,4]}]
- Mojang Java 1.20.1: inspected historical mineshaft loot ↗
data/minecraft/loot_tables/chests/abandoned_mineshaft.json
Evidence details
Limited comparison of the listed data files; no claim that all intermediate releases share either table. SHA-256s: abandoned_mineshaft.json: ac8e330ebb6592f38fc8bd1a5cea144714b600814c50449407128a530a596d1b
- Mojang Java 26.3: mineshaft layout and encounter implementation ↗
net.minecraft.world.level.levelgen.structure.structures.MineshaftPieces; net.minecraft.world.level.BaseSpawner; MineshaftPieces.MineShaftCorridor constructor, findCorridorSize / postProcess; MineShaftCrossing and MineShaftStairs; BaseSpawner.serverTick / delay; normal versus mesa type data.
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: Mineshaft — pinned history ↗
History section, retaining edition, release grouping, development-version and experimental-toggle qualifiers.
Evidence details
Pinned article revision 3787544 from 2026-09-21T15:07:54Z. Historical claims only; not an audited game build or release-date source.
- Minecraft Wiki: Mineshaft description ↗
Opening description and History
Evidence details
Pinned article revision 3787544; retrieved October 1, 2026. Article history supports historical introductions; current generation and loot are audited separately from game data.
- Java Beta 1.8: release date ↗
/id; /releaseTime
Evidence details
Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.
- Java 1.5: release date ↗
Version infobox release date
Evidence details
Public release calendar date from pinned version article. Legacy metadata date 2013-03-06 disagrees; its timestamp and URL remain preserved separately.
- Pocket 0.9.0: release date ↗
Version infobox release date
Evidence details
Historical date from the pinned Minecraft Wiki version article; introduction is separately attributed to each structure article history.
- Pocket 0.10.0: 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.9: release date ↗
/id; /releaseTime
Evidence details
Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.
- Java 1.10: release date ↗
/id; /releaseTime
Evidence details
Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.
- Java 1.17: release date ↗
/id; /releaseTime
Evidence details
Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.
- Java 1.18: release date ↗
/id; /releaseTime
Evidence details
Date belongs to the exact 1.18 build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.
- Java 26.2: release date ↗
/id; /releaseTime
Evidence details
Date belongs to the exact 26.2 build. Snapshot and prerelease dates are separate from the later full release; metadata does not prove the feature introduction.
- Java 26.3: release date ↗
Published 9/15/26; Minecraft Java 26.3 Released
Evidence details
Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.
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.