Minecraft ore distribution chart

The best Y level for every ore, drawn from the generation batches the game actually uses — with the full range, the batch shape, and the difference between where an ore peaks on paper and where you should really dig. Java & Bedrock.

Ore distribution
Ore density by Y level Relative generation density of the selected ore at each Y level.
Generation batches
BatchShapeRangeTriesSizeAir-skipBiomes

The curve is a relative comparison of how an ore's own generation is spread across height — it is not a promise of blocks per chunk. Each batch is weighted by its tries per chunk and its vein size, then summed. Air-exposure discard, biome restriction and the terrain that actually exists at a given height are not folded into the curve; where they change the answer, the page says so in the notes.

How to use this chart

Pick an ore and the chart draws how its generation is spread across height. The wide part of the shape is where that ore is densest; the number above the dashed line is the level it peaks at. The panel beside it breaks the ore into its batches — the game does not place an ore with one rule, it runs several independent passes, each with its own shape, height range, attempts per chunk and vein size.

If you only want the short answer, the next section is a plain table of the best level for every ore, and it is readable without running anything.

Best Y level for every ore

One row per ore: the level to mine at, the full range the ore generates across, the shape of that generation, and the one caveat that matters most. Overworld ores are given in world coordinates (-64 to 320); Nether ores use the Nether's own 0127 range.

Minecraft ore distribution — best Y level, generation range and batch shape for every ore.
OreBest YRangeShapeNotes
Coal96 (or anywhere 136–320)0 to 320Triangle + upper band
Copper48-16 to 112TriangleBigger veins in Dripstone Caves
Iron16 (or 232 in mountains)-64 to 320Three batches
Gold-16-64 to 32Triangle + deep bandExtra band 32–256 in badlands biomes
Lapis lazuli0-64 to 64Triangle + buried bandBuried band never touches air
Redstone-59-64 to 15Band + deep triangleDeep triangle -63 to -32, densest at the floor
Diamond-59-64 to 16Four batches, densest at floorExtra deep batch since 1.20.2
Emerald232 by generation, ~90 in practice-16 to 320TriangleMountain-group biomes only
Ancient debris16 (Java) / flat 8–23 (Bedrock)NetherTriangle (J) / uniform (B)Fully buried; blast-resistant
Nether quartzAny 10–117NetherUniformDoubled in basalt deltas (Java)
Nether goldAny 10–117NetherUniformDoubled in basalt deltas (Java)

“Best Y” is the level with the highest chance of generation, which is not always the level worth mining — see mathematical peak vs practical mining level for the two ores where those come apart.

How ore distribution works since 1.18

Before 1.18 an ore had one rule: a flat band between two heights, the same everywhere inside it. Since 1.18 ore generation is built from batches. A batch is a single independent pass over the chunk, and it carries four things: a shape, a height range, a number of attempts per chunk, and a vein size. An ore's real distribution is every one of its batches added together, which is why iron is common both deep underground and near mountain peaks — those are different batches, not one wide band.

Batches come in two shapes. A uniform batch spreads its attempts evenly: every height inside its range is as likely as every other, and the curve is a flat block. A triangle batch concentrates its attempts toward one level and tapers off to nothing at both ends of the range, which is why most ores have a single clear best level rather than a plateau. The peak of a triangle is usually the middle of its range, but not always — the range the game clips to the world is not always the range the triangle was built from.

That last point is where published numbers disagree with each other. An ore's configured range is what the generator is defined with; its displayed range is what survives after the world's build limits cut it down. Iron's upper batch is configured up to Y 384 but the Overworld stops at 320, so the top third of that triangle never exists — and its peak stays at 232, the middle of the configured range, not the middle of the part you can visit. Emerald is the same story, configured to Y 480 and peaking at 232. This chart uses displayed ranges, because those are the heights you can actually stand at.

Mathematical peak vs practical mining level

For most ores the peak of the curve is simply where you dig. For two of them it is not, and for opposite reasons.

Diamond does not peak in the middle of its range. Its generation keeps increasing the further down you go and reaches its maximum at the bedrock floor, Y -64. The reason nobody mines at -64 is that the bottom few layers are mixed with bedrock: from -64 up to about -60 the floor is a random scatter of bedrock and stone, so a tunnel there is mostly unbreakable blocks and dead ends. Y -59 is the first level clear of that mixing, which makes it the highest-density height you can actually tunnel through — the practical answer, one level short of the mathematical one. The same logic gives redstone its -59: its deep batch is densest at the bottom of its range too.

Emerald peaks where there is no world. Its triangle is centred on Y 232, and that really is the height with the greatest chance per attempt. But almost no terrain exists at 232 — only the tallest jagged peaks reach anywhere near it, and an ore cannot generate in open air. Counted across a real world, emerald actually turns up most often around Y 90, where there is both a decent generation chance and a great deal of mountain stone to put it in. So emerald has two honest answers: 232 by generation, about 90 in practice. The table above prints both rather than picking one.

Air exposure: why cave walls hold fewer diamonds

Several ores carry a field called discard_chance_on_air_exposure — a probability, between 0 and 1, that a vein is skipped when any of its blocks would end up next to air. It is a generation-time rule, not a cleanup pass: nothing is destroyed or removed after the fact, the vein simply never gets placed.

