How to Install Valheim Mods (BepInEx + Thunderstore)
Install Valheim mods step by step: BepInEx into the server root, mods into BepInEx/plugins, and get clients matched with Thunderstore and r2modman.
Installing Valheim mods comes down to two things: set up the BepInEx loader, then keep your server and every client running the same mods. Miss the second part and players simply can't connect. Here's the full process, plus the one-click route on Nxeon.
How Valheim modding works
- BepInEx is the mod loader. It installs into the server's root folder and loads everything else.
- Mods are DLL/config files that go into
BepInEx/plugins. - Thunderstore is the main mod catalog, and r2modman (or the Thunderstore app) is the manager players use to install matching mods locally.
The critical rule: clients must run the same mods as the server, at compatible versions. Most Valheim mods change game content, so a mismatch means a failed connection.
Step 1: Install BepInEx on the server
Download BepInEx for Valheim from Thunderstore and extract it into your server's root directory โ the folder containing valheim_server.exe (or the Linux server binary). After extraction you should see:
text server/ BepInEx/ doorstop_libs/ winhttp.dll (or run_bepinex.sh on Linux) valheim_server.exe
On Linux, the server's start script must call run_bepinex.sh (or set the LD_PRELOAD/doorstop variables) so BepInEx actually injects. If you skip this, the server launches vanilla and ignores every mod.
Step 2: Start once to generate folders
Boot the server one time with BepInEx installed. On first run it creates:
text server/BepInEx/plugins/ <- your mods go here server/BepInEx/config/ <- mod config files appear here
Check the console/log for a BepInEx banner confirming it loaded. No banner means Step 1's injection isn't wired into your start command.
Step 3: Add mods to BepInEx/plugins
Download each mod from Thunderstore and place its files into:
text server/BepInEx/plugins/ModName/
Install dependencies too โ many content mods require the Jotunn library, so add it alongside them. Restart the server after adding mods. On the next boot BepInEx loads each plugin and writes a config file for it under BepInEx/config/.
Step 4: Configure
Edit the generated files in BepInEx/config/ to tune each mod, then restart to apply. ValheimPlus, for example, exposes a large config with stack sizes, build limits, and gathering rates. Change values there rather than touching the DLLs.
Step 5: Match every client
This is the step that makes or breaks a modded server. Each player must install the same mods at compatible versions. The painless way:
- Assemble your mod list as a Thunderstore modpack (or just share the exact list and versions).
- Have players install r2modman or the Thunderstore app.
- They import your pack, hit install, and launch Valheim *through the mod manager* so BepInEx loads on their end too.
If one player is on a different mod version, they'll usually get kicked or fail to load โ so pin versions and keep everyone on the same pack.
Common pitfalls
- Server ignores mods โ BepInEx isn't injecting. On Linux, your start script must use
run_bepinex.sh; on Windows,winhttp.dllmust be in the root. - Player can't connect โ client mods don't match the server. Same mods, same versions.
- Server won't boot after an update โ a mod is outdated. Update BepInEx and mods after a Valheim patch.
- Missing dependency โ many mods need Jotunn; install it too.
The one-click way on Nxeon
Steps 1 through 4 collapse into a single click with our Mods manager. On Valheim server hosting, open the Mods tab and install a mod โ the panel deploys BepInEx into the server root, drops the mod into BepInEx/plugins, generates the config, and restarts for you. It also hands you a shareable mod list so your friends can match instantly in r2modman.
Launch a world from our game servers lineup and skip the manual setup. For a curated list of what to install, see our roundup of the best Valheim mods for 2026.