Question about ore spawning mechanism

Question about ore spawning mechanism
0

I am in a desperate to find platinum related ores and GT6 ore plugin is outdated (didn’t mention where they spawn and the chances are horrible, 0.65% or something), so I decided to look up the wiki page.

I do roughly understand how orespawn works (right Y values and biomes if necessarily), but I am more curious about how exactly they spawn, and what exactly does “Ores per 384 stone” in the wiki means. It would be best if there is a way to calculate the chance of such ore vein spawning when the right conditions are met.

3 Likes

If the conditions are met? The Ores you want do not spawn that way at all apart from height limitations. Only Gems have the Biome Stuff and that is only to determine their Color.

The Ores per 384 Stone thing is something you can definitely fully ignore too, since it is just the Ore Density and nothing else.

Imagine a gigantic Ocean of Flat Foam Bubbles, each Bubble contains one Stone Layer and ONLY ONE Stone Layer. There is about 6 Stone Layers per Rock Type that it can choose from, roughly 5 of which do not contain any Ore, while the remaining one it can choose does have the Ores listed in that Table of the Wiki.

The only real way to find Ores is picking up Rocks and seeing which Ore they are, and then quite frankly digging straight down where the Rock was, to find the actual Ore.

Going with “oh that Stone Layer is Black Granite, it must have this Ore somewhere in it” is a surefire way to absolutely waste all of your time to find nothing.

3 Likes

right Y values and stone layer if necessarily

Sorry about that.

roughly 5 of which do not contain any Ore

Not heard anywhere so I’d like to know more about that.

Also mortaring a Glass pane (.375 glass) turns into a full glass dust.

3 Likes

Wait what, that’s a Bug. Does NEI tell that to you?

2 Likes

Yes, and mortar it did give me a single glass dust.

Or maybe there are other mods screwing with me, so there’s that.

3 Likes

I will pu the mortar thing on the list ^^

2 Likes

I was bothered by the fact i had no easy answer to this question so i started digging some just for the sake of it.

TL;DR
Ores spawn in the “ore layer” and the “ore layer” flows up and down in the rock below dirt in an unpredictable manner. It’s when this ore layer intersects a rock that can hold the ore you want that you get the ore you want… If other layers in the same column are also of the same type, while also being at the correct height range for that ore to spawn.

In short, pick up rocks until you get one of the ores that can be processed in some way or another into platinum. Do consider the later steps in processing too. If you get nickel ore, you can process that into platinum.
/ TL;DR

First, let’s “talk” about what Greg means when he says “6 stone layers”.

Snapped straight from: GT6 Github - WorldGenStoneLayers.java @ 67

