BepInEx and Valheim mods on a dedicated server
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
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:
- Download the mod's
.dllfrom its source (Nexus Mods or the Valheim modding Thunderstore). - Drop the
.dllintoBepInEx/plugins/. - 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:
- Stop the server.
- Back up the entire server directory.
- Replace BepInEx files. Critically: do NOT replace the
plugins/andconfig/directories. Those are yours. - 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.
Keep reading
Mod version mismatches, how to read the error and fix it
Modded multiplayer is fragile. Every mod must be the same version on the server and on every client. One tiny mismatch and players can't connect. The error messages are sometimes precise, sometimes vague. This article translates.
Keeping a modpack updated without rolling back everyone's progress
A modpack update lands. There's a juicy new feature, or a critical bug fix. You want to update. You also don't want to wake up tomorrow to "I logged in and my entire base is missing blocks."
Valheim dedicated server vs in-game hosting, when to switch
Valheim's "host a game in-game" feature is convenient. It's also the source of a lot of group frustration after about three weeks. This article explains when in-game hosting is the right choice, when to migrate to a dedicated server, and...