Available Opcodes
Note
We provide support for Arcusv2. Any previous versions of Arcus are no longer supported by Development.
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"
}
}
}