Jump to content

Is there a way to increase rock diversity?


Mirveil
Go to solution Solved by Mirveil,

Recommended Posts

For example, I create a small world, get in creative mode, fly or teleport around for 45 minutes, and all I see everywhere is granite...

I'm trying to generate a world where I will have access to chalk or limestone, so if I see granite everywhere, that's a bad sign.

Edited by Mirveil
Link to comment
Share on other sites

When I last checked, small world did not help. It does not shrink the size of the surface rock layers.

Granite is a deal-breaker, yeah, but remember that sedimentary (sandstone, conglomerate, etc.) can have other sedimentary layers (like chalk or limestone) underneath them. As can basalt.

Link to comment
Share on other sites

Of course, once you finally do get that world you're looking for, where you're starting on limestone, you'll play happily for a while and eventually realize that there's no cassiterite anywhere. And then you'll cry out for granite. :P

(Guess how I know...)

 

 

Edited by Streetwind
  • Haha 3
Link to comment
Share on other sites

:)  I was wondering exactly that, "if I start with limestone, what is it that I will be missing?" Now I know...

But, is that it? Does everyone just accept that on a "small" world we might not have all we need and we need a huge world to be sure...?

Link to comment
Share on other sites

There is no downside to a large world, and no upside to a small. Only the blocks you have personally seen (view distance) are generated, so you decide how big your save file is by how much you explore. So far as I know, only blocks within your view distance are loaded, so performance also something you decide.

On my typical settings, I can see a nerdpole or equivalent at around 400 voxels. As I don't play with map, using those as guides (and permanent landmarks), I usually find most stuff I need within a 2,000 voxel radius, more or less.

But, yes, some people use micro-sized worlds as challenge maps. Your only source of some materials, including tin and clay, might well be panning.

Edited by Thorfinn
Link to comment
Share on other sites

Don't forget that you can find chalk and limestone rocks occasionally as ruin loot, and for sale at some of the traders(I'm pretty sure). You can also find and fix a translocator to travel thousands of blocks in an instant, which can be a big help to finding new things without a lot of walking.

Link to comment
Share on other sites

  • 3 weeks later...
  • Solution
Posted (edited)

I think I can more or less answer my question now...  And maybe it will be helpful to some other people, especially if they want to play with large ocean worlds.

Soil composition is dependent on a file, located at (on windows) AppData\Roaming\Vintagestory\assets\survival\worldgen/rockstrata.json

Example, basalt

        {
            blockcode:   "rock-basalt",
            "amplitudes":  [4, 2, 1],
            "thresholds":  [2.2, 1.1, 0.5],
            "frequencies": [0.05, 0.1, 0.2],
            genDir: "TopDown",
            rockGroup: "Volcanic"
        },

- Amplitude is how hard it can stretch up or down from its base.  Higher number means larger layers, like 5 cubes deep instead of 1.
- Threshold, I don't fully understand, but lower means it's more likely to be chosen to be the rock type.
- Frequency, from my understanding is like a zoom on the noise texture for the rock type... Smaller number means it's shrunk and repeats more often, thus has more chances to show up, but it makes smaller pockets.  Higher number means it's more spread out, so less likely to be present, but when it is, it takes a larger space.

TopDown means it tries to appear from the top soil and pushes downwards (with amplitude) and BottomUp is the opposite.

One last trait is how many variables each rock type has. Basalt has 3 numbers in each category, and Claystone has 4. Adding more, should mean that you can pile up more of those noise patterns, with different frequencies, to give the rock type even more of a chance to be present somewhere.

Some additional notes
- Granite is weird, I think that it might fully ignore this file and just do its own thing...
- The order seems to decide whether a rock type is likely to ever appear above another. For example you will probably never find sandstone under chalk.
- This doesn't affect the shape of the world in any way, it only affects the soil composition.

At the moment I'm using this file.  It seems to me that it's still entirely possible to find large parts of the world where it's still granite, but I think I can be more confident that I can at least find a small bit of chalk or limestone somewhere within 2000-5000 cubes. It makes bauxite, chalk, chert, limestone more common, and most of the other types less common.

