Mods / Rivers

Category: #Worldgen
Author: sneezerstein
Side: Both
Created: Dec 2nd 2023 at 7:00 AM
Last modified: Jun 2nd at 11:33 PM
Downloads: 34352
Follow Unfollow 620

Latest file for v1.19.8: 1-click install

2.3.0 Changes

5 month old github pull request fixing saltwater plants added.

Rivers now branch out in a fractal independent of zones. Wrong angles are impossible.

Rivers now spawn mossy boulders and fallen logs along them (disableable in config).

/riverdebug <ocean/land/full/starts/clear> to see landmasses and rivers in generated zone (requires admin).

.riverzoom on client will toggle your map zoom extremely far to see it.

Fixed water level increase in dry areas, now eases in.

Particles are disabled because they cause MASSIVE cpu problems.

Improved partioning of rivers and performance. In an area with forking rivers it should take ~3-4% of chunk generation time.

Added min/max size for rivers, min/max nodes in a river, and min/max node length.

Lakes now fade into rivers smoothly.

Waterwheels now spin at full speed if they're in the dominant direction.

flowVectors is a single array, increase index by 1024 to get Z value.

River depth automatically scales with world height.

River doesn't form quadratic valleys, instead lerps to a low landform.

Rivers can generate regenerating clay deposits in muddy gravel of all 4 types.

Optional config to adjust all clay recipes.

Rivers generate gravel along the banks.

Default config:

// When forking move at these angles.
public int minForkAngle = 10;
public int forkVaration = 35;

// When adding another node change by 0 to this angle left or right.
public int normalAngle = 20;

// Minimum and maximum size of rivers.
public float minSize = 8;
public float maxSize = 50;

// Minimum amount of segments a river must be to not be culled after map generated. Maximum amount before generation stops.
public int minNodes = 8;
public int maxNodes = 20;

// How much to grow in size each node.
public float riverGrowth = 2.5f;

// How many times a river fork can go downhill.
public int error = 1;

// Minimum length of a river node and how much to add to it randomly.
public int minLength = 150;
public int lengthVariation = 200;

// Grid for generating rivers. Don't make this bigger, it's already laggy.
public int zoneSize = 256;
public int zonesInPlate = 128;

// Chance for a river to be seeded at a coastal zone.
public int riverSpawnChance = 5;

// Chance for node to split.
public int riverSplitChance = 60;

// Chance for a lake when nodes stop.
public int lakeChance = 15;

// Segments 1 node is composed of.
public int segmentsInRiver = 3;

// How much to offset each inner segment.
public double segmentOffset = 40;

// Base and depth based on the square root of the river size.
public double baseDepth = 0.1;
public double riverDepth = 0.022;

// How much the ellipsoid carving the river should start above sea level and how big the top is in relation.
public int heightBoost = 8;
public float topFactor = 1;

// Values relating to distortion of rivers.
public int riverOctaves = 2;
public float riverFrequency = 0.0075f;
public float riverLacunarity = 3;
public float riverGain = 0.3f;
public int riverStrength = 12;

// How fast rivers and water wheels should flow, can be changed after worldgen.
public float riverSpeed = 8;

// How wide a valley can be at world height.
public double maxValleyWidth = 50;

// How many blocks of submerged land, relative to default height, a spot is considered an ocean at.
public float oceanThreshold = 30;

// Water wheel speed and torque.
public float wheelSpeedMultiplier = 0.4f;
public float wheelTorqueMultiplier = 0.4f;

// If stone should be generated under blocks with gravity.
public bool fixGravityBlocks = true;

// If rivers should emit particles on the client.
public bool clientParticles = true;

// If boulders and logs should generate near rivers.
public bool boulders = true;

// If deposits should generate.
public bool riverDeposits = true;

// How much of the river bed should be clay.
public float clayDepositFrequency = 0.2f;

// If brown and red clay should be integrated.
public bool clayExpansion = true;

// Gravel on sides of river.
public bool gravel = true;



Recommended settings for new version's default config: 300-400% landcover/ocean scale, 40-50% landcover.

Compatible with everything that doesn't change base terrain generator (GenTerra). Only alpine story so far.
Water Wheels

Water wheels will rotate in the direction/speed of the river if the bottom is touching water and the center is not.

Will rotate a max speed on the dominant side for fairness.

This can result in reverse torque which might need to be converted with a large gear.

Multiple wheels can be chained in succession.

Sometimes client breaks and spams "currentChunkBlockExt is null" in the console.
Finding A River For Other Mods

The mod data in the bottom chunk of a column contains "flowVectors" which is a float array for every block in the chunk indexed by localZ * 32 + localX. They are -riverSpeed to riverSpeed depending on the direction. If it doesn't exist there's no river in the chunk. If it does exist and the block at that index has 0 speed there's no flowing river.

localZ * 32 + localX is the X value, add 1024 to get the Z value.

ushort[] riverDistance is generated in every bottom chunk and contains the distance to the edge of the river (0 if it's inside it).

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v3.1.0 5374 Jun 2nd at 11:33 PM Show Install now
v2.7.0 12464 Feb 25th at 6:19 PM Show Install now
v2.6.0 1222 Feb 16th at 12:34 PM Show Install now
v2.5.0 2179 Feb 10th at 4:11 PM Show Install now
v2.4.0 2645 Feb 4th at 11:30 PM Show Install now
v2.3.0 1337 Jan 30th at 1:17 AM Show Install now
v2.2.0 316 Jan 28th at 10:07 PM Show Install now
v2.0.0 1153 Jan 23rd at 1:04 AM Show Install now
v1.3.0 135 Jan 23rd at 2:34 PM Show Install now
v1.2.0 1184 Jan 18th at 5:51 PM Show Install now
v1.1.2 1873 Jan 4th at 7:58 PM Show Install now
v1.1.1 2389 Dec 10th 2023 at 10:47 AM Show Install now
v1.1.0 749 Dec 5th 2023 at 10:06 AM Show Install now
v1.0.4 256 Dec 4th 2023 at 5:34 AM Show Install now
v1.0.3 124 Dec 3rd 2023 at 10:50 PM Show Install now
v1.0.2 130 Dec 3rd 2023 at 7:31 PM Show Install now
v1.0.0 264 Dec 2nd 2023 at 8:11 PM Show Install now
v1.0.1 362 Dec 2nd 2023 at 10:12 PM Show Install now

185 Comments (oldest first | newest first)

💬 MRGOOSE, 20 hours ago

how rare are the rivers? i havent found a single one yet, world config terrain settings are vanilla default.

💬 Rhyagelle, 2 days ago

Does it work with BetterRuins mod?

💬 Dragnaath, 2 days ago

Where do you reuce the river speed?

Thank You

💬 Volund, Jul 4th at 4:14 PM

Amazing mod. Really loving how the river edges can collapse into the river itself and evolve the terrain when using the soil instability config (especially smaller streams, fits my interests and education as a geologist), but on that note, you do end up with a lot of small spots where the collapsed soil (If you have that enabled), snow, animal corpses, ice etc. remove the stream block. This ends up creating a hole (Air-block) in the river, which kinda breaks immersion, or leaves an area where you end up with an isolated flowing water block (like from a source block) that behaves separate from the river itself. This typically traps animals, which looks kinda odd since they don't know what to do.

Without having any coding knowledge, I would assume that retroactively fixing such holes would be difficult on an existing save, but can I suggest that any block (Or maybe lighter blocks like wood and dirt etc.) are subject to the streams force, so that the rivers don't get clogged? That way the blocks are carried downstream, and eventually end up in a larger lake/ocean where they are finally deposited at the bottom, kinda like how landslides currently work on the terrain (Blocks keep "flowing" down until they lose their active "jumping" state). This would add to the natural feel of the mod, since rivers over time carry down dirt and lighter sediments downstream from minor/major landslides, as they erode the valleys they inhabit.

Just my two cents! Think the mod will stay a staple in modded playthroughs going forward :).

💬 Vlandemart, Jun 28th at 8:56 AM

Amazing mod, thanks a lot! Its fun rafting down the river with default settings, but I personally changed river speed to 1 so I can travel both directions with paddle/sails

💬 sneezersteinAuthor, Jun 26th at 2:17 PM

its the same water as vanilla

💬 Mrozak, Jun 25th at 1:55 PM

Is there a way to fix holes in the river water, left after removing a stone block i placed there before?
I was able to remove some of them by a lot of trial and error of placing blocks around the hole, then strategically removing them, allowing the water to spill into the hole eventually.
But there are a few remaining that i cannot get rid of.

