BepInEx and Valheim mods on a dedicated server

Jan 14, 20265 min read#valheim#modpacks

BepInEx and Valheim mods on a dedicated server

Valheim doesn't have a Bethesda-style mod menu. To mod the game, you install BepInEx, a third-party mod loader. On a dedicated server, the install process has a couple of quirks worth knowing about.

This article walks through it cleanly.

What BepInEx is

BepInEx is a generic Unity mod-loading framework. It hooks into the game at startup and lets mod files (.dll plugins) inject behavior.

For Valheim:

  • BepInEx is the platform.
  • Individual mods (Equipment and Quick Slots, PlantEverything, DiscordConnector, etc.) are plugins that BepInEx loads.

To run mods, you install BepInEx, then drop plugin DLLs in a folder.

The cardinal rule of Valheim mods

Your client mods and your server mods must match. A vanilla client cannot join a modded server with content mods. A vanilla server cannot serve a client requiring server-side mods.

A few mods are "server-only" (admin tools, anti-cheat). A few are "client-only" (UI improvements). Most are universal.

The mod's documentation tells you which it is. Read it. Always.

Installing BepInEx on a Valheim dedicated server

No

Yes

Stop the dedicated server

Download BepInExPack_Valheim
from Thunderstore

Extract into the server directory
alongside valheim_server.x86_64

Use start_server_bepinex.sh
NOT the raw binary

Update systemd ExecStart
to point at the BepInEx script

Start the server

Log shows BepInEx loaded?

Check doorstop_libs path,
start script permissions

Drop a test mod DLL
in BepInEx/plugins/

Restart, confirm mod loads

Distribute mod list to clients

Step 1: Stop the server

Always.

Step 2: Download BepInEx

The canonical pack is BepInExPack_Valheim on Thunderstore (maintained by denikson and the community team). It ships with start scripts for both the client and the dedicated server in a single download. Use this pack for either install; pick the right start script when you launch.

Step 3: Extract into the server directory

The pack contains:

BepInEx/
  core/
  plugins/
  config/
  cache/
doorstop_libs/
start_server_bepinex.sh    (Linux)
start_server_bepinex.bat   (Windows)
winhttp.dll                (Windows)

Drop all of these into the same directory as valheim_server.x86_64 (or valheim_server.exe).

Step 4: Use the BepInEx start script

Instead of starting valheim_server.x86_64 directly, run start_server_bepinex.sh. It sets up the environment for BepInEx to inject into the game.

If you use systemd, your service should invoke the BepInEx start script:

ExecStart=/home/valheim/server/start_server_bepinex.sh

Step 5: Verify BepInEx loaded

In the server log, look for lines like:

[Info   :   BepInEx] Loading [...]
[Info   :   BepInEx] BepInEx 5.4.23.x - Valheim_server

If you see those, BepInEx is loaded. If not, the doorstop_libs or start script isn't running.

Installing mods

Once BepInEx is working:

  1. Download the mod's .dll from its source (Nexus Mods or the Valheim modding Thunderstore).
  2. Drop the .dll into BepInEx/plugins/.
  3. Restart the server.

The server log should report the mod loading. Errors here usually mean a version mismatch with BepInEx or with Valheim itself.

Configuration files

Most mods generate a .cfg file on first load, in BepInEx/config/. Edit, restart server. Some mods reload config on the fly; most need a restart.

Don't forget that any config changes you make on the server must be matched by clients if the mod expects client-server agreement on values.

Common mistakes

Forgetting to use the BepInEx start script.

Booting the vanilla valheim_server binary skips BepInEx entirely. Server runs but no mods load. Use start_server_bepinex.sh (or .bat) instead.

Clients not having matching mods.

Players try to connect, get rejected for "version mismatch" or "different mod set." Distribute the full mod list to every client.

Updating Valheim without updating mods.

When the game updates, mods often need updates too. After a Valheim version bump, expect a few days of "wait for mods to catch up" before re-enabling.

Useful mods for dedicated servers

Valheim Plus: a long-running Swiss-army-knife balance mod. The original project is effectively discontinued; the community has largely moved to Grantapher's fork on Nexus Mods or to individual standalone BepInEx plugins. Check current status before adopting.

ServerCharacters: lets the server hold authoritative copies of characters (instead of client-side). Useful for hardcore communities that don't trust client-side saves.

EpicLoot: adds magic items and loot tiers. Universal. Great for a "longer playthrough" feel.

DiscordConnector (nwesterhausen): webhook-based bridge to Discord for events and announcements.

For server admins specifically:

  • AdminCommands extensions: more in-game admin tools.
  • UnrestrictedPortals / ProgressionPortals: portal mods that change the no-metals rule.
  • Anti-AFK / kick mods: keeps slots from being held by AFK players.

Should you mod at all?

A genuine question. Modded Valheim is more game, but:

  • More complexity to maintain.
  • Updates break things.
  • Players who don't want mods can't join.
  • The vanilla game is genuinely good.

For a small friend group on a long playthrough, modest mods (a couple of QoL ones) enhance the experience meaningfully. For a fresh, casual playthrough, vanilla is fine.

Don't mod just because you can. Mod because the vanilla experience has a specific friction you want to remove.

Updating BepInEx

When BepInEx updates:

  1. Stop the server.
  2. Back up the entire server directory.
  3. Replace BepInEx files. Critically: do NOT replace the plugins/ and config/ directories. Those are yours.
  4. Restart with the BepInEx start script.

A clean install checklist

[ ] Valheim dedicated server installed and working vanilla
[ ] BepInExPack_Valheim downloaded from Thunderstore
[ ] BepInEx extracted to server directory
[ ] start_server_bepinex.sh / .bat in place
[ ] systemd service (or whatever) updated to invoke the BepInEx start script
[ ] Server starts; log shows BepInEx loaded
[ ] One test mod installed and verified loaded
[ ] All players given the same mod list and matching mod files
[ ] Connection tested end-to-end

Conclusion

BepInEx on a Valheim dedicated server is straightforward if you know to use the right pack and the right start script. The hardest parts are typically the social ones: keeping client and server mod lists in sync, communicating updates. The technical setup is a one-evening job.


Hosting your game server with AndroHost means we handle most of what's in this post for you automatically: tier sizing, SRV records, off-site backups, DDoS protection.

Browse plans·More posts·Discord