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.
| Batch | Shape | Range | Tries | Size | Air-skip | Biomes |
|---|
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.
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.
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 0–127 range.
| Ore | Best Y | Range | Shape | Notes |
|---|---|---|---|---|
| Coal | 96 (or anywhere 136–320) | 0 to 320 | Triangle + upper band | — |
| Copper | 48 | -16 to 112 | Triangle | Bigger veins in Dripstone Caves |
| Iron | 16 (or 232 in mountains) | -64 to 320 | Three batches | — |
| Gold | -16 | -64 to 32 | Triangle + deep band | Extra band 32–256 in badlands biomes |
| Lapis lazuli | 0 | -64 to 64 | Triangle + buried band | Buried band never touches air |
| Redstone | -59 | -64 to 15 | Band + deep triangle | Deep triangle -63 to -32, densest at the floor |
| Diamond | -59 | -64 to 16 | Four batches, densest at floor | Extra deep batch since 1.20.2 |
| Emerald | 232 by generation, ~90 in practice | -16 to 320 | Triangle | Mountain-group biomes only |
| Ancient debris | 16 (Java) / flat 8–23 (Bedrock) | Nether | Triangle (J) / uniform (B) | Fully buried; blast-resistant |
| Nether quartz | Any 10–117 | Nether | Uniform | Doubled in basalt deltas (Java) |
| Nether gold | Any 10–117 | Nether | Uniform | Doubled 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.
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.
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.
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.
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:
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.
Once you know where to dig, these cover what happens next.