Guide:Prospecting

From Vintage Story Wiki
Other languages:
  • English

While a regular pickaxe and hammer should be your first tools, a prospecting pick is a tremendous aid in finding larger quantities of ore, and deeper ore deposits.

If you press F while holding a prospecting pick, you should get a menu showing 1 or 2 options: Density mode and (if enabled ) Node mode. Basically, use Density mode to help decide where to dig, and use Node mode while digging.

Rock strata

The in-game Handbook has a guide on Rock Strata that's worth going through a few times. Eventually, you can get used to which rocks are igneous type, and nearest the mantle of the world.

Limonite is an ore that can only generate in 3 types of rock: chert, shale, and basalt. You can use the Handbook to check which rocks can host which ores. If you're walking around on soil with small stones of chalk visible, it's not obviously a good place to dig for limonite. But rocks generate in layers, much like a parfait.

Screenshot rock-parfait.png

Visible "biome" indicators such as plants, animals, temperature, and rainfall give no indication of what rock types could be below. If you peek in a cave you might glimpse two or more rock types, but what's further down? Or you could examine the layers of distant mountains (even adjust your settings to a higher view distance), but that would only show the "parfait's" top "flavors." You can think of the prospecting pick's density mode as a drill that checks all the layers, from the surface to the world mantle. A few steps away, the rock layers are likely to be mostly the same types, but potentially different thicknesses/proportions.

Density mode does not tell you whether ore is below a spot you sampled. Rather, it indicates places where certain ores have the opportunity to generate, because the necessary host rock(s) are present to a greater or lesser degree.

Density mode

How it works

When the world is created, a heatmap [1] is also created, which density mode will 'read' from. Where density mode reports Decent or better for a particular ore, there should be high chances of that ore generating there. But randomness is still a significant factor, and there could be zero tin directly below an "Ultra High" density reading.

To take a density sample, select Density Mode from the prospecting pick's F menu, then break 1 block. No ore or stone will be dropped. You need two more samples to complete a Density reading, and they must be at least 3 blocks apart. If you keep getting "OK, need another sample" you're using the pick too soon. Count from your last sample and mine the 4th or 5th block away, any direction.

The game checks the coordinates of the first of the 3 blocks sampled, and compares the coordinates with the heatmap mentioned earlier. The direction/distance of the 2nd and 3rd samples doesn't affect the results. It's not true "triangulation" in the navigational sense. As the heatmap is 2-dimensional, the elevation (Y level) of the sample doesn't matter at all; the result would be the same if the first block sampled is at the same X and Z coordinates, whether at sea level or deep underground. Density mode doesn't have a radius, or range; it basically reports on a column[2] 1 x 1 x world-height.

If you use density mode in an area that has only chert, shale, and basalt, the density reading could be "Ultra high" for limonite. It's possible that when that area generated for the first time, all of the triesPerChunk failed, but the opportunity for limonite to be present is as high as could be. If, however, there's an extra layer of chalk on top, expect the reading for limonite to drop to "Very high"; if the chalk layer is thick, maybe even just "High." If there's also a layer of sandstone, bauxite, or conglomerate, the density reading for limonite should drop further, as the layers of valid host rocks become thinner. The less chert, shale, and basalt an area contains, the lower the opportunity of limonite to generate there.

The density report is returned in ‰, parts-per-thousand[3] (not percent, as commonly assumed). Density Search mode is useful in telling players what ores to expect to find within a given area, but does not tell players exactly where the ore may be, nor its potential size or quality.

The best place to start digging is the "local peak": where the density reading was highest. Not because there will be more ore there, but because the probability/opportunity for it to generate is highest there. You might end up actually finding the ore several chunks away, where the density reading is lower.

Methodology for using density mode

People differ in how they like to use density mode: take samples rarely or often, sample methodically or when convenient, sample using the coordinate HUD or counting blocks from the last sample. There is, though, consensus that too close when starting is wasteful; if you're getting no readings at all for the ore(s) you're interested, travel far enough away that the rock layers could be somewhat different before sampling again. Start with playing the Hot-or-cold game on a large scale, moving significant distances between samples, until you start getting readings for the ore(s) you want. Then play the Hot-or-cold game on a smaller scale, responding to ups and downs in the density readings. Because Streetwind has a popular post in which he starts by taking density samples every 160 blocks, I'll use 160 here for the large-scale hunt.