Diamond's regular batch sits at 0.5, so half the veins that would have surfaced in a cave wall are never placed at all. Its buried batch is at 1.0 — those veins are skipped entirely if they would touch air, which is why they only ever appear inside solid stone. Lapis has a buried batch at 1.0 for the same reason, and ancient debris runs at 1.0 across the board, which is why you never find it exposed in a lava chamber. Coal and gold sit at 0.5; iron, copper, redstone, emerald and the nether ores are at 0 and are unaffected.

The rule cares about air specifically. Other non-solid blocks such as water do not count, so an ore vein can sit flush against a water pocket without penalty. The practical consequence is the one every player notices eventually: strip-mining fresh stone beats walking a large open cave, because the cave's walls were filtered by this rule before you ever arrived.

Java vs Bedrock differences

Ore generation is overwhelmingly shared between the editions. Copper, gold, lapis lazuli, redstone, diamond and emerald are identical in both, which is why the chart draws them as a single curve labelled “Java & Bedrock” rather than pretending there is a choice to make. Five differences are documented, and the edition switch changes the curve for exactly these:

A note on the coal band. The wiki's two pages disagree about how high the Bedrock-only coal batch reaches: the aggregate generation table gives Y 128–156, while the coal ore page gives Y 128–256. This chart follows the ore-specific page (128–256) and records the disagreement rather than quietly picking a side. It affects only Bedrock coal above Y 156, and nothing else on this page.

Version history: 1.18 to current

1.17 — the last version of the old system. The world still ran from Y 0 to 255, every ore used a single flat band, and diamond generated between Y 1 and 15 with Y 11 as the standard mining level. This release added copper ore and the deepslate variants of the existing ores, but did not change how ores were spread across height. Nothing on this page applies to a 1.17 world.

1.18 — the rewrite. The world was extended to Y -64 through 320, and ores moved from single flat bands to the batch system described above, with triangle and uniform shapes and per-batch vein sizes and attempt counts. This is where diamond's best level moved from 11 to -59 and iron gained its mountain batch. Every number in the table above dates from this release unless noted otherwise.

1.20.2 — the only ore distribution change since. Diamond gained a fourth batch: an even pass from Y -64 to -4, two attempts per chunk, vein size 8, discarding half of what would be air-exposed. It makes deep diamond modestly more common without moving the best level, which stays at -59. Java shipped it in snapshot 23w31a; Bedrock in 1.20.30.

1.21 onward — no ore distribution changes have been made between 1.21 and 26.2. Selecting any version in that span renders the same curves and the same batch table as 1.20.2, and the chart says so rather than implying a difference that does not exist.

Frequently asked questions

What is the best Y level for diamonds?
Y -59. Diamond generation increases the whole way down and is at its maximum at the bedrock floor, Y -64, but the layers from -64 to about -60 are mixed with bedrock and are not practical to tunnel through. Y -59 is the first fully clear level above that mixing, so it carries the highest density you can actually mine. Since 1.20.2 a fourth diamond batch spans Y -64 to -4, which makes the whole deep band slightly richer but does not move the best level.
Why do I find fewer diamonds in caves than in solid stone?
Diamond's main batch carries a 0.5 air-exposure discard, meaning half of the veins that would have generated touching air are skipped and never placed. Its buried batch is set to 1.0 and is skipped entirely in that situation. A large open cave has already had that filter applied to every wall before you arrive, so fresh unexposed stone is genuinely richer per block broken. Water does not count as air for this rule.
Is the best Y level the same in Java and Bedrock?
For most ores, yes — copper, gold, lapis lazuli, redstone, diamond and emerald generate identically in both editions. Five differences exist: coal has an extra Bedrock-only band in mountain biomes, iron's middle batch has slightly larger veins in Bedrock, ancient debris uses a triangle in Java but an even spread in Bedrock, ancient debris' small batch runs three times as often in Bedrock, and basalt deltas double the nether ores in Java only. The edition switch on this page redraws the curve for exactly those cases.
Where should I look for ancient debris?
In Java, Y 15 or 16 — the large batch is a triangle peaking at 16. In Bedrock there is no peak: the large batch spreads evenly from Y 8 to 23, so every level in that band is equally good and there is nothing to gain from picking one. Ancient debris is never exposed to air in either edition, so it cannot be spotted from a lava lake or an open tunnel; bed mining, TNT and pickaxe tunnels all work because the ore is always inside solid blocks.
Why does emerald say 232 and 90 at the same time?
Both are true and they measure different things. Emerald's generation is a triangle centred on Y 232, so 232 is the height with the greatest chance per attempt. But hardly any terrain exists that high, and an ore cannot generate in open air, so counted across a real world emerald turns up most often near Y 90, where mountain stone is plentiful. If you are mining, 90 is the useful number; 232 is the one the generator is built around.
Does the height of my world affect these numbers?
The Overworld runs from Y -64 to 320 and the Nether from 0 to 127, and this chart uses those limits. Two ores are configured past the Overworld ceiling — iron up to Y 384 and emerald to 480 — so the top of each triangle is cut off by the build limit and never generates. Their peaks are unaffected, because a peak is set by the configured range, not the visible one.
Has ore generation changed recently?
Not since 1.20.2, which added diamond's fourth batch. Everything from 1.21 through 26.2 uses the same generation as 1.20.2, and selecting any of those versions here renders identical curves and an explicit note saying nothing changed. The last substantial rewrite was 1.18, which introduced the batch system and the extended world height.

Related tools

Once you know where to dig, these cover what happens next.