Mods / Rock Strata Variety

Tags: #Worldgen
Author: chisps
Side: Server
Created: Apr 9th 2024 at 5:54 AM
Last modified: Sep 26th at 8:17 PM
Downloads: 9753
Follow Unfollow 356

Latest release (for Vintage Story 1.21.1, potentially outdated):
rockstratavariety_0.0.3.zip  1-click install


Updated for 1.21.1!

This mod alters vanilla rock strata worldgen to allow more varied (and more numerous) rock layers to generate. In vanilla worldgen, some rock types dominate and prevent others from spawning because they have precedence during generation. This mod allocates a piece of the column to each rock type that is queued for generation in a given area, rather than allowing a few to fill up the column before the others get a chance.

This mod should increase the likelihood of rarer rock types like limestone or chalk generating, and will especially improve the distribution of modded rock types appended to the end of the rock strata variants list (and therefore at the end of the line to generate).

This mod should be compatible with mods that add new rock types, ores, etc. It will be incompatible with any mod that specifically alters the GenRockStrata.genBlockColumn method, as that method is changed and overwritten by this mod.

This mod is best used with new worlds, but shouldn't cause any issues when installed mid playthrough (back up first!), except that newly generated chunks may have some abrupt layer transitions. It doesn't affect terrain shape or modify the heightmap in any way, so you shouldn't get any ugly cliff chunk boundaries. You may regenerate old chunks to repopulate rock types with /wgen regen [radius around you in chunks]. Take care, as this will delete anything you've built in the area! Back up your save before trying it.

Note: This mod does not make specific rock groups (e.g. sedimentary, metamorphic) more common, or adjust the likelihood for any rock type to be able to generate. It isn't a targeted buff to limestone or bauxite spawn rates. Rather, they will show up where they should have been all along.

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
0.0.3 rockstratavariety 1501 Sep 26th at 8:17 PM rockstratavariety_0.0.3.zip 1-click install

Minor changes to speed up worldgen (hopefully), rolled in 1.20 chunk border tweak, and fixed typo in 0.0.2

0.0.1 rockstratavariety 8244 Apr 9th 2024 at 5:58 AM rockstratavariety_0.0.1.zip 1-click install

Initial release.


38 Comments (oldest first | newest first)

💬 teragen, Nov 11th at 9:02 PM

Looks good. Do you know if it'd be possible (code wise) to have rock type dependant cave generation based off the strata?  Traditionally we only seem to see solution caves, but fracture caves/sinkholes seem an option here.

For a more expanded list of cave types:

 

Spoiler!

Solution caves: Typical cave formed by groundwater dissolving soluble rock like limestone/dolomite/gypsum (think flux), resulting in general calcium carbonate (vs mud/lava drip) stalactite/stalacmite formation.

Lava tubes: The leftover crust of a lava flow once the core has drained away.

Sea caves: Waves pounding at cliffs to form undercuts, carving deeper at weak points.

Glacier caves: Formed by meltwater carving the ice

Talus caves: Openings between large piles of fallen rock. eg. Black Mountain (Kalkajaka) in Australia formed from large body of hard granite that has subsequently eroded down into a massive pile of boulders.

Fracture caves: Dissolved mineral layers undermine the overlying rock, resulting in fracture and collapse. These include sinkholes.

Eolian caves: Wind erosion through airborn particles/sand

Tectonic caves: Fault opens up cracks/spaces in rock during a quake, which in turn may be eroded by rain/water now able to penetrate

Potholes: Not a cave per say, but circular depressions worn into river bedrock by swirling, turbulent waters common in flooding.

 

💬 ZippoMoon, Oct 22nd at 12:40 AM

Is this compatable with Biomes?

💬 Shadowise, Sep 29th at 5:17 PM

That's great to hear, chisps, thank you!

💬 chisps , Sep 28th at 11:38 PM

Shadowise Yes, this mod was actually created to support Geology Additions in my own playthrough! They work great together.

💬 Shadowise, Sep 28th at 2:21 PM

chisps, is this mod compatible with Geology Additions? Thank you!

💬 Arcanum3000, Sep 26th at 8:51 PM

