acsp
Version:
Node.JS implementation of the Assetto Corsa Server Protocol
48 lines (38 loc) • 1.76 kB
Markdown
# 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
```js
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