About CrossplayJoinCodeFix
From ThunderstoreServer-side fix for crossplay servers that show as offline: retries PlayFab's incomplete join-code answer instead of crashing the check, so the lobby still goes online.
CrossplayJoinCodeFix
A server-side fix for Valheim crossplay dedicated servers that run fine but show as offline: nobody can find or join them, although the world is up.
The problem
When a crossplay server starts, it registers a join code with PlayFab and asks PlayFab whether the code is unique. Sometimes PlayFab answers with part of the data missing (no lobby list, or a lobby without its owner). The game does not expect that: it throws a NullReferenceException in ZPlayFabMatchmaking.OnCheckJoinCodeSuccess and never activates the lobby. The usual workaround is to stop the server for a while and try again.
If your server log shows that exception right after start and the server stays invisible, this plugin is for you.
What it does
It checks PlayFab's answer before the game reads it:
- A complete answer: nothing changes, the game's own code runs.
- The only lobby returned is the one this server just created: the lobby is activated, as the
game would have done.
- Otherwise: the check is repeated every few seconds until PlayFab answers properly. If it still
has not after the timeout, the server registers a new join code and waits again.
The log shows CrossplayJoinCodeFix 1.0.0: join-code check guarded (...) once it runs.
Install
On the dedicated server only, with BepInEx: install it with a mod manager's server profile, or copy CrossplayJoinCodeFix.dll into the server's BepInEx/plugins. Players need nothing.
Settings
BepInEx/config/Tie.CrossplayJoinCodeFix.cfg, section [JoinCode]:
| Setting | Default | Meaning | |---|---|---| | TimeoutSeconds | 30 | How long to keep re-checking an incomplete answer before registering a new join code. | | RetrySeconds | 2 | Time between two checks while waiting. |
Notes
- Tested on a crossplay test server with simulated incomplete PlayFab answers. The last-resort
path (a new join code after the timeout) has not yet been seen in a real outage: reports welcome.
- It only touches the join-code check; servers without crossplay are not affected.
Source and issues: github.com/Shuiei/CrossplayJoinCodeFix
Support
If this mod saved you some trouble:
Highlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 23d ago.
CrossplayJoinCodeFix on Nxeon
From our catalogue- One-click install
- Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
- Server side
- Required on the server
- Server type needed
- BepInEx
- Server load
- light
- Smallest plan we suggest
- Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
- Latest build
- 1.1.1, released 2026-10-13
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 3 recorded builds of CrossplayJoinCodeFix.
Recent builds
| Build | Released | Game versions | Loaders |
|---|---|---|---|
| 1.1.1 | 2026-10-13 | n/a | BepInEx |
| 1.1.0 | 2026-10-09 | n/a | BepInEx |
| 1.0.0 | 2026-10-06 | n/a | BepInEx |
Dependencies
- Required: BepInExPack Valheim
Declared by the newest build that lists any. Required ones are installed with it on one-click installs.
Run CrossplayJoinCodeFix on a Valheim server
Pick a server or deploy a new one above; it is installed in one click.
What kind of mod it is
From the catalogGameplay & overhauls
New mechanics, content and overhauls that change how the game plays.
Runs on your server
From source side supportThunderstore lists CrossplayJoinCodeFix as required on the server. Check its Thunderstore page to see whether players need it too.
Compatibility
- Game
- Valheim
- Loaders
- BepInEx
- Runs on
- Serverrequired on the server
- Requires
- One-click install needs a BepInEx server.
Verified at the source
- ✓ThunderstoreOfficial listing, checked 2026-10-13Open ↗
- ✓AuthorTie, as published on Thunderstore
- ✓LicenseNot published by the sourceFree