💬 Mrozak, Jun 25th at 1:49 PM
💬 Gerard_, Jun 19th at 3:48 PM

Will this mod be compatible with Medieval expansion?

💬 pearllite, Jun 16th at 9:37 PM

 I LOVE THIS MOD SO MUCH, the way it cuts through terrain in my world honestly creates such cool and exciting landmasses to explore

💬 Wahazar, Jun 12th at 10:43 PM

@PapasLeftNut @Lich, I didnt fixed issues with overwritting server config, I just started new map using client and singleplayer mode, adjusted world configuration parameters, generated map, copied to Maps folder where server data is located (overwrited old map).

💬 batydoo, Jun 6th at 2:48 AM

Hey i love this mod but im wondering Is there a setting i can change to make the river banks less steep and causing ugly landslides? where the side of the river meets the land is often a steep cliff and its bothering me. is it heightboost and top factor or something maybe? Thank you!

💬 PapasLeftNut, Jun 5th at 3:57 PM

Lich Hey I think they updated the mod, used 50% landscale and 300% of whatevers below that and it worked for me

💬 Mendall, Jun 5th at 2:43 AM

I love the added challenge and landforms of the rivers and the fast moving water. A lot. But when a river cuts under a hill of mountain the large perfectly round hole it cuts looks very un natural. Is there any way to make these cuts open all the way to the sky so they look like the river cut clean through the mountain over deep time. Instead of cutting an unnatural hole, threw.

💬 Lich, Jun 4th at 10:13 PM

i'd also like to know how you fixed it 😅 Wahazar

💬 PapasLeftNut, Jun 4th at 4:22 AM

Wahazar Could you tell me what you did to fix it? I can't seem to get it to work no matter what I do

💬 Wahazar, Jun 3rd at 1:35 PM

What default "riverSpawnChance": 5 means in terms of average distance between rivers? I created few worlds, wandered few minimap distances, didn't spot any, even when increased riverspawnchance to 10.

Not sure, if rivers are so sparce with default configuration, or mod is not working for me (rivers_3.1.0, with 1.19.8, no other mods)

EDIT: seems there was issue with world settings, I edited serverconfig.json and this changes were discarded for new game.

💬 YourCreator, Jun 3rd at 10:12 AM


💬 AnOldGondola, May 28th at 11:13 PM

Couldn't imagine playing Vintage without it, thanks for sharing your work!

💬 CS1, May 20th at 5:30 PM

Is there any way to configure this to produce fewer rivers? I like the mod, but there are far too many rivers.

💬 Zach2039, May 19th at 12:23 AM

Is there a way to keep clay deposits, but disable clay from being reaccumulated at the deposit area?

💬 melodelic, May 18th at 8:26 PM

Is it normal for there to be a sudden rapid movement (one that I couldn't get out of with my raft + oar) to absolutely no movement? I think it was in the ocean, but I'm not exactly sure. I'm on 1.19.8

💬 Maamessu, May 18th at 7:02 AM

I am currently running this on a server without issue on 1.19.7 that just updated to 1.19.8.

💬 Foxy_Grandpa, May 18th at 6:38 AM

Can confirm what powerofsound said.

Tried using this on a server; the result was a bunch of rivers lined with stone and slightly pushed-up from the ground. Sometimes they cut all the way down into the mantle.
It works fine on singleplayer, but it breaks entirely on multiplayer. Screenshots were posted by me in the discord mod forum topic. My discord name is Disvern.

💬 xxpowerofsoundxx, May 17th at 2:18 AM

Im not sure what's causing it. But where rivers should be there's just a chasm down to mantle. Not sure why. 

Works fine on singleplayer. Just not on a server even with all settings the same. No matter what I try. Sad. 

💬 Marlim, May 17th at 1:25 AM

Will this mod be compatible with Plains and Valleys?

💬 Tels, May 9th at 8:05 PM

We are experiencing a crash in Worldgen with the Rivers mod, plus the Trails mod and Conquest Reforged Landform Overhaul (

9.5.2024 22:01:15 [Worldgen] An error was thrown in pass Terrain when generating chunk column X=16045,Z=15928 in world 'Trails & Rivers' with seed 778578429                         
Exception System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.)                                                            
---> System.NullReferenceException: Object reference not set to an instance of an object.                                                                                           
  at NewGenTerra.<>c__DisplayClass49_0.<Generate>b__1(Int32 chunkIndex2d) in D:\Rivers\Rivers\src\WorldGenSystems\NewGenTerra.cs:line 661                                           
  at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.<ForWorker>b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)        
--- End of stack trace from previous location ---                                                                                                                                    
  at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.<ForWorker>b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)        
  at System.Threading.Tasks.TaskReplicator.Replica.Execute()                                                                                                                        
  --- End of inner exception stack trace ---                                                                                                                                        
  at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)                                        
  at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyW
ithLocal, Func`1 localInit, Action`1 localFinally)                                                                                                                                   
--- End of stack trace from previous location ---                                                                                                                                    
  at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException)              
  at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyW
ithLocal, Func`1 localInit, Action`1 localFinally)                                                                                                                                   
  at NewGenTerra.Generate(IServerChunk[] chunks, Int32 chunkX, Int32 chunkZ, Boolean requiresChunkBorderSmoothing) in D:\Rivers\Rivers\src\WorldGenSystems\NewGenTerra.cs:line 788  
  at NewGenTerra.OnChunkColumnGen(IChunkColumnGenerateRequest request) in D:\Rivers\Rivers\src\WorldGenSystems\NewGenTerra.cs:line 210                                              
  at Vintagestory.Server.ServerSystemSupplyChunks.runGenerators(ChunkColumnLoadRequest chunkRequest, Int32 forPass) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\S
erver\Systems\World\LoadThread\SupplyChunks.cs:line 1733

💬 NMND, May 3rd at 3:57 PM

On server start, I'm getting a:
"[Server Error] Rivers: failed to patch clayforming recipe wedgesmold.json"

Not sure what that means and I'm gonna ignore it for now. :P

Edit: As Author stated in River discord thread, it's related to Ancient Tools.

💬 Poposeint, Apr 30th at 12:31 PM

"/riverdebug clear" clears all waypoints, not only the ones marked from the mod

💬 jllemin, Apr 27th at 3:53 PM

Dry river beds as an update would be a cool feature

💬 FinkThinker, Apr 24th at 1:49 AM

This might sound dumb considering the mod, but is there anyway to get LESS rivers?  It was charming the first few times seeing two or three rivers running parallel in a 100 block distance, but it is starting to get grating.

💬 BoxOfHats, Apr 23rd at 11:55 PM

I have tried to place two large water wheels next to each other but when I place the second they both stop turning. A single wheel in either location works but both together doesn't. I also tried moving one over and putting an axle between them but no luck.

💬 Rabbs14, Apr 3rd at 4:33 AM

Kurazarrh dangerousb 

Hey, did some quick world testing based on this config file you've attached and I've found that "Landcover" = 50% and "Landcover Scale" = 300% seems to guarantee rivers generating around spawn. 3 of 3 test worlds spawned with rivers and 2 worlds with "landcover Scale" = 200% didn't spawn with any rivers. Hopefully this helps others like me who are blind and didn't read the description before downloading it lol

💬 dangerousb, Mar 30th at 5:18 PM

Kurazarrh I've been testing a bunch of mods and I've noticed that some seeds just aren't generating rivers for me. This seed spawned me right next to a few rivers: 1032789563

This was the playstyle I used for testing:

