Skip to content

Available Opcodes

Initialization

Opcode: 0x01

Our Agent will connect to your Arcus port and send this initialization packet. You must reply with an Acknowledged packet when everything is ok. If something is wrong, e.g. an invalid password, you must close the connection.

Schema:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "initialization",
  "type": "object",
  "title": "Initialization payload Schema",
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "$id": "#/properties/password",
      "type": "string",
      "title": "Management password",
      "default": "",
      "examples": [
        ""
      ],
      "pattern": "^(.*)$"
    }
  }
}

Body example:

{
  "password": "9e74txt7o6"
}

Acknowledged

Opcode: 0x10

Let the our Agent know that the packet has been received correctly.

Unknown Opcode

Opcode: 0x02

The requested opcode is not implemented. Informs the caller that it does not support this opcode.

Soft Stop

Opcode: 0x30

Send a request to stop itself when the round is over, or when the game server is empty, with a maximum timeout value defined in the body. It will force close after that timeout period.

Schema:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "timeout"
  ],
  "properties": {
    "timeout": {
      "$id": "#/properties/timeout",
      "type": "integer",
      "title": "The Timeout Schema",
      "default": 0,
      "examples": [
        1600
      ]
    }
  }
}

Body example:

{
    "timeout": 100
}

Allocated

Opcode: 0x60

Inform the application that it has been allocated by an external source, for example a matchmaking system.

Meta Data

Opcode: 0x40

Receive new metadata directly.

Schema:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "metadata",
  "type": "object",
  "title": "Metadata Schema",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$id": "#/properties/data",
      "type": "array",
      "title": "Metadata Schema",
      "items": {
        "$id": "#/properties/data/items",
        "type": "string",
        "title": "The Items Schema",
        "default": "",
        "examples": [
          "key",
          "value"
        ],
        "pattern": "^(.*)$"
      }
    }
  }
}

Body example:

{
  "data": [
    {
      "key": "map",
      "value": "tokyo_large"
    },
    {
      "key": "maxPlayers",
      "value": "16"
    }
  ]
}

Server Information Request

Opcode: 0x20

Request server information from the game server. Mandatory values are:

  • current players
  • max players
  • server name
  • map
  • mode
  • version.

Server Information Response Opcode: 0x21
Description:
Response to the server information request packet that tells the current players, max players, server name, map, mode, version of that moment.

Schema:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "players",
    "maxPlayers",
    "name",
    "map",
    "mode",
    "version"
  ],
  "properties": {
    "players": {
      "$id": "#/properties/players",
      "type": "integer",
      "title": "The Players Schema",
      "default": 0,
      "examples": [
        0
      ]
    },
    "maxPlayers": {
      "$id": "#/properties/maxPlayers",
      "type": "integer",
      "title": "The Maxplayers Schema",
      "default": 0,
      "examples": [
        16
      ]
    },
    "name": {
      "$id": "#/properties/name",
      "type": "string",
      "title": "The Name Schema",
      "default": "",
      "examples": [
        "My awesome Game Server"
      ],
      "pattern": "^(.*)$"
    },
    "map": {
      "$id": "#/properties/map",
      "type": "string",
      "title": "The Map Schema",
      "default": "",
      "examples": [
        "islands"
      ],
      "pattern": "^(.*)$"
    },
    "mode": {
      "$id": "#/properties/mode",
      "type": "string",
      "title": "The Mode Schema",
      "default": "",
      "examples": [
        "DEATHMATCH"
      ],
      "pattern": "^(.*)$"
    },
    "version": {
      "$id": "#/properties/version",
      "type": "string",
      "title": "The Version Schema",
      "default": "",
      "examples": [
        "1.0.0.1"
      ],
      "pattern": "^(.*)$"
    }
  }
}

Body example:

{
  "players": 5,
  "maxPlayers": 16,
  "name": "My awesome Game Server",
  "map": "islands",
  "mode": "DEATHMATCH",
  "version", "1.0.0.1"
}

Custom Command

Opcode: 0x50

For any use case where a specific function call needs to be called we can send this request packet to let the software know that he need to perform that custom command.

opcode: this is just an identifier that you can use to identify what kind of custom command you receive and how to parse the data that has been provided.
data: anything you want to pass through.

Schema:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "opcode",
    "data"
  ],
  "properties": {
    "opcode": {
      "$id": "#/properties/code",
      "type": "integer",
      "title": "The OpCode Schema",
      "default": 0,
      "examples": [
        0
      ]
    },
    "data": {
      "$id": "#/properties/data",
      "type": "object",
      "title": "The Data Schema"
    }
  }
}