When Valheim sits on "Connecting" or on the loading screen for minutes, the cause is almost always one of five things: the client cannot reach the server at all (wrong port, UDP blocked, server not finished starting), the crossplay relay is having a bad moment, the player is logging in beside a huge base that has to be streamed to them, a mod is syncing or checking versions, or a disk somewhere is slow. The quickest way to tell which is to look at the server log while the player tries to join: if the server never sees them, it is the network; if it sees them but they never spawn, it is the world or the mods. Everything below is the long version of that one sentence.
What happens between Connect and spawning#
Joining a Valheim server is not one step. It is a short sequence, and each stage fails in its own way, so it helps to know where in the sequence a player is stuck.
- Finding the route. A Steam player joining by IP sends UDP straight to the game port. A crossplay player using a join code goes through the PlayFab relay. If this stage fails you see "Connecting" and then, eventually, "Failed to connect".
- The handshake. The client and server compare game versions and the client is asked for the password. A version difference ends here with "Incompatible version"; a wrong password ends with a password prompt again.
- Mod checks. On a modded server, libraries such as Jotunn compare mod versions and ServerSync pushes the server's config to the client. This is quick when everything matches and is where version-mismatch kicks come from when it does not.
- World data. The server sends the state of the zones around where the character logged out: every building piece, chest, item on the ground, tame and terrain edit. This is the long loading screen.
- Spawning. The character appears and the client takes ownership of the zones it is standing in.
A player who is stuck on the word "Connecting" is in stage 1 or 2. A player who gets past the password and then watches the loading screen for three minutes is in stage 4. Treat them as different problems.
What to check first#
Before reading anything else, work through this in order. Most cases end at step 2 or 3.
- Is the server actually up? A Valheim server takes time to load a world and register with Steam. On a big world that is a minute or more after the process starts. Wait for the line announcing the session (or the join code on a crossplay server) before anybody tries to join.
- Does joining by IP work for one Steam player? Use Join Game, Add Server, and the address with the game port, for example
203.0.113.10:2456. If that works, the server and its ports are fine and the problem is the route the others are using. - Is it one player or everybody? One player stuck while others join normally points at that player: their network, their mods, their install, or where their character is standing. Everybody stuck points at the server.
- Did the game just update? For a day after a patch, version mismatches and broken mods are the most likely cause of anything. See updating the server and version mismatches.
- Does the server log show the player arriving? This is the deciding question, covered in the last section.
Stuck on "Connecting": the network and the server#
If the server log never mentions the player, the packets are not arriving. The usual reasons:
| Symptom | Likely cause | Fix |
|---|---|---|
| Join by IP never connects | Using the query port, not the game port | Join on 2456 (or your -port), not 2457 |
| Nobody can join, server runs | Firewall allows TCP only | Open both ports as UDP |
| Works on the LAN, not outside | Port not forwarded, or CGNAT | Forward UDP, or use a hosted server |
| Joins fail for a minute after start | World still loading | Wait for the session line in the log |
| One player only | Their router, VPN or ISP | Test from another network, turn the VPN off |
Valheim uses UDP on the game port and the port above it. A rule that opens TCP, or opens only one of the two, produces a server that runs perfectly and that nobody can reach. The Valheim ports explained covers the range in detail, and Failed to connect and the other connection errors goes through every message the client shows when this stage ends badly.
A home connection behind carrier-grade NAT cannot accept incoming connections at all, however the router is configured. If the public address on the router's status page differs from the one a "what is my IP" site shows, that is what is happening - NAT and CGNAT for game hosts explains the test and the ways round it.
A VPN on the player's machine is worth ruling out early. Some route game traffic through a distant exit, some drop UDP, and a few block the relay endpoints crossplay uses. Turning it off for one attempt costs nothing.
Crossplay and the PlayFab relay#
A server started with -crossplay is reached through Microsoft's PlayFab relay rather than directly. That is what lets an Xbox player join with a six-digit code, and what lets a crossplay server work behind awkward NAT, but it adds a dependency you do not control.
What that means in practice:
- The join code changes on every restart. A player typing yesterday's code gets "Connecting" and then a failure. Read the current code from the server log or the console after each restart.
- The relay adds a hop. Connecting can take noticeably longer than a direct IP join, and if the relay is degraded it can hang. When a crossplay server that was fine yesterday suddenly refuses everybody, a restart of the server (which gets a fresh session and code) is a reasonable first move.
- IDs differ. On a crossplay server players are identified with platform-prefixed IDs such as
Steam_7656...orXbox_2535.... If you run an allow list inpermittedlist.txtand a player is in it in the wrong form, they are refused, which can look like a connection problem from the client side.
If every player in the group is on Steam, the simplest fix for relay trouble is to turn crossplay off and have everyone join by IP. Direct UDP has fewer moving parts. If you need Xbox or Game Pass players, crossplay and Xbox players on a server covers the setup properly.
Long loading screens: world size, bases and terrain#
Once the password is accepted, the server streams the area around the character's logout position. How long that takes depends on how much is there, not on how big the whole world file is. A character who logged out in an empty meadow loads in seconds on a 150 MB world. The same character logged out in the middle of the group's main base, with four hundred chests, a few thousand building pieces, a pen of thirty wolves and a levelled mountain, can sit on the loading screen for a long time.
The objects that cost the most:
- Building pieces. Every wall, beam and floor is a separate object the client has to receive and build. Large bases, especially ones made of thousands of small pieces, are the main cause of slow logins on mature worlds.
- Items on the ground. Dropped stacks, tombstone contents spilled by accident, and the litter from years of smelting runs. Each one is an object.
- Tames. Every animal is an object with its own state, and breeding pens grow without anyone noticing.
- Terrain edits. Raised, lowered and flattened ground is stored as modifications per zone. A base built on a fully terraformed plateau is heavier than the same base on natural ground.
Practical fixes, in rough order of effort:
- Log out somewhere quiet. Characters spawn where they logged out. Ending the session outside the base, or at a small portal hut a short walk away, turns a long login into a short one. For groups with one huge base this is the single most effective habit.
- Clean up the ground. An admin with the right tools can clear dropped items; dropped items and world clean-up covers which commands exist and what they remove.
- Thin out the pens. Fewer tames in one place loads faster and runs better once loaded.
- Build with larger pieces. A wall made of 2x2 panels is a quarter of the objects of the same wall in 1x1 pieces.
The client's own machine matters as much as the server here. Building a large area means instantiating thousands of objects locally, and a slow CPU or a game installed on a hard disk makes that stage long whatever the server does. If one player always loads slowly and the others do not, compare their hardware before blaming the world. Base placement for shared servers has more on keeping heavy builds from sharing zones.
Mods: BepInEx start-up, Jotunn and ServerSync#
On a modded server, two extra things happen during a join, and both can look like a hang.
Version checks. Many content mods depend on Jotunn, which compares the mods and versions on the client with those on the server. If they differ, the player is disconnected with a message listing the mismatch. When the message is slow to appear, or the client shows a generic error instead, the player experiences it as being stuck and then kicked. Mod version mismatch kicks shows how to read the message and fix the set.
Config sync. Mods using ServerSync or Jotunn's config sync push the server's settings to every client on join. That is normally instant, but a mod with a large config, or several mods syncing at once, adds time. A client that has an older version of a synced mod may wait for a sync that never completes.
There is also the client's own start-up. A heavily modded client takes longer to reach the main menu, and some mods do work the first time a world is entered. That is separate from the server, but players often report it as "the server takes ages to load".
What to do:
- Make the group install from one shared profile so every client matches the server exactly. r2modman profiles for a group covers exporting and importing a profile code.
- After a game patch, do not let anybody update mods piecemeal. Update the server's set, export the profile again, and have everyone import it.
- When a single player hangs on a modded server, have them try once with mods disabled against a vanilla test server. If that works, the problem is their mod set, not their connection.
The client log for BepInEx is BepInEx/LogOutput.log in the game folder; the plain Unity log is Player.log under %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\. A mod that throws an error during the join usually leaves a stack trace in one of them.
Disks, saves and memory on the server#
Three server-side conditions cause stalls that players read as connection trouble.
A save in progress. Valheim holds the world in memory and writes it out every -saveinterval seconds. While it writes, the server is busy, and a player who arrives at that moment waits. On a large world on slow storage the pause is long enough to notice. The log prints a World saved line with the time taken, which tells you how long your own pause is. If it is several seconds, faster storage or a smaller world helps; CPU and disk sizing for Valheim has the numbers.
A slow start on slow storage. Loading a big .db file from a hard disk takes noticeably longer than from an SSD or NVMe. Players who try to join during that window get nowhere, and if it happens after every scheduled restart it looks like a recurring fault.
Memory pressure. A server near its memory limit can be killed and restarted in the middle of a player's join. On most panel hosts that shows as the server going offline and coming back, and the player's client either sits on the loading screen or drops to the menu. Check the memory graph: if it sits at the limit as people join, the plan is too small for the world. How much RAM a Valheim server needs covers sizing.
On RE:NODE every plan runs on NVMe, the console has graphs for memory, CPU and disk against the plan's limits, and a server that reaches its memory limit is stopped and restarted clean rather than left to swap. That last point means the symptom is a restart you can see in the console, not a slow decline, so it is easy to spot.
Reading the server log while someone joins#
The log is where guessing stops. Open the console, have one player try to join, and watch. The exact wording varies slightly between game versions, but a successful join looks roughly like this:
Got connection SteamID 76561198012345678Got handshake from client 76561198012345678Server: New peer connected,sending global keysGot character ZDOID from Bjorn : 1234567890:1What each outcome means:
| What the log shows | Where it is stuck | Look at |
|---|---|---|
| Nothing at all | Before the server | Ports, UDP, CGNAT, join code, VPN |
| Connection, no handshake | Version or route | Game versions on both sides |
| Wrong password line | Password | The password, and that it is the current one |
| Handshake, then a quick disconnect | Mod check or allow list | Jotunn message, permittedlist.txt |
| Handshake, no character line for minutes | World data | Logout location, base size, client hardware |
| Server restarts during the join | Server resources | Memory graph, crash log |
If you run the server yourself, -logFile writes the same output to a file you can search afterwards. The Valheim server log explained goes through the rest of the lines worth recognising.
Two last checks that catch people. First, make sure players are joining the server you think they are: a group that moved hosts sometimes has a stale favourite pointing at the old address, which just says "Connecting" forever. Second, if a player is behind the same router as the server (hosting at home), joining by the public address can fail on routers that do not support hairpin NAT; that player should use the local address instead.
FAQ#
Why does Valheim get stuck on Connecting only for one friend?
Because something about their side differs: their network, a VPN, a firewall on their PC, an out-of-date game, a mod the rest of the group does not have, or an old join code. Have them join by IP with the game port while you watch the server log. If the log never shows them, it is their network; if it does, the cause is their install or their mods.
Is a long loading screen a sign the server is too small?
Rarely on its own. The loading screen length is driven mostly by how many objects surround the character and by the player's own CPU and disk. A server short of memory shows up differently: restarts, rubber-banding, and the memory graph pinned at its limit.
Does turning crossplay off make joining faster?
For a Steam-only group, usually yes. Without crossplay, players connect straight to the server's UDP port instead of going through the relay, which removes a hop and a service you do not control. If anyone plays on Xbox or Game Pass, you need crossplay on.
Why can I join my own home server by IP from outside but not from inside?
Many home routers do not loop traffic for their own public address back into the network. Players inside the same house should join on the server's local address, and everybody else on the public one.
We are stuck loading after a game update. What should we do first?
Check that the server and every client are on the same version, then check mods. On a modded server, assume something is broken until the authors have released updates, and keep players on the old version or the server on vanilla until they have.
Can a big world file make everyone load slowly?
Not by size alone. What matters is how much is near where each character spawns. A large file full of distant explored terrain loads quickly; a small one where everyone logs out in the same dense base does not.


