Minecraft – Explain the best Y level (height) for mining in Minecraft

minecraft-bedrock-editionminecraft-java-edition

I favor mining in straight, torch-lit tunnels. There aren't any mobs and it's easy to find my way back out. But I've never really been sure how deep I should go for the best results. I've seen all kinds of varying answers, but most of them don't come with any real explanation and almost none of them show their work.

To make the question more specific, these are the resources I'm usually hoping to find when I go to mine:

  • Diamonds for better equipment.
  • Lapis Lazuli for use in enchanting.
  • Iron for general use.
  • Gold (sometimes) when I want to make golden apples or trade with villagers/piglins.

I value them in roughly this order, though sometimes I want lapis more than diamonds when I really want to enchant some items.

I don't particularly care about:

  • Redstone because I have little use for it and I usually end up with plenty.
  • Coal because I usually have enough already.
  • Emeralds because I can get more by trading with villagers than by mining for them anyway.

So, what are the best Y levels to dig across in trying to get these resources, and why?

Best Answer

This answer applies to both Bedrock and Java edition.
This answer was written for version 1.16; later versions might differ if the world generation changes.

The Short Answer

Dig a 2-tall, 1-wide tunnel through Y 12 and Y 13.
Y 11 will be visible below your feet and Y 14 will be visible above your head.

  • Y 11, Y 12, Y 13 and Y 14 are all very good for lapis.
  • Y 12 and Y 13 are close to the best for diamonds without compromising too harshly on the other resources.
  • Y 12, Y 13 and Y 14 are very good for gold (though not technically the best). Going lower isn't much better. Going higher is better for gold, but much worse for everything else.
  • Underground lava lakes stop at Y 10, meaning Y 11 (the block you'd be walking on) has (almost) no lava. Just be careful mining down, as always.

Defining "Best"

I'm taking "best" to mean quickest, or most efficient relative to the effort. In other words, how many valuable resources do we get per block we have to mine.

We need a minimum of two vertical blocks for walking. This allows us to see four Y levels: the two we're mining out, plus the one below our feet and the one above our head.

So the "best" levels would be the four contiguous Y levels where the resources we want are most common.

As you'll see from the graphs, expanding our range to more than four vertical blocks exposes levels where resources are less and less common, so it's more efficient to just keep digging straight than to make the mining tunnel taller.

Showing My Work

In order to come to the above conclusion, I wrote my own program (using some of the tools already created by others), to analyze a two freshly created worlds, one in Bedrock and one in Java, both on version 1.16 with different random seeds.

The graphs that follow show the amount of each resource type found at each Y level. The raw data, as well as the program used to generate that data, are available, and links can be found at the end of the answer.

Bedrock Edition Results

I did the Bedrock test first. I analyzed an area of ~530 chunks (35,676,160 blocks, including air). The area I analyzed didn't include any mountain biomes, so I didn't gather any data on emerald ore, but I decided not to worry about that since it's on the "don't care" list.

Graph showing every relevant block except for emerald
Graph showing every relevant block except for emerald

Note: Lava is on a separate axis (the one on the right), because there's much more lava than ore. All other resources are plotted against the primary (left) axis.

This first graph isn't terribly useful, since all the important resources are squished down at the bottom. Let's take off coal and redstone, since they're on the "don't care" list and are much more plentiful. We'll also take off lava so we can move the much more common iron ore onto the secondary axis.

Graph showing only diamond, gold, lapis and iron Graph showing only diamond, gold, lapis and iron

Now we're getting somewhere.

For iron, it looks like we can basically ignore it, since it's relatively constant within the range that also includes the other desired resources.

That said, the first thing I notice is there seems to be a noticeable dip in both gold and and diamonds on Y 10 and Y 11. But there is also a significant spike in lapis on Y 11.

Comparing this to the Java results (which also uses a larger sample size), I still see a (smaller) dip in gold and diamond only at Y 11. But I don't see any spike in lapis at Y 11. I'd say this is most likely due to sample size and random chance, rather than differences between world generation. It's possible, if not probable, that Y 10 and Y 11 would smooth out for all resources given a large enough sample.

Java Edition Results

For the Java test, I went for a larger sample size: ~1300 chunks (88,150,496 blocks, including air), almost 2.5x the sample size for the Bedrock test. Unfortunately, the output data was slightly larger than Excel could open, so for the analysis I could old use 98.7% of the output data.

This time, I did find a couple emeralds, but very few- too few for a meaningful analysis- so I'm leaving them off once again.

Graph showing every relevant block except for emerald Graph showing every relevant block except for emerald

The full graph shows a very similar result between Java and Bedrock, with lava dropping off after Y 10, redstone dropping off between Y 13 and Y 15... and the rest a bit too squished too see.

Lets clean up the graph a bit the same way we did in the Bedrock test: take off coal, redstone and lava, and move iron ore onto the secondary axis:

Graph showing only diamond, gold, lapis and iron Graph showing only diamond, gold, lapis and iron

Again, things look very similar to the smaller Bedrock test. AS mentioned before, we still see a noticeable (but not nearly as large) dip in gold and diamond at Y 11 but there is no spike in lapis at Y 11. There is a noticeable dip at Y 15, but that's already too high for us to care about.

Summary

This leads me to the "short answer" I gave at the top. Mining at Y 12 and Y 13 keeps us in a good range for lapis (even if you ignore the Y 11 spike from the Bedrock test), while also avoiding the huge lack of diamonds at Y 15.

If you wanted to prioritize diamonds more over lapis you could move down one block and mine along Y 11 and Y 12. This avoids the drop in diamonds at Y 14, but will noticeably reduce the amount of lapis since you're moving away from its high-point. Also, this puts you directly over lava lakes so you'll have to be more careful and you'll be more likely to have your mine tunnels interrupted.

On the other hand, if you wanted to seriously prioritize lapis over diamond, I might suggest digging at Y 13 and Y 14, which would let us see levels 12 through 15. The Bedrock test seems to show this as the peek range for lapis (and not bad for gold either), however the Java test doesn't quite agree. Plus, if we do care about diamonds at all this is a terrible idea, since they suffer a serious drop at Y 14 and are almost gone by Y 15.

Performing Your Own Analysis

In an effort to be scientific and maybe help a few people out, I'm releasing everything involved in this analysis for public use. This includes:

  • The program I wrote to analyze Minecraft worlds. Available on GitHub.
  • The actual world files I analyzed to get the data used in the above answer.
    Included in the GitHub repo, but here are the direct links: Bedrock world Java world.
  • The raw data I extracted from those worlds, used to make the graphs in this answer.
    Also included in the GitHub repo, but here are the direct links: Bedrock data Java data.

With these tools, not only can you reanalyze my data to find anything I might have missed, but you are more than welcome to create your own Minecraft worlds and analyze those to see if there are unexpected differences.

If you do want to analyze your own worlds, keep in mind that Minecraft only saves chunks that have been changed- it won't bother to save a chunk if it's still exactly the same as when it was generated. To get around this, I used the /fill command to generate a layer of invisible barrier blocks in the sky over the chunks I wanted to analyze.

Happy mining.