99 lines
2.1 KiB
Markdown
99 lines
2.1 KiB
Markdown
# Config Games
|
|
|
|
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
|
|
|
|
## Purpose
|
|
|
|
Game XML definitions, CLI parameter generation, mod definitions, and custom field mapping.
|
|
|
|
## Current Status
|
|
|
|
- Production
|
|
- Functional
|
|
|
|
## Dependencies
|
|
|
|
- XML schema
|
|
- XML parser
|
|
- gamemanager
|
|
- user_games
|
|
- file/config editing tools
|
|
|
|
## Database Tables
|
|
|
|
- `config_homes`
|
|
- `config_mods`
|
|
|
|
## Agent Interaction
|
|
|
|
- drives startup command construction
|
|
- influences query and control protocol handling
|
|
|
|
## User Workflow
|
|
|
|
- select a game definition
|
|
- configure startup parameters
|
|
- view/edit common CLI values
|
|
- work with custom fields
|
|
|
|
## Admin Workflow
|
|
|
|
- create/update XML game configs
|
|
- define mods, CLI params, ports, and custom fields
|
|
- validate XML structure
|
|
|
|
## Security Concerns
|
|
|
|
- parameter injection
|
|
- shell escaping
|
|
- path validation
|
|
|
|
## Known Issues
|
|
|
|
- schema is powerful but broad
|
|
- some capabilities are encoded implicitly instead of declaratively
|
|
|
|
## Missing Functionality
|
|
|
|
- first-class scheduler capability declarations
|
|
- richer docs metadata
|
|
|
|
## Workshop Capability Declarations
|
|
|
|
The XML schema now supports a first-class `workshop_support` block for Steam Workshop / Server Content Manager metadata. This is the only canonical XML format for Workshop-enabled game configs.
|
|
|
|
Key fields:
|
|
|
|
- `enabled`
|
|
- `provider`
|
|
- `steam_app_id`
|
|
- `workshop_app_id`
|
|
- `download_method`
|
|
- `install_strategy`
|
|
- `install_path`
|
|
- `startup_param_format`
|
|
- `mod_separator`
|
|
- `mod_prefix`
|
|
- `copy_keys`
|
|
|
|
Validate changes with:
|
|
|
|
```bash
|
|
php Panel/modules/config_games/tests/validate_server_configs.php
|
|
```
|
|
|
|
Important rules:
|
|
|
|
- Place `workshop_support` after `game_name` and before `server_exec_name`.
|
|
- Do not add loose top-level tags such as `workshop_app_id`; helper code may tolerate them for old configs, but schema-valid XML should use the canonical block.
|
|
- XML declares capability only. Server Content Manager owns the Panel-side install orchestration and uses agents only for generic file/command execution.
|
|
|
|
## Suggested Future Improvements
|
|
|
|
- extend XML capability model
|
|
- document supported variables and examples more clearly
|
|
- tie docs generation into XML
|
|
|
|
## Recommendation
|
|
|
|
- Keep / Improve
|