Mods / Rock Strata Variety
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 Identifier | For 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. | |||||||
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:
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.
Is this compatable with Biomes?
That's great to hear, chisps, thank you!
Shadowise Yes, this mod was actually created to support Geology Additions in my own playthrough! They work great together.
chisps, is this mod compatible with Geology Additions? Thank you!
chisps Thank you! I'm really enjoying the variety of geology this mod provides!
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!
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
"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
}
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!
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:
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
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
🙏
chisps update to 1.21?
any hope for an update ?
doesn't seem to be working as of 1.20.12
chisps No worries! Thanks so much ^-^
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.
@Junrall my first thought as well
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?
based mod
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
chisps you should raise the supported game version tag them
are the any plans in the updated version for mor unique generations like dykes and kymberlite funnels?
Desolae it works for 1.20! As far as I can tell there aren't any issues with the stable version
Hoping for a 1.20 version
is this compatible with v1.19.8?
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
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.
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)
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)
Xozkov yes, this is fully compatible with landform mods! I personally use it with Plains & Valleys.
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?
good mod
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?
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
Hopefully this fix can go into 1.20 - it is needed!
phol thank you! I'm glad people are enjoying it!
Criminally underrated wordlgen tweak.