SANDBOX — this is a test environment. No servers are actually deployed and no real payments are charged.
Back to NxLabs

NxLabs / Vintage Story

RiverGen

NBy Nyuhnyash

Server-side river terrain generation mod.

RiverGen

Description

A server-side river terrain generation mod.

Works in singleplayer or multiplayer.

The mod could cause chunk borders when updating game version while keeping old world (e.g., 1.20 to 1.21).

Features:

  1. Сustomizable branching rivers.
  2. Clay deposits (optional).
  3. Mossy boulders (optional).
  4. Fallen logs (optional).

Currently unavailable features (from the original mod):

  1. River currents (or any water flow).
  2. Alluvial clay deposit expansion.

Known bugs:

  1. Grass grows on top of the boulders.
  2. Boulders are generated in dry riverbeds.

How to set up:

Recommended world configuration: 40-50% Landcover, 300-400% Оcean scale (a.k.a. Landcover <span class="term_item empty_term" title="" data-source-term-id="3865" data-term-uid="214914_1587_3865_0_14511536">scale)</span>.

Add this into "WorldConfig" in serverconfig.json before the world generation.
&nbsp;
<pre class="language-javascript">"WorldConfiguration": { "landcover": "0.5", "oceanscale": "3" }</pre>
Explanation of config options
<pre class="language-javascript">{ // When a river forks, each segment will go at this angle minimum. "minForkAngle": 10,

// How much to add to the minimum fork angle. "forkVaration": 35,

// When adding single node change from 0 to this angle in direction left or right. "normalAngle": 20,

// Minimum and maximum size of rivers, in width. "minSize": 8.0, "maxSize": 50.0,

// Minimum amount of segments a river must be to not be culled after map generated. Maximum amount before generation stops. "minNodes": 8, "maxNodes": 20,

// How much to grow in size each node. "riverGrowth": 2.5,

// How many times a river fork can go downhill. "error": 1,

// Minimum length of a river node and how much to add to it randomly. "minLength": 150, "lengthVariation": 200,

// Zone size in blocks. Must be a multiple of 32. "zoneSize": 256,

// How many zones wide/tall the region is. "zonesInPlate": 128,

// Region (a.k.a. plate) size in blocks: RegionSize = zoneSize * zonesInPlate // ChunksInRegion = RegionSize / 32 // ChunksInZone = zoneSize / 32

// Chance for a river to be seeded at a coastal zone. "riverSpawnChance": 5,

// Chance for node to split when generating a new node. "riverSplitChance": 60,

// Chance for a lake when nodes stop (in percents) "lakeChance": 15,

// Sub-segments 1 node is comprised of. "segmentsInRiver": 3,

// How much to offset each inner segment in blocks. "segmentOffset": 40.0,

// Base and depth based on the square root of the river size. Minimum depth. "baseDepth": 0.1, // Depth to grow. "riverDepth": 0.022,

// How much the ellipsoid carving the river should start above sea level and how big the top is in relation. "heightBoost": 8, "topFactor": 1.0,

// Values relating to distortion of rivers. "riverOctaves": 2, "riverFrequency": 0.0075, "riverLacunarity": 3.0, "riverGain": 0.3, "riverStrength": 12,

// How wide a valley can be at world height. "maxValleyWidth": 50.0,

// How many blocks of submerged land, relative to default height, a spot is considered an ocean at. "oceanThreshold": 30.0,

// If stone should be generated under blocks with gravity. "fixGravityBlocks": true,

// If boulders should generate in rivers. "boulders": true, // If fallen logs should generate near rivers. "fallenLogs": true,

// If clay deposits should generate on the bottom of the river. "riverDeposits": true, // Blocks to use for deposits "riverDepositsBlocks": [ "game:rawclay-red-none", "game:rawclay-blue-none" ], "clayDepositFrequency": 0.2,

// Gravel on sides of river. "gravel": true,

// Set to false to fill rivers in dry areas with water. "dryRiverbeds": true }</pre>

Config for version 1.0.0 (outdated)
<pre class="language-javascript">{ // When a river forks, each segment will go at this angle minimum. "minForkAngle": 10,

// How much to add to the minimum fork angle. "forkVaration": 35,

// When adding single node change from 0 to this angle in direction left or right. "normalAngle": 20,

// Minimum and maximum size of rivers, in width. "minSize": 8.0, "maxSize": 50.0,

// Minimum amount of segments a river must be to not be culled after map generated. Maximum amount before generation stops. "minNodes": 8, "maxNodes": 20,

// How much to grow in size each node. "riverGrowth": 2.5,

// How many times a river fork can go downhill. "error": 1,

// Minimum length of a river node and how much to add to it randomly. "minLength": 150, "lengthVariation": 200,

// Zone size in blocks. Must be a multiple of 32. "zoneSize": 256,

// How many zones wide/tall the region is. "zonesInPlate": 128,

// Region (a.k.a. plate) size in blocks: RegionSize = zoneSize * zonesInPlate // ChunksInRegion = RegionSize / 32 // ChunksInZone = zoneSize / 32

// Chance for a river to be seeded at a coastal zone. "riverSpawnChance": 5,

// Chance for node to split when generating a new node. "riverSplitChance": 60,

// Chance for a lake when nodes stop (in percents) "lakeChance": 15,

// Sub-segments 1 node is comprised of. "segmentsInRiver": 3,

// How much to offset each inner segment in blocks. "segmentOffset": 40.0,

// Base and depth based on the square root of the river size. Minimum depth. "baseDepth": 0.1, // Depth to grow. "riverDepth": 0.022,

// How much the ellipsoid carving the river should start above sea level and how big the top is in relation. "heightBoost": 8, "topFactor": 1.0,

// Values relating to distortion of rivers. "riverOctaves": 2, "riverFrequency": 0.0075,

Read the full description on Vintage Story ModDB →

Ratings & reviews

No ratings yet

Sign in to leave a rating or comment.