Streetwind's methodology for finding the local peak involves finding where the readings drop, then backtracking.

  1. Use the coordinate HUD (toggle with Ctrl+V) to find a block that has both lateral coordinates (X and Z) divisible by 40. The Y value (elevation) doesn't matter. For simplicity, I'm going to start with world spawn: using density mode of the prospecting pick, break the block at X 0, Y 110, Z 0. Complete the density sample by taking two nearby samples (each at least 3 blocks apart).
  2. Do the results include cassiterite (aka tin) at all? If not, pick a direction and walk forward 160 blocks. Again prospect the exact block with coordinates divisible by 40, and check the results.
  3. Repeat as often as it takes to get your target ore mentioned in the density report. Do a line, make a grid, whatever you wish; just search 160 blocks apart each time.
  4. Once cassiterite shows up for the first time (even "miniscule"), go forward 160 blocks one more time, and sample again.
  5. If the density reading increased or stayed the same, go another 160 forward and sample again. If the result decreased, go back to the previous spot, which should be your highest result so far.

Now for the small-scale Hot-or-cold game:

  1. Check the perpendicular directions from your highest result so far: if I was traveling west, now I will check north and south, going 80 blocks away from the middle spot for each density sample.
  2. Find the direction the result increases in, and continue in that direction in 80-block steps, until it decreases again.
  3. Go back to your last result, which should again be the highest result you've found so far. For this example, let's say it's at X -1600, Y 110, Z 400.
  4. I should now check the perpendicular directions again. If it was "getting warmer" as I went south, now I'll check east and west, going 80 blocks away from the middle spot for each density sample.
    1. If at any point in this you get an "Ultra high" reading for cassiterite, stop; you're done with density mode. It doesn't get any better than "Ultra high." Otherwise:
  5. Check the perpendicular directions from your highest result so far, going 40 blocks away from the middle spot for each density sample. If the reading gets worse, backtrack to your last highest result. (Don't bother sampling closer together than 40 blocks.)
  6. Locate the highest reading you can find. This is the "local peak." Unfortunately, the local peak could still be rated Poor. You can choose whether to spend more time on the surface with density mode, exploring further away hoping to find better than "poor", or whether to spend more time underground with node mode, digging more shafts in the hope of hitting a disc of ore. Personally, I stop hunting when I get a reading of "Decent" or better.

The image below represents the density mode hunt described above, using smaller intervals each time we hit a dead end. It starts at the black point; each red point represents a lower density reading than the last best reading, and the green point represents the local peak. Displays a series of dots getting closer together in a branching pattern

Here's an image from the game's map (with the terrain layer toggled off), illustrating the large-scale stage of the density search (128 blocks apart): Displays dots at regular intervals, indicating probability by color (green > yellow > red)
Density samples were taken at every interval in this grid; many locations in the pattern lack a color dot because density mode reported nothing for that ore, not even "Miniscule."

You can come back another day to do the small-scale stage:
Displays dots with clusters around the areas of highest probability
I don't recommend using density mode every 32 blocks in a grid, but this image is useful for showing the gradation of higher readings, and the possibility of two significant "peaks."

Exceptions

Ore generation is fairly complex. The methodology above applies to most ores, but you will not ever find density readings higher than "Poor" for certain ores. This might be because that ore requires sedimentary rock layers, and/or certain elevation limitations, leaving it a relatively small window of opportunity. And remember that any ore with readings even "Ultra high" is no guarantee that ore successfully generated there. Expect to need to travel many thousands of blocks for one or more resources during the course of a game/world.

Here is an example of a region approximately 1600 blocks x 1056 blocks; the prospecting layer of the world map is filtered to show all minerals: "Everything."
Illustration heatmap.png

Here is that same region, filtered to show only borax. Although everywhere in this region has prospecting data from density mode, there are several 'dead zones' where no borax is expected to generate. Even where there are readings for borax they don't get very high.
Illustration heatmap borax.png

Node mode

How it works

Node mode tells players the number of ore blocks within range of the sampled/broken block. By comparing the strength of readings in different directions, you can narrow down which direction(s) takes you closer to the ore disc. Perhaps as a child you played the Hot Or Cold? game; typically you'd get verbal hints like "warmer" and "freezing" as you hunt for a hidden item. Using node mode is similar to playing Marco Polo with an immobile companion.

To take a node sample, select Node Mode from the prospecting pick's F menu, then break 1 block. No ore or stone will be dropped.

If you get any result other than "No ore node nearby" there is definitely at least a little ore within a range of 6 blocks from the location you dug; it could be above, below, or to any side. If your first sample reports "Verified trace amounts" and your next sample reports "Verified small amounts", you're getting closer to the ore deposit. See try it section below for guidance pinpointing an ore disc. See this table for what the descriptive terms "small" etc. actually mean.

Methodology for using node mode

I typically use Node mode on every 13th rock-block from surface to mantle, because I'm interested in any and all minerals that might be near my shaft. But the following section is written for a more precise (and hopefully more brief) hunt for a specific ore. For simplicity's sake, I'll assume a node radius of 6 and cassiterite (aka tin) as the target ore. Some ores generate in relation to surface level and others in relation to sealevel, both of which are a percentage of world height. For this guide, I'll use Y 110 as the elevation of "surface level" though the terrain is usually quite hilly.

Try it

Needed materials:

  • regular pickaxe
  • prospecting pick
  • ladders (I prefer rope ladders; some people use waterfalls)
  • light (I prefer oil lamps)
  • dirt or other means of blocking off caves
  • recommended: coordinate HUD toggled on (Ctrl + V)
  • optional: food
  • optional: pigment such as charcoal or chalk
  • optional: loose stones in a variety of colors, for cheap note-taking
  • optional: containers(s) such as crates for loose stones generated while digging

Recommended steps:

  1. Use the Handbook H to check which rocks can host the ore you're interested in.
  2. Dig straight down, zig-zagging if necessary to avoid caverns and quartz deposits.
  3. Place ladders as you go (can conserve resources by leaving a gap of 1 block between each ladder segment) and block off holes that drifters etc could use to reach you.
  4. When you've reached a rock type that can host your target ore, begin counting from 1 to 6.
  5. If you use Node mode on the 7th block, it will check the 6 Y levels above, as well as the 6 below (assuming a radius of 6 for your world config ).
    1. If the Info log tab of the chat overlay reports "No ore node nearby", count down 6 + 6 then use node mode on the 13th block. Because the first 6 were already checked, you only need to use node mode on every 13th block. If your pick has plenty of durability, you might prefer to node-sample every 7th block instead of 13th, in which case you won't need to backtrack as much to eliminate possibilities.
    2. If the Info log tab reports "Verified" detection of ore within the radius of the last sampled block, backtrack while node-sampling, looking for the point where the Verified detection disappears. Position yourself with the first instance of verified readings at eye level; you might want to add a sign, chalk mark, or torch at this point. It's the limit of the prospecting pick's range, and the ore disc should be 7 blocks below, possibly off to a side/diagonal.
  6. If node mode reports "No ore" at Y level 83 and "Verified traces" at Y level 82, then you have resolved 1 of the 3 compass variables: X (east/west) and Z (north/south) coordinates for the ore deposit still need to be figured out, but the Y coordinate is (in this case) Y 76 (82-6=76). Dig straight down until Y 76 is at eye level. Being a little above or below is OK too but ideally we'll hit the ore disc straight on.
  7. Dig 4 blocks at eye level on each of the remaining cardinal directions: N, E, S, W.
  8. Use node mode on the 5th block (because that's the furthest you can reach without digging at knee-level too). Mark the ones with higher readings than others. Maybe block off routes with low readings, as a reminder to not waste time those directions.
  9. Dig a passageway towards the strong reading, 6 or so blocks.
  10. Again, dig 4 blocks at eye level on each of the remaining cardinal directions, and node-sample the 5th block.
  11. Repeat steps 7-9 until you find a block of ore. Occasionally, the ore is so difficult to see in the host rock that you could be unaware of having already mined some. Check your inventory from time to time for new chunks of ore.

Homing in on a target

In addition to a frame around a block showing the range of the pick's radius, there are different-colored blocks labeled after the cardinal compass directions.
Which block will give the strongest reading?

When you node-sample, you're checking a total of 2197 blocks surrounding the sampled block. If 1-9 of the blocks contain ore, the prospecting pick will report "Verified trace" amounts in the Info tab of the chat overlay. The deposit could be huge; but only a few of its blocks are within range of the most recent node-sample. In the example image, 10 of the ore disc's blocks are within range of the first block sampled (the orange bauxite block in the center), so the Info tab would report "Verified small amounts" of the ore. If you branch out and sample a little further north, east, etc. the readings will become stronger or weaker. In the example image, node-sampling the west block (blue-ish Andesite) would result in a report of "Verified large amounts" of ore, while north or south would remain unchanged from "small." Node-sampling the east block (grayish Conglomerate) would result in a report of "No ore nearby" because it would move the radius frame eastwards far enough to leave the ore deposit with nothing within range of the prospecting pick's latest node-sample. If you were to dig above and below the orange bauxite block and node-sample the 5th rockblock, what would you expect the report to say?

Strip mining

Because most ore generates in disc-shapes deposits just 1 or 2 blocks thick, strip mining in random caves/mountains is not likely to yield much. Each ore has a rather wide range of Y levels it could generate in, but many chunks won't have any at those levels, even in the ideal "host" rocks.

Vertical shafts are a much better strategy, to hit 1 or more discs along a shaft between surface and "mantle" (bedrock).

OreDistribution.png

Once you've located a block of ore, digging methodically will help you 1) extract every piece with 2) minimal durability wasted on your pickaxe and 3) minimal chance of getting lost.

  1. Place a light source where the shaft leads up and out. Recommended: draw on the wall/floor, and/or place loose stones that contrast visually with the surrounding rock color.
  2. Dig a passage tall enough for yourself, in any direction. If you hit a block of ore, dig through it and continue making a passageway.
  3. Decide how often your passages should intersect. For example, after 12 blocks one direction, turn right and dig through the 13th. Dig 2 blocks, then turn right and dig through the 3rd. You should now be heading back towards the entrance shaft, digging a passage parallel to the first one.
  4. If you don't see any more ore, expand your passageways upwards and downwards: mine away the ceiling and floor blocks, especially if you can see that nearby ore trended that direction. A flat disc of ore can be significantly distorted, matching the hilly terrain of the surface.
  5. If you think you've reached the outer edges of an ore disc, dig a couple more blocks anyway.
  6. When you're fairly positive that you've extract the entire ore "disc", use node mode in strategic spots to check that no ore remains.
    1. You can use wall/floor drawings or loose stones to indicate which areas have already been cleared.


Limits

How deep to dig? This particular ore could generate almost anywhere between elevation (Y coordinate) 0 (the bedrock/"mantle") and 98% of the "surface level" (100% being whatever Y level you're standing on with grass around you). See below for a detailed examination of the data. How do you know when you've reached the end of the disc? It's generally useful to know that surface deposits are smaller than deep deposits, and iron deposits tend to be massive. Basically, remember to check a bit above and below the visible ore blocks for more hidden by distortion.


Detailed example

At a particular spot, no matter the latitude and longitude (X and Z coordinates), where the grass is at (for example) elevation (Y coordinate) 110, we can calculate the Y levels where the target ore might be present.

Cassiterite has a small chance (0.007 tries per chunk) of generating near enough to the surface to spawn nuggets of ore, between 92% and 98% of the surface level. The average radius of these shallow deposits is 3 ± 0.5 in a disc shape that can be distorted in the same way that the terrain above is distorted by hills and valleys.

Math for surface tin
% of surface level Hypothetical surface level Limit of elevation range
Min 0.92 x 110 = 101.2
Max 0.98 x 110 = 107.8

So, a "surface deposit" of tin cannot exist deeper than Y 101.

However, cassiterite also gets 7.0 tries per chunk to generate deep deposits , between 40% and 75% of the surface level, and the average radius of these discs is significantly bigger: 5 ± 3.

Math for deep tin
% of surface level Hypothetical surface level Limit of elevation range
Min 0.40 x 110 = 44
Max 0.75 x 110 = 82.5

Cassiterite also gets 0.1 tries per chunk to generate larger discs, 12 ± 3, between 0% and 60% of the surface level.

Math for massive tin
% of surface level Hypothetical surface level Limit of elevation range
Min 0.0 x 110 = 0
Max 0.60 x 110 = 66

The only elevation tin could not generate is Y 83 - Y 101, assuming a surface level of 110.

Configure

For Standard playstyle , Node mode is by default enabled with a radius of 6[4] blocks; for Exploration playstyle, the radius is 8[5] blocks; for Wilderness Survival and Homo Sapiens playstyles, Node mode is disabled[6]. It's also disabled for worlds created via vintagestoryserver.exe with default serverconfig settings.

You can enable or adjust the radius via a server command . By default, players have admin privileges for singleplayer worlds. Press Tab to open the chat overlay, type
/worldconfig propickNodeSearchRadius and press Enter to check what the current radius is. To set a radius of 6, type
/worldconfig propickNodeSearchRadius 6 and press Enter, then exit and relaunch the world for the change to take effect.

Radius 6 checks a total of 2197 blocks. Its relatively high precision can make it quicker to locate an ore deposit once a verified reading is received. Radius 8 checks a total of 4913 blocks. Its relatively high range can make it quicker to get a verified reading of nearby ore, but slower to pinpoint the ore's location.

Notes

  • The heatmap displayed above isn't accessible anywhere in the game files. It was made by methodical sampling + blur effect.
  • All of the images showing pins in a world map (or blurred versions thereof) are from the same region view, just filtered for different mineral(s).

References

  1. Github
  2. Source: GitHub
  3. Github
  4. Line 70 of [AssemblyInfo.cs]
  5. Line 104 of [AssemblyInfo.cs]
  6. Line 228 of [AssemblyInfo.cs] applies if no other value is assigned.


Wiki Navigation
Vintage Story Guides[[::Category:Guides| ]]Frequently Asked Questions Soundtrack Versions Controls
Game systems Crafting Knapping Clay forming Smithing Cooking Temperature Hunger Mining Temporal stability Mechanical power Trading Farming Animal husbandry
World World generation Biomes Weather Temporal storms
Items Tools Weapons Armor Clothing Bags Materials Food
Blocks Terrain Plants Decorative Lighting Functional Ore
Entities Hostile entities Animals NPCs Players
Miscellaneous List of client commands List of server commands Creative Starter Guide Bot System WorldEdit Cinematic Camera Adjustable FPS Video Recording ServerBlockTicking Adding Mods Troubleshooting Mods