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

  
NameValue
Byte8-bit signed little-endian integer
Short16-bit signed little-endian integer
Int32-bit signed little-endian integer
Float32-bit signed little-endian float
StringNull-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
  
CommandDescription
builtin:stopInforms the server to exit. This ignores if there are any players online. he sourcemod plugins runs exit
builtin:request_stopAsks 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:playersReturns the number of players, mostly used for testing
builtin:unreserveRemoves lobby reservation on compatible source engine servers
builtin:startNot sent to server, but admin panel can start servers when it detects this.