3.5 KiB
Server Content Manager
Workspace reference: 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.phpPanel/modules/addonsmanager/addons_manager.phpPanel/modules/addonsmanager/user_addons.phpPanel/modules/addonsmanager/server_content_helpers.phpPanel/modules/addonsmanager/server_content_categories.php
Database Tables
Known tables used by the module:
addonsserver_content_workshopserver_content_workshop_catalogserver_content_manifestserver_content_install_history
Current Model
All server content installs through the scripted installer workflow.
addon_type is now treated as a category used for sorting and filtering only.
Examples:
Server ContentModMapConfigBotAdmin ToolDayZ ModMinecraft VersionSteam Workshop CollectionServer-side Application
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 is a category plus optional startup-hook metadata.
Any content item with startup-hook metadata enabled writes an agent-readable
hook manifest under the target game home:
_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 category and hook metadata 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
Installer Fields
Every content item may use:
- install script
- optional download URL
- optional target path
- optional extract path
- version
- description
- stop server before install
- backup target path before install
- restart server after install
- cacheable flag
The install script is the source of truth. Helper fields can be used to generate a basic scripted installer when a full script is not supplied.
Where To Start Reading
Panel/modules/addonsmanager/module.phpPanel/modules/addonsmanager/addons_manager.phpPanel/modules/addonsmanager/user_addons.phpPanel/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
Migration
Older category values are migrated or normalized as follows:
Downloadable Mod/file_download/plugin->ModConfiguration Package/config_edit/config->ConfigScripted Installer/scripted_installer->Server ContentServer-side Application/server_app->Server-side Application
Validation
Relevant smoke tests:
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.