AC-WEBSOCKETS-SERVER
The ac-websockets-server is a python based server to control a local Assetto Corsa dedicated server via a websockets connection from a remote host.
Installation
You can install ac-websockets-server from PyPi:
pip install ac-websockets-server
The module is only supported in python3.
How to use
Websocket Commands
The client protocol consists of single line commands which receive a Google style JSON object response.
shutdown
The following ACWS related commands are supported:
shutdown now
shutdown the ACWS server
server
The following server related commands are supported:
server drivers
shows a summary of the active drivers on the serverserver entries
shows a summary of the entry_list.ini contentsserver info
shows a summary of the serverserver restart
stops and starts the AC serverserver sessions
shows a summary of configured sessionsserver set session_name enable|disable
enable or disable a sessionserver set session_name laps number_of_laps
set number of laps for a session (only valid for RACE)server set session_name time number_of_mins
set number of mins for a sessionserver start
starts the AC serverserver stop
stops the AC serverserver time number_of_minutes
sets the number of minutes - needs server restart to take effect
Excerts from the responses to these commands are shown below.
server drivers
# server drivers
{
"data": {
"drivers": {
"Mark Hannon": {
"name": "Mark Hannon",
"host": "192.168.1.1",
"port": 50834,
"car": "bmw_m3_e30",
"guid": "9993334455599",
"ballast": 0,
"msg": "joining"
},
"Boof Head": {
"name": "Boof Head",
"host": "192.168.2.1",
"port": 50834,
"car": "bmw_m3_e30",
"guid": "123456768",
"ballast": 0,
"msg": "joining"
},
"Crazy Guy": {
"name": "Crazy Guy",
"host": "192.168.3.1",
"port": 50834,
"car": "bmw_m3_e30",
"guid": "7777777777777",
"ballast": 0,
"msg": "joining"
}
}
}
}
server entries
# server entries
{
"data": {
"entries": {
"CAR_0": {
"car_id": "CAR_0",
"model": "dj_skipbarber_f2000",
"skin": "The9GAG",
"spectator_mode": "0",
"drivername": "",
"team": "",
"guid": "76561198102064903",
"ballast": "0",
"restrictor": "0"
}
server sessions
# server sessions
{
"Practice": {
"type": "Practice",
"laps": 0,
"time": 120,
"msg": ""
},
"Qualify": {
"type": "Qualify",
"laps": 0,
"time": "10",
"msg": ""
},
"Race": {
"type": "Race",
"laps": 20,
"time": 0,
"msg": ""
}
}
server start
# server start
{
"data": {
"msg": "Assetto Corsa server started"
}
}
# {
"data": {
"serverInfo": {
"version": "v1.15",
"timestamp": "2022-07-22 10:42:32.8776464 +1000 AEST m=+0.007426800",
"track": "rt_autodrom_most",
"cars": "[\"ks_mazda_mx5_cup\"]",
"msg": ""
}
}
}
grid
The following grid related commands are supported:
grid finish
sets grid order based on latest race finishing ordergrid reverse
sets grid order based on latest race REVERSED ordergrid order
shows a summary of the current/updated grid ordergrid entries
shows a summary of the all slots for/from entry_list.inigrid save
write the changes to the grid to the entry_list.ini file
Setting reverse grid and then writing the result are shown below:
# grid reverse
{
"data": {
"msg": "test/results/2020_12_20_20_58_RACE.json parse SUCCESS"
}
}
# grid finish
{
"data": {
"grid": {
"1": "Keith",
"2": ".SNRL.shille",
"3": "Wayne",
"4": "Russ S",
"5": "Mark Hannon",
"6": "RussG",
"7": "ab156"
}
}
}
# grid write
{
"data": {
"msg": "entry_list.ini file update SUCCESS"
}
}
lobby
The following lobby related commands are supported:
lobby info
shows the lobby infolobby restart
re-registers to the lobby
tracker
The following tracker related commands are supported:
tracker start
starts the AC servertracker stop
stops the AC servertracker restart
stops and starts the AC server
All commands require stracker.ini to be stored in the cfg directory and stracker.exe in the server root.