How to Enable Crossplay on a Valheim Server
Crossplay is a launch-time option on the Valheim dedicated server: enable it and the server joins the cross-platform network so players who aren’t on Steam can connect. The trade-off is that discovery and identity change — a crossplay server is found through the cross-platform browser and a join code rather than behaving purely as a Steam-network entry, and the IDs you see for non-Steam players aren’t SteamID64s. Decide once, tell your group which tab to look in, and most of the confusion disappears.
What crossplay actually changes
The network the server registers on. Without crossplay, your server lives on the Steam networking path and Steam clients find it in the usual browser. With crossplay it also registers on the cross-platform service, which is what lets other platforms reach it.
How people join. Crossplay servers get a join code — a short string a player enters instead of an address. That’s the mechanism that works for players who can’t type your IP into a Steam server browser. Steam players can generally still join by IP as before.
Which list it appears in. This is the part that generates support questions. Someone searching the wrong tab of the server browser will not find a perfectly healthy server. If half your group can join and half insist the server doesn’t exist, check this before touching firewalls: Fix a Valheim Server Missing From the Server List.
Player identity. Non-Steam players are identified by the cross-platform service’s own IDs rather than SteamID64s, which matters for your permission files (below).
Turning it on
It’s a single argument added to the line that launches the server binary, and an environment variable if you’re on a container image. In a script-launched setup it goes alongside your other launch options:
./valheim_server.x86_64 \
-nographics -batchmode \
-name "Thornhall" \
-port 2456 \
-world "Midgard" \
-password "longboat" \
-public 1 \
-crossplay
Then restart:
sudo systemctl restart valheim
In Docker, pass it through your image’s extra-server-arguments variable and recreate the
container with docker compose up -d — a plain restart won’t pick up a changed environment
variable. The Compose layout is in
Running a Valheim Dedicated Server in Docker on Linux.
Verify from the log, not from hope. Watch the startup output after enabling it; the server reports what it’s registering with. If your build’s flag name has changed, an unrecognised argument is either ignored silently or refused — and the log is where you’d see either. When in doubt, check the help output of your own server binary and the start script that shipped with your install rather than trusting a flag copied from an article.
Getting the join code to your friends
Once crossplay is live, the server has a join code that non-Steam players use. Find it in the server’s startup output, and hand it to your group the same way you’d hand out an address. Post it once in your chat, pinned, and remind people it’s per-server rather than per-session.
Steam players in your group don’t need it — direct IP and favourites still work — but there’s no harm in everyone using the same method.
Ports and firewall
Enabling crossplay doesn’t change the UDP ports the game uses on your side: your game port plus the query port above it, forwarded and allowed as before. If crossplay is on and nobody can connect at all, the cause is almost certainly the ordinary port setup rather than crossplay itself — work through How to Port Forward a Valheim Server first.
One asymmetry to be aware of: because the cross-platform path involves a relay-style service rather than a plain direct connection, a crossplay join can succeed for someone even when your direct-IP setup is imperfect. That’s convenient, and it’s also a great way to convince yourself your firewall is fine when it isn’t. Test both paths.
Permission lists with crossplay on
Your three permission files — adminlist.txt, permittedlist.txt, bannedlist.txt — take one
ID per line. For Steam players that’s a SteamID64. For crossplay players it’s whatever
identifier the cross-platform service gives them, which is a different format.
Because the specifics here have moved as the feature developed, don’t guess. Do this instead:
- Leave the allow-list empty and have a non-Steam player join once.
- Read the server log for the identifier recorded against that connection.
- Use exactly that value in your permission files.
If your group is mixed-platform and you depend on the allow-list, test that a listed non-Steam player can join and an unlisted one can’t, before you rely on it. Ban and allow-list mechanics are covered in How to Kick and Ban Players on a Valheim Server and How to Whitelist Players on a Valheim Server.
Mods and crossplay
Modding assumes a certain amount of control over the client. A player on a platform where you can’t install BepInEx plugins can’t run your mod list, and a mod the server enforces will keep them out.
So pick one:
- Mixed platforms — keep the server close to vanilla, or restrict yourself to mods that genuinely don’t need to be present on every client.
- Modded — accept that everyone needs to be on a platform where they can install the shared profile. Details in Installing Valheim Mods on Your Server with BepInEx.
Trying to have both is how you end up with one friend who can never join and nobody knowing why.
Should you enable it?
Yes if anyone in your group plays on a platform other than Steam, or if you want the join code as a simpler alternative to explaining IP addresses.
Not necessarily if everyone is on Steam and you’re happy with favourites and direct joins — in that case crossplay adds a second discovery path, a second identity format for your permission files, and no benefit. Leaving it off is a perfectly reasonable default for a Steam-only friend group.
Whichever you choose, choose it deliberately and write it down. “Why can’t Dave see the server?” six months later is much easier to answer when you know which network the server is on.