Panel/docs/features/XML_SYSTEM.md

2.1 KiB

XML Game Configuration System

Purpose

The XML game configuration system describes how a game server should be started, queried, and customized.

Primary files:

  • Panel/modules/config_games/schema_server_config.xml
  • Panel/modules/config_games/server_config_parser.php
  • Panel/modules/config_games/xml_config_creator.php
  • Panel/modules/config_games/config_servers.php
  • Panel/modules/config_games/cli-params.php
  • Panel/modules/config_games/set_params.php

What XML Controls

The schema supports:

  • game and installer names
  • startup command templates
  • CLI parameter substitution
  • reserved ports
  • query port calculation
  • control protocol selection
  • mod definitions
  • custom fields
  • server parameter groups
  • text replacement helpers

Important Variables

The schema and startup builder can work with variables such as:

  • GAME_TYPE
  • HOSTNAME
  • IP
  • MAP
  • PID_FILE
  • PLAYERS
  • PORT
  • QUERY_PORT
  • BASE_PATH
  • HOME_PATH
  • SAVE_PATH
  • OUTPUT_PATH
  • USER_PATH
  • CONTROL_PASSWORD

Startup Parameters

The Panel builds startup parameters from the XML template and the stored server configuration.

Key concepts:

  • cli_template
  • cli_params
  • reserve_ports
  • server_params
  • custom_fields
  • clean_server_param_value

The XML file defines:

  • which parameters exist
  • how they are quoted or spaced
  • whether the parameter is editable by the customer
  • what defaults should be used

Query Definitions

The XML schema supports query-related concepts such as:

  • gameq
  • lgsl
  • teamspeak3
  • query port offset calculations
  • control protocol selection

These values are used by gamemanager and the agent status logic to calculate query metadata, not to decide online/offline by themselves.

Installation and File Editing

XML definitions also feed:

  • config file shortcuts
  • install-time behavior
  • docs links
  • reserved ports
  • mod or content behavior

Think of the XML system as the capability definition layer:

game XML
  -> startup template
  -> parameter rules
  -> query rules
  -> content/mod hooks
  -> docs links
  -> scheduler and status hints