"gameMode": "survival",
"startingClimate": "temperate",
"spawnRadius": "50",
"graceTimer": "10",
"deathPunishment": "drop",
"droppedItemsTimer": "600",
"seasons": "enabled",
"playerlives": "-1",
"lungCapacity": "40000",
"daysPerMonth": "9",
"harshWinters": "true",
"blockGravity": "sandgravel",
"caveIns": "off",
"allowUndergroundFarming": false,
"bodyTemperatureResistance": "0",
"creatureHostility": "aggressive",
"creatureStrength": "1",
"playerHealthPoints": "15",
"playerHungerSpeed": "1",
"playerHealthRegenSpeed": "1",
"playerMoveSpeed": "1.5",
"foodSpoilSpeed": "1",
"saplingGrowthRate": "1",
"toolDurability": "1",
"toolMiningSpeed": "1",
"propickNodeSearchRadius": "6",
"globalDepositSpawnRate": "1",
"microblockChiseling": "stonewood",
"allowCoordinateHud": true,
"allowMap": true,
"colorAccurateWorldmap": true,
"loreContent": true,
"clutterObtainable": "ifrepaired",
"temporalStorms": "sometimes",
"tempstormDurationMul": "1",
"temporalStability": true,
"temporalRifts": "visible",
"temporalGearRespawnUses": "20",
"temporalStormSleeping": "0",
"worldClimate": "realistic",
"landcover": "0.9",
"oceanscale": "4",
"upheavelCommonness": "0",
"geologicActivity": "0.05",
"landformScale": "1.2",
"worldWidth": "1024000",
"worldLength": "1024000",
"worldEdge": "traversable",
"polarEquatorDistance": "50000",
"globalTemperature": "1",
"globalPrecipitation": "1",
"globalForestation": "0",
"surfaceCopperDeposits": "0.12",
"surfaceTinDeposits": "0.007",
"snowAccum": "true",
"allowLandClaiming": true,
"classExclusiveRecipes": false,
"auctionHouse": true,
"playstyle": "surviveandbuild"

💬 Kurazarrh, Mar 30th at 4:31 PM

I'm unable to get this mod to generate rivers, even if I set it as the only active mod. Anyone else having this issue? It's definitely loading, since I can build and place the waterwheels from this mod, but it will not cut any rivers. I even cranked the river density up to spam levels and got nothing.

💬 dangerousb, Mar 30th at 4:13 PM

AzuliBluespots Geology Additions was working for me but Stone Quarry broke things for me. No idea why

💬 AzuliBluespots, Mar 26th at 2:22 PM

Ok, I'm guessing this isn't compatible with Geology Additions. From your map, rivers should be very easy to find if you make a world with the recommended settings. I couldn't see anything besides vanilla terrain.

💬 Laerinok, Mar 19th at 6:53 AM


Hello, I didn't yet built a waterwheel on our multiplayer game. So I have no idea.

But I guess you should ask the mod's author ( sneezerstein ) rather than me 😅.

💬 TsukuyomiKitsune, Mar 19th at 5:26 AM

@Laerinok ran into an issue as a waterwheel connected to a power axel on a server then when you log off server and come back on the water wheel will be spinning but not the power axel. its fixed by breaking the axel and then replaced.

💬 Vedrit, Mar 17th at 2:14 AM

Is there a way to regenerate river flow after breaking ice?

💬 Dnd, Mar 16th at 5:50 AM

Edit* I am on version 2.7.0

Edit** After extensive testing, I found that because I had edited the config file, this was likely the cause of the chunks deleting. When I restored the default config file and ran the worldregen, it worked. The settings I had changed in the config were "maxValleyWidth": 50.0, "oceanThreshold": 15.0, and this was the cause. It only happened in my multi-player server, I was unable to replicate the bug in my single-player file.

When trying to regen chunks of the world on my multiplayer server, with this mod installed it deletes the chunks I am trying to regen instead. I run this with Plains & Valleys mod. I'll post the error logs.


16.3.2024 05:37:33 [Worldgen] An error was thrown in pass Terrain when generating chunk column X=15947,Z=16173 in world 'Ophanim' with seed -813684280
Exception System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.)
---> System.NullReferenceException: Object reference not set to an instance of an object.
at NewGenTerra.<>c__DisplayClass49_0.b__1(Int32 chunkIndex2d) in D:\Rivers\Rivers\src\WorldGenSystems\NewGenTerra.cs:line 575
at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion)
at System.Threading.Tasks.TaskReplicator.Replica.Execute()
--- End of inner exception stack trace ---
at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure)
at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
at NewGenTerra.Generate(IServerChunk[] chunks, Int32 chunkX, Int32 chunkZ, Boolean requiresChunkBorderSmoothing) in D:\Rivers\Rivers\src\WorldGenSystems\NewGenTerra.cs:line 788
at NewGenTerra.OnChunkColumnGen(IChunkColumnGenerateRequest request) in D:\Rivers\Rivers\src\WorldGenSystems\NewGenTerra.cs:line 340
at Vintagestory.Server.ServerSystemSupplyChunks.runGenerators(ChunkColumnLoadRequest chunkRequest, Int32 forPass) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\Systems\World\LoadThread\SupplyChunks.cs:line 1720

💬 JudgeRW, Mar 15th at 5:43 PM

I'd still love to be able to set the riverSpeed to a range rather than a set value for all rivers generated.  Would be super neat if some were slow, some were fast, etc.


💬 Antonio90, Mar 15th at 3:25 PM


Thanks, I was able to reduce the speed

💬 Laerinok, Mar 15th at 3:08 PM


It's said in the description above. In "changes" section.

Well it's not really expressly said how to change, but you have the value in the config file (in the ModConfig folder):

// How fast rivers and water wheels should flow, can be changed after worldgen.
public float riverSpeed = 8;

💬 Antonio90, Mar 15th at 2:33 PM

Is there a way to reduce the river current? I can't navigate the raft

💬 Darkmessiah, Mar 2nd at 2:20 PM

Rhoun settings where all default the first map was 50h old, i will try it with the vanilla plus mod, good tip, thx. i scanned a radius of 150k blocks and the only borax note i found was the one i placed out of creation mode.

Edit: worked, dont know if its the vanilla plus mod or what but new maps contain now all blocks. Thanks for the help


💬 Rhoun, Mar 2nd at 2:06 PM

So I've checked a few of my maps and Borax is there, but every chunk of it is underwater, be it river or ocean. 

It also took the x-ray mode like 5 minutes to find it. I also use vanilla plus worldgen, so not sure if it affects it too.

Did you try to wait with your maps, and what are your other settings like ore distribution? Darkmessiah

💬 Kara, Mar 2nd at 4:31 AM

1.3.2024 23:25:55 [Error] Command: /wgen regen 1
1.3.2024 23:25:55 [Error] Exception: Object reference not set to an instance of an object.
at Vintagestory.ServerMods.ModStdWorldGen.LoadGlobalConfig(ICoreServerAPI api) in VSSurvivalMod\Systems\WorldGen\Standard\ModStdWorldGen.cs:line 24
at Vintagestory.ServerMods.GenTerra.initWorldGen() in VSSurvivalMod\Systems\WorldGen\Standard\ChunkGen\1.GenTerra\GenTerra.cs:line 95
at Vintagestory.ServerMods.WgenCommands.RegenChunks(Caller caller, Int32 range, String landform, Boolean aroundPlayer, Boolean randomSeed, Boolean deleteRegion) in VSSurvivalMod\Systems\WorldGen\Standard\WgenCommands.cs:line 1696
at Vintagestory.ServerMods.WgenCommands.OnCmdRegen(TextCommandCallingArgs args) in VSSurvivalMod\Systems\WorldGen\Standard\WgenCommands.cs:line 583
at Vintagestory.Common.ChatCommandImpl.CallHandler(TextCommandCallingArgs callargs, Action`1 onCommandComplete, Dictionary`2 asyncParseResults) in VintagestoryLib\Common\API\Command\ChatCommandImpl.cs:line 311
at Vintagestory.Common.ChatCommandImpl.Execute(TextCommandCallingArgs callargs, Action`1 onCommandComplete) in VintagestoryLib\Common\API\Command\ChatCommandImpl.cs:line 247
at Vintagestory.Common.ChatCommandImpl.CallHandler(TextCommandCallingArgs callargs, Action`1 onCommandComplete, Dictionary`2 asyncParseResults) in VintagestoryLib\Common\API\Command\ChatCommandImpl.cs:line 274
at Vintagestory.Common.ChatCommandImpl.Execute(TextCommandCallingArgs callargs, Action`1 onCommandComplete) in VintagestoryLib\Common\API\Command\ChatCommandImpl.cs:line 247
at Vintagestory.Common.ChatCommandApi.Execute(String commandName, TextCommandCallingArgs args, Action`1 onCommandComplete) in VintagestoryLib\Common\API\Command\ChatCommandApi.cs:line 99
at Vintagestory.Common.ChatCommandApi.Execute(String commandName, IServerPlayer player, Int32 groupId, String args, Action`1 onCommandComplete) in VintagestoryLib\Common\API\Command\ChatCommandApi.cs:line 143

used /wgen regen 1 server side and it deleted chunks. went to single player and got this error. i can Only guess its for rivers, as this is the only world gen mod, on the server >.<

