No description
|
|
||
|---|---|---|
| .gitea/workflows | ||
| src | ||
| .gitignore | ||
| config.lua | ||
| main.lua | ||
| manifest.ini | ||
| README.md | ||
ACTelemetry
A Custom Shaders Patch (CSP) Lua application for Assetto Corsa that reads car telemetry data via the CSP Lua API and sends it as JSON over UDP.
What It Does
The plugin runs inside Assetto Corsa under Proton/Linux. It collects telemetry at 60 Hz from the CSP Lua API and broadcasts a JSON datagram to a configurable UDP endpoint each frame (throttled to the configured rate).
Installation
Copy the entire ac-telemetry-plugin directory into your CSP Lua apps folder:
<Assetto Corsa root>/extension/lua/apps/
Enable the app in the CSP in-game app launcher.
Configuration
Edit config.lua to set the target UDP endpoint:
local config = {
target_host = "127.0.0.1", -- UDP receiver IP
target_port = 5005, -- UDP receiver port
send_interval = 1 / 60, -- 60 Hz send rate
}
JSON Format
Each UDP datagram contains a JSON object with the following schema (sent to target_host:target_port):
{
"timestamp": 1716123456.789,
"speed_kmh": 245.3,
"rpm": 8750,
"gear": 6,
"throttle": 0.85,
"brake": 0.0,
"steering": 0.12,
"g_forces": { "x": 0.5, "y": -0.2, "z": 1.0 },
"wheel_slip": [0.1, 0.1, 0.0, 0.0],
"suspension_travel": [0.15, 0.14, 0.16, 0.15],
"lap_time": 85.234,
"lap_count": 5
}
| Field | Type | Description |
|---|---|---|
timestamp |
number | os.clock() time |
speed_kmh |
number | Car speed in km/h |
rpm |
number | Engine RPM |
gear |
number | Current gear |
throttle |
number | Throttle input (0.0 - 1.0) |
brake |
number | Brake input (0.0 - 1.0) |
steering |
number | Steering input (-1.0 - 1.0) |
g_forces |
object | G-forces: x, y, z |
wheel_slip |
array[4] | Per-wheel slip (FL, FR, RL, RR) |
suspension_travel |
array[4] | Per-wheel suspension travel |
lap_time |
number | Current lap time in seconds |
lap_count |
number | Completed lap count |
Dependencies
- CSP (Custom Shaders Patch) with Lua support
- LuaSocket (bundled with CSP)