for (int i = 0; i < 16; i++) for (int j = 0; j < 16; j++) {
			final int tX = aMinX+i, tZ = aMinZ+j;
			final BiomeGenBase aBiome = aBiomes[i][j];
			
			StoneLayer[] tScan = new StoneLayer[] {
			  StoneLayer.LAYERS.get(Math.min(tListMax, (int)(((tNoise.get(tX, -2, tZ) + 1) / 2) * tListSize)))
			, StoneLayer.LAYERS.get(Math.min(tListMax, (int)(((tNoise.get(tX, -1, tZ) + 1) / 2) * tListSize)))
			, StoneLayer.LAYERS.get(Math.min(tListMax, (int)(((tNoise.get(tX,  0, tZ) + 1) / 2) * tListSize)))
			, StoneLayer.LAYERS.get(Math.min(tListMax, (int)(((tNoise.get(tX,  1, tZ) + 1) / 2) * tListSize)))
			, StoneLayer.LAYERS.get(Math.min(tListMax, (int)(((tNoise.get(tX,  2, tZ) + 1) / 2) * tListSize)))
			, StoneLayer.LAYERS.get(Math.min(tListMax, (int)(((tNoise.get(tX,  3, tZ) + 1) / 2) * tListSize)))
			, StoneLayer.LAYERS.get(Math.min(tListMax, (int)(((tNoise.get(tX,  4, tZ) + 1) / 2) * tListSize)))
			};

These are the stone layers he mentions. Each one exists at different heights from bedrock to the top of the terrain.
I am not going to bother explaining it more because i don’t fully understand it but here’s how i understand it.

One of two cases are true for ore generation. Source: GT6 Github - WorldGenStoneLayers.java @ 141

  1. layer 2 and 6 are equal, then spawn appropriate ore(s) for layer 4… IF the current block is > min height and < max height for the ore, that the random number is less than the chance number and that if the particular ore is in the correct biome. Which only applies for gems as Greg previously mentioned.
  2. layer 2 and 6 are NOT equal, then spawn appropriate ores for layers 2 AND 6… Applying the same conditions as in case #1 above.

Again, i don’t fully understand it so don’t a come knocking.
From what i read though, certain ores can only spawn in certain rock types. This doesn’t mean they spawn in that rock type all the time. Just that IF it’s going to spawn, it will spawn in that rock type under the above conditions. So pay particular attention to the min and max height of the ore you are trying to find AFTER you have prospected it from a rock somewhere by random chance.

What i do seem to gather from this as well though is that since only layer 4, as in the first case above, holds ore. Only one “bubble” actually spawns ore in a chunk. That bubble can (because of noise used in source code cited above) flow up and down as you move from side to side in the world. It will flow all the way from bedrock to all the way up top. So you really never know where the ore layer is in the world until you find some ore. As such, digging for the sake of digging is pretty much pointless.
The only viable solution is to pick up rocks.

However, theoretically you COULD make a big slice through the world and see how that layer flows up and down in the world. But you would basically be digging from top soil to bedrock for thousands of blocks… When rocks simply TELL you what is in the stone and ore layers below. It would be much faster to just strip the rocks from the top soil in a straight line than digging a slice to see where the bubble intersects with the target rock for the ore you are looking for.

Don’t just lock on to one particular ore either by the way. There’s more than one way to get platinum. Nickel ore gives you some for example. Some ores wash into nickel ore and nickel ore in turn gives platinum in a mercury bath.

EDIT:

Oh right, almost forgot…

Here you go: gregtech6/Loader_Worldgen.java at master · GregTech6/gregtech6 · GitHub

In there you can see the height levels ores spawn at and a 1/Uxxx chance of a single block being that ore IF the conditions for said ore is met as per above.

You needn’t worry about the 1/Uxxx chance though. Suffice to say, the larger the number Uxxx, the more densely the ore will spawn.

And with all this said, i do believe all ores have essentially the same chance of spawning per say. It’s just that the closer to bedrock they are, the less likely the “ore layer wave” will cross them.

1 Like

Uhh what you say sounds very very incorrect, Ore Layer WAVE?!? The Function you copied there is the one that places Stone and is only barely related to Ore Spawning, and is in NO WAY what I talked about when I said 6 Stone Layers, I said Layer as a noun for the Blob of Rock you get, not as a noun for the thing that lays Stone.

Didn’t you notice in Loader_Worldgen.java that each Type of Stone gets added 3 - 8 times to the List, so around 6 on average? Each of the aforementioned flat Bubbles in the Algorithm has ONE of these Listed Stone Layers, JUST ONE, it does not randomly pick a new one or whatever in the middle of generating. And that means it can generate a Stone Layer that just happens to NEVER have any Ores in it in a lot of cases, since those non-Ore Stone Layers are 3 to 8 times more numerous than the Ore containing ones!

And the close to Bedrock Statement is bogus too, Bedrock does not influence spawn rates by itself, because the Worldgenerator goes by which Stone Type WOULD be generated and not by which got actually generated, when selecting Ores.

As for the “only Layer 4 contains Ores” did you not look at what the thing actually does? it scans which 3 blocks are in front of and behind the currently generating Block, and then moves THE ENTIRE LIST one forward after placing the selected Block.

While what you say about it being stupid to dig horizontally is correct, and that you should always just go with surface Rocks, the explanation of how the Worldgen actually works is quite a bit misleading, and should not have been “marked as a Solution”.

2 Likes

That’s fine, i did say that’s what i took away from the code i looked at. I didn’t say that is exactly how it was. If i’d had said it was exactly correct i would have made sure to fully understand the code before doing so. I didn’t spend the necessary hours looking through all the code to fully understand it. It was simply too convoluted for me to bother. Especially considering it’s not just convoluted but wholly confusing too.

I have no power over what is selected as a solution either.
Thanks for correcting me.

3 Likes

should not have been “marked as a Solution”

please don’t blame me :frowning:

Also a dark iron(obsidian steel) bars, made out of 6/16 dark iron, is worth 2.666 dark iron for some reason.

2 Likes

uh wait, did i do 16/6 instead of 6/16?! oops XD

1 Like