chisps Thank you!  I'm really enjoying the variety of geology this mod provides!

💬 chisps , Sep 26th at 8:19 PM

Arcanum3000 berserkus Cc8tv DeadShotPL A new update has been pushed for 1.21.1. Didn't have to change much, just a few minor tweaks.

Please let me know if you run into issues!

💬 Arcanum3000, Sep 21st at 6:27 PM (modified Sep 21st at 6:36 PM)

chisps It's not vanilla worldgen, but I'm not running any other mods that should be impacting rock strata.  Still, it's totally fair if you don't want to investigate due to the mods.  It was generated using Conquest Landform Overhaul 1.02 and Rivers 4.7.3 (with the rivers.json settings recommended on the Conquest Landform Overhaul page).  I can give my full mod list, but there's nothing else that should impact base terrain.

 

Seed:  690797275

World Config
{
"gameMode": "survival",
"playerlives": "-1",
"startingClimate": "warm",
"spawnRadius": "50",
"graceTimer": "0",
"deathPunishment": "keep",
"droppedItemsTimer": "600",
"seasons": "enabled",
"daysPerMonth": "9",
"harshWinters": "true",
"blockGravity": "sandgravel",
"caveIns": "off",
"allowFallingBlocks": true,
"allowFireSpread": true,
"lightningFires": true,
"allowUndergroundFarming": false,
"noLiquidSourceTransport": false,
"playerHealthPoints": "15",
"playerHealthRegenSpeed": "1",
"playerHungerSpeed": "1",
"lungCapacity": "40000",
"bodyTemperatureResistance": "0",
"playerMoveSpeed": "1.5",
"creatureHostility": "aggressive",
"creatureStrength": "1",
"creatureSwimSpeed": "2",
"foodSpoilSpeed": "1",
"saplingGrowthRate": "1",
"toolDurability": "1",
"toolMiningSpeed": "1",
"propickNodeSearchRadius": "6",
"microblockChiseling": "stonewood",
"allowCoordinateHud": true,
"allowMap": true,
"colorAccurateWorldmap": false,
"loreContent": true,
"clutterObtainable": "ifrepaired",
"temporalStability": true,
"temporalStorms": "off",
"tempstormDurationMul": "1",
"temporalRifts": "visible",
"temporalGearRespawnUses": "20",
"temporalStormSleeping": "0",
"worldClimate": "realistic",
"landcover": "0.5",
"oceanscale": "3",
"upheavelCommonness": "0",
"geologicActivity": "0.05",
"landformScale": "1.6",
"worldWidth": "1024000",
"worldLength": "1024000",
"worldEdge": "blocked",
"polarEquatorDistance": "100000",
"storyStructuresDistScaling": "1",
"globalTemperature": "1",
"globalPrecipitation": "1",
"globalForestation": "0",
"globalDepositSpawnRate": "1",
"surfaceCopperDeposits": "0.12",
"surfaceTinDeposits": "0.007",
"snowAccum": "true",
"allowLandClaiming": false,
"classExclusiveRecipes": true,
"auctionHouse": false,
"playstyle": "surviveandbuild",
"worldHeight": 384
}
💬 chisps , Sep 21st at 6:07 PM

Hi everyone, sorry for the radio silence for so long. Working on an update for 1.21 right now and trying to figure out what might need to be changed, as it still seems to work for me, but there could be edge cases as you all have shared.

Arcanum3000 could you provide me the worldgen settings / seed for the example you shared?

berserkus Cc8tv DeadShotPL  If any of you have had issues with the mod please let me know, an update is coming soon!

💬 Arcanum3000, Sep 21st at 1:48 AM (modified Sep 21st at 3:06 AM)

So, I did some investigation and testing, and the mod still works.  Sort of.  It only seems to make a noticeable difference if you turn world height way up?  I've tried generating worlds with normal world heights of 256-320 and I couldn't see a difference.  I generated some worlds with the same worldgen settings and seed both with and without the mod and they were the same as far as I could tell.

However, when I cranked the world height up the 384, I got this:

 

Without Rock Strata Variety
image

 

With Rock Strata Variety
image

 

Same worldgen settings, same seed, same position, different rock strata.

