acsp

Node.JS implementation of the Assetto Corsa Server Protocol

Usage no npm install needed!

<script type="module">
  import acsp from 'https://cdn.skypack.dev/acsp';
</script>

README

ACSP - Assetto Corsa Server Protocol

Uses the UDP Plugin feature of Assetto Corsa v1.2+ to get realtime reports on car positions, collisions, lap times and more...

Install

npm install acsp

Usage

var ACSP = require('acsp');

var a = ACSP({
  host: 'localhost',
  port: 11000
});

// listen for car_info events
a.on('car_info', function(carinfo){
    console.log(carinfo);
});

// request car_info for car #0
a.getCarInfo(0);

// getCarInfo() also returns a Promise
a.getCarInfo(0).then(function(info){
    console.log(info); // {...}
})

Events

  • car_info sent in response to a .getCarInfo() call
  • new_session triggered when a new session starts
  • end_session triggered when a session ends (see note below)
  • collide_env triggered when a car collides with the environment
  • collide_car triggered when a car collides with another car
  • car_update triggered every x milliseconds after calling .enableRealtimeReport(x)
  • new_connection a new driver has connected
  • connection_closed a driver has disconnected
  • lap_completed a car has completed a lap

Note: ACServer must be able to write to the ./results path (relative to ACserver.exe) in order for ACSP to emit this event. This directory does not exist by default - so you will need to create it! (This is an Assetto Corsa bug)

Methods

  • .getCarInfo(car_id) request car_info for car_id
  • .enableRealtimeReport(ms) request realtime car updates every ms milliseconds
  • .sendChat(car_id, msg) send a chat message msg to driver car_id
  • .broadcastChat(msg) send a chat message msg to all connected drivers