💬 Darkmessiah, Mar 1st at 5:31 PM

Rhoun with this mod you can search for every type of block on the map

💬 Rhoun, Feb 29th at 8:13 PM

How did you scan the map? I'd like to check mine too to see if it's a common problem and I should be worried about the map I've just started playing. Darkmessiah

💬 Darkmessiah, Feb 29th at 6:39 PM

i came across the problem that every map i load with the River mod activated  has not a single note of borax in it, i scanned multiple new maps, every time the same result, no borax on the whole map, is that a known issue?

💬 TRexTheHunter, Feb 28th at 2:01 PM

ok, im not the only one, same bug as (server log error and river stopped flowing too) Rsp

💬 UA_Shaman, Feb 27th at 10:18 AM


Is it possible to update it with a server on game version 1.19.3? 

There will be no problems with the fact that it is designed for 1.19.4-rc? Is it better to wait for the stable version?

💬 Rsp, Feb 27th at 7:15 AM

HI, I am seeing our server console flooded with this error

27.2.2024 07:11:36 [Server Error] Exception: Object reference not set to an instance of an object.
at MuddyGravelBlock.OnServerGameTick(IWorldAccessor world, BlockPos pos, Object extra) in D:\Rivers\Rivers\src\AlluvialDeposits\MuddyGravelBlock.cs:line 43
at Vintagestory.Server.ServerSystemBlockSimulation.OnServerTick(Single dt) in VintagestoryLib\Server\Systems\World\BlockSimulation.cs:line 994

I found a similair post further down but no reply.  How can i fix this issue?

Also, our rivers stopped flowing...

VS verison1.19.3
rivers 2.5.0

Thanks in advance.


💬 rampedindent, Feb 26th at 10:03 AM

I love this mod, adding rivers makes the world more interesting from the map

💬 fipil, Feb 25th at 9:49 PM

sneezerstein thank you for the /wgen regen issue fix! Now it works correctly!
Also the river has been now regenerated to the chunks with the trader, using /wgen regen, so now it's perfect! :-)

💬 Cepulka, Feb 25th at 4:21 AM

Question. Will it be safe to remove this mod and continue playing with vanilla generation in the same world? Asking just in case this game gets updated and this mod won't be supported anymore.

💬 PeterSanderson, Feb 20th at 6:01 PM

I am having the same issue as Supramp

I attempted to run /wgen regen 1

No effect other than to shut down my ability to use the /tp command and spam on the console requring a server restart

I attempted to remove the rivers mod and regenerate the chunk but of course it changed the chunk borders drastically. It looks like the Rivers mod changes world generation enough that it's going to mean the wgen command will not be usable while this mod is running. That's going to be a major handicap for any server operator especially if attempting to reset the Resonance Archive.

💬 Supramp, Feb 20th at 4:44 PM

For some reason, with this mod installed (and many others) I could no longer run /wgen regen.  I had to remove the mod until I start a new world.

💬 NerdlinGeeksly, Feb 20th at 8:27 AM

On top of what Retsof said, the river currents are too fast in my opinion, they cary far out into the ocean and sometimes spawn random currents in the ocean that aren't connected to land.
They also somehow overlap clay blocks and muddy gravel blocks when spawning rivers, I was digging some blue clay by one of these rivers and the block didn't go away it just turned into muddy gravel.

💬 Retsof, Feb 19th at 7:52 PM

So I tried playing with the configs for a while but eventually gave up.  Still could use a little fine tuning IMO

A:  the rivers tend to carve very steep canyons rather than more gentle valleys.  looks a bit odd if you're in otherwise gentle terrain.

B:  the rivers seem to often be deeper than they are wide, which also seems a bit odd, especially when-

C: The starting points of rivers are usually many blocks deep even at only one block wide.


Nothing game breaking really, just off enough to trigger the ol' OCD. :)


💬 Calous, Feb 19th at 5:59 PM

Triatticus  I can "recreate" river blocks by just putting a water "block" in the former river block place with a bucket and the "river flow" returns.

💬 Triatticus, Feb 17th at 10:42 PM

Is there any way to fix a river if you accidentally fill in the river blocks and then remove them? It seems you can just destroy a river and thats that, it made my meddling with multiple waterwheels chaotic and now the river im using has spots where waterwheels dont even turn (v1.18.15).

💬 DarkThoughts, Feb 17th at 9:59 PM

sneezerstein Now I'm confused. I could've sworn it was just near rivers but it seems indeed everywhere now that I tested it some more, ranging from 0 to 100 without any water nearby.  What mod would even cause this? T_T Or is this some weird vanilla thing that terrain is just naturally moist, and some moister than others?

Supramp I'm testing that mod right now and there's not really any issues with this mod because the Rivers mod should be generally compatible with all terrain gen mods since they typically just edit the landforms.

💬 Supramp, Feb 17th at 7:40 PM

Any chance or plans to make this compatible with VanillaPlus by Vevi33. maybe a ptach?

💬 RogueRaiden, Feb 16th at 8:23 PM

The world looks great with the rivers but chunk generation slows down quite dramatically compared to the same worldgen settings without Rivers.

💬 sneezersteinAuthor, Feb 16th at 11:44 AM

@DarkThoughts it doesnt affect farmland at all

💬 DarkThoughts, Feb 14th at 4:34 PM

Can someone eli5 how this mod affects farmland? It seems like rivers + flat area = up to 100% moisture? Is this to simulate flood plains or something? It seems kinda inconsistent though so I kinda fail to see the exact pattern.

💬 Ebele, Feb 12th at 2:40 AM

@Morggin In case you haven't found it yet, landcover scale is there when you make a new world;


Right underneath the section on temoporal stability.

💬 Morggin, Feb 11th at 5:48 AM

"Recommended settings for new version's default config: 300-400% landcover scale, 40-50% landcover."

I can't find "landcover scale", is this actually "landformScale"?


💬 PanzerBones, Feb 11th at 4:17 AM

💬 sneezersteinAuthor, Feb 10th at 7:50 PM

>this is a cool mod we <3 it on our srbr* thx 4 making it !! >:3

💬 PeterSanderson, Feb 10th at 7:49 PM

Does this config switch "public bool removeGravityBlocks = true; If the worldgen pass for falling blocks is enabled." override the worldgen and remove falling blocks entirely? What's the purpose of this switch in regards to the Rivers mod?

💬 xeth, Feb 10th at 7:37 PM

this is a cool mod we <3 it on our srbr* thx 4 making it !! >:3


💬 UA_Shaman, Feb 10th at 4:55 PM

Very happy with the update. Glad to help! Always open to negotiations and mutual assistance! Very cool mod, RECOMMEND❗

💬 VaelophisNyx, Feb 10th at 12:56 AM

weird question but could you perhaps take a peak at your fishing mod? apparently it is mildly broken in 1.19

💬 SuaveDoggo, Feb 9th at 11:04 AM

Is there a reason the config file resets everytime I create a new world, as I create the new world, resulting in every world having default configurations no matter what ?

💬 WickedSchnitzel, Feb 9th at 7:24 AM

yes, a dev confirmed this morning, that it seems to be a vanilla issue.

💬 sneezersteinAuthor, Feb 9th at 6:14 AM

plains & valleys doesn't interact with this mod at all. results not guaranteed for any valley width other than 50 because gathering the pieces for the river is complicated. also I'm seeing a lot of vanilla bug reports that look just like that.

💬 WickedSchnitzel, Feb 8th at 12:30 PM

there is still cut off terrain, especially when tweaking valley width.


happens regularly when the "plains & valleys" mod is installed, even with small valley width. Could you somehow add support for that mod?
also happens in vanilla, if the valley width is too wide. version 2.4.0 by the way. 1.19.3 of vs

💬 TRexTheHunter, Feb 2nd at 7:03 PM

If that means something to you, just found in the server-worldgen logs in a Single Player game

It generates that error/warning for multiple chunks that are loading (coord of chunks in bold changes). By the way, I was using an earlier version of your mod in this world (single player). Perhaps it was with v2.0.0. Hope it helps! Thanks alot for trying something new that brings a different experience to this game using your mod.