It works, you just want to turn your world height waaaay up.

AzuliBluespots berserkus Cc8tv DeadShotPL

💬 AzuliBluespots, Sep 18th at 2:23 PM

This has been very silent for a long time now.
For anyone who used this, does this other mod help at all?
https://news.kalataka.ru/lessigneousrocksplease

💬 berserkus, Sep 12th at 2:10 AM

🙏

💬 Cc8tv, Aug 28th at 2:39 PM

chisps update to 1.21?

💬 DeadShotPL, Aug 21st at 2:18 PM

any hope for an update ?

💬 Bella6801, Jun 16th at 4:40 PM

doesn't seem to be working as of 1.20.12

💬 eerino, May 30th at 8:43 PM

chisps No worries! Thanks so much ^-^

💬 chisps , May 29th at 11:15 AM

eerino Junrall apologies for the late reply. This mod does not alter ore generation mechanics whatsoever, but those ores may be slightly easier to find if a rarer rock type is allowed to generate where it otherwise would have been prevented from doing so.

💬 eerino, May 17th at 1:48 PM

@Junrall my first thought as well 

💬 Junrall, Feb 27th at 6:52 PM

In un-modded Vintage Story, certain ores are more likely to be found in particular rock types. Does this mod change this ore generation mechanic?

💬 DUCATISLO, Feb 15th at 12:09 PM

based mod

💬 MadSeraph, Feb 15th at 6:34 AM

EDIT: This is not a problem with the mod. It is related to: https://github.com/anegostudios/VintageStory-Issues/issues/5252

 

I get a harmony patching exception on 1.20.4:

15.2.2025 01:24:01 [Notification] Attempting rockstrata generation patch for: Server
15.2.2025 01:24:01 [Event] Applying rockstrata generation patch.
15.2.2025 01:24:01 [Error] [rockstratavariety] An exception was thrown when trying to start the mod:
15.2.2025 01:24:01 [Error] [rockstratavariety] Exception: Patching exception in method System.Void Vintagestory.ServerMods.GenRockStrataNew::genBlockColumn(Vintagestory.API.Server.IServerChunk[] chunks, System.Int32 chunkX, System.Int32 chunkZ, System.Int32 lx, System.Int32 lz)
at HarmonyLib.PatchClassProcessor.ReportException(Exception exception, MethodBase original)
at HarmonyLib.PatchClassProcessor.Patch()
at HarmonyLib.Harmony.b__10_0(Type type)
at HarmonyLib.CollectionExtensions.Do[T](IEnumerable`1 sequence, Action`1 action)
at HarmonyLib.Harmony.PatchAll(Assembly assembly)
at HarmonyLib.Harmony.PatchAll()
at rockstratavariety.rockstratavarietyModSystem.Start(ICoreAPI api) in C:\Users\noahb\source\repos\rockstratavariety\rockstratavariety\rockstratavarietyModSystem.cs:line 68
at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 664
15.2.2025 01:24:01 [Error] Failed to run mod phase Start for mod rockstratavariety.rockstratavarietyModSystem

💬 Qual, Feb 12th at 6:26 PM

chisps you should raise the supported game version tag them

💬 morryatay, Feb 2nd at 12:34 PM

are the any plans in the updated version for mor unique generations like dykes and kymberlite funnels?

💬 chisps , Jan 18th at 3:58 PM

Desolae it works for 1.20! As far as I can tell there aren't any issues with the stable version

💬 Desolae, Jan 17th at 9:47 PM

Hoping for a 1.20 version

💬 QiForce, Nov 6th 2024 at 1:56 AM

is this compatible with v1.19.8?

💬 AzuliBluespots, Sep 18th 2024 at 8:56 PM

Something seems to have changed enough in terrain generation in 1.20 pre1 that this, just like rivers, ain't generating terrain at all :c

💬 Viceroy, Sep 4th 2024 at 6:13 PM

Hello, great to see someone tackling the rock stratta issue in game.Could yopu perhaps fix the phyllite generation that is currently bugged? It should not be generating just couple blocks above mantle under ingeous layer but more like slate and marble generates. Phyllite is a metamorphic rock so just like slate and marble. Thanks.

