Remote Debug
Remote Debug is the browser display for the player's local engineering panel. It is available only when the process was started in Maintenance mode.
Requirements
| Requirement | Detail |
|---|---|
| Runtime mode | Start DearScenario Player --maintenance (or -m). The mode is immutable until restart. |
| Source access | Loopback is allowed. Other source IPs must match controller_whitelist when it is non-empty; an empty whitelist permits reachable sources. Browser connections must use the Player Web Console origin. |
| Port | Base port offset 2 (default 18292). |
Normal player processes keep Remote Debug unavailable. UDP and OSC cannot invoke maintenance-only operations.
How to enter
- Start the player with
--maintenance. - Open the Web Console at
http://<player-ip>:<base_port>/. - Use the Remote Debug entry to open
/remote-debug. Loading the page immediately probes availability and attaches the WebSocket stream.
There is one active Remote Debug connection across the main, IPv4 loopback, and
IPv6 loopback listeners. The latest explicit operation wins: a later browser
replaces an earlier browser, while F1 on the player replaces the browser. The
replaced browser receives a clear close reason, dims the canvas, and displays a
button to take back or take over the session without automatic reconnect loops.
Closing or refreshing the page closes the panel. The player output remains clean
while the ImGui panel is streamed to the browser, displaying a static Remote Debug attached
indicator badge. Host window actions triggered from the physical keyboard (such as
Esc for the Leave DearScenario Player prompt) always render on the player's physical display.
To stop the player remotely, use Web Console → Runtime Actions → Exit Maintenance process.
The Web Console reports whether the process is in Maintenance mode and whether the current source is allowed. There is no pairing page, PIN, browser cookie, ownership, or complex takeover flow. An explicit button click or refreshing the page is the recovery action. The transport has a fixed internal ping/pong liveness check to reclaim half-open connections; it is not an idle timeout and is not configurable.
Headless devices
For a Raspberry Pi Lite or cabinet host without a screen, use an SSH tunnel to a Maintenance process:
ssh -N -L 18290:127.0.0.1:18290 -L 18292:127.0.0.1:18292 diria-pi4Then open http://127.0.0.1:18290 in the local browser. Keep the SSH session
open while using the console. Restart the player without --maintenance when
engineering work is complete. Forward both the HTTP port and the Remote Debug
WebSocket port: by default these are 18290 and 18292. If you change
network.base_port, use that port and base_port + 2 on both sides of the
tunnel; the browser derives the WebSocket port from the Player configuration.
Common failures
| Symptom | Check |
|---|---|
| Icon missing / connection refused | Process mode (--maintenance), firewall, and configured listener address |
| Immediate disconnect / 403 | Player is in Normal mode, the source fails the configured IP whitelist, or the browser origin is not the Player Web Console origin |
| Blank or sluggish UI | Network bandwidth / FPS limit / player GPU load |

