Wackah-Riverheim_Config icon

Riverheim Config

Server-synchronized world-generation controls for Gurebu-Riverheim 1.3 (with Worldhalla) and 1.2: world, rivers, lakes, biomes, landmass, mountains and terrain. Preview them in the AtlasBuilder UI.

Last updated 8 hours ago
Total downloads 2118
Total rating 2 
Categories World Generation Server-side Client-side AI Generated
Dependency string Wackah-Riverheim_Config-3.1.1
Dependants 1 other package depends on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202
Gurebu-Riverheim-1.3.1 icon
Gurebu-Riverheim

A comprehensive world generation overhaul that adds larger continents, forking rivers, epic mountains, lakes and many other features.

Preferred version: 1.3.1

README

Riverheim Config

Server-synchronized world-generation controls for Gurebu's Riverheim 1.3 (with Worldhalla) and 1.2.

Riverheim itself has no player-facing options. This companion mod adds a config file for the parts of Riverheim's world generation that are safe to turn: world size and depths, rivers, lakes, biome placement and amounts, biome bands, landmass shape, mountains, river features, sub-biomes and terrain feel. Settings are applied at Riverheim's ConfigManager.GetConfig entry point, immediately before a world is generated.

Riverheim 1.3 and Worldhalla: Riverheim now creates its worlds through Gurebu's Worldhalla, and this mod works the same way there. Worldhalla's New World screen draws a preview of the world when you pick the Riverheim generator, and that preview already uses your settings: change the config file, press the seed's reroll button, and the map redraws with the new values (tested in game with Riverheim 1.3.1 and Worldhalla 1.0.0). The Preset choice under Generator settings is Riverheim's own; leave it on Default, since this mod's settings apply on top of whichever one is chosen. Before moving an existing world from Riverheim 1.2 to 1.3, back up its .fwl and .db: Worldhalla converts the world the first time it saves it, and Riverheim 1.2 cannot open it after that.

Preview before you commit: every setting here is the same setting, with the same name and default, as in the Riverheim AtlasBuilder UI, a launcher for Gurebu's Riverheim AtlasBuilder. Draw maps of your seed with your settings, then Export config writes the config file for your server.

Controls

Every default is Riverheim 1.2.1's and 1.3.1's own value (they are identical), and a setting left at its default is not written at all, so an untouched config generates stock Riverheim worlds even if a Riverheim update changes a default. The full list with defaults, ranges and descriptions is in SETTINGS.md; the config file carries the same descriptions.

  • 1. World: world radius, tile spacing, sea floor depth, ocean biome depth, mountain height, starting area radius
  • 2. Rivers: origin density and land-neighbour requirement, width formula, pruning, meanders
  • 3. Lakes: budget, terrain affinity, lake size and how far from the sea lakes form
  • 4. Biomes: placement bias for Meadows, Black Forest, Swamp, Plains and Mistlands
  • 5. Biome Amounts: how much contested land each biome takes, now including Marsh and the lowland Black Forest variant from Riverheim 1.1.1
  • 6. Biome Bands: how far from spawn Meadows fades out, where Swamp and Plains start and end, and where Mistlands starts (percent of the way to the world edge)
  • 7. Landmass: how land clumps into continents or scatters into islands, the swirl and how warped its arms are, the central harbor, small-island removal, coastal trimming and how ragged it is
  • 8. Mountains: how much high ground becomes Mountain, how rejected mountains are cut down, minimum mountain size, selection randomness, rock spires on peaks
  • 9. River Features: channels through landmasses, the rainfall pattern that feeds rivers, how notable river sources, confluences and bends are, ponds at river sources
  • 10. Sub-biomes: Mistglade rate and patch size, marsh and swamp base height, lowland Black Forest shaping
  • 11. Terrain: cliffs, terracing, flatland amount, land slope, erosion, Meadows and Plains shaping, hills, shore plateaus, river bank depth and softness, Mistlands roughness, swamp path height
  • 12. Biome Patches: the patch size each biome aims for
  • 13. Forests: the size of the forest density pattern and forest along Meadows rivers

Every setting is enforced and synchronized by the server through ServerSync.