💬 chisps , Aug 15th 2024 at 7:17 AM

Maestro_ Nope, this mod doesn't affect the worldgen heightmap or interact with landforms in any way so it shouldn't cause weird chunk borders. Worst that might happen is some abrupt rock strata transitions, but that will only be super obvious in cross-section (like on a cliff or something)

💬 Maestro_, Aug 15th 2024 at 12:29 AM

Will this generate mismatching chunks if I try to use this in an existing world? (Like a mountain range cut in half by the new generation)

💬 chisps , May 27th 2024 at 5:23 PM

Xozkov yes, this is fully compatible with landform mods! I personally use it with Plains & Valleys.

💬 Xozkov, May 27th 2024 at 2:15 PM

So with this only affecting rock strata worldgen, would that make it compatible with terrain worldgen mods such as VanillaPlus or Plains & Valleys/Fields & Plateaus or no?

💬 DUCATISLO, May 22nd 2024 at 4:35 PM

good mod

💬 chisps , May 16th 2024 at 2:32 PM

MadGnome thanks for the report, that's a new one to me. I'll take a look. Are you using any other mods that affect worldgen?

💬 MadGnome, May 16th 2024 at 12:05 AM

Trying this out on a 1.19.7 server, getting a lot of console spam with this error message.


15.5.2024 18:03:40 [Server Worldgen] An error was thrown in pass Terrain when generating chunk column X=16107,Z=1640 in world 'Vintage Story World' with seed 562158962
Exception System.IndexOutOfRangeException: Index was outside the bounds of the array.
at rockstratavariety.rockstratavarietyModSystem.blockColumnChanged(GenRockStrataNew __instance, IServerChunk[] chunks, Int32 chunkX, Int32 chunkZ, Int32 lx, Int32 lz, UInt16[] ___heightMap, Single[]& ___rockGroupMaxThickness, Single[]& ___rockGroupCurrentThickness, GeologicProvinces ___provinces, LerpedWeightedIndex2DMap& ___map, Single ___chunkInRegionX, Single ___lerpMapInv, Single ___chunkInRegionZ, SimplexNoise ___distort2dx, SimplexNoise ___distort2dz, RockStrataConfig ___strata, IMapChunk ___mapChunk, Int32 ___regionChunkSize, Int32 ___rdx, Int32 ___rdz) in C:\Users\noahb\source\repos\rockstratavariety\rockstratavariety\rockstratavarietyModSystem.cs:line 99
at Vintagestory.ServerMods.GenRockStrataNew.genBlockColumn_Patch1(GenRockStrataNew this, IServerChunk[] chunks, Int32 chunkX, Int32 chunkZ, Int32 lx, Int32 lz)
at Vintagestory.ServerMods.GenRockStrataNew.GenChunkColumn(IChunkColumnGenerateRequest request) in C:\Users\Tyron\Documents\vintagestory\game\VSSurvivalMod\Systems\WorldGen\Standard\ChunkGen\2.GenRockStrata\GenRockStrata.cs:line 172
at Vintagestory.Server.ServerSystemSupplyChunks.runGenerators(ChunkColumnLoadRequest chunkRequest, Int32 forPass) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\Systems\World\LoadThread\SupplyChunks.cs:line 1733

💬 Tels, May 6th 2024 at 3:01 PM

Hopefully this fix can go into 1.20 - it is needed!

💬 chisps , May 2nd 2024 at 5:49 AM

phol thank you! I'm glad people are enjoying it!

💬 phol, May 1st 2024 at 11:42 PM

Criminally underrated wordlgen tweak.

 (edit comment delete)
Основной веб-сайт | Почтовый сервер | FTP сервер | Административная панель | API интерфейс | Content Delivery Network | Статические файлы | Ресурсы сайта | Изображения | Файловое хранилище | Блог | Интернет-магазин | Техническая поддержка | Справочная система | Документация | Форум | Новости | Загрузки | Демонстрация | Тестовая среда | Приложение | Медиа контент | Разработка | Промежуточная среда | Бета версия | Безопасная зона | Вход в систему | Панель управления | Портал | Система управления контентом