
You want to run Valheim mods, and every mod page starts with the same line: install BepInEx first. Since Valheim 1.0 came out on 9 September 2026, the Valheim build of BepInEx has had three releases and the game has had several patches, so older guides point at old files. This guide shows how to install BepInEx for Valheim on a Windows, Linux or Mac PC and on a dedicated server, how to check that it loaded, and what to do when a patch such as 1.0.21 breaks your mods. Versions checked on 3 November 2026.
Quick answer: To install BepInEx for Valheim, use BepInExPack Valheim from Thunderstore, version 5.4.2360 from 28 October 2026 (BepInEx 5.4.23.6). The easy way is a mod manager such as r2modman, Gale or Thunderstore Mod Manager: pick Valheim, install the pack and your mods, and start the game from the manager. By hand, extract the download somewhere else and move the contents of its BepInExPack_Valheim folder into steamapps\common\Valheim, so winhttp.dll, doorstop_config.ini and the BepInEx folder sit next to valheim.exe. A dedicated server needs the same pack in its own folder. When mods break after a patch, update the mods; BepInEx itself still loads on 1.0.21.
Which BepInEx Version Valheim 1.0 Uses
BepInEx is a general mod loader for Unity games. Valheim uses its own build of it, BepInExPack Valheim, which Azumatt, Vapok and Margmas maintain for the game. Its README lists what it changes: a preconfigured BepInEx.cfg with the console on and the right entry point for mods, scripts to start the game and the dedicated server on Linux, and a tweaked preloader. Because it differs from upstream BepInEx, the README asks you not to take Valheim questions to the official BepInEx Discord, but to the Valheim modding Discords it links.
The releases since 1.0, with their dates on Thunderstore:
| Pack version | Released | What changed |
|---|---|---|
| 5.4.2350 | 9 September 2026, the day 1.0 came out | BepInEx 5.4.23.5; mods with version numbers such as 1.2.0-beta.1 load instead of being skipped |
| 5.4.2351 | 24 September 2026 | The log shows each mod's ID and ends startup with counts of loaded, skipped and failed mods |
| 5.4.2360 | 28 October 2026 | BepInEx 5.4.23.6 and UnityDoorstop 4.6.0; Apple Silicon Macs can run mods without Rosetta |
5.4.2360 came out on the same day as patch 1.0.21, but its changelog doesn't mention the patch, and 1.0.21 didn't need it: a public server repository booted 1.0.21 on 5.4.2351 and logged 68 mods loaded, none failed. It is the current version, so install that one.
Keep in mind that Valheim has no official mod support. Iron Gate's 1.0 FAQ says it "cannot guarantee that any mods will be functional", and that there is no mod support for consoles either.
Install BepInEx for Valheim With a Mod Manager
The pack's README calls this the recommended way and names three managers: Gale, Thunderstore Mod Manager and r2modman. In r2modman (3.2.21 on 3 November) it goes like this:
- Install r2modman and pick Valheim on the game selection screen.
- Click Create new to make a profile. A separate profile per server keeps different mod sets apart.
- Open Online, search for
BepInExPack_Valheimand install it, then add your mods. Many mods pull in the pack as a dependency (Jotunn 2.30.2 lists 5.4.2333), but not all of them: AzuCraftyBoxes 1.8.19 lists no dependencies at all. Install the pack yourself, so it doesn't matter which kind you add. - Click Start modded. Start vanilla starts the same game without mods.
The Install with Mod Manager button on a Thunderstore page sends that mod straight to your manager. To give your friends the identical set, use Export profile and Export to code; they paste the code under Import / Update on their profile screen. Our Thunderstore mods guide has a ready message for your Discord.
On Linux, r2modman first shows a line to paste into Valheim's Steam launch options, "because of how the BepInEx injection works on Unix systems". Do that before you start modded.
How to Install BepInEx Manually on Windows
The manual steps from the README:
- Start from a clean, unmodified Valheim folder. Remove anything an older mod install left behind.
- On the pack's page, click Manual Download.
- Extract the zip into a separate folder, not into the game folder.
- Open the
BepInExPack_Valheimfolder inside it and move everything in it to<Steam library>\steamapps\common\Valheim. Steam opens that folder for you: right-click Valheim, then Manage and Browse local files. - Check the result.
winhttp.dll,doorstop_config.iniand aBepInExfolder sit next tovalheim.exe. If you see aBepInExPack_Valheimfolder in the game folder instead, you moved the folder rather than its contents, and BepInEx will not load. - Start Valheim from Steam. A BepInEx console window opens next to the game. Grey and white text is fine; red lines are fatal errors, dark red lines errors and yellow lines warnings.
The first start creates BepInEx\plugins and BepInEx\config. A mod you download by hand, from Thunderstore's Manual Download button or from Nexus Mods, goes in BepInEx\plugins: its .dll, or its whole folder if it comes with one, because BepInEx also loads DLLs in subfolders. The mod's config file shows up in BepInEx\config after the next start.
Linux and macOS Clients
Valheim has native Linux and macOS versions on Steam, and the pack has a start script for both. Move the pack's contents into the game folder as above, then:
- In the game folder, make the script executable:
chmod u+x start_game_bepinex.sh. - In Valheim's Steam properties, set the launch options. On Linux:
./start_game_bepinex.sh %command%. On macOS:/bin/bash ./start_game_bepinex.sh %command%. - Start the game from Steam.
On Linux the game gives no clear sign that BepInEx works, so check that BepInEx/LogOutput.log appears in the game folder after the first start. On an Apple Silicon Mac, 5.4.2360 runs the game natively by default; the maintainers note they haven't tested that with the pack themselves, so if mods don't load, set archpreference="x86_64" at the top of the script to go back to Rosetta.
If you run the Windows version through Proton instead, the Windows files apply and Wine has to load the pack's winhttp.dll. BepInEx's Proton guide does that with protontricks --gui: pick the game, choose the default wineprefix, run winecfg, and add winhttp as a new override on the Libraries tab.
Install BepInEx on a Valheim Dedicated Server
The dedicated server is its own Steam app (896660) in its own folder, so BepInEx in your game folder does nothing for it. It needs its own copy of the pack and its own BepInEx\plugins.
Windows server. r2modman has a Server tab with Valheim Dedicated Server, so you can keep the server's mods in their own profile there. By hand, follow the manual steps above in the server folder, steamapps\common\Valheim dedicated server, so the three files sit next to valheim_server.exe: BepInEx goes in the folder that holds the executable. Start the server with your edited copy of start_headless_server.bat, as Iron Gate's server guide advises, and check BepInEx\LogOutput.log in the server folder.
Linux server. The commands below follow our Valheim dedicated server guide: server in /home/valheim/server, worlds in /home/valheim/data, a systemd service called valheim that runs /home/valheim/start.sh. Stop the server and copy the pack in:
sudo systemctl stop valheim
sudo apt install unzip
su -l valheim
curl -L -o BepInExPack_Valheim.zip https://thunderstore.io/package/download/denikson/BepInExPack_Valheim/5.4.2360/
unzip -q BepInExPack_Valheim.zip -d bepinexpack
cp -r bepinexpack/BepInExPack_Valheim/. /home/valheim/server/
The pack also brings start_server_bepinex.sh. The README's way is to make it executable, put your launch parameters in it and start the server with it. If you already start from your own start.sh, add the four BepInEx lines from that script to it instead. They use paths relative to the server folder, so they come after the cd:
#!/bin/bash
# /home/valheim/start.sh with BepInEx
cd /home/valheim/server
export SteamAppId=892970
export LD_LIBRARY_PATH=/home/valheim/server/linux64:$LD_LIBRARY_PATH
# BepInEx, from start_server_bepinex.sh in BepInExPack Valheim
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"
exec ./valheim_server.x86_64 \
-name "Your Server Name" \
-port 2456 \
-world "Dedicated" \
-password "your_password" \
-savedir /home/valheim/data \
-public 1
Your start.sh sits outside the install folder, so Steam updates don't reset it. Put the server's mods in /home/valheim/server/BepInEx/plugins (if you built the set in r2modman, copy BepInEx/plugins and BepInEx/config from that profile's folder, which r2modman's settings show under Data and profile folders), then exit back to your own account and start the server:
sudo systemctl start valheim
grep -E "Valheim Version|Chainloader startup complete" /home/valheim/server/BepInEx/LogOutput.log
The first line shows the game version, such as Valheim Version: l-1.0.21. The second, Chainloader startup complete (12 loaded, 0 skipped, 0 failed) for example, says how many mods loaded. No LogOutput.log at all usually means BepInEx did not start: check the four lines and that doorstop_libs/libdoorstop_x64.so exists.
Rented server. On our Valheim server hosting you upload BepInEx and your mods through the file manager or FTP, in the same layout as above, and the web console shows the live server log, so you can look for the same startup lines. If BepInEx doesn't load, our live chat helps with BepInEx setups.
Which Mods Go on the Server, the Players or Both
Every mod's page should say where it belongs. As a rule of thumb:
| Mod type | Server | Players |
|---|---|---|
| Map, UI and visual mods | No | Yes |
| Admin and server tools | Yes | Sometimes |
| New items, recipes, creatures or building pieces | Yes | Yes |
| Gameplay rules (skills, crafting, stamina) | Yes | Usually |
For anything that runs on both sides, everyone needs the same version. Mods built on Jotunn check versions when a player connects and can disconnect a mismatch, and mods using ServerSync disconnect clients older than the minimum version the mod sets. One shared profile code avoids most of that.
What Breaks After a Valheim Patch
A game patch can break mods in two ways.
A mod calls game code that changed. Patch 1.0.21 on 28 October 2026 changed the parameters of four game methods, so mods built for 1.0.20 that use them threw MissingMethodException in the log: cooking stations stopped cooking, mod windows showed placeholder text, one mod switched itself off. Everyone could still join, because the network version stayed the same. The fix was a new build of each mod, not a new BepInEx. Our guide to Valheim mods broken after 1.0.21 lists the affected mods and shows how to find the broken one in LogOutput.log.
The network version changes. Then a server and players on different builds refuse each other with "Incompatible version", mods or not. The 1.0.21 notes already say one fix "requires network incompatible update and is coming soon". Our incompatible version fix covers updating the server and the mod checks that block joining.
On patch day, in this order:
- Copy
BepInEx/LogOutput.logbefore you restart. The pack setsAppendLog = false, so every start overwrites the file. - Back up the world and
BepInEx/config. Our backup guide shows where Valheim keeps its worlds. - Update the mods the log names, on the server and for every player. Leave BepInEx alone unless a mod asks for a newer pack.
- Disable a mod that has no fix yet, everywhere it runs, after reading what its page says about removing it from an existing world.
Our Valheim servers update their server files automatically when Iron Gate ships a patch, so check your mods on patch day; every plan has 2 or 3 backup slots in the control panel for a copy before you change anything.
FAQ
How do I install BepInEx for Valheim?
With a mod manager such as r2modman, Gale or Thunderstore Mod Manager, pick Valheim, install BepInExPack_Valheim and start the game from the manager. By hand, move the contents of the pack's BepInExPack_Valheim folder into steamapps\common\Valheim and start the game once.
Which BepInEx version do I need for Valheim 1.0? BepInExPack Valheim 5.4.2360 from 28 October 2026 was the current version on 3 November 2026. A mod's Thunderstore page lists the pack version it needs as a dependency, so check that if a mod asks for a newer pack.
Why is BepInEx not loading in Valheim?
On Windows, check that winhttp.dll sits next to valheim.exe, not inside a BepInExPack_Valheim subfolder, and that enabled = true in doorstop_config.ini. On Linux and macOS, check the Steam launch option and that the script is executable. If there is no BepInEx/LogOutput.log after a start, BepInEx did not run.
Does BepInEx work with Valheim 1.0.21? Yes. BepInEx loads on 1.0.21; what broke were mods that call game methods the patch changed. Update those mods, as our 1.0.21 mod fix guide explains.
Do I need BepInEx on the server and on every player's PC? Yes, when you use mods on both sides. The server needs its own copy in its own folder, and each player needs it in their game folder or mod manager profile. Client-only mods such as map or UI mods need it only on that player's PC.
How do I play Valheim without mods after installing BepInEx?
In r2modman, click Start vanilla. After a manual install on Windows, set enabled = false in doorstop_config.ini in the game folder, and back to true when you want mods again. On Linux and macOS, clear the Steam launch option that starts the BepInEx script.
Sources
All opened on 3 November 2026:
- BepInExPack Valheim on Thunderstore: version 5.4.2360, README and changelog, plus
start_server_bepinex.sh,doorstop_config.iniandBepInEx.cfgfrom the 5.4.2360 download - AzumattDev BepInEx build, Chainloader.cs (plugins folder, version and startup log lines)
- BepInEx docs: Installing BepInEx, Running under Proton/Wine
- r2modman: releases, interface labels, Thunderstore game list with Valheim Dedicated Server
- Gale on Thunderstore, Jotunn on Thunderstore, AzuCraftyBoxes on Thunderstore
- Iron Gate: Valheim 1.0 FAQ, A guide to dedicated servers, Patch 1.0.21
- valheim-lembitu pull request 138 (1.0.21 boot on BepInExPack 5.4.2351)
- Version checks: Jotunn network compatibility, ServerSync