Bigger or smaller worlds: keep WorldRadius at 10500 and use Expand World Size stretching (this mod fixes Riverheim's forests, vegetation and forest-bound locations in stretched worlds, which were missing beyond about 10 km; tested in game with Expand World Size 1.45.0 at stretch 1.5) (Stretch world = Stretch biomes, and EWS World radius + World edge size = 10500 x stretch). Changing WorldRadius scales the biome bands but not the poles, the landmass swirl or the rainfall pattern, so it distorts the layout. One thing no mod setting can change: Valheim's terrain and vegetation shaders draw snow on everything more than about 8,000 m north of the centre, whatever the stretch, so in a stretched world the normal land between there and the Deep North looks snow-covered. It is only the look: biomes, weather, vegetation and locations are correct.

Installation

  1. Install denikson-BepInExPack_Valheim 5.4.2202 or newer.
  2. Install Riverheim (Gurebu-Riverheim) 1.3.x, which brings Worldhalla with it, or 1.2.x, on the server and every client.
  3. Install this mod on the server and every client.
  4. Start once to create BepInEx/config/com.valheim.riverheim.config.cfg, then edit that file on the server, or write it with the AtlasBuilder UI's Export config.

Changing settings without restarting: the mod notices when the config file is saved, on a server or a client, and uses the new values for the next world that is created or loaded. A world that is already running keeps its terrain until it is loaded again. In single player you can also edit every setting from inside the game with a configuration manager (the F1 menu, for example Azu's UnOfficial ConfigManager); it shows each setting's description and allowed range. On a server, the server's file wins: it is sent to every player who joins.

Presets

Ready-made settings in the presets folder of the repository. Copy one over BepInEx/config/com.valheim.riverheim.config.cfg, or pick it from the AtlasBuilder UI's Import config menu to see your seed first. Every map below is seed 400.

Every preset on seed 400

How they were checked, with Riverheim 1.2.1 (numbers for every preset in docs/PRESET-TESTS.md):

  • Biomes: generated on 13 seeds; every progression biome on every seed, with Meadows at least 5% and every other biome at least 3% of the land (the wild presets list their exceptions).
  • Boss and trader locations: a fresh world on 3 seeds on a dedicated server, using Valheim's own placement rules. Moder's altar, Hildir's cave and camp, the Bog Witch and every other key location have room to place on every seed (the wild presets list their exceptions). Stock Riverheim itself sometimes has no room for the Drake or Fortress Mountain variants of Valheim 1.0's alternative biomes; some presets share that.

Classic shape

Riverheim's own land shape with one thing changed.

Preset What you get
Long Journey Every biome band pushed outwards: a long, gentle start and a far-off endgame.
Short Journey Every biome band pulled towards spawn: harder biomes come early.
Highlands Steeper land and much taller mountains (the highest reach 370-750 m, stock about 370 m), about 40% more Mountain biome and rock-terraced river banks.
Gentle Lowlands Broad flat lowlands, softer terrain and a big gentle start around spawn. Mountains stay, but fewer.
Tidy Biomes The same world with bigger, cleaner biome patches: tiny islands removed, Black Forest in about half as many patches.
Deep Forest Black Forest covers 43% of the land (stock 24%), with more of the lowland forest near spawn and more marsh.
Wetlands About twice the Swamp, plus more marsh, sitting lower in the water.

Continents

One big landmass: long overland journeys, with rivers, lakes or an inland sea as the way around.

Preset What you get
Pangaea One huge supercontinent with few islands: long overland journeys, little sailing.
Great Rivers A supercontinent cut by a few huge, looping Amazon-style rivers.
Great Lakes A supercontinent with big lakes strung along its rivers.
Inland Sea A supercontinent around a vast central sea, its lands laced with wide channels and rivers.
Heartland One big continent with a solid Black Forest heartland and a ring of Plains and Mistlands outside. Biome patches are much bigger than stock, and Meadows twice as common.

Islands

A sailing world.

Preset What you get
Archipelago Scattered islands everywhere, with about twice the Meadows so the outer islands have some too.

Rings

Land wrapped around a big central sea, so most coasts are a short sail from each other.

Preset What you get
Horseshoe Lakes A horseshoe of land around a central sea, with rivers that open into lakes.
Great Eye A dense ring continent around a big oval sea, with gentle cliff-lined rivers.
Lake Ring A ring of land around a central sea, dotted with lakes, on hilly highland ground.

Spirals

Continents wound into spiral arms around the centre.

Preset What you get
Whirlpool Five broad spiral arms with a wide solid start, many rivers, tall mountains and rock-terraced banks. Played on a live server.
Pinwheel A big five-armed continent wound round a central sea, its arms joined into one landmass: long coasts, short sea crossings.
Pinwheel Rivers Pinwheel with a wetter climate: more rivers and small lakes winding through its arms, on highland ground.
Hurricane Lakes A dense hurricane swirl of land with lakes everywhere, on highland ground.

Wild

Deliberately extreme. Each keeps every progression biome but pushes one thing hard and has a catch, listed here. Try your seed in the AtlasBuilder UI first.

Preset What you get
Horseshoe Waterways A horseshoe of land with broad rivers that open into lakes at almost every confluence and bend: you can sail most of the way across. Catch: on some seeds only a handful of places fit Moder's altar.
Atoll One central island in open sea with scattered islets: a sailing start. Catch: very little land (about a third of stock), so Moder's altar, Hildir's camp and the Bog Witch have few places on some seeds.
The Alps Mountains everywhere: about a third of all land is Mountain. Catch: Meadows is small (about 4% of the land).
Meadow Empire Meadows cover a third of the land, with big lakes and a large central harbor. Catch: Swamp is small (about 3%) and the Bog Witch has nowhere to place.
Biome Chaos Every biome can appear anywhere, even next to spawn. Catch: Plains and Mistlands may be close to spawn.

More wild presets, from two searches of several hundred worlds, are in presets/wild; those are generated on several seeds but not checked for boss and trader locations. Presets retired in 3.1.0 are kept in presets/archive. presets/Defaults.cfg lists every setting at Riverheim's own value.

Important

  • Riverheim terrain generation must match between server and clients. Keep Riverheim and this mod at identical versions across the group.
  • Changes apply whenever Riverheim generates terrain, to every world. Treat a configuration change as a new-world decision; do not change it for an established world without a tested backup. (Riverheim stores only its preset name and version in a world, not these values, so the mod cannot keep per-world settings yet. See docs/preset-handler-notes.md in the repository.)
  • Coming from 1.0.4, the previous release: it was made for Riverheim 0.12, whose settings no longer exist, so 3.0 writes a fresh set of sections and the old 1.0.x entries do nothing. Start from presets/Defaults.cfg or one of the presets above.
  • AtlasBuilder 1.0.0 bundles a Riverheim from before 1.1.1. The AtlasBuilder UI's Installed Riverheim choice draws with your own Riverheim instead, so its previews match the game, including the lowland Black Forest settings (ForestLowlandsWeight, ForestLowlandsShaping*); with its Bundled choice those settings do nothing.
  • This mod only exposes settings that map to real Riverheim 1.2 configuration fields, and each one was checked to visibly change a map of a test seed drawn by Riverheim 1.2.1 itself (run inside AtlasBuilder). Descriptions say what the field does as far as it is understood; the AtlasBuilder UI is the way to see what a value does to your seed.
  • Some values make Riverheim throw an error instead of generating a world, so the mod refuses them: RainfallMinimum at exactly 0 (the lowest allowed value is 0.001), MinWidth below 2 (at 0 Riverheim runs out of memory; the lowest allowed value is 3), and a WorldRadius from 7800 to 9000 m, where the world edge runs into the Ashlands and Deep North belts (the mod keeps Riverheim's own radius and logs why). The descriptions say so. What the game shows when that happens was not tested; AtlasBuilder aborts.

Troubleshooting

  • Check BepInEx/LogOutput.log for Riverheim configuration patch applied and Applied Riverheim config.
  • If the log says ConfigManager.GetConfig was not found, Riverheim 1.2.x or 1.3.x is not installed or an incompatible build is loaded.
  • If it lists settings that were not applied, do not generate a production world; the upstream configuration layout has changed and this companion needs an update.
  • A warning This Riverheim build has no field for: ... means an older Riverheim is installed; those settings are left out.

Build and test

dotnet msbuild src\RiverheimConfigTest.csproj -t:Rebuild -p:Configuration=Release
dotnet build tests\RiverheimConfig.Tests -c Release
dotnet tests\RiverheimConfig.Tests\bin\Release\net8.0\rhconfig-test.dll check Gurebu-Riverheim\Riverheim.dll
.\tests\Run-AtlasTests.ps1

tests/README.md describes the checks: every field path against the real Riverheim.dll, and AtlasBuilder renders proving that stock values reproduce --preset Default byte for byte and that every setting changes the map. The renders run the installed Riverheim 1.2.1 inside AtlasBuilder (which needs a Valheim install with BepInEx; -Engine Bundled uses AtlasBuilder's own older Riverheim instead). Run ./package.ps1 after a successful build to create the Thunderstore archive.