1.2.2024 23:42:41 [Worldgen] An error was thrown in pass Vegetation when generating chunk column X=4006,Z=3981 in world 'Serene Adventure World rc5' with seed -1685805649
Exception System.NullReferenceException: Object reference not set to an instance of an object.
at GeneratePartialFeatures.GeneratePartial(IServerChunk[] chunks, Int32 mainChunkX, Int32 mainChunkZ, Int32 generatingChunkX, Int32 generatingChunkZ) in D:\Rivers\Rivers\src\Boulders\GeneratePartialFeatures.cs:line 74
at WorldGenPartial.ChunkColumnGeneration(IChunkColumnGenerateRequest request) in D:\Rivers\Rivers\src\Boulders\WorldGenPartial.cs:line 23
at Vintagestory.Server.ServerSystemSupplyChunks.runGenerators(ChunkColumnLoadRequest chunkRequest, Int32 forPass) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\Systems\World\LoadThread\SupplyChunks.cs:line 1725

💬 Hydromancerx, Feb 2nd at 3:27 AM

Could you make fallen trees across the river? That would be cool to cross them as natural bridges.

💬 b0b4444, Feb 1st at 10:31 PM

This is probably a long shot but, is there any possible way to restore the broken rivers from the old version in an old world?

💬 sneezersteinAuthor, Jan 31st at 7:20 PM

@XurxoMF did you delete your config so the new values are there?

💬 XurxoMF, Jan 31st at 3:48 PM

I've tried with the 2.0.0 and I found a river literally on the spawn, with 2.3.0 I didn't found anything


💬 XurxoMF, Jan 30th at 1:35 PM

I'm using the last verions, I've explored a looooot around the ocean and there are 0 rivers. In 30 minutes exploring. Maybe a bug?

💬 Bughaw, Jan 30th at 4:21 AM

Anybody else having issues with the resonance archives not showing up while using this mod?  I love the mod, but the map from the trader isn't working.

💬 adres4t, Jan 29th at 11:36 PM

Is that the reason I cannot find any rivers generated after I drop my sp save on the server hosting? I use a different settings from the recommended ones, top to bottom 70-150-10-140 and it  generates nice terrain but only where I spawn at the beginning.

example here

💬 sneezersteinAuthor, Jan 29th at 10:25 PM

@adres4t oops forgot to disable that when clay is disabled. also it's bugged right now if your valley width is different than 50

💬 adres4t, Jan 29th at 10:20 PM
I get this in the server log, rivers are not generating beyond the start point of the map.
29.1.2024 22:16:31 [Server Worldgen] An error was thrown in pass Vegetation when generating chunk column X=16162,Z=15912 in w
orld 'PVE 70-150-10-140' with seed 90880747
Exception System.NullReferenceException: Object reference not set to an instance of an object.
   at InitialClay.ChunkColumnGeneration(IChunkColumnGenerateRequest request) in D:\Rivers\Rivers\src\AlluvialDeposits\MuddyGr
avelBlock.cs:line 105
   at Vintagestory.Server.ServerSystemSupplyChunks.runGenerators(ChunkColumnLoadRequest chunkRequest, Int32 forPass) in C:\Us
ers\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\Systems\World\LoadThread\SupplyChunks.cs:line 1725
💬 sneezersteinAuthor, Jan 29th at 7:51 PM

>What are those clay textures from


>Are there plans to add elevation changes to the rivers

making them terrain aware and making them actually flow down is fundamentally impossible. if you found some medium in the code that you could lower/increase base height by you could raise the height around rivers. as they get closer to the ends.

right now the valleys lerp from the original landforms to the river landform over the width of the valley. if it's a full valley some landforms transition smoothly and other transition sharply almost immediately. the math is all correct and it seems to be an artifact of how the noise works (as it starts to transition the original terrain becomes impossible). if anyone understands more about noise tell me how I can fix that.

💬 XurxoMF, Jan 29th at 3:13 PM

Every single update this mod gets makes it even better at an amazing level lol

💬 DarkThoughts, Jan 29th at 3:10 PM

What are those clay textures from? Is there a way to use the More Clay textures instead? And for the future: Are there plans to add elevation changes to the rivers? That would probably help with at least those who start in more hilly terrain. I also find the v2 rivers typically very close together and often running parallel to each other. It looks good on map screenshots in regards to the form but the scale is obviously completely wrong. I think it'd also be nice to have a config to disable the whater wheel for those who use medieval expansion.

💬 sneezersteinAuthor, Jan 28th at 7:34 PM

secret version

💬 DarkThoughts, Jan 28th at 11:12 AM

What the hell is that 1.69 version now? It's a lower version number and there's no changelog attached.

💬 Thomas_Jefferson, Jan 27th at 1:45 AM

Hey Sneezer, long time no see; This mod you've made is excellent! Kudos to (you) on your great work.

💬 Actor, Jan 25th at 2:35 PM

b0b4444 i updated my server from 1.2.0 to 2.0.0 and old rivers just became still, but new rivers working properly

💬 Streetwind, Jan 25th at 8:34 AM


With the config settings currently provided, is it possible to generate rivers that wind back and forth more? The rivers in the example screenshot are all very straight. In nature, all rivers automatically trend towards forming serpentines as time goes on, due to the way the laws of physics work out. So I was wondering if it was possible to achieve that look by adjusting the config.

💬 b0b4444, Jan 25th at 5:00 AM

Is it possible to update to the new version on an old world?

💬 Actor, Jan 24th at 11:04 PM

Firstable, thank you for this mod. And I want to ask you decrease quantity of seaweed in oceans, cause it's really making big load to RAM. Old PC or cheap laptop can't hold it and the game keep crashing every few minutes. With my pc around in ocean used RAM is coming to 19gb(with maximum setting btw) that's not good i guess

(UPD) sorry for misinformation, those from another mod(FeverstoneWilds), i'm really sorry😅

💬 Dhon, Jan 24th at 9:18 AM

sneezerstein Could you update the Config Info tab? New/changed settings in rivers.json are not explained.

💬 Bughaw, Jan 23rd at 8:58 PM

So happy to see the work on this.  Will worlds from previous versions have weirdness?

💬 Calous, Jan 23rd at 8:37 PM

New Rivers looks amazing! well done.


💬 sneezersteinAuthor, Jan 23rd at 2:37 PM

@WickedSchnitzel I tried that first. Covers z-fight bad and glitch underwater. also I can make these slippery and you can eat them or something. they just need a better model.

💬 WickedSchnitzel, Jan 23rd at 7:59 AM

I would suggest using moss layers only instead of full blocks.

💬 Zulie, Jan 21st at 7:25 PM

Is there a way in this mod to create or edit rivers such as using world edit? Like assinging a currant to water blocks or generating them on the fly?

💬 DarkThoughts, Jan 21st at 4:15 PM

For the sake of visibility: If you get the particle crash with the latest version, try deleting your rivers.json config file so that the mod can create a new one.

💬 DarkThoughts, Jan 20th at 2:03 PM

jibbjabb RTFM? You have to have oceans for rivers to generate in the first place so you have to reduce landcover to at least 90%.

💬 WickedSchnitzel, Jan 20th at 8:30 AM

crashes for me with [Fatal] Caught unhandled exception in thread 'asyncparticles' in 1.19.1 - i have sent the log to github 

💬 jibbjabb, Jan 20th at 8:12 AM

I dont know whats wrong with this mod. I created the world and went trough it, maybe 5000 chunks at a time, and i dont see any river. I think, maybe its necessary for the vanilla wersion but also not... sad.
Because this mod is very interesting and could be the first mod to install after update.

💬 sneezersteinAuthor, Jan 19th at 4:16 PM

@Dhon I could but the problem was they would accumulate at the edge of the loaded world and there would be a hundred entities stuck there

💬 Dhon, Jan 19th at 1:27 PM

