- Default hosting mode is now Localtunnel — public *.loca.lt URL, no account, auto-fetched on first run. Replaces the prototyped Tailscale mode. - Tailscale code purged from launcher + CLI; docs swapped to Localtunnel throughout (easy-setup, joining-a-server, server-cli, troubleshooting, faq, READMEs). - Launcher sidebar gains an Open admin panel button — opens https://admin.<apex> in the browser once the server is live. - SQLite db moves to %APPDATA%\DorkNet\dorknet.db (server reads Database__SqlitePath env var, launcher passes it). Existing dbs under <serverDir>\data\ are migrated on first run. - CLI Program.cs: --mode default flips from tailscale to localtunnel; csproj links in LocaltunnelTunnel + LocaltunnelInstaller. - New Backend files: LauncherNameServer, LocaltunnelInstaller, LocaltunnelTunnel, SingleOriginServiceMap. - .gitignore: exclude installer/out/.
4.3 KiB
Troubleshooting
If your symptom isn't here, check the FAQ and then open an issue with: your OS, DorkNet version, server log (Settings → Send logs to clipboard), and the exact steps that triggered the problem.
Client / patcher
"Signature verification failed" on launch
The image-signing public key baked into the patched global-metadata.dat
doesn't match the private key on the server. Repair from the Patch tab —
this re-fetches the server's current pubkey before patching.
"Check your internet connection" loop at startup
The watch can't reach the server URL. Verify:
- The host string in
dorknet-clientmod.jsonmatches the server's current join-code URL. (Localtunnel hands out a fresh<random>.loca.ltURL on every host restart — the joiner needs the most recent code.) - Open
https://<host>/healthzin a browser from the joiner's machine and confirm a200 OK. If you instead see Localtunnel's "Click to Continue" page, click through once and retry the connect. - No corporate proxy / DNS filter is intercepting
loca.lt/sslip.io.
Black screen after the loading bar fills
The watch authenticated, joined Photon, but couldn't download the room
data blob. Look in MelonLoader's Latest.log for
[DownloadRoomDataBlobCoroutine] lines — the URL there tells you which
asset the server failed to serve.
Save doesn't persist, MakerPen objects disappear after reload
Known issue with stale LocalRoomScene.DataBlobName. The client mod's
SetRoomDataBlobName_Prefix hijack should handle this — verify it's
firing in MelonLoader's log. If not, the mod failed to load; check that
Mods\DorkNet.ClientMod.dll is present and not blocked by Windows.
Server
[boot] migrations failed
The schema patch SQL errored. Most likely cause: an existing column whose
type doesn't match what we're trying to add. Look at the exact failure
in the log; if it's a Postgres cannot alter type error, the prior
column type needs a manual migration before DorkNet starts.
Photon CustomAuth returns 401
Either:
- The Photon AppId in
appsettingsdoesn't match the AppId baked into the patched client. They MUST match. - The user logging in doesn't have a row in the
Playerstable — the auth flow expectsuseridto be a real account.
Room chat doesn't send
Run the client with SaveDebugMod enabled (or watch MelonLoader's log)
and look for the [chat-trace] lines. The pipeline is:
SendChatEmote → RemoveInvalidCharactersFromMessage → PurifyString HTTP
→ ProcessNewChatMessageReceived → Photon RPC
If any trace line is missing, that's where it died. The two most common fixes:
[chat-fix] CanLocalPlayerChat returned false: the account is flagged as a Junior with chat disabled. Force-true via the client mod (default behavior) or fix it server-side in admin.Received malformed RecNet response: the/api/sanitize/v1endpoint returned the wrong shape. Should be a bare JSON-quoted string. SeeSanitizeController.cs.
Easy app
"Localtunnel couldn't get a URL"
DorkNet shells out to the Localtunnel client and waits for it to
report back with a *.loca.lt URL. If that fails, the most common
causes are:
- Localtunnel's service is rate-limiting / down — wait a couple minutes and retry, or switch to LAN mode if friends are local.
- No Node.js /
npxavailable for the fallback path (the launcher bundles a .NET Localtunnel client, but if both that andnpxfail you'll see this). Install Node.js 16+ from nodejs.org and click Retry. - Outbound HTTPS to
loca.ltis blocked (corporate firewall, DNS filter). Switch to LAN mode or use the wildcard option with your own apex.
Patch button is greyed out
DorkNet didn't find a Rec Room install at the path you selected. Make
sure you pointed at the folder containing Recroom_Release.exe, not
the exe itself, and that Recroom_Release_Data/ exists alongside.
Mode switch lost my server data
Switching from Host mode → Join mode preserves the SQLite database; it just stops auto-starting the server. Switch back to Host mode and your players / rooms / images are still there.
If the data really is gone, check %APPDATA%\DorkNet\dorknet.db — that
file is the entire host-side state, easy to copy elsewhere as a backup.