1.5 KiB
Project CARS UDP Telemetry Viewer
Simple TypeScript/Node app that listens for Project CARS UDP telemetry on port 5606 and displays the latest packet data in a browser table UI.
Run
npm install
npm run dev
Open http://localhost:3000.
In Project CARS, enable UDP telemetry/streaming and point it at this computer. The app binds UDP on 0.0.0.0:5606.
Scripts
npm run devstarts the TypeScript server directly withtsx.npm run buildcompiles TypeScript intodist/.npm startruns the compiled server.
Notes
The parser covers the packet types from the supplied header: car physics, race definition, participants, timings, game state, time stats, and participant vehicle/class names. The frontend focuses on the most useful live values, while the server keeps the full parsed payload available through /api/state.
Recording and Replay
Stop the Node app before capturing because only one process can bind UDP 5606.
python scripts\capture_udp.py --mode auto
This creates a replayable session folder like captures/session_20260514_160000 containing raw packet files and manifest.jsonl.
Replay into the Node app:
npm.cmd run dev
python scripts\replay_udp.py captures\session_20260514_160000
Useful replay options:
python scripts\replay_udp.py captures\session_20260514_160000 --speed 4
python scripts\replay_udp.py captures\session_20260514_160000 --loop
python scripts\replay_udp.py captures\session_20260514_160000 --types 1,2,3,4,7,8