sneezerstein Hello! Great mod, but could you make the rivers affect other mobs too? At least on 1.18.15 (waiting for other mods to catch up, so haven't updated to 1.19 yet) the river speed only applies to the player, while animals and other mobs completely ignore it, which makes chasing them through river-dense areas incredibly difficult. You could make it a toggle true/false option in the config in case of unwanted behaviors (like all the bears drowning in the rivers all the time).

💬 DarkThoughts, Jan 18th at 7:20 PM

Crash in version 1.2.0 (Is that Windows like D:\ filepath meant to be?):

18.1.2024 20:17:18 [Fatal] Caught unhandled exception in thread 'asyncparticles'. Exiting game.
18.1.2024 20:17:18 [Error] Exception: Object reference not set to an instance of an object.
at RiverBlockBehavior.OnAsyncClientParticleTick(IAsyncParticleManager manager, BlockPos pos, Single windAffectednessAtPos, Single secondsTicking) in D:\Rivers\Rivers\src\Patches\RiverParticleBehavior.cs:line 57
at Vintagestory.GameContent.BlockWaterflowing.OnAsyncClientParticleTick(IAsyncParticleManager manager, BlockPos pos, Single windAffectednessAtPos, Single secondsTicking) in VSSurvivalMod\Block\BlockWaterFlowing.cs:line 45
at Vintagestory.Client.NoObf.SystemClientTickingBlocks.onOffThreadParticleTick(Single dt, IAsyncParticleManager manager) in VintagestoryLib\Client\Systems\ClientTickingBlocks.cs:line 209
at Vintagestory.Client.NoObf.SystemRenderParticles.OnSeperateThreadGameTick(Single dt) in VintagestoryLib\Client\Systems\Render\Particle\RenderParticles.cs:line 270
at Vintagestory.Client.NoObf.ClientThread.Update() in VintagestoryLib\Client\ClientThread.cs:line 75
at Vintagestory.Client.NoObf.ClientThread.Process() in VintagestoryLib\Client\ClientThread.cs:line 61

💬 Xandoria, Jan 18th at 6:17 PM

Could you add this wonderful mod to Crowdin so that we can translate the water wheels?

💬 DarkThoughts, Jan 18th at 2:35 PM

I love this mod for the variety in terrain gen, but it performs very weirdly & badly when there's blocks falling into the rivers, which makes especially soil instability a complete bust setting, as it completely kills the framerate when all the dirt fall into the river. I also tested it with the rock instability in 1.19 and it seems to have a similar effect, but a little less so since the rock collapses aren't quite as severe as the chain reaction of the dirt blocks. Even when things are settled down, those areas still drop your FPS into the single digits when you enter them, basically turning them into a no-go zone.

I also feel the last update caused rivers to go from almost always too tiny streams to now almost always forming into gargantuan sizes.

💬 EnzoF, Jan 16th at 3:47 PM

I really like this mod but I really wish it didn't spawn so gosh darn many impossible rivers. Rivers do not just dig through giant mountains on the regular, they go around them. It is absolutely absurd the amount of times a river will just bore through kilometers of rocks with literal mountains of weight above them. I'd love it if you could fully deactivate that feature and make it so it just goes around mountanous areas. Ideally the river would actually drop in elevation but that might be a little too much

💬 Sahji, Jan 14th at 5:09 PM

Your mod and Joy of Sailing just made my day.

I was exploring with 80% landcover. I got to a mountainous chalk region with a lot of terrain noise. I was skirting around the shore, exploring the outline of the water, when I found an UNDERGROUND RIVER--straight out of pirate fiction--that allowed me a shortcut through the land. It was a MASSIVE cavern, complete with stala/gmites/ctites and water dripping from the ceiling. 

This was so cool! I hope you can maintain this mod and/or it gets added somehow to the main game, along with the sailing mod.

💬 Dythanos, Jan 13th at 6:03 PM

Any chance for a config for controlling how often or how much the transition between caves and valleys?

💬 Mohandar, Jan 12th at 2:05 AM

I've read only by now the chat, but I feel like you confused me with the author of this mod, which is sneezerstein, you should tag him instead

💬 RikeiR, Jan 6th at 10:12 PM


Thank you so much. I understood.

💬 SilentKiwi, Jan 6th at 9:54 PM


💬 Yelb, Jan 6th at 3:36 PM

Hello, could a smart player post some examples of config + screenshots, so the stupid me could clearly understand what does what ingame, and how to get some nice results ?

💬 RikeiR, Jan 6th at 7:16 AM

In this situation, the waterwheel does not rotate.

この MOD の水車を回すには川の中にある必要がありますか?

💬 rayray, Jan 5th at 6:59 AM

does this require new start new map ?

💬 sneezersteinAuthor, Jan 5th at 1:14 AM


turn down torque to 0 in the config

💬 VaelophisNyx, Jan 5th at 12:58 AM

request: a way to disable this mod's water wheels would be appreciated

💬 rayllis689, Jan 1st at 11:00 PM

Doesn't seem to be compatible with Medieval Expansion mod, which has it's own waterwheel. Tested out in creative mode and [?] blocks are placed when trying to place the waterwheel. Disabled Medieval Expansion and it appeared just fine. Also waterflow feels a bit janky where rivers intersect. Large open T-intersection had alternating layers of southbound and east bound water. Was interesting trying to swim manually across a river, ended up quite a bit further south than intended. Tried out a raft and that comes with it's own issue, being that once you hop off, even if you find a corner to park in the water flow WILL drag the raft off and it's just gone.... need some way to anchor rafts to fight the flow.

💬 Pr0fesseur, Jan 1st at 9:14 PM

ive been trying to work on an expanded caves and caverns mod to open up the undergound caves systems. make them larger and expansive. Id love to work on something with you if interested. I think the underground system needs some love.

💬 Pr0fesseur, Jan 1st at 9:09 PM

Hrm, I know its not EXACTLY the same as your code but MC does have a plugin that may have some math that would help with theis problem.

this is what i had envisioned for vintage story .. hes using octives and amplitudes for each should give the same results if they can be worked into VS


💬 JudgeRW, Dec 27th 2023 at 10:36 PM

Would be cool to add a random varialbe to the config to allow for riverSpeed to be a range.  Easy enough to adjust to value now in the config, but allowing for a range would be a pretty simple and neat addition imo, so the rivers wouldn't all be the same strength.

💬 Mohandar, Dec 25th 2023 at 3:26 PM

they already do
(and they do it too much btw)

💬 Pr0fesseur, Dec 22nd 2023 at 4:22 AM

I was working on something similar over the past month for underground rivers, I think it would be ideal if rivers would carve under mountains and create meandering caverns this would also be good to crete more Speleothems to collect as well.

. Would also allow ppl to traverse under large mountain ranges instead of going around or over.

Puerto Princesa - exploreing the secret underground river | Rough Guides |  Rough Guides

💬 Mohandar, Dec 20th 2023 at 4:51 PM

yeah it kinda look better if it's not a sheer drop, and it's preferible if you can't directly act on the mountain tips but on the quadratic function as a whole.

but... regarding the lake thing; if it is the terrain to be "aware" of the rivers, and 'it choose' to generate a cave, couldn't be made something to switch the generation of the cave with something that resemble a lake instead?
I mean, kinda like the valley override, creating an area to accomodate the river 'into a stop'.

btw, caves are not that bad that they need to be entirely removed, there should just be a possibility to significantly reduce them in the config (if possible), expecially if too near oceans..

if it was possible to make rivers to generate from glaciers within mountains and flows down following the terrain until oceans by the way it would have been the best option, but as you said it's not the rivers to check for the terrain but the terrain to check for the rivers, so idk  :/
in fact when I attempted to use int heightBoost and float topFactor the river would start at an higher terrain but wouldn't have water in it ç_ç I hope I just messed up the values but as long as  I've experimented I couldn't  find a functioning way

💬 sneezersteinAuthor, Dec 20th 2023 at 4:08 PM

>should be smoothed always

the valleys are just a quadratic function and I could change them to smoothstep. I think it looks better if it's just not a sheer drop.

the valley width everywhere is determined by a noise so I could give that gain so that small values aren't possible. I can look into adding a config that disables caves completely.

>check the terrain and make a lake

the rivers are not aware of the terrain. the terrain is aware of the rivers.

💬 Mohandar, Dec 20th 2023 at 3:38 PM

Hey sneezerstein, I've tested out your mod in these days with various config's parameters!
So far so good, except some visible trouble when the rivers get too big, like here:

I have so drawn up a list of things that if adressed would make this the best river mod out there.

-valley smoothing could be improved;

sometimes, when the side mountain its too high, a rocky wall is left to the side;
in plenty of occasions the effect may be unpleasant/unrealistic, where a both-side smooth  is preferible, like in this case:

in other rarer case, the rocky wall may be fine, but at least, the edges must be addressed (smoothed)

I would say that the higher edges/top of mountains  should be smoothed always 

I (personally) would still go for the both side smoothed valley override anyway for most of the cases, and the rocky wall thing with smooth edges may be left as a config value to determine the weight of the  rocky walls in situations like these.

-Another smoothing option in the config should address situation like this:

I'm aware that these rivers kinda represent horrids like this one->

But, as the river floor level is always in pair with the sea level and doesn't change in any occasion it may be helpful to  have a "force override terrain / smooth" in  situation like this, to make 'horrid-like rivers' less common that they are right now.
Surely it would be more interesting to have river-floor height variation, so that we can find rivers that are born in glacier/top of mountains, and we can  have some waterfall as well.
I've tryied some config option like:
int heightBoost and float topFactor but they seems a bit bugged as by now  (the water doesn't seem to generate).

Also, there seems to be not any way to have a gradual and smooth difference between river's origin and river's mouth/estuary right now.

-And this hooks up to another problem, which are the river tunnels/galleries, which resemble motorway tunnels:

Which, even if kept, are anyway too common by now.

better solutions:
(the first one with the creeks in particular would have been awesome as well)

- This thing hooks up again to another thing, that may be a possible solution for itself(the tunnels) as well.

there should exist another different lakeChance config option that determine a chance for rivers that encounter a terrain too high ahead of them to end up in lakes/become a lake instead of making a tunnel;
like this in this occasion:

something like:
"instead of tunnel: int generate a lake chances"
"instead of tunnel: int force-override smooth terrain through until ocean chances"


And this is mostly all.
-Last thing is; the double riverFloorVariation (which seems to only affect the river sides/walls), for values below 1.0 should increase the number of blocks at the river-level to simulate larger 'river-shores'

like this one:

I hope that I explained myself correctly since I'm a non-english speaker and I also hope to have given you further wish to improve this already great mod which fills what this game was sooo badly lacking and in need of.

and since it's the time, happy Holidays ! 🤗

💬 Dasher, Dec 15th 2023 at 5:21 AM

Ever thought of doing underground rivers? I think it'd make an interesting concept. If I knew how to code i'd try and make something to present to you, but im too smoothbrained to even comprehend doing it.

💬 sneezersteinAuthor, Dec 13th 2023 at 11:21 AM

@Mohandar you can turn down the river depth in the config. I didn't bother doing any automatic adjustments for world height.

@RikeiR I will next time there's an update

💬 Mohandar, Dec 12th 2023 at 7:42 PM


I guess that world gen higher than 256 isn't well supported, right? :/  

or maybe is it because of the Plains and Valleys mod?

💬 RikeiR, Dec 11th 2023 at 10:25 AM

Please include the Japanese translation file at Discord.

💬 Bughaw, Dec 10th 2023 at 9:00 AM

Waterwheel recipe requires a 32 stack of stripped logs, but they only stack to 16. 😢

edit: ty for fixing!  you rock!


💬 Fjall, Dec 9th 2023 at 7:06 PM

I think I finally got it to work. I'm not sure why uploading my world doesn't work, but if anyone else happens to have this issue, here was what I had to do:

1) create a single player world and set up the config how you wish. Load the world, and then exit. You will not be using this world, but it will give you the configuaration setting you need. 

2) Go to your VintageStoryData folder and find the serverconfig.json file. Copy everything from WorldConfiguration until MaySizeY (the last highlighted thing for my is AuctionHouse: true). what I copied looks like this (based on my preferences for gameplay): 

