GroundReset
Automatically and gradually resets the terrain across the map, taking into account player's wards and market zones. Fully server-side
About this mod Author’s original text
GroundReset
A dedicated server mod that restores terrain back to its original state gradually over a configurable rate.
About
GroundReset is a dedicated server mod that gradually resets the ground terrain across the map automatically.
No terrain changes occur for areas within:
- Wards from vanilla Valheim
- Wards from AzuMatt's WardIsLove mod
- Wards from ArcaneWard mod
- Marketplaces from KGValheim's Marketplace and NPCs mod
How It Works
Terrain across Valheim is generated by the game with a heightmap, composed of a very large set of point values. This mod
identifies changed terrain and calculates the amount of change done to the original heightmap value, known as the
current delta value. The current delta value is positive or negative depending on if the ground has been lowered or
raised from its initial height.
- This mod will divide the current delta value by the Divider value set in the configuration for each point to get the
fraction amount to change the terrain by and towards the value of 0.
- Every amount of minutes defined in TheTriggerTime value in the configuration will have the mod modify the current
delta value by the fraction amount calculated by the division of current delta value by the Divider.
- When the value of the point is close enough to 0 (as defined by `Min Height To Stepped Reset`), the terrain fully
resets to the original height assigned to by the game at the start of the world.
- Points located in the area of the active ward or the territory of a marketplace are not touched.
Install Notes
Install only on dedicated servers. This mod should not be installed on clients. Players do not need to install this mod
on their side.
Configuration
Configuration values can be changed while in-game using a Configuration Manager mod. Otherwise, please
open `GroundReset.cfg` created in the "BepInEx\config" folder to manually modify configurable values.
The two important values are:
- `TheTriggerTime` \[Float]: The interpolation rate. This is the amount of real-clock minutes before the mod
progresses
to another round of changes for all modified points on the map that are not protected or in a marketplace
territory.
- `Divider` \[Float]: The divider for the terrain restoration. Setting this higher will make changes more gradual and
will require more time to get to the original terrain value.
For more detailed configuration, use the configs below:
- Paint To Ignore \[Boolean]: List of terrain paints that will be not reset. Valina paints are Dirt, Cultivated, Paved, Nothing. '(Cultivated), (Paved)' means that Cultivated and Paved paints won't be reset. For paints from mods you can pass color in rbga format '(r, b, g, a)'
- Reset Smoothing \[Boolean]: Should the terrain smoothing be reset
- Process Paint Lastly \[Boolean]: Set to true so that the paint is reset only after the ground height delta and
smoothing is completely reset. Otherwise, the paint will be reset at each reset step along with the height delta.
- Process Smoothing After Height \[Boolean]: Set to true so that the smoothing is reset only after the ground height
delta is completely reset. Otherwise, the smoothing will be reset at each reset step along with the height delta.
Read the configuration file for other adjustable values.
Compatibility
Marketplace And Server NPCs
WardIsLove
Arcane Ward
Credits
Discord — justafrogger
Mod page
This mod was commissioned by
VitByr. If you need a custom mod, do not hesitate to reach me out 😉.
Also, many thanks to
gdragon for the help with writing this text
If something does not work for you, you have found any bugs, or have suggestions — DM me or open a github issue
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: