ForgeWorld Gaming

Hosting guide

Valheim dedicated server mods with BepInEx

Continue to secure billing, Valheim · Dedicated server, CA$15.99 / month (Standard, 3 slots) Compare Valheim · Dedicated server plans

Add mods to a Valheim dedicated server: BepInExPack_Valheim, the Linux launch variables, the plugins folder, checking the log, and what players need.

Updated 21 October 2026

Valheim mods run on BepInEx, a loader that has to start with the game. On a dedicated server, the mod files alone do nothing until the server is launched with the loader. We installed BepInEx and two popular mods on Linux Valheim servers on our own panel and tested the server side below: where the files go, the launch, the log and restarts. The player-side advice comes from the mods' own documentation; no player connected during our tests.

1. Get the Valheim build of BepInEx

Use BepInExPack_Valheim from Thunderstore, not the plain BepInEx release. Its README describes it as a "BepInEx 5.4.23.5 pack but pre-configured for Valheim", maintained by Azumatt, Vapok and Margmas. Version 5.4.2351, from September 2026, is the one we tested. For help, the maintainers point you to the maintainer Discord the README lists, not the official BepInEx one: "DO NOT ASK FOR HELP in the Official BepInEx Discord", because the Valheim pack is customised. Iron Gate, Valheim's developer, does not support mods either: its 1.0 FAQ says "we don't have any official mod support".

Download it with the Manual Download button and unzip it on your own computer. The archive holds a folder named BepInExPack_Valheim; what goes on the server is the contents of that folder, not the folder itself:

BepInEx/
doorstop_libs/
doorstop_config.ini
start_server_bepinex.sh
start_game_bepinex.sh
winhttp.dll
changelog.txt

2. Put it next to the server

The pack's manual install step is to "Move the contents of BepInExPack_Valheim folder" into the game's folder. For a dedicated server, use the server's own folder, the one that holds valheim_server.x86_64 on Linux: the pack's start_server_bepinex.sh starts ./valheim_server.x86_64 from the folder you run it in. So BepInEx and doorstop_libs sit beside the server program, not inside another folder.

On Linux, the loader only starts if the server is launched with four environment variables. The pack's start_server_bepinex.sh sets them before it runs the server:

export DOORSTOP_ENABLED=1
export DOORSTOP_TARGET_ASSEMBLY=./BepInEx/core/BepInEx.Preloader.dll
export LD_LIBRARY_PATH="./doorstop_libs:$LD_LIBRARY_PATH"
export LD_PRELOAD="libdoorstop_x64.so:$LD_PRELOAD"

If you run your own server, make the script executable with chmod u+x start_server_bepinex.sh, put your usual launch options on its last line, and start the server with the script. A Linux server started any other way ignores BepInEx. We saw exactly that: with the files in place but the server launched directly, BepInEx did not load and wrote no log.

3. Add mods

Each mod goes in BepInEx/plugins, loose or in a folder of its own, with the files from its zip and not only the .dll. Jotunn's README, for example, says to "place all content" in BepInEx/plugins/Jotunn. The pack does not include a plugins folder, so create it. Check each mod's page for its dependencies and install those too. Use the newest version of each mod, and check its page or changelog for the Valheim version it supports. Your server's version is on the Valheim Version line near the top of BepInEx/LogOutput.log.

Unzip mod downloads on your computer, not on the server. Some Thunderstore zips store their paths with Windows backslashes. When our server unpacked Jotunn's zip, it made a single file literally named plugins\Jotunn.dll instead of a plugins folder holding Jotunn.dll. That is not the layout Jotunn's README asks for.

4. Check that the mods loaded

BepInEx writes its own log, BepInEx/LogOutput.log. In the 5.4.2351 pack, each mod gets a Loading line and the summary line ends with counts. These lines are from our server's log with Jotunn 2.30.2 and AzuCraftyBoxes 1.8.19:

[Message:   BepInEx] BepInEx 5.4.23.5 - valheim_server
[Info   :   BepInEx] Loading [AzuCraftyBoxes 1.8.19] (Azumatt.AzuCraftyBoxes)
[Info   :   BepInEx] Loading [Jotunn 2.30.2] (com.jotunn.jotunn)
[Message:   BepInEx] Chainloader startup complete (2 loaded, 0 skipped, 0 failed)

No LogOutput.log at all, or one older than your last start, means the loader did not start this time: check the launch, not the mods. A log from an earlier start stays in place, so check the file's modified time. A mod counted as skipped or failed is named a few lines earlier in the log. Mod settings appear in BepInEx/config, in files named after the mod's ID, written when the server starts with that mod. AzuCraftyBoxes wrote two, Azumatt.AzuCraftyBoxes.cfg and a .yml; Jotunn wrote none on our server. Edit them with the server stopped, then start it again.

5. What players need

Mods that add or change items, or send their own network messages, have to be installed by every player as well, in a matching version. Jotunn's documentation lists "New and removed items" and "Changed items" among the cases that need version synchronicity. The pack's README recommends a mod manager for players: Gale, Thunderstore Mod Manager or r2modman. r2modman can "Export profiles to easily share both your mods and configs with friends", so one person can build the mod list and everyone else imports it.

Mods can check this when a player connects. Jotunn's documentation says "a version check is initiated when the client connects to the server", and "If there is a version mismatch, the client will be disconnected with a version mismatch error". A mod built on Jotunn picks a level:

  • everyone must have it;
  • clients must have it if the server does;
  • the server must have it if a client does;
  • the version is compared only when both sides have it;
  • no check at all, which is what Jotunn applies to a mod that declares nothing.

Mods that do not use Jotunn can run their own check. AzuCraftyBoxes, one of the two we tested, says "If installed on the server, it will kick clients who do not have it installed."

Crossplay is the hard limit. Iron Gate says there is "no mod support for consoles", so players on Xbox, PlayStation 5 and Nintendo Switch 2 cannot install BepInEx. A mixed group can only use mods that need nothing from the players, and a mod that kicks players who do not have it, as AzuCraftyBoxes does, keeps console players out. On our server BepInEx loaded with crossplay switched on and the server opened its crossplay session as usual, but no player joined during our tests. Test with one console player before a session.

6. When a Valheim update breaks a mod

A game patch can leave mods behind until their authors update them. Before you start a modded world without its mods, keep a copy of the world, as with any big change. Then, if the server stops starting after an update or the log shows mods failing, start the server without mods: take BepInEx out of the launch, or move the mod out of BepInEx/plugins. Update the mods one at a time as new versions appear.

Where ForgeWorld Gaming fits

A ForgeWorld Gaming Valheim server has a Load BepInEx mods switch on the Startup tab. It is off by default. Turned on, the server launches with the four BepInEx variables above. Turned off, it starts without mods even when the files are still there. If mods changed your world, take a backup on the Backups tab and download it before you start without them.

Upload the contents of BepInExPack_Valheim to the top folder of the Files tab, next to valheim_server.x86_64. The panel cannot upload whole folders, so use SFTP; the details are on the Settings tab. Then create the BepInEx/plugins folder, which the pack does not include, and put each mod's files there. Single files can go through the Files tab, and Create Directory makes the folders. The panel's Unarchive keeps the zip's top folder, which is one more reason to unzip on your computer.

With the switch on, the Console tab shows BepInEx is on: loading mods from BepInEx/plugins just after the start command. Watch the console while the server starts: once the game is up, the line has scrolled out of the history the console shows. If doorstop_libs/libdoorstop_x64.so is missing, it says so and the server starts without mods. On our test servers, with these two mods, the modded server was running about 35 seconds after start, the same as without mods. BepInEx and the mods stayed in place through every restart with the Auto Update variable on. No Valheim update came out during our tests, so each update check found nothing new. Crossplay was on in every run. Last checked 2026-10-21.

Prefer renting to keeping your own server machine online? ForgeWorld Gaming currently offers Valheim Standard: 3, 5, 10 player slots at CA$15.99–CA$23.49/month. Hosted in Iowa, United States. Prices are in Canadian dollars, with no setup fee and cancel any time. Your server is set up automatically after payment. Continue to secure billing, Valheim · Dedicated server, CA$15.99 / month (Standard, 3 slots), or compare Valheim plans.

Common questions

How do I install mods on a Valheim dedicated server?

Put the contents of the BepInExPack_Valheim folder from Thunderstore next to the server program, and put each mod's files in BepInEx/plugins. On a Linux server, start it with the BepInEx launch variables, which the pack's start_server_bepinex.sh sets; a Linux server started any other way ignores the mods.

Why are my Valheim server mods not loading?

If BepInEx/LogOutput.log does not exist, the loader never started: the server was launched without the BepInEx variables, or the pack's files are not next to the server program. If it exists, check that its modified time matches your last start, because a log from an earlier start stays in place; then look for each mod's Loading line and the counts at the end of Chainloader startup complete.

Do players need the same mods as the Valheim server?

For mods that add or change items or send their own network messages, yes, in a matching version. Many mods check this when a player connects: mods built on Jotunn can disconnect a player with a version mismatch error, and AzuCraftyBoxes kicks players who do not have it. A mod manager such as r2modman can export a profile so everyone installs the same list.

Can Xbox or PlayStation players join a modded Valheim server?

Console players cannot install BepInEx; Iron Gate says there is no mod support for consoles. They can only play properly if every mod on the server needs nothing from the players, and a mod that kicks players without it, such as AzuCraftyBoxes, keeps them out. In our tests BepInEx loaded with crossplay switched on, but no player joined, so test with one console player first.

Where are the mod settings on a Valheim server?

In BepInEx/config, in files named after the mod's ID, written when the server starts with that mod. AzuCraftyBoxes wrote two files, a .cfg and a .yml, and Jotunn wrote none on our server. Edit them with the server stopped, then start it again.

Sources

Continue to secure billing, Valheim · Dedicated server, CA$15.99 / month (Standard, 3 slots)

Questions this guide did not answer? Email support@fwg.world for pre-sales help. No account or payment is required.