GSP-Agent-Windows/docs/PANEL_INTEGRATION.md
2026-07-02 18:10:41 -05:00

2.6 KiB

GSP Windows Agent Panel Integration

Workspace reference: GSP-WORKSPACE.md

The Panel is authoritative. The Windows agent executes the work the Panel requests.

Integration points

  • shared key and RPC configuration live in GSP64/GSP/Cfg/Config.pm
  • startup preferences live in GSP64/GSP/Cfg/bash_prefs.cfg
  • the Panel talks to the same command surface as the Linux agent wherever practical
  • game server readiness is reported through the existing server_status RPC, extended with expected/listening/missing port details

Compatibility rule

The Windows agent should mirror the Linux agent behaviorally as much as possible so the Panel can treat both platforms as one product family.

Legacy Workshop RPC

The dedicated Panel steam_workshop module still uses the legacy steam_workshop XML-RPC call.

Current compatibility rule:

  • if the Panel sends a blank config_file_path, the Windows agent runs post-install logic only
  • the generated script must skip all cat / regex / config-write logic in that case
  • WorkshopModsInfo is still written so the Panel can list/uninstall installed items even when no game config file is edited
  • new installs write per-home records under WorkshopModsInfo/home_<home_id>/
  • each record stores mod string, Workshop item ID, title, installed folder/path, Workshop App ID, install status, and timestamps
  • the generated job writes <game_home>/WorkshopInstallStatus.json as running, completed, or failed
  • the generated job prints GSP_WORKSHOP_INSTALL_COMPLETE or GSP_WORKSHOP_INSTALL_FAILED so the Panel can avoid stale Update in progress displays if the generic update screen lingers

Status validation

The Panel remains the source of truth for assigned ports. The Windows agent validates only the ports supplied by the Panel for a specific server.

Detailed design:

Server Content Runtime

Windows now mirrors the Linux server-content runtime layout for server-owned sidecars, bots, hooks, and generated content helpers:

  • _gsp_content/hooks/
  • _gsp_content/generated/
  • _gsp_content/runtime/
  • _gsp_content/runtime/server_content.pids

Stop and restart clean this runtime before main game process escalation. The main server PID remains tracked through runtime_status/pid-<home_id>.kv; server_content.pids must only contain server-content watchdog/app PIDs.

Legacy _alsoRun.bat support remains compatibility-only. When _alsoRun.pid is present, the Windows agent imports those PIDs into the server-content cleanup path so Panel Start/Stop/Restart does not leave legacy helper processes behind.