Control

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

RequirementDetail
Runtime modeStart DearScenario Player --maintenance (or -m). The mode is immutable until restart.
Source accessLoopback 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.
PortBase port offset 2 (default 18292).

Normal player processes keep Remote Debug unavailable. UDP and OSC cannot invoke maintenance-only operations.

How to enter

  1. Start the player with --maintenance.
  2. Open the Web Console at http://<player-ip>:<base_port>/.
  3. 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-pi4

Then 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

SymptomCheck
Icon missing / connection refusedProcess mode (--maintenance), firewall, and configured listener address
Immediate disconnect / 403Player 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 UINetwork bandwidth / FPS limit / player GPU load