Overview
Notes#
- client: the game server
- server: the admin panel
- All integers are little-endian, all strings are null-terminated
- Fields with asterik* are always present, if not present, it may not be sent
Connection Flow#
Once a socket connection is established, the client (the game server), will send a Auth Record, and the server will either respond with an OK Response, or an Error Response (with an optional message). Once the client gets the OK, it will perform a full sync and send these group of records:
- Game Record
- Finale Record (if finale active)
- Player Record (per player)
- Survivor Record (if survivor)
- Survivor Item Record (if survivor)
- Infected Record (if infected)
The server then will send specific records when they occur (play joins: PlayerRecord, map changes: GameRecord, etc).
Data Types#
All data types are little-endian and signed
| Name | Value |
| Byte | 8-bit signed little-endian integer |
| Short | 16-bit signed little-endian integer |
| Int | 32-bit signed little-endian integer |
| Float | 32-bit signed little-endian float |
| String | Null-terminated ASCII String |
Builtin Commands#
When a Run Command Response is sent, these are the available commands for the builtin namespace. The format is namespace:command
<param>indicates a required parameter (<> should not be included)[param]indicates an optional parameter ([] should not be included)- Any string with spaces should be surrounded with quotes, "my argument", otherwise it will be split as another argument
| Command | Description |
builtin:stop | Informs the server to exit. This ignores if there are any players online. he sourcemod plugins runs exit |
builtin:request_stop | Asks the server to stop. If there is players, the Command Response record's result will be 0, if successful, will be 1. |
builtin:kick <steamid or #userid> [reason:string] | Kicks the player. If game server is sourcemod, then can be STEAM_####### or #userid |
builtin:ban <steamid or #userid> [time:number] [reason:string] | Bans the player. If game server is sourcemod, then can be STEAM_####### or #_userid. _Time will determine how long, 0 for permanent. |
builtin:players | Returns the number of players, mostly used for testing |
builtin:unreserve | Removes lobby reservation on compatible source engine servers |
builtin:start | Not sent to server, but admin panel can start servers when it detects this. |