Skip to content
Sign inStart a server

Setup · 8 min read

How to install mods on a Valheim server with BepInEx and Thunderstore

Valheim mods run through BepInEx. Where plugins go, which mods players need too, how to read the log when one fails to load, and what a game update does.

Last checked

Short answer

Valheim mods are plugins for BepInEx, a mod loader, and most of them are shared on Thunderstore. Put BepInEx on the server first, then give each mod its own folder inside BepInEx/plugins and start the server. Mods that add items, creatures or recipes have to be installed by every player as well. Mods that only change how the server behaves need the server alone.

Which side a mod runs on and how a Thunderstore package is laid out come from Thunderstore, the Valheim-Modding wiki, Jotunn's documentation and BepInEx's own documentation, each read on 13 November 2026. The plans and log lines under On our servers are from a run on one of our servers on the same day.

Which kind of mod you have

The kind decides who installs it. Thunderstore's Valheim listing has Client-side and Server-side categories. Jotunn carries neither (its categories are Deep North Update and Libraries), so read its page.

Kinds of Valheim mod and who installs them
KindWhat it doesWho installs it
Content modWhat it doesAdds items, creatures, recipes or other things to the worldWho installs itThe server and every player
Server-side modWhat it doesIts logic runs on the serverWho installs itThe server; players can usually join without it
Client-side modWhat it doesChanges what one player sees or does, such as a minimap or tooltipsWho installs itEach player who wants it; the server needs no copy
LibraryWhat it doesCode that other mods build on, such as JotunnWho installs itWherever a mod that needs it is installed

Jotunn's documentation explains that a mod which adds a custom asset gives players without it a different game, and lists new and removed items among the changes that need the server and the other players to run the same version. The Valheim-Modding wiki lists server-side mods as not required on the clients, says client-only mods need no install on the server, and says some mods have to be on the server to synchronise settings or check versions, so keep the server's and the players' versions of a mod the same.

Players install the mods they need with a mod manager. The wiki's player pages name the Thunderstore Mod Manager and r2modman, and r2modman's Thunderstore page describes it as a mod manager for many games using Thunderstore.

Where mods go

BepInEx is the loader. The Valheim-Modding wiki says to use the BepInExPack_Valheim package from Thunderstore, which is BepInEx set up for Valheim, and to leave the generic BepInEx download on GitHub alone. The pack brings files beside the BepInEx folder, and the wiki says they go at the top level of the server's folder.

Each mod is a folder in BepInEx/plugins, named Team-Name the way its Thunderstore zip is. The layout on one of our servers, with Jotunn installed:

BepInEx/
  core/
  config/
  plugins/
    ValheimModding-Jotunn/
      manifest.json
      Jotunn.dll
      ...
doorstop_libs/
  libdoorstop_x64.so

A mod's Thunderstore page has a Required tab with the mods it depends on. Install those as well; the wiki's advice is to keep a mod's dependencies up to date.

A mod's settings are separate from its folder. BepInEx's documentation says a plugin's settings file is BepInEx/config/<id>.cfg, where <id> is the id the plugin gives itself, shown in round brackets on its Loading line in the log. Change settings with the server stopped.

Install a mod, step by step

  1. Stop the server. It reads its mods when it starts.
  2. Install BepInEx: download BepInExPack_Valheim from Thunderstore, unpack it on your PC, and copy everything inside its BepInExPack_Valheim folder into the server's main folder. For a Linux server, the pack's README says to make start_server_bepinex.sh executable with chmod u+x start_server_bepinex.sh, edit its launch parameters as you would Valheim's own launch script, and run it to start the server.
  3. Start the server once with no mods and look for BepInEx/LogOutput.log. The BepInEx docs say a first run makes the file, and the wiki says that if it never appears, no mods have loaded.
  4. On the mod's Thunderstore page, press Download for the zip, named Team-Name-version.zip, and install the mods on its Required tab the same way.
  5. Unpack the zip and put its files in a folder named Team-Name inside BepInEx/plugins.
  6. Start the server and read the log while it loads (the next section).
  7. Tell players which mods they need, and have them install the same versions.

When a mod fails to load

The server's log says what BepInEx did with each mod. The console shows it as the server starts, and BepInEx/LogOutput.log holds the same lines. The wiki's check is to stop the server, delete that file and start again: the log is rewritten at each successful start, and no file means BepInEx did not load. These lines are from our server with Jotunn installed:

[Info   :   BepInEx] 1 plugin to load
[Info   :   BepInEx] Loading [Jotunn 2.30.2] (com.jotunn.jotunn)
[Message:   BepInEx] Chainloader startup complete (1 loaded, 0 skipped, 0 failed)
  • The Loading line is BepInEx starting the mod: its name and version in square brackets, then the id it gives itself.
  • The Chainloader startup complete line is the summary at the end of the start. A server with no mods ends (0 loaded, 0 skipped, 0 failed), and a count above 0 in skipped or failed means a line above it says why.

