How to Update a Valheim Server Without Breaking Mods

Updating a modded Valheim server safely is a matter of order, not luck. Back up the world and the whole BepInEx folder, check whether your mods have been updated for the new game build before you patch, then run the SteamCMD update, confirm BepInEx survived it, and have one person test-join before the group piles in. The failure everybody hits is patching first and discovering afterwards that a mod your world depends on hasn’t caught up.

Why updates break mods

Mods hook into game code that moves. BepInEx plugins patch methods inside the game; a new build can rename, restructure, or remove what they were patching. A plugin built against the old build then throws on load — or worse, loads and misbehaves.

Clients update themselves; servers don’t. Steam patches every player’s client automatically. Your server stays on the old build until you run SteamCMD, which means the moment a patch lands, your server is out of date and updated clients can’t connect. That pressure to patch right now is exactly what makes people skip the compatibility check.

SteamCMD can disturb loader files. The update writes the game’s files, including the ones BepInEx sits alongside in the server root. A validating update in particular can remove or replace files it doesn’t recognise as belonging to the install.

Step 1: Back up before anything else

Two things, both mandatory:

  • The world pair<World>.db and <World>.fwl from worlds_local, plus the .old copies if you want them.
  • The entire BepInEx folder — plugins, configs, and logs. The configs are the part people regret: they encode every tuning decision you’ve made, and rebuilding them from memory is miserable.

Run the console save command first so the world on disk is current, then stop the server and archive:

sudo systemctl stop valheim
tar czf ~/pre-update-$(date +%Y%m%d).tar.gz \
  -C /home/valheim/.config/unity3d/IronGate/Valheim worlds_local \
  -C /home/valheim/server BepInEx

Keep it until you’re confident the update went well. Restore procedure: How to Restore a Valheim World From a Backup.

Step 2: Check mod compatibility before patching

This is the step that separates a ten-minute update from a ruined evening.

  • Read each mod’s page for a note about the new game build. Mod authors usually say explicitly whether an update is required or whether the existing version still works.
  • Pay special attention to framework and library mods. If a shared dependency hasn’t been updated, everything built on it is stuck regardless of the individual mods’ status.
  • Check your own list, not a general “are mods working?” question. One unmaintained plugin is enough to hold you up.

If something critical hasn’t been updated, you have a real decision:

  • Wait. Don’t patch the server; tell your group not to play until the mod catches up. Steam will have already updated their clients, so they can’t connect anyway — which is annoying but honest.
  • Drop the mod. Fine for cosmetic plugins, dangerous for anything that has written data into your world.
  • Pin the server to the old build. SteamCMD can request a specific build, but it’s fiddly, needs matching clients, and gets more painful the longer you do it. A short bridge, not a strategy.

Step 3: Patch the server

With the server stopped:

steamcmd +force_install_dir /home/valheim/server +login anonymous +app_update 896660 validate +quit

Two notes. +force_install_dir must come before +login, or it’s ignored. And validate is a double-edged tool on a modded install: it repairs corruption, but it’s also the setting most likely to touch files that aren’t part of the vanilla install. If you’re confident the install is healthy, a routine update without validate disturbs less. SteamCMD detail: SteamCMD for Valheim: What It Is and How to Use It.

Step 4: Check that BepInEx is still intact

After patching, look at the server root — the directory holding the server binary — and confirm the BepInEx folder and its loader files are still present. If the update removed or replaced any of them, reinstall the BepInEx pack for Valheim over the top, then restore your BepInEx/plugins and BepInEx/config folders from the backup you took in step 1.

This is also the moment to update the plugins themselves, if the compatibility check in step 2 said you should. Keep dependencies at the versions each mod asks for.

Step 5: Launch and read the log

Start the server and go straight to the BepInEx log:

sudo systemctl start valheim
tail -n 200 /home/valheim/server/BepInEx/LogOutput.log

You’re looking for each plugin loading without an error. A plugin that fails here is almost always a missing dependency or a build mismatch — and it’s much easier to see now than to infer later from a player’s complaint. Also check the game’s own output for a fully loaded world.

Step 6: Update the client profile, then test with one person

The server is half of it. Every player needs a matching mod set, and “the same mod” isn’t enough — it has to be the same version.

  1. Update the shared client profile in your mod manager.
  2. Re-export it and send it to the group.
  3. Have one person import it and join.
  4. Only then invite everyone.

A single test-join catches mismatches while there’s still one variable to change. Profile workflow: Installing Valheim Mods on Your Server with BepInEx.

If it goes wrong

Server won’t start after the update. Launch it without BepInEx once. If vanilla starts fine, the problem is in your plugin folder — remove plugins, add them back in batches, and watch the log.

Server starts, clients can’t connect. Usually a mod mismatch, which presents as a timeout rather than a helpful message: Why Valheim Says Connection Timed Out — and How to Fix It.

A mod loads but behaves oddly. Its config may have been regenerated with defaults — compare against the config folder in your backup. And if the world looks wrong, stop immediately and restore from the pre-update archive before more play writes over it.

A repeatable routine

Keep this as a checklist next to your start script: save, stop, back up world and BepInEx, check mod compatibility, patch, verify the loader, start, read the log, update the shared profile, test-join with one person, then announce it. Done in that order, a game patch on a modded server is a boring twenty minutes rather than an event.