{
	code: "rockstrata",
	variants: [
		{
			blockcode:   "rock-kimberlite",
			amplitudes:  [100],
			thresholds:  [80],
			frequencies: [8.00],
			genDir: "BottomUp",
			rockGroup: "Volcanic"
		},
		{
			blockcode:   "rock-basalt",
			"amplitudes":  [4, 2, 1],
			"thresholds":  [2.2, 1.1, 0.5],
			"frequencies": [0.05, 0.1, 0.2],
			genDir: "TopDown",
			rockGroup: "Volcanic"
		},
		{
			blockcode:   "rock-claystone",
			"amplitudes":  [5, 2.5, 1.25, 0.7],
			"thresholds":  [3.5, 2.25, 1.75, 1.1],
			"frequencies": [0.05, 0.1, 0.2, 0.4],
			genDir: "TopDown",
			rockGroup: "Sedimentary"
		},
		{
			blockcode:   "rock-sandstone",
			"amplitudes":  [5, 2.5, 1.25, 0.7],
			"thresholds":  [3.5, 2.25, 1.75, 1.1],
			"frequencies": [0.05, 0.1, 0.2, 0.4],
			genDir: "TopDown",
			rockGroup: "Sedimentary"
		},
		{
			blockcode:   "rock-shale",
			"amplitudes":  [5, 2.5, 1.25, 0.7],
			"thresholds":  [3.5, 2.25, 1.75, 1.1],
			"frequencies": [0.05, 0.1, 0.2, 0.4],
			genDir: "TopDown",
			rockGroup: "Sedimentary"
		},
		{
			blockcode:   "rock-conglomerate",
			"amplitudes":  [5, 2.5, 1.25, 0.7],
			"thresholds":  [3.5, 2.25, 1.75, 1.1],
			"frequencies": [0.05, 0.1, 0.2, 0.4],
			genDir: "TopDown",
			rockGroup: "Sedimentary"
		},
		{
			blockcode:   "rock-limestone",
			"amplitudes":  [8, 7, 6, 5, 4, 3, 2],
			"thresholds":  [0.55, 0.5, 0.47, 0.42, 0.35, 0.28, 0.22],
			"frequencies": [0.05, 0.08, 0.11, 0.14, 0.17, 0.2, 0.23],
			genDir: "TopDown",
			rockGroup: "Sedimentary"
		},
		{
			blockcode:   "rock-chert",
			"amplitudes":  [7, 6, 5, 4, 3, 2],
			"thresholds":  [0.55, 0.5, 0.47, 0.42, 0.35, 0.28],
			"frequencies": [0.05, 0.08, 0.11, 0.14, 0.17, 0.2],
			genDir: "TopDown",
			rockGroup: "Sedimentary"
		},	
		{
			blockcode:   "rock-chalk",
			"amplitudes":  [8, 7, 6, 5, 4, 3, 2],
			"thresholds":  [0.55, 0.5, 0.47, 0.42, 0.35, 0.28, 0.22],
			"frequencies": [0.05, 0.08, 0.11, 0.14, 0.17, 0.2, 0.23],
			genDir: "TopDown",
			rockGroup: "Sedimentary"
		},
		
		{
			blockcode:   "rock-bauxite",
			"amplitudes":  [7, 6, 5, 4, 3, 2],
			"thresholds":  [0.55, 0.5, 0.47, 0.42, 0.35, 0.28],
			"frequencies": [0.05, 0.08, 0.11, 0.14, 0.17, 0.2],
			genDir: "TopDown",
			rockGroup: "Metamorphic"
		},
		
		{
			blockcode:   "rock-slate",
			amplitudes:     [2.9, 1.6, 0.75, 0.43],
			thresholds:  [1.1, 0.6, 0.3, 0.2],
			frequencies: [0.05, 0.1, 0.2, 0.4],
			genDir: "TopDown",
			rockGroup: "Metamorphic"
		},
		{
			blockcode:   "rock-phyllite",
			amplitudes:     [2.9, 1.6, 0.75, 0.43],
			thresholds:  [0.8, 0.4, 0.2, 0.15],
			frequencies: [0.05, 0.1, 0.2, 0.4],
			genDir: "BottomUp",
			rockGroup: "Metamorphic"
		},
		
		{
			blockcode:   "rock-andesite",
			amplitudes:     [2.9, 1.6, 0.75, 0.43],
			thresholds:  [1.1, 0.6, 0.3, 0.2],
			frequencies: [0.05, 0.1, 0.2, 0.4],
			genDir: "BottomUp",
			rockGroup: "Igneous"
		},
		{
			blockcode:   "rock-peridotite",
			amplitudes:     [2.9, 1.6, 0.75, 0.43],
			thresholds:  [1.1, 0.6, 0.3, 0.2],
			frequencies: [0.05, 0.1, 0.2, 0.4],
			genDir: "BottomUp",
			rockGroup: "Igneous"
		},		
		{
			blockcode:   "rock-basalt",
			amplitudes:     [10, 5, 2.5, 1.25],
			thresholds:  [9, 4, 2, 1],
			frequencies: [0.05, 0.1, 0.2, 0.4],
			genDir: "BottomUp",
			rockGroup: "Igneous"
		},
		{
			blockcode:   "rock-granite",
			amplitudes:     [2.9, 1.6, 0.75, 0.43],
			thresholds:  [1.75, 1.5, 1.25, 1],
			frequencies: [0.05, 0.1, 0.2, 0.4],
			genDir: "BottomUp",
			rockGroup: "Igneous"
		}
	]
}

This file can also be changed on a server, and I think the clients shouldn't need to change anything.

If you play with large oceans, you might still want to be even more aggressive with chalk and limestone, by lowering the thresholds and frequencies further, increasing the amplitudes, and maybe adding even more variables in each category, but I don't know if there is any limit on that, or anything else.

 

By the way, to test the differences, the best way that I know is to create a new world, with a specific seed, then type /gm 2, press F3 twice to fly with no-clip, and F2 a few times to be able to fly around faster than world generation, this way it's easy to see the soil composition. Then you can change this file, and create a new world with the same seed to repeat the process.

2024-07-20_05-00-33.png

Edited by Mirveil
Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.