Discord Rich Presence integration for ETS2/ATS
Overview β’ Features β’ Preview β’ Installation β’ Building β’ Contributing β’ License
TruckSim RPC is a native plugin for Euro Truck Simulator 2 and American Truck Simulator that integrates Discord Rich Presence. It reads live telemetry data through the official SCS Telemetry SDK and the Discord Game SDK, updating your Discord status with truck details, job information, player status, and session time.
Note
This plugin is currently compatible with Windows only. Linux support is planned for a future release.
- Game info β displays ETS2 or ATS with the current game version.
- Truck display β manufacturer and model from telemetry.
- Job tracking β origin city β destination city with driving distance.
- Free roam β shows current status when no delivery is active.
- Player status β Driving, Idle, Parked, Ferry, Train, Loading, In Menu β inferred reliably from available telemetry channels.
- Session timer β elapsed play time using Discord Rich Presence timestamps.
- Convoy support β appends "Convoy" when multiplayer offset is detected.
- Truck brand images β small image shows the truck brand logo (if a matching Discord asset exists), fallback to a steering wheel icon.
- ETA display β large image tooltip shows remaining navigation time.
- Efficient updates β updates are throttled and only fire when values actually change (2s dirty / 30s idle intervals).
- Graceful error handling β never crashes the game; handles missing Discord, lost SDK connections, and unsupported game versions.
- Debug logging β
[TruckSimRPC]messages ingame.log.txt
Free roam with player status |
Job route with remaining distance |
Job route with ETA |
Truck information |
Convoy status |
Free roam with player status |
Job route with remaining distance |
Job route with ETA |
Truck information |
Convoy status |
- Download the latest
trucksim-rpc-*.zipfrom the Releases page. - Extract
binfolder into your game's root location. - Start the game. The plugin logs
[TruckSimRPC] plugin initializedtogame.log.txtto confirm it loaded.
Requires MinGW-w64 with windres and g++.
Set the APP_ID environment variable:
set APP_ID=123456789012345678
mkdir build\bin\win_x64\plugins
windres trucksim-rpc.rc -O coff -o build\trucksim-rpc_res.o
copy src\sdk\discord\lib\x86_64\discord_game_sdk.dll build\bin\win_x64\
g++ -shared -m64 -O2 -std=c++23 -o build\bin\win_x64\plugins\trucksim-rpc.dll ^
-DDISCORD_APP_ID=%APP_ID% ^
build\trucksim-rpc_res.o ^
src\log\log.cpp ^
src\telemetry\telemetry.cpp ^
src\discord\discord_client.cpp ^
src\presence\presence.cpp ^
src\core\plugin.cpp ^
src\sdk\discord\cpp\activity_manager.cpp ^
src\sdk\discord\cpp\application_manager.cpp ^
src\sdk\discord\cpp\core.cpp ^
src\sdk\discord\cpp\image_manager.cpp ^
src\sdk\discord\cpp\lobby_manager.cpp ^
src\sdk\discord\cpp\network_manager.cpp ^
src\sdk\discord\cpp\overlay_manager.cpp ^
src\sdk\discord\cpp\relationship_manager.cpp ^
src\sdk\discord\cpp\store_manager.cpp ^
src\sdk\discord\cpp\storage_manager.cpp ^
src\sdk\discord\cpp\types.cpp ^
src\sdk\discord\cpp\user_manager.cpp ^
src\sdk\discord\cpp\voice_manager.cpp ^
src\sdk\discord\cpp\achievement_manager.cpp ^
trucksim-rpc.def ^
-include src\sdk\discord\compat\preinclude.h ^
-I src\sdk\scs\include ^
-I src\sdk\discord\cpp ^
-I src\sdk\discord\compat ^
-I src\telemetry ^
-I src\discord ^
-I src\presence ^
-I src\config ^
-I src\log ^
-I src\core ^
src\sdk\discord\lib\x86_64\discord_game_sdk.dll.lib ^
-static-libgcc -static-libstdc++ ^
-Wl,--kill-at
del build\trucksim-rpc_res.oRequires MinGW-w64 (x86_64-w64-mingw32-g++). Set APP_ID in .env:
./build.shNote
Run ./gen_compile_commands.sh after first clone or MinGW upgrade to
generate compile_commands.json for clangd LSP support.
Bug reports and feature requests are welcome β open an issue.
This project is licensed under the MIT License.










