-
-
Notifications
You must be signed in to change notification settings - Fork 1
Protocol 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.
| 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.
Most long-standing UDP and TCP protocols have no additional public options:
| Family | Example identifiers | Normal configuration |
|---|---|---|
| Source and GoldSource |
css, tf2, cs16, arkse
|
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 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 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.
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. |
hytaleone |
auth_token |
none | OneQuery V2 authentication token. |
hytaleone |
query_players |
true |
Request advertised player-list pages. |
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. |
scum |
master_timeout |
5 |
Master-proxy connection/read timeout in seconds. |
scum |
master_servers |
built-in list | Ordered compatible master-proxy destinations. |
These options are protocol-specific and should not be copied to unrelated server definitions.
-
cfxperforms its normal native query and supplements it with HTTP metadata.cfxinfoandcfxplayersare internal helpers, not normal server types. RageMP usesgtarand a different master-list protocol. -
hytaleoneexpects the OneQuery plugin. Its token is optional unless required by the plugin, and disablingquery_playersstill returns basic information. - Farming Simulator uses versioned identifiers.
fs13andfs15parse XML;fs17,fs19,fs22, andfs25parse 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_portoverrides it. - Factorio and BeamMP match the configured server against their public HTTPS listings. Private or unlisted servers cannot be discovered through those implementations.
- SCUM matches the configured IPv4 address and client port against a master-proxy response. Treat custom
master_serversas privileged configuration because it controls outbound TCP destinations.
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.
Keep auth_token, web_code, admin_password, private master destinations, 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.
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.
Getting started
Configuration
Guides
Reference
Development
Migration