Package: ac-websocket-server
AC-WEBSOCKETS-SERVERThe ac-websockets-server is a python based server to control a local Assetto Corsa dedicated server via a websockets connection from a remote host.InstallationYou can install ac-websockets-server from PyPi:pip install ac-websockets-serverThe module is only supported in python3.How to useWebsocket CommandsThe client protocol consists of single line commands which receive a Google style JSON object response.shutdownThe following ACWS related commands are supported:shutdown nowshutdown the ACWS serverserverThe following server related commands are supported:server driversshows a summary of the active drivers on the serverserver entriesshows a summary of the entry_list.ini contentsserver infoshows a summary of the serverserver sessionsshows a summary of configured sessionsserver startstarts the AC serverserver stopstops the AC serverserver restartstops and starts the AC serverExcerts 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": ""
        }
    }
}gridThe following grid related commands are supported:grid finishsets grid order based on latest race finishing ordergrid reversesets grid order based on latest race REVERSED ordergrid ordershows a summary of the current/updated grid ordergrid entriesshows a summary of the all slots for/from entry_list.inigrid savewrite the changes to the grid to the entry_list.ini fileSetting 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"
    }
}lobbyThe following lobby related commands are supported:lobby infoshows the lobby infolobby restartre-registers to the lobbytrackerThe following tracker related commands are supported:tracker startstarts the AC servertracker stopstops the AC servertracker restartstops and starts the AC serverAll commands require stracker.ini to be stored in the cfg directory and stracker.exe in the server root.