The new site of Sapp!

Commands

remote_console [enabled] Enables/disables the remote console.
remote_console_port [port] Sets the remote console port, only takes effect if used before enabling the remote console.
remote_console_list Lists the connected remote clients.

 
The remote console is using the name + password based (V2) admin system.

You can download a C# client here (not my implementation): https://github.com/poqdavid/SAPPRemote/releases

 

The following information is for implementing your own remote console client.

Current Remote Console version: 1.2.0.0

Enumeration of the opcodes

enum RemoteConsoleOpcode { RC_LOGIN = 1, RC_QUERY, RC_QUERY_STATS, RC_QUERY_POS, RC_CIN, RC_COUT, RC_CHAT, RC_PJOIN, RC_PLEAVE, RC_TEAMCHANGE, RC_NEWGAME, RC_SYSTEM_STATUS };

Example Json queries

RC_LOGIN

Sent:

{"opcode":1,"password":"81dc9bdb52d04dc20036dbd8313ed055","username":"admin"}

"password" is the md5 hash of the password.

Response:

{"level":4,"opcode":1}

"level" is the level you are logged in, -1 if the username or the password was incorrect.

 

You can only send and receive the further opcodes if you are logged in.

RC_QUERY

Sent:

{"opcode":2}

Response if the server is idle:

{"anticheat":false,"no-lead":true,"opcode":2,"running":false,"sapp_version":"9.6 CE","version":"1.2.0.0"}

Response if the server is empty:

{"anticheat":false,"blue_score":0,"gametype":"slayer","map":"wizard","maxplayers":16,"mode":"Zombies","no-lead":true,"opcode":2,"red_score":0,"running":true,"sapp_version":"9.6 CE","servername":"Z","teams":true,"version":"1.2.0.0"}

Response if the server has players:

{"anticheat":false,"blue_score":0,"gametype":"ctf","map":"ratrace","maxplayers":16,"mode":"CTF","no-lead":true,"opcode":2,"players":[{"assists":0,"betrays":0,"color":{"b":0,"g":0,"r":255},"deaths":0,"index":1,"kills":0,"name":"Btcc22","score":0,"suicides":0,"team":0},{"assists":0,"betrays":0,"color":{"b":255,"g":0,"r":0},"deaths":0,"index":2,"kills":0,"name":"002","score":0,"suicides":0,"team":1},{"assists":0,"betrays":0,"color":{"b":0,"g":0,"r":255},"deaths":0,"index":3,"kills":0,"name":"Qtya","score":0,"suicides":0,"team":0}],"red_score":0,"running":true,"sapp_version":"9.6 CE","servername":"Z","teams":true,"version":"1.2.0.0"}

 

RC_QUERY_STATS

Sent:

{"opcode":3}

Response if the server is empty:

{"opcode":3}

Response if the server has players:

{"blue_score":0,"opcode":3,"players":[{"assists":0,"betrays":0,"color":{"b":0,"g":0,"r":255},"deaths":0,"index":1,"kills":0,"name":"Btcc22","score":0,"suicides":0,"team":0},{"assists":0,"betrays":0,"color":{"b":255,"g":0,"r":0},"deaths":0,"index":2,"kills":0,"name":"002","score":0,"suicides":0,"team":1},{"assists":0,"betrays":0,"color":{"b":0,"g":0,"r":255},"deaths":0,"index":3,"kills":0,"name":"Qtya","score":0,"suicides":0,"team":0}],"red_score":0}

 

RC_QUERY_POS

Sent:

{"opcode":4}

Response if the server is empty:

{"opcode":4}

Response if the server has players:

{"opcode":4,"players":[{"index":1,"x":-6,"y":8,"z":-4},{"index":2,"x":0,"y":11,"z":-4},{"index":3,"x":-2,"y":-2,"z":-4}]}

 

RC_CIN

Sent:

{"command":"info","opcode":5}

Response:

{"opcode":5,"ret":1}

"ret" is the result of the command, 0: failed, 1: succeed, -1: no rights

 

The further opcodes will be only received as events.

RC_COUT

{"opcode":6,"text":"SAPP Version 9.4 CE"}

These are the text outputs of the commands, and they arrive before the RC_QUERY_CIN event.

 

RC_CHAT

{"index":1,"message":"lol","opcode":7,"type":0}

Type; 0: global, 1: team, 2: vehicle

 

RC_PJOIN

{"assists":0,"betrays":0,"color":{"b":255,"g":0,"r":0},"deaths":0,"index":4,"kills":0,"name":"New001","opcode":8,"score":0,"suicides":0,"team":1}

 

RC_PLEAVE

{"index":4,"opcode":9}

 

RC_TEAMCHANGE

{"index":2,"opcode":10,"team":0}

Team: 0: red, 1: blue

 

RC_NEWGAME

{"gametype":"slayer","map":"beavercreek","mode":"Zombies","opcode":11,"teams":true}

 

RC_SYSTEM_STATUS

{"cpu_load":15,"memory_load":42,"my_cpu_load":1,"opcode":12}

Downloads

SAPP for Halo PC

Download

SAPP for Halo CE

Download