mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-25 15:08:47 -07:00
f5ad4b59ef
- 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/.
109 lines
4.3 KiB
Markdown
109 lines
4.3 KiB
Markdown
# Troubleshooting
|
|
|
|
If your symptom isn't here, check [the FAQ](faq.md) 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:
|
|
1. The host string in `dorknet-clientmod.json` matches the server's
|
|
current join-code URL. (Localtunnel hands out a fresh
|
|
`<random>.loca.lt` URL on every host restart — the joiner needs the
|
|
most recent code.)
|
|
2. Open `https://<host>/healthz` in a browser from the joiner's machine
|
|
and confirm a `200 OK`. If you instead see Localtunnel's "Click to
|
|
Continue" page, click through once and retry the connect.
|
|
3. 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 `appsettings` doesn't match the AppId baked into
|
|
the patched client. They MUST match.
|
|
- The user logging in doesn't have a row in the `Players` table — the
|
|
auth flow expects `userid` to 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/v1` endpoint
|
|
returned the wrong shape. Should be a bare JSON-quoted string. See
|
|
`SanitizeController.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 / `npx` available for the fallback path (the launcher
|
|
bundles a .NET Localtunnel client, but if both that and `npx`
|
|
fail you'll see this). Install Node.js 16+ from
|
|
[nodejs.org](https://nodejs.org/) and click Retry.
|
|
- Outbound HTTPS to `loca.lt` is 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.
|