Skip to content

Protocol Options

Sascha Greuel edited this page Oct 2, 2026 · 4 revisions

Protocol-specific options

Home · Protocol families · Security

Most GameQ identifiers need only a type and host. Per-server options are exceptions for custom query ports, optional subqueries, credentials, or an external service used by a particular protocol.

$gameQ->addServer([
    'type' => 'css',
    'host' => '192.0.2.10:27015',
    'options' => [
        'query_port' => 27016,
    ],
]);

Unknown options are retained for third-party protocol extensions but otherwise ignored.

Common option

Option Type Meaning
query_port int or decimal string Override the query port calculated from the client port. Must be between 1 and 65535.

The option applies at the Server level and is available to every protocol. Use it whenever an administrator changed the query port from the game-specific default.

Established native protocol families

Most long-standing UDP and TCP protocols have no additional public options:

Family Example identifiers Normal configuration
Source and GoldSource css, tf2, cs16, arkse, dimraeth host; optionally query_port, query_players, and query_rules
GameSpy bf1942, bf2, crysis, minecraft host; optionally query_port
Quake quake2, quake3, cod4, urbanterror host; optionally query_port
Unreal 2 ut2004, unreal2 host; optionally query_port
Doom 3 doom3, quake4 host; optionally query_port
Frostbite/Battlefield bfbc2, bf3, bf4, bfh host; optionally query_port
RakNet minecraftbe, minecraftpe host; optionally query_port
Voice servers teamspeak2, teamspeak3, ventrilo host; TeamSpeak also requires query_port

Named protocols inherit their family's behavior and can override port offsets or normalization. Use the named game identifier when one exists; use a generic family identifier only for another compatible server implementation.

Source-family optional queries

Source-family servers can skip the optional A2S player and rules requests:

'options' => [
    'query_players' => false,
    'query_rules' => false,
],
Option Default Meaning
query_players true Request A2S player information when available.
query_rules true Request A2S rules when available.

The initial A2S information query still runs. Disable optional requests when an application needs only basic status or when a server blocks player/rules queries.

TeamSpeak query port

TeamSpeak 2 and 3 require the server-query port because it cannot be derived reliably from a virtual server's client port:

$gameQ->addServer([
    'type' => 'teamspeak3',
    'host' => '192.0.2.10:9987',
    'options' => [
        'query_port' => 10011,
    ],
]);

The client port selects the virtual server; query_port selects the TeamSpeak query service.

Additional option reference

A smaller group of plugin-, HTTP-, REST-, or master-backed protocols exposes extra options:

Identifier Option Default Purpose
cfx web_port query port Port serving players.json and info.json.
buildandshoot, kspdmp http_timeout global query timeout Direct JSON-over-HTTP request timeout in seconds, with a minimum of one second.
hytaleone auth_token none OneQuery V2 authentication token.
hytaleone query_players true Request advertised player-list pages.
metin2 admin_page_query false Use the restricted read-only IS_SERVER_UP and USER_COUNT interface instead of the public channel-status query.
fs13–fs25 web_port query port Dedicated-server web administration port.
fs13–fs25 web_code empty Code included in the statistics-feed request.
palworld admin_password none Password required by the REST API.
palworld rest_username admin REST API Basic-authentication username.
palworld http_timeout 5 HTTP connect and request timeout in seconds.
factorio, beammp http_timeout 5 Public-listing request timeout in seconds.
dragonwilds http_timeout 5 Official EOS authentication and directory timeout, clamped to 1–30 seconds.
scum master_timeout 5 Master-proxy connection/read timeout in seconds.
scum master_servers built-in list Ordered compatible master-proxy destinations.
wardogs query_port none Required WDRCON HTTP API port; it cannot be derived from the gameplay port.
wardogs rcon_password none Required WDRCON bearer token. Treat it as a high-value administration secret.
wardogs rcon_scheme http WDRCON URL scheme; accepts only http or https.
wardogs http_timeout 5 HTTP connect and request timeout in seconds, with a minimum of one second.

These options are protocol-specific and should not be copied to unrelated server definitions.

External-service behavior

  • cfx performs its normal native query and supplements it with HTTP metadata. cfxinfo and cfxplayers are internal helpers, not normal server types. RageMP uses gtar and a different master-list protocol.
  • hytaleone expects the OneQuery plugin. Its token is optional unless required by the plugin, and disabling query_players still returns basic information.
  • Metin2 normally queries the selected channel directly and reports its availability/load state. Set admin_page_query to true only when the GameQ host is explicitly allowed through the server's ADMINPAGE_IP; this mode additionally returns the exact local, total, and per-empire player counts. It does not expose player names.
  • Farming Simulator uses versioned identifiers. fs13 and fs15 parse XML; fs17, fs19, fs22, and fs25 parse JSON from the web administration feed.
  • Palworld requires its REST API and administrator credentials. Its calculated query port is the client port plus one unless query_port overrides it.
  • Factorio and BeamMP match the configured server against their public HTTPS listings. Private or unlisted servers cannot be discovered through those implementations.
  • Dragonwilds uses fixed api.epicgames.dev authentication and matchmaking endpoints with the dedicated-server credential distributed by Jagex. Applications do not configure or receive that credential. Redirects are refused, TLS certificates and hostnames are verified, responses are limited to 8 MiB, and sessions must match the configured public address and exact gameplay port. Ambiguous matches fail instead of returning an arbitrary server.
  • SCUM matches the configured IPv4 address and client port against a master-proxy response. Treat custom master_servers as privileged configuration because it controls outbound TCP destinations.
  • WARDOGS queries the separately installed WDRCON API and does not expose unauthenticated server status. GameQ calls only its read-only status, capabilities, players, health, and server-ID endpoints. Redirects are refused, responses are limited to 2 MiB, and rcon_scheme controls whether the configured endpoint uses HTTP or HTTPS.

Palworld's official REST service uses Basic authentication over plaintext HTTP. Query it only across a trusted network or tunnel and do not expose the administration endpoint directly to the internet.

Credentials and configuration ownership

Keep auth_token, web_code, admin_password, rcon_password, private master destinations, privileged Metin2 query switches, and future protocol secrets in server-side protected configuration. Do not accept them from public request parameters or store them in web-accessible JSON files.

Internal test options

Some protocol classes accept injected API or master responses so their tests never access live services. Those options are deliberately omitted here and must not be treated as application APIs.

Clone this wiki locally