BepInEx's source for the Valheim pack at version 5.4.2360, the version on our test server, writes these for a mod that is not loaded; we did not see them there, so they are worded as the source has them:

  • Could not load [<mod>] (<id>) because it has missing dependencies: <id>: a mod it needs is not installed. Install the mod named, from the first mod's Required tab. A dependency with a minimum version is shown as <id> (v<version> or newer).
  • Error loading [<mod>] (<id>) : <reason>: the mod started and failed. The wiki's FAQ says breaking changes in Valheim 1.0 affect some older mods, so look for a newer release on its Thunderstore page.
  • Skipping [<mod>] (<id>) at <folder> because a duplicate of it was already loaded from <folder>: the same mod is in two folders. Keep one.

If the log never mentions a mod, it is in a folder BepInEx is not reading: check it sits inside BepInEx/plugins. If the log says it loaded and players are refused, check they have the same mods at the same versions.

After a game update

A mod is built for one version of the game. The wiki's FAQ says Valheim's rapid bug fixes after 1.0 are highly likely to break mods, and that a mod that worked just the other day may stop working after a new update. How soon an author updates varies from a handful of days to a few months. The wiki adds that a game update can break the BepInEx pack as well, so check the pack's page for a new release.

Look at the mod's Thunderstore page for a release after the patch. The wiki says a Deprecated flag can mean the mod is known to be broken, or that its author has stopped updating it.

Valheim clients update by themselves, and our servers check for a game update every time they start.

On our servers

This section is about our Valheim servers only. Its plans and log lines are from a run on one of them with Jotunn 2.30.2.

  1. Open the server's Mods tab. It has three parts: Installed, Add mods and Mod loader. Mods run through BepInEx, so the loader comes first: while the server runs Vanilla Valheim, an upload is answered with "Mods run through BepInEx, and this server runs Vanilla Valheim."
  2. Put BepInEx's files on the server. Stop the server, then open Files & SFTP. The BepInEx card on Mod loader lists the three things it needs in the server's main folder: BepInEx/core/, BepInEx/config/ and doorstop_libs/libdoorstop_x64.so. They are inside the BepInExPack_Valheim folder of the pack's zip from Thunderstore, and they go in with the same folder names.
  3. Switch to BepInEx. With the server stopped, press Switch to BepInEx… on the card, then Switch in the plan, which checks the files first. The plan says "Starts the server through the BepInEx files already in its folder." Start the server: the console and BepInEx/LogOutput.log then carry BepInEx's lines, ending Chainloader startup complete (0 loaded, 0 skipped, 0 failed) while there are no mods. Vanilla Valheim on the same tab sets BepInEx's files aside and starts the server without it.
  4. Upload the mod's zip. Press Download on the mod's Thunderstore page and keep the zip's name as it arrives, such as ValheimModding-Jotunn-2.30.2.zip. In Add mods, press Choose a file and pick it. The panel checks every file in the zip and shows a plan that reads "Checks every file in ValheimModding-Jotunn-2.30.2.zip and puts 1 mod on the server" and names the folder, BepInEx/plugins/ValheimModding-Jotunn. The zip goes away once its files are in place.
  5. Press Install. The folder BepInEx/plugins/ValheimModding-Jotunn holds the mod's .dll files and its manifest.json; the package's readme, changelog and icon stay out. Installed lists the mod by its manifest's name and version, here "Jotunn" 2.30.2, switched on. A zip made on Windows, with backslashes in its file names, unpacks correctly.
  6. Start the server. Mods load when the server starts; the plan says so. With Jotunn in place the console and BepInEx/LogOutput.log carry the three lines above, and the server was running 50 seconds after pressing start.
  7. Upload the same mod again. The panel answers that BepInEx/plugins/ValheimModding-Jotunn is already on this server. To put a newer version of a mod in, remove the old one first, then upload the new zip.
  8. Switch a mod off and on. Each installed mod has a switch. The plan for switching off says "Switch off 1 mod. It stays on the server, ready to switch on again." The folder moves out of BepInEx/plugins and the next start reads 0 plugins to load. Switching on moves it back, and the next start loads it again. That is the quickest way to test the server without one mod.
  9. Remove a mod. The bin button on its row plans "Remove 1 mod. Its folder, with everything in it, is deleted from the server." and warns that the files go, so download a copy from Files & SFTP first if you want to keep it.

Mod rules checked against Thunderstore, the Valheim-Modding wiki, Jotunn's network compatibility documentation and the wiki's Xbox-Compatible-Mods page, BepInEx's documentation and the BepInExPack_Valheim README, each on 13 November 2026. The plans and log lines under On our servers, from BepInEx's files to the upload, a start with Jotunn, the second upload, and switching off, on and removing, come from a run on one of our servers on the same day. If players are refused, see the Valheim connection checks, and the Valheim server setup guide for the rest of the setup.

Related guides