# Installers ## Current State Installer behavior is split across game XML, gamemanager startup, addonsmanager, SteamCMD helpers, and agent scripts. Important references: - `Panel/modules/config_games/schema_server_config.xml` - `Panel/modules/gamemanager/home_handling_functions.php` - `Panel/modules/addonsmanager/module.php` - `Panel/modules/steam_workshop/module.php` - `Agent_Linux/ogp_agent.pl` - `Agent-Windows/OGP64/OGP/ogp_agent.pl` ## Installer Types Seen In The Codebase - SteamCMD-based installs - download/extract installs - script-driven installs - Workshop/content installs - profile/content copy workflows ## Recommended Model Installer strategy should come from game capability metadata. The agent should execute trusted strategies, not arbitrary customer commands. ## Windows Agent Install Notes The Windows agent is Cygwin-based under `Agent-Windows/OGP64`. Common installed layout: - Cygwin root: `C:\OGP64` - Bash: `C:\OGP64\bin\bash.exe` - Agent root: `C:\OGP64\OGP` - Maintained launcher: `C:\OGP64\OGP\Install\agent_start.bat` - Convenience launcher: `C:\OGP64\agent_start.bat` The launcher checks `%~dp0bin\bash.exe`, `%~dp0..\bin\bash.exe`, `%~dp0..\..\bin\bash.exe`, `C:\OGP64\bin\bash.exe`, `C:\cygwin64\bin\bash.exe`, and `C:\cygwin\bin\bash.exe`. Missing-bash errors should print every checked path and pause in manual use. Set `GSP_AGENT_NO_PAUSE=1` for service/non-interactive wrappers that should fail fast instead of waiting at a prompt. Generated config files under `/OGP/Cfg` are production state. Installer/startup may create them from `.default` templates if missing, but update logic must preserve them. Restart-time auto-update may replace only `/OGP/ogp_agent.pl`; it must not overwrite `Cfg/Config.pm`, `Cfg/Preferences.pm`, `Cfg/bash_prefs.cfg`, service settings, passwords, server data, or logs.