"WorldConfiguration": {
"worldClimate": "realistic",
"gameMode": "survival",
"temporalStability": true,
"temporalStorms": "veryrare",
"graceTimer": "0",
"microblockChiseling": "all",
"polarEquatorDistance": "400000",
"lungCapacity": "60000",
"harshWinters": "true",
"daysPerMonth": "30",
"saplingGrowthRate": "1",
"propickNodeSearchRadius": "6",
"allowUndergroundFarming": false,
"temporalGearRespawnUses": "-1",
"temporalStormSleeping": "0",
"startingClimate": "temperate",
"spawnRadius": "0",
"deathPunishment": "drop",
"droppedItemsTimer": "3600",
"seasons": "enabled",
"playerlives": "-1",
"blockGravity": "sandgravel",
"bodyTemperatureResistance": "0",
"creatureHostility": "aggressive",
"creatureStrength": "1",
"playerHealthPoints": "15",
"playerHungerSpeed": "1",
"playerMoveSpeed": "1.5",
"foodSpoilSpeed": "0.75",
"toolDurability": "1",
"toolMiningSpeed": "1",
"globalDepositSpawnRate": "1",
"allowCoordinateHud": true,
"allowMap": true,
"loreContent": true,
"tempstormDurationMul": "1",
"temporalRifts": "visible",
"landcover": "0.5",
"oceanscale": "4",
"upheavelCommonness": "0",
"geologicActivity": "0.05",
"landformScale": "1.0",
"worldWidth": "1024000",
"worldLength": "1024000",
"worldEdge": "traversable",
"globalTemperature": "1",
"globalPrecipitation": "1",
"globalForestation": "0",
"surfaceCopperDeposits": "0.12",
"surfaceTinDeposits": "0.007",
"snowAccum": "true",
"allowLandClaiming": true,
"classExclusiveRecipes": true,
"auctionHouse": true


3) go to your server and open its serverconfig.json. Replace the world configuration settings there. It might just say "null," so you might need to add all of these details. After you make the changes, save the file.

4) On your server, make sure your save files are empty. We are doing this to let the server generate its own save file. 

5) Start the server, log in, and it should now be working.


The reason I had such trouble is because importing the actual save without copying that config information didn't work. Also, letting the server generate its own save file before those values caused no rivers to form. And, finally, copying the save file over AND copying the config cause a CTD every time I tried to go in game. So, the only way it worked for me to was to generate the config in SP, copy it to the server, and then let the server genrate its own save based on that information. It doesn't seem like it should be that difficult, and maybe its just a bug with my host, or maybe its something obvious I misssed. Either way, 20-30+ hours later, that is the only way I have gotten Rivers and Plains & Valleys to work simutaneously on my server. 

💬 Fjall, Dec 9th 2023 at 6:14 PM

Dythanos Yes, that was what I thought too. However, the same thing happens with identical seeds and configs settings in serverconfig.json, and in the config files for the mod itself. I'm sure you're still right, but I can't figure out where down the line the changes are happening. Fortunately, it hasn't messed anything up in any significant way, because I'm just testing, but it's been frustrating all the same.

💬 Dythanos, Dec 9th 2023 at 5:58 PM

Those cliffs are due to your worldgen being run with either 2 different seeds or 2 different configuration options at 2 different times.

For example: You started the world with 1 set of options and changed them later on in the server's life.


Unfortunately things like this with World Gen can really mess up your world. You need to configure your world the way you want it and not change the configs that have to do with world gen after you have started your world.


💬 Fjall, Dec 9th 2023 at 5:18 PM

@sneezerstein As I said, I don't know if it's actually this mod casuing a conflict or the Plains & Valleys. But, if it shouldn't conflict with Plains & Valleys, it seems like this mod is having some sort generation issue when run on my server. It works just fine in SP. It could well be some type of error I'm making with server configuration, but I haven't been able to figure it out yet, and several other people don't know where the issue is coming from either.

Here is an example of what I'm running into when I use my SP save when uploaded to the server:

💬 sneezersteinAuthor, Dec 9th 2023 at 12:25 PM

@Fjall there are bugs I'm not aware of. one is a lot of rivers not flowing out to the sea because the ocean threshold is too low. It doesn't have any incompatibility with mods like plains and valleys because they don't interact at all.

@Bughaw Strength is how much it's distorted and it will generate differently if you change that.

💬 Fjall, Dec 9th 2023 at 1:45 AM

Bughaw I'm wondering if this is buggier than it appears at first. I have the same issue running it on my server with Plains & Valleys. It normally works fine on single player, but I get horrible flat rock faces when the server tries to handle it. It seems like it works most the time, but there might be something undernearth causing this happen. The only difference for me is that its many chunks at not just one. I'm not sure what to do. I had my server host support troubleshoot, and this or Plains and Valleys seems to be causing the issue. If you're not running Plains and Valleys, then it almost certainly is this. 

💬 Bughaw, Dec 9th 2023 at 1:08 AM

I ran into a place where a huge river comes out of an artificially flat rock face.  I think I changed river strength in config thinking it was speed.  It isn't. It was my fault for changing config after worldgen.

💬 Fjall, Dec 8th 2023 at 7:55 PM

in single player, this mod works just fine with terrain mods like Plains & Valleys, but for some reason when I try to use it on my server, I'm still having issues. It seems like it will either only use this mod or the terrain mod. When I import my single player world (with Rivers and Plains & Vellys), the Rivers mod takes priority and works, but Plains and Valleys doesn't work, and the world genrates vanillia terain for the server. However, when I let the server make its own save file, it doesn't use Rivers at all, and only generates with Plains and Valleys. 

