Menu
 

Valheim Password Accepted Then Kicked to Main Menu: BepInEx Mod Parity Fix

Valheim Password Accepted Then Kicked to Main Menu: BepInEx Mod Parity Fix

A Valheim player enters the right server password, sees the connection progress past the lobby, and then gets dropped silently back to the main menu. No error popup, no kick message, no chat line saying why. On vanilla servers this is almost always a Valheim version mismatch after a patch. On modded servers it is almost always a BepInEx mod parity failure: the client and server are running different mod sets, and the ZNet handshake rejects the join.

The Symptom in the Player's Words

A real support message from this week:

"lets me enter password to connect but then send me to main menu"

The defining detail is the lack of a popup. Valheim shows a clear "Incompatible Version" or "Wrong Password" message for those specific failures. A silent kick after password acceptance means the handshake reached the mod-handshake stage and one or more required plugins did not match.

Tell Modded From Vanilla First

The fix is different for each case. Diagnose first.

  1. Open the panel's File Manager.
  2. Open the Mods section (the server's BepInEx folder) and its plugins folder.
  3. Count the folders inside.

An empty plugins/ folder means the server is vanilla and the kick is a Valheim version mismatch (Phase B below). Any plugin subfolders mean the server is modded and you have a mod parity issue (Phase A).

Verbatim BepInEx Plugin Load Lines (Modded Servers)

On a healthy modded server, ~/vlh/bin/BepInEx/LogOutput.log shows each plugin loading on boot:

[Info   :   BepInEx] Loading [PlantEverything 1.20.0]
[Info   :   BepInEx] Loading [AzuCraftyBoxes 1.8.14]
[Info   :   BepInEx] Loading [Building Health Display 0.7.1]
[Info   :   BepInEx] Loading [Jotunn 2.29.0]
[Info   :   BepInEx] Loading [BoneAppetit 3.3.0]
[Info   :   BepInEx] Loading [Creature Level & Loot Control 4.6.4]
[Info   :   BepInEx] Loading [OdinArchitect 1.6.5]
[Info   :   BepInEx] Loading [Epic Loot 0.12.15]
[Info   :   BepInEx] Loading [Seasonality 3.8.0]
[Info   :   BepInEx] Loading [Server Devcommands 1.106]
[Info   :   BepInEx] Loading [Warfare 1.8.9]
[Info   :   BepInEx] Loading [Armory 1.3.1]
[Info   :   BepInEx] Loading [Monstrum 1.5.1]
[Info   :   BepInEx] Loading [Wizardry 1.1.8]
[Info   :   BepInEx] Loading [More_World_Locations_AIO 4.8.0]
[Info   :   BepInEx] Loading [ProceduralRoads 1.4.3]
[Info   :   BepInEx] Loading [MassFarming 1.11]

That list is also the starting point for "what every joining player must have": every mod in it that runs on both sides must be on the client at the same version. Server-only mods are the exception.

Verbatim Handshake Lines

The healthy handshake sequence in LogOutput.log when a client joins:

[Info   :ProceduralRoads] Adding peer (<steamid>) to validated list
[Info   : Unity Log] 05/26/2026 02:41:21: Got handshake from client <steamid>
[Info   : Unity Log] 05/26/2026 02:41:26: Network version check, their:36, mine:36
[Info   : Unity Log] 05/26/2026 02:41:26: Server: New peer connected,sending global keys
[Info   :Jotunn.Managers.SynchronizationManager+<SynchronizeInitialData>d__44] Sending initial data to peer #<peerid>

Read that carefully. The line "Network version check, their:36, mine:36" is the vanilla version check, both at version 36 in this example from before 1.0; Valheim 1.0.12 to 1.0.17 all report 40. A mismatch there is your vanilla case, and it is not silent: the server logs "has incompatible version" and the player sees an incompatible version message.

If you see "Got handshake from client" but no "Network version check" line within a few seconds, the connection dropped before the game handshake and the issue is the network, not mods.

If you see "Network version check" succeed but no "New peer connected, sending global keys" line, the failure is at the mod-handshake step. Jotunn-based modpacks check every loaded plugin name and version against the server's list. Any difference triggers a silent disconnect.

Why the kick is silent. Valheim only shows the "Incompatible Mods" popup when both client and server have Jotunn installed and Jotunn detects the mismatch. If the client is missing Jotunn entirely, or one of the parity-enforcing mods is on the server but not the client, the handshake just closes the socket. The client interprets a closed socket as "go back to main menu" and shows no error.

Phase A: Modded Server (Plugins Folder Has Entries)

Every joining player needs the same Thunderstore modpack at the same version. Mod versions matter: Thunderstore does not auto-bump, and a player on Epic Loot 0.12.14 cannot join a server running Epic Loot 0.12.15.

  1. Use Thunderstore Mod Manager or r2modman. Both tools support importing a modpack as a single export string.
  2. Share the modpack export code. The server admin generates the export from their own profile, posts the code, and every joining player imports it. One click installs the exact same mod versions.
  3. Restart the Valheim client. A mod manager change does not take effect until Valheim is restarted from scratch.
  4. Verify on join. Watch LogOutput.log for the joining player's Steam ID. The "Network version check" line should appear within five seconds of "Got handshake from client".

Phase B: Vanilla Server (Plugins Folder Is Empty)

On a vanilla server a version mismatch is not silent: the player sees an incompatible version message, and the server log shows both sides, for example:

Network version check, their:39, mine:40
Peer <name> has incompatible version, mine:1.0.17 (network version 40)   remote 1.0.7 (network version 39)

Where "their" and "remote" are the client, and "mine" is the server. Only the network version has to match, and most patches keep it (1.0.12 to 1.0.17 all use 40), so a player one patch behind usually still gets in. If a vanilla server drops players with no message at all, read its log for the lines that do give a reason: "has wrong password", "is blacklisted or not in whitelist" or "disconnected due to server is full" (vanilla takes 10 players).

  1. The joining player launches Valheim from Steam normally. Steam checks for updates on launch.
  2. If Steam shows Valheim already updated, force a verify: Steam → Library → right-click Valheim → Properties → Installed Files → Verify integrity of game files.
  3. Restart Valheim and rejoin.

If the server is on an older version than the client (their is higher than mine), the admin needs to update the server. On Supercraft, a restart fetches the update while automatic updates are on, and the Installation tab has an upgrade button; on self-hosted servers run SteamCMD with +app_info_update 1 +app_update 896660 validate +quit; the +app_info_update 1 flag forces SteamCMD to refresh its Steam product info cache, which is the difference between getting the latest build and silently re-validating the old one.

Diagnostic Commands

Two reads on the server side close the loop. Both are non-destructive.

ls ~/vlh/bin/BepInEx/plugins/ | wc -l

Returns the plugin count. Above 5 is heavily modded. Above 20 is the heavy-modpack tier where parity issues are common.

grep -E "Got handshake|Network version check|wrong password|incompatible" ~/vlh/bin/BepInEx/LogOutput.log | tail -30

Shows the last 30 handshake-related lines. Pattern-match against the healthy sequence above.

What Does Not Help

  • Reinstalling Valheim. The protocol version comes from the binary, and a reinstall delivers the same version Steam has. Verify integrity is faster and equivalent.
  • Changing the server password. If the player got past the password prompt, password is not the issue.
  • Restarting the server. Mod parity is a client-side mismatch. Restarting the server reloads the same plugin set.
  • Setting -public 1 or -public 0. Server visibility does not affect handshake validation.

When to Escalate

Contact support with the last 200 lines of ~/vlh/bin/BepInEx/LogOutput.log if:

  • The server is vanilla (no plugins) and the client confirms it just updated Valheim from Steam.
  • The server is modded and the joining player imported the exact same Thunderstore export string.
  • The handshake log shows "Network version check" passing but no "New peer connected" line.

That combination points at a server-side BepInEx config corruption rather than a client mod mismatch.

For Valheim servers with BepInEx and 1-click Thunderstore mods in the panel, see Valheim server hosting on Supercraft.

Last updated: 2026-10-14, against the Valheim 1.0.17 server code.

Looking for managed Valheim server hosting? Supercraft runs Valheim dedicated servers with BepInEx mod parity monitoring, daily backups, instant setup, and 4 region options.

Launch a Valheim server with this setup

Pick a preset and your new server boots preconfigured - rates, rules and mods already dialed in. Change anything later in the panel.

Browse all Valheim recipes →

Valheim Crossplay: Passive Mobs

Crossplay preset with the passive-mobs world modifier: creatures do not aggro unprovoked. Great for mixed-ski…

Valheim Crossplay: Scheduled Restarts

Crossplay-enabled server (Steam + Xbox/PC Game Pass) with a nightly restart window for stability. Use when yo…

Tired of fighting this issue every patch?

Run a managed Valheim server with us. We handle the patches, mod-version pinning, save backups, and DDoS protection. Set up in minutes, multiple datacenter regions, no contract.

See Valheim hosting plans →
Top