seedlookout

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.

Java 26.3 · Released · Reviewed

Rails and cobwebs beneath oak support beams in an underground mineshaft corridor
Mineshaft at -26, 25, -61Seed 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]

Corridors, crossings and broken routes
PartWhat to look for
Supported corridorFollow branches carefully; a rail line need not lead to a chest. [6]
Crossing or stairsChanges of direction and level connect separate branches. [6]
Spider corridorCobweb-heavy passages can contain a cave-spider spawner. [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]

Loot and rewards in Java 26.3
ItemWhere the rule appliesWhat the data establishes
Enchanted golden appleOne mineshaft-table chest minecart1.4% chance; a single weight-1 valuables draw. [7][8]
Name tagOne mineshaft-table chest minecart42.3% chance; weight 30 of total 71 in the valuables pool. [7][8]
DiamondOne mineshaft-table chest minecart8.9% chance of at least one selection; 1-2 diamonds per selection. [7][8]
Music disc bounceThird pool, only after sulfur-caves location check passesWeight 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 history and release dates
VersionReleasedWhat changed
Java Beta 1.8September 14, 2011Introduced mineshafts. [11][13]
Java 1.5March 13, 2013Replaced ordinary loot chests with chest minecarts. [11][14]
Pocket 0.9.0July 10, 2014Added mineshafts to Pocket Edition. [11][15]
Pocket 0.10.0November 18, 2014Added surface badlands mineshafts with dark-oak supports. [11][16]
Java 1.9February 29, 2016Expanded minecart loot with name tags and golden apples while removing saddles and iron horse armor. [11][17]
Java 1.10June 8, 2016Added the dark-oak badlands variant and surface generation. [11][18]
Java 1.17June 8, 2021Added improved log and chain supports and glow berries in chest minecarts. [11][19]
Java 1.18November 30, 2021Removed dirt floors from starting rooms and raised badlands mineshaft generation. [11][20]
Java 26.2June 16, 2026Added a chance for Bounce music discs in chest minecarts located in Sulfur Caves. [11][21]
Java 26.3September 15, 2026Added abandoned-camp explorer maps leading to mineshafts. [11][22]

Checked in game by SeedLookout

Screenshots

Mine rails and wooden supports in a natural mineshaft passage
Mineshaft at -37, 25, -56Seed 28462718234064871 · Java 26.3 · overworldReference capture · Naturally generated structure, photographed in Minecraft Java 26.3.
Mineshaft plank bridge with rails in a large deepslate cave with a waterfall and a lava fall
Mineshaft at -215, -2, 115Seed 2734971658 · Java 1.20.1

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 mineshaft

We found this mineshaft at these coordinates in the seed's Java version. Other versions and Bedrock may generate a different world.

SeedVersionVariantX, Y, Z
Abandoned zombie village beside a cherry grove2734971658Java 1.20.1Mineshaft-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.

  1. Mojang Java 26.3: structure configuration ↗Official game data · Java 26.3

    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

  2. Mojang Java 26.3: resolved starting-biome tags ↗Official game data · Java 26.3

    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

  3. Mojang Java 26.3: candidate placement settings ↗Official game data · Java 26.3

    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

  4. Mojang Java 26.3: candidate filtering and weighted retries ↗Decompiled game implementation · Java 26.3

    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

  5. Mojang Java 26.3: generation entry points ↗Decompiled game implementation · Java 26.3

    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

  6. Mojang Java 26.3: mineshaft layout and encounter implementation ↗Decompiled game implementation · Java 26.3

    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.

  7. Mojang Java 26.3: mineshaft loot data ↗Official game data · Java 26.3

    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.

  8. Java 26.3 mineshaft: calculated selection odds ↗Calculated from game data · Java 26.3

    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]}]

  9. Mojang Java 1.20.1: inspected historical mineshaft loot ↗Official game data · Java 1.20.1

    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

  10. Mojang Java 26.3: mineshaft layout and encounter implementation ↗Decompiled game implementation · Java 26.3

    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.

  11. Minecraft Wiki: Mineshaft — pinned history ↗Minecraft Wiki · Java and Bedrock Revision 3787544

    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.

  12. Minecraft Wiki: Mineshaft description ↗Minecraft Wiki · Java and Bedrock revision 3787544

    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.

  13. Java Beta 1.8: release date ↗Official game data · Java Beta 1.8

    /id; /releaseTime

    Evidence details

    Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.

  14. Java 1.5: release date ↗Minecraft Wiki · Java 1.5

    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.

  15. Pocket 0.9.0: release date ↗Minecraft Wiki · Bedrock 0.9.0

    Version infobox release date

    Evidence details

    Historical date from the pinned Minecraft Wiki version article; introduction is separately attributed to each structure article history.

  16. Pocket 0.10.0: release date ↗Minecraft Wiki · Bedrock 0.10.0

    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.

  17. Java 1.9: release date ↗Official game data · Java 1.9

    /id; /releaseTime

    Evidence details

    Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.

  18. Java 1.10: release date ↗Official game data · Java 1.10

    /id; /releaseTime

    Evidence details

    Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.

  19. Java 1.17: release date ↗Official game data · Java 1.17

    /id; /releaseTime

    Evidence details

    Release metadata establishes its date, not feature introduction. Original Wiki history must support introduction separately.

  20. Java 1.18: release date ↗Official game data · Java 1.18

    /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.

  21. Java 26.2: release date ↗Official game data · Java 26.2

    /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.

  22. Java 26.3: release date ↗Official documentation · Java 26.3

    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.