This probably is user error on my part, but it's throwing me for a loop.

💬 Fjall, Dec 8th 2023 at 12:42 AM

sneezerstein awesome, thank you. I figured out the server issue (edit: I was wrong about fixing it), and for anyone wondering, decrease the topFactor number to make cave entrances shorter.

💬 Thap, Dec 7th 2023 at 11:15 AM

What "your other mod" are you referring to?

💬 Plumeria, Dec 7th 2023 at 2:44 AM

Hello there o/
I just wanted to drop in and say that I think I've dreamed of seeing rivers for awhile now and finally seeing them is just something else! This is amazing work, very nice job :) looking forward to playing with them on my server! 

💬 sneezersteinAuthor, Dec 7th 2023 at 2:01 AM

@Fjall if you want smaller openings or if it's too deep on higher world heights you can play with the config

💬 Fjall, Dec 6th 2023 at 11:16 PM

Absolutely love this mod and where it's going. Unfortunately, I can't seem to figure out how to get it working on my server, but it's well worth the trouble. I would love to see the underground caves somehow have smaller openings, to look more realistic, but don't get me wrong. This mod is awesome, especially for being so brand new.

💬 XurxoMF, Dec 5th 2023 at 5:03 PM

Uploaded 3 days ago and now it has valleys too?? You're crazy lol. I love this mod

💬 HONKCLUWNE, Dec 4th 2023 at 9:24 PM

So with a bit of testing it seems that this doesn't work to well with changing world height. If you put world height to a decently hight number rivers will be made ridiculously deep and often cut very deep canyons into the terrain. On the bright side it also seems to be pretty compatible with mods that change worldgen. I added the Plains and Valleys mod and it was able to generate rivers just fine.

💬 YourCreator, Dec 4th 2023 at 12:55 PM

looks good.  What about height differences?

💬 Bobosaw, Dec 4th 2023 at 7:15 AM

I literally had a vision of a mod that added rivers. Thank you for making my fever dream come true. Just added another 40 hours of play time :3

💬 Dythanos, Dec 4th 2023 at 12:49 AM

Seriously stellar mod! Are you planning on expanding on the mod? Any chance we will get rivers that follow the terrain height and flow down?

💬 XurxoMF, Dec 3rd 2023 at 9:00 PM

Ok, perfect, thx a lot ^^

💬 sneezersteinAuthor, Dec 3rd 2023 at 8:52 PM

XurxoMF how faster it gets wider. maxZoneTraversal controls maximum length.

💬 Bughaw, Dec 3rd 2023 at 8:32 PM

@mcjty I didnt see the other version.  im good now.  thanks!

💬 XurxoMF, Dec 3rd 2023 at 8:05 PM

riverGrowth changes the length or the width of the rivers? I don't understaind it in the config info text above...

💬 Crabb, Dec 3rd 2023 at 5:57 PM

sneezerstein Is there a way to detect if a water block is in one of these rivers?

💬 XurxoMF, Dec 3rd 2023 at 4:02 PM

I think that mod changes the worldgen completely so... I don't think so. You can try tho. Abed

💬 Abed, Dec 3rd 2023 at 12:46 PM

😍 but is this compatible with Worldgen Fix?

💬 XurxoMF, Dec 3rd 2023 at 10:24 AM

Little opinion/suggestion:

Recipe for the watermills is a bit expensive, 8 iron plates and 8 sails for the small watermill is too much I think. 4 plates and 8 sails sounds better, you still need iron(10 ingots) so it'll not be early game and at the same time it's not that expensive.
Same for the large watermill, instead of 16 plates use 8...
Resume: Half the ammount of plates needed for the watermills.

💬 XurxoMF, Dec 3rd 2023 at 9:51 AM

Don't change the water speed in a created world hahahaha watermill goes brrrrr, it'll speed up to criminal speeds.
I changed it from 10.0 to 1.0 and it was fun bus scary XD

💬 XurxoMF, Dec 3rd 2023 at 8:55 AM

Ohh ok, thx @sneezerstein

💬 McJty, Dec 3rd 2023 at 8:52 AM

Bughaw you did use the correct version for 1.18.15?

💬 Bughaw, Dec 3rd 2023 at 3:11 AM

Seems to break worldgen in 1.18, fyi.  No land generates.  Looks like I need to bite my fingernails until 1.19 flatpak is out.  So grateful for the work on this mod tho!


edit:  disregard.  I had the wrong version.

💬 Bughaw, Dec 3rd 2023 at 2:59 AM

Procedural river HYPE!

💬 sneezersteinAuthor, Dec 3rd 2023 at 2:39 AM

@XurxoMF you need to delete your old config

@RuneScholar this works with anything that doesn't rewrite the main terrain gen code which is nothing yet

💬 RuneScholar, Dec 3rd 2023 at 1:51 AM

I went ahead and tested this with Plains and Valleys for anyone who was also wondering.

They do work together and the game doesn’t treat it as having two worlgen mods which could cause missing chunks and sharp chunk borders. However, the rivers seem to carve tunnels through mountains and highlands very often. This is the case with vanilla worldgen too, but it’s simply more obvious with Plans and Valleys.

💬 RuneScholar, Dec 3rd 2023 at 12:08 AM

Does this mod work with world-gen mods, such as Plains and Valleys?

💬 RuneScholar, Dec 3rd 2023 at 12:06 AM

Whaaaat!? I’ve been asking for this.

💬 XurxoMF, Dec 2nd 2023 at 11:52 PM

I've installed the 1.0.1, opened the game and created a new world but the new speed config it's not appearing in the config file. sneezerstein

💬 XurxoMF, Dec 2nd 2023 at 11:36 PM

I was testing and configuring the mod for a 1.19 server I'm planing to make and I feel the urge to show to all of you this amazing river generations.

Top of the map
Bottom of the map

This is the config I've used:
    "zoneSize": 512,
    "zonesInPlate": 64,
    "zonePadding": 100,
    "maxZoneTraversal": 50,
    "riverGrowth": 5,
    "riverSpawnChance": 50,
    "riverSplitChance": 300,
    "lakeChance": 30,
    "segmentsInRiver": 5,
    "segmentOffset": 75.0,
    "riverDepth": 0.022,
    "baseDepth": 0.15,
    "heightBoost": 7,
    "topFactor": 1.0,
    "riverOctaves": 2,
    "riverFrequency": 0.01,
    "riverLacunarity": 2.0,
    "riverGain": 0.5

Not all the map is like that, in the north part of that map you can't find any river in a "long area", same to the west...
💬 XurxoMF, Dec 2nd 2023 at 10:58 PM

About the config, if I change riverGrowth to a higher value, it'll change the length of the river or the width of the river?


💬 XurxoMF, Dec 2nd 2023 at 10:55 PM

This mod adds 2 new watermills Crabb

💬 Crabb, Dec 2nd 2023 at 10:44 PM

Which waterwheel is compatible with this?

💬 Wandour, Dec 2nd 2023 at 10:29 PM




💬 XurxoMF, Dec 2nd 2023 at 9:08 PM

Ok, about that "bug", dw about that, it's not bad. And about the speed, yes please, if you can add it as a config it could be great lol

EDIT: If you can create a channel in the mods forum in the official VS Discord server it could be great too, to talk about the mod and things like that

💬 sneezersteinAuthor, Dec 2nd 2023 at 9:05 PM

The bottom depth of the river changes because of how block layers generate and the sea level changing is a 1.19 vanilla bug. I can make the river speed a config setting.

💬 XurxoMF, Dec 2nd 2023 at 9:01 PM

WTH THIS IS AMAZING... A-M-A-Z-I-N-G. I've tested it in a private world and it works perfectly(at least with no other mods).

It soooo cool for the watermill and it'll make easier to find oceans as you can go down the river XD
Also, it's fun play dead and get swept away by the river hahahhah.

I've some quiestions too:

  1. Is there any way to change the water speed? It seems a bit to fast for me, idk if it changes depending on the river or zone.
  2. Is the mod compatible with your fishing mod? I mean, I'll suppose it is but I want to make sure XD

And one error to report(idk if it's an error): In some places the rives makes a little "stair", it changes from the y-111 to y-110 for example but so drastically... It's not bad, just in case this was not intentional ^^

💬 Crabb, Dec 2nd 2023 at 8:59 PM

Here we go, this is gonna be good

(edit comment delete)