DeepNorthTerrainFix
Fixes lost Deep North terraforming, portal hangs and snow seams caused by duplicate terrain compilers. Install on the server only; players need nothing (client install optional).
About this mod Author’s original text
DeepNorthTerrainFix
Created by FlorpyDorp. MIT licensed.
Fixes the Valheim 1.0 Deep North bug where a zone's terraforming vanishes, players get stuck forever in a portal
or on the login screen while someone is standing in that zone, the terrain flickers between two shapes, and
hard seams appear along zone borders in the snow.
Server owners: drop it on the server and you're done. Your players do not need to install anything.
The server heals the world it already has, removes duplicate compilers and dead stroke objects the instant they
arrive (before any other player can see them), and refuses to let an unmodded game delete a zone's terraforming.
Vanilla clients keep connecting as normal; nothing about the network protocol changes. Players may also install
it on their own game for extras (a 25 s portal escape, prevention at the source, the snow-ridge fix for their own
strokes), but that is optional. One DLL works in both places.
Updating from 1.1.x? Do it now. 1.1.x on a server alone could still lose a zone's terraforming to an
unmodded player (see the changelog). Your existing config file is migrated on the first start:
PatchNetworkBudget is reset to false once (the log says so). Nothing else to do.
What it does
Heals the save
- On world load, every 2 minutes, and whenever a new terrain compiler arrives over the network, it finds
zones that have more than one _TerrainCompiler object, merges their terrain data into the one with the
most data, and removes the rest. The result is written with the next world save.
- Console commands to scan, fix, reconcile zone-border seams, or reset one zone's terrain (buildings kept).
Protects the terraforming (server)
- A duplicate that arrives is removed inside the receive path and is never forwarded to any other player.
- The server refuses a client's request to destroy the compiler that holds a zone's terraforming. An unmodded
game sends exactly that request when a duplicate appears on its screen while it owns the real one; vanilla
then deletes every stroke in the zone. The compiler is kept and re-sent to everyone instead.
Prevents new damage (client side, where terrain objects actually live)
- Reuses the zone's existing compiler instead of spawning a duplicate.
- When two compilers collide, keeps the one with data instead of whichever spawned first, and removes the
other properly so the create/destroy loop cannot start.
- Hard 25 s teleport timeout so nobody is trapped in a portal.
- Stops a hoe/shovel stroke that crosses a zone line from being applied twice on the shared column (the
one-vertex ridge along zone borders in snow).
- Optional: raises the Steam send-rate cap and ZDO budget (off by default), and throttles the per-piece
snow-buildup sync that floods the network at large bases during snowfall.
Cannot do: bring back terraforming that vanilla already deleted. For that you need a backup of the world
folder from before it happened (the mod only stops it happening again; the repository has an offline tool that
can copy one zone's terrain from a backup into the current save).
Install
- Install BepInExPack for Valheim on the
dedicated server (most hosting panels have a one-click BepInEx option).
- Drop DeepNorthTerrainFix.dll into BepInEx/plugins.
- Restart the server. That's it. The log (BepInEx/LogOutput.log) shows [heal on load] lines for every
zone it repaired, and the repaired world is written at the next autosave (every 30 minutes) or when an
admin saves.
Players can optionally install the same DLL on their own game for the client-side extras.
Back up your world folder before the first run. The mod changes world data.
No console access? (most hosting panels)
You don't need the console. Everything important is automatic: heal on load, removal of duplicates and dead
stroke objects as they arrive, protection of the real compiler, and a background sweep every two minutes. The
console commands below are diagnostics and manual tools.
If you do want them without c
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: