Skip to content

Enshrouded 1.0 is out! 🎉 Get 25% OFF your next Enshrouded Server today!

How to install BepInEx and mods on your Valheim server

Install BepInEx in one click from the Mods tab or by hand, add Thunderstore mods with their dependencies, and keep players' mods matching the server.

Updated 8 min read

Valheim mods run through BepInEx, a small loader that sits beside the game and loads .dll mods on start. Your panel's Mods tab installs BepInEx in one click and installs mods from Thunderstore with the other mods they need. The File Manager route further down still works, for a mod that is not on Thunderstore or when you want to place the files yourself.

Before you start

  • Take a backup from the Backups tab. Mods change how the world is saved, and a backup is the fast way back. How to create and restore backups covers restoring one.
  • Decide who is joining. Most mods must be installed by every player too, and console players cannot install mods at all, so a modded server is a PC-only server. See the crossplay note below.

Install BepInEx from the Mods tab

  1. Open the Mods tab. A fresh server shows a BepInEx isn't installed card.
  2. Click Install BepInEx, then Install in the box that opens. The panel downloads BepInExPack Valheim (5.4.2351, the release we have booted on our own servers), puts it in the server folder and sets Crossplay to 0 for you.
  3. Restart the server. On the way up the console shows [PYW] BepInEx detected - loading it with the server., then User is running BepInExPack Valheim version 5.4.2351, and finally Chainloader startup complete (0 loaded, 0 skipped, 0 failed). That last line is the proof it loaded. BepInEx also creates BepInEx/plugins and writes BepInEx/LogOutput.log on this first run.

If the card says there's already a BepInEx folder without the loader in it, an earlier upload was left half done. Move or delete that folder in the File Manager and the button works again.

Add mods from the Mods tab

  1. In the Store view, search for the mod and click Install.
  2. If the mod needs other mods, such as the Jotunn library, a Needs 1 more add-on box lists them. Install all puts them on too, which is almost always what you want.
  3. With no recent backup the panel asks first: Go to Backups, or install anyway.
  4. Restart. The console prints one line per mod, such as Loading [PlanBuild 0.20.0] (marcopogo.PlanBuild), and the closing Chainloader startup complete line counts what loaded, was skipped and failed.

Each mod lands in its own folder in BepInEx/plugins, named like MathiasDecrock-PlanBuild, the same layout r2modman uses. The Installed view lists every mod on the server, including ones you uploaded yourself, and has Update all, plus a Disable button on each mod to turn it off without deleting it.

Each mod writes its own settings file to BepInEx/config on its first run, named after the mod's ID (for example advize.PlantEverything.cfg). Edit those in the File Manager, then restart again.

What mods cost in boot time and memory

Measured on a 4 GB server in October 2026, from start to the DungeonDB Start line (the world is ready for players a few seconds later):

SetupBootMemory at idle
Plain Valheim28 to 35 sabout 1.35 GB
BepInEx, no mods31 sabout 1.37 GB
BepInEx with Jotunn, PlanBuild and PlantEverything34 to 36 sabout 1.46 GB

BepInEx itself costs almost nothing. Big content mods with many assets cost more, so add them a few at a time and watch the server's memory in the panel after each restart.

Install BepInEx by hand

  1. Download BepInExPack Valheim from Thunderstore (the pack made for Valheim, not the generic BepInEx release) and extract the zip on your PC.
  2. Open the extracted folder, then the BepInExPack_Valheim folder inside it. The README.md, CHANGELOG.md, icon.png and manifest.json beside that folder stay on your PC.
  3. In your server panel, open the File Manager at the home folder (the top level).
  4. Upload everything inside BepInExPack_Valheim: the BepInEx folder, the doorstop_libs folder and the loose files beside them (doorstop_config.ini, .doorstop_version, winhttp.dll, changelog.txt and the two start_..._bepinex.sh scripts). Keep the folder structure as it is in the zip. The File Manager can't upload a folder, so select all of those on your PC, compress them into one .zip, upload that zip to the home folder and choose Extract here on it. Delete the zip once it has unpacked. How to manage your server files covers Extract here.
  5. Set Crossplay to 0 in the Startup tab and click Save (the next section explains why).
  6. Restart the server and look for the same console lines as in the Mods tab route above.

The pack's BepInEx folder holds only config and core. The plugins, patchers and cache folders appear after the first restart, so nothing is missing before then. Older guides also list an unstripped_corlib folder, which the pack stopped shipping in 2023.

Add mods by hand

  1. Download the mod from Thunderstore and extract it. Many mods keep their files in a plugins folder inside the zip: what goes on the server is what is inside that plugins folder, either a .dll on its own or a folder holding the .dll and its assets.
  2. In the File Manager, upload a lone .dll straight into BepInEx/plugins. A folder goes up the same way as BepInEx: zip it, upload the zip into BepInEx/plugins and choose Extract here.
  3. Install the mods it depends on the same way first. The mod's Thunderstore page lists them, and the Mods tab's Installed view shows hand-added mods too.
  4. Restart and look for its Loading [...] line in the Console.

Match the client and the server

This is where most modded Valheim problems come from. For any mod that changes gameplay (new items, new building pieces, changed recipes), every joining player needs the same mod at the same version installed in their own game, or they are refused with a version-mismatch message or see broken items. Purely server-side mods (better server performance, admin tools) are the exception, and their Thunderstore page will say "server-side only".

The easy way to keep a group in step is to hand out the server's own list:

  1. In the Mods tab, open Installed and click Export for players, then Create code.
  2. Share the code. Players paste it into r2modman or the Thunderstore app (Import profile, From code) and get BepInEx and the server's mods at the same versions.
  3. After you update a mod on the server, create a new code and share it the same day.

Mods you uploaded by hand that are not on Thunderstore are left out of the code, and the export box says which.

Crossplay

A modded server should run with Crossplay at 0 in the Startup tab. The Mods tab's BepInEx install sets it for you; after a manual install, set it yourself, click Save, restart and reload the page. With crossplay on, the game routes every connection through its crossplay network, Xbox and Game Pass players cannot install mods, and mods do not mix reliably with that networking. Steam players then join by IP with the server address in the panel's left rail, as Valheim server: join code, crossplay, mods explains.

Going back to vanilla

Delete the BepInEx folder (or rename it) in the File Manager and restart. The server detects that BepInEx is gone and boots plain Valheim: the [PYW] BepInEx detected line no longer appears. Your world files are separate and are not touched.

Common problems

  1. "Incompatible version" when a player joins - a mod is missing or on a different version on their side. Send them a fresh code from Export for players, or compare their mod list to the server's Installed view.
  2. The console says Could not load [...] because it has missing dependencies - the line names what is missing, for example com.jotunn.jotunn (v2.30.1 or newer), which is Jotunn. Install that mod (the Store finds it by name), then restart.
  3. The mod is in the folder but nothing changed in-game - check the console for an [Error line naming it. A .dll inside a subfolder of plugins still loads, a .dll inside a zip does not.
  4. Everything broke after a Valheim update - BepInExPack and many mods need a new release after each game patch. Use Update all in the Installed view once the mods have updated on Thunderstore, then restart.
  5. Where are the logs? - BepInEx/LogOutput.log in the File Manager has the full load log with every mod's messages. If you need help, put the exact console error and the lines around it from this log in your ticket.
  6. The console says libdoorstop_x64.so is missing - the upload came from the generic BepInEx release, or the doorstop_libs folder was left behind. Upload everything inside BepInExPack_Valheim from the Thunderstore pack again, then restart.
  7. The console says BepInEx was detected, but there is no BepInEx/LogOutput.log - BepInEx did not start. Upload the pack again as in the manual route and restart. If the log still does not appear, open a ticket with your server name, because the rest of the fix is on our side.

Was this guide helpful?

Still stuck?

Talk to a real person, we answer fast.

  • Open a ticket

    Paste the exact error and name your server, so we can look at it from our side.

  • Ask on Discord

    Chat with the team and other server owners.

  • Browse the Help Centre

    Versions, mods, plugins, backups and RAM sizing, all in plain English.

Ready to launch your Valheim server?

Aussie hardware, NVMe disks and DDoS protection, with the version and mod loader yours to change whenever you like.