93 lines
2.6 KiB
Markdown
93 lines
2.6 KiB
Markdown
# Server Content Manager
|
|
|
|
Workspace reference: [`GSP-WORKSPACE.md`](../../../GSP-WORKSPACE.md)
|
|
|
|
## Current State
|
|
|
|
`Panel/modules/addonsmanager` is the current home of GSP's Server Content / Add-ons work.
|
|
|
|
The module title has already been moved toward `Server Content Manager`, but the schema and some folder names remain backward-compatible.
|
|
|
|
Important files:
|
|
|
|
- `Panel/modules/addonsmanager/module.php`
|
|
- `Panel/modules/addonsmanager/addons_manager.php`
|
|
- `Panel/modules/addonsmanager/user_addons.php`
|
|
- `Panel/modules/addonsmanager/server_content_helpers.php`
|
|
- `Panel/modules/addonsmanager/server_content_categories.php`
|
|
|
|
## Database Tables
|
|
|
|
Known tables used by the module:
|
|
|
|
- `addons`
|
|
- `server_content_workshop`
|
|
- `server_content_workshop_catalog`
|
|
- `server_content_manifest`
|
|
- `server_content_install_history`
|
|
|
|
## What It Already Does
|
|
|
|
The module can already represent several content types, including:
|
|
|
|
- downloads/extracted packages
|
|
- post-script driven installs
|
|
- config packs
|
|
- server-side applications with lifecycle hooks
|
|
- future profile-type content
|
|
|
|
Steam Workshop is no longer a user-facing Server Content category. Workshop access belongs to the dedicated `steam_workshop` module.
|
|
|
|
## Server-Side Applications
|
|
|
|
`Server-side Application` content writes an agent-readable hook manifest under
|
|
the target game home:
|
|
|
|
```text
|
|
_gsp_content/hooks/<app>.json
|
|
```
|
|
|
|
The agents generate runtime watchdog scripts in `_gsp_content/generated/` and
|
|
track side-application PIDs in `_gsp_content/runtime/server_content.pids`.
|
|
|
|
Use this type for companion applications such as BEC, Big Brother Bot, Discord
|
|
bridges, RCON tools, and log watchers. The application files themselves may
|
|
still be installed wherever the game requires them.
|
|
|
|
Detailed lifecycle documentation:
|
|
|
|
- `docs/features/SERVER_CONTENT_APPLICATION_HOOKS.md`
|
|
|
|
## Current Limitations
|
|
|
|
- Cache and cleanup policy need a clearer product design.
|
|
|
|
## Where To Start Reading
|
|
|
|
1. `Panel/modules/addonsmanager/module.php`
|
|
2. `Panel/modules/addonsmanager/addons_manager.php`
|
|
3. `Panel/modules/addonsmanager/user_addons.php`
|
|
4. `Panel/modules/addonsmanager/server_content_categories.php`
|
|
|
|
## Important Concept
|
|
|
|
This module is the right place for:
|
|
|
|
- mods
|
|
- add-ons
|
|
- config packs
|
|
- script-driven installs
|
|
- server-side companion application hooks
|
|
- server content manifests
|
|
- install history
|
|
|
|
## Validation
|
|
|
|
Relevant smoke tests:
|
|
|
|
```bash
|
|
php Panel/modules/addonsmanager/tests/workshop_helpers_test.php
|
|
php Panel/modules/config_games/tests/validate_server_configs.php
|
|
```
|
|
|
|
`validate_server_configs.php` validates every XML file under `Panel/modules/config_games/server_configs/` against `schema_server_config.xml`.
|