SPC – TM2020 – Trackmania 2020 SimHub Plugin
After several dashboards and other SimHub-related projects, it was now time for the first major SimHub project: a custom plug-in for Trackmania 2020, which allows the telemetry data from the arcade title to be read in order to create various usable variables in SimHub. The first version is now available for free, along with a sample dashboard, an LED profile and an overlay for streamers.

Plugin – Introduction
This plugin bridges the gap between Trackmania 2020 telemetry output and SimHub (download). It uses the ManiaPlanet_Telemetry file provided and processes the data it contains so that it can be further processed by SimHub as separate variables [TM2020.xxx]. This makes it possible to take full advantage of the entire range of features offered by SimHub. These extend from the possible applications shown here to bass shakers, motion systems, lighting control and other DIY projects.

Projects
To get an initial overview of the possibilities offered by combining Trackmania 2020 and SimHub, here are three different small sample projects.
Example – Dashboard
The first project is a custom dashboard for Trackmania, inspired by the SPC iRacing Dash (SPC iRacing Dashboard Design for SimHub). Several variables have already been used here and displayed in various ways. For example, the tyres change colour depending on their status, and steering wheel movement and pedal travel are displayed. SimHub makes it possible to design completely custom dashboards.


Example – RPM LEDs
Another possible application are RGB LEDs, such as those installed in high-end steering wheels. On a Forte Pro Steering Wheel from Asetek, for example, the current speed is displayed in a range from 7,000 to 10,000 RPM.

Example – Overlay
The third example is an overlay that displays various statistics. These can either be placed over the game or integrated directly into OBS. Here, too, you can freely configure the design and the values used via the editor integrated in SimHub.


Development Status and Bugs
The basic functionality of the plug-in is already in place. During the test period, there were no crashes or performance issues. However, there are still a few minor details that need to be improved.
- The values in the memory-mapped file are not cleared. This may make it necessary to include certain queries when using the variables in order to exclude incorrect values.
- When viewing replays, the last time and best time values may be set incorrectly.
- If the plugin does not recognise any data, TM 2020 may need to be run as an administrator.
Download + Installation
A current SimHub installation is required to use the plugin. In the next step, the two files User.SPCTM2020.dll and User.SPCTM2020.pdb are stored in the main directory of SimHub. When the programme is started, it automatically asks whether the new plugin should be installed. After confirmation, the plugin waits for data from Trackmania and is ready for operation.
The test projects are also included in the download and can be installed by double-clicking on them.
Right-click for ‘Save as’ – No commercial use
Demo
Provided Values
Below you will find an overview of the values provided by the plugin.
Trackmania 2020 – Telemetry
Here you will find the unmodified telemetry data that was read directly from the memory.
| Value | Code |
|---|---|
| Map Name | [TM2020.MapName] |
| Start Timestamp | [TM2020.StartTimestamp] |
| No Respawns | [TM2020.NoRespawns] |
| No Checkpoints | [TM2020.NoCheckpoints] |
| Race State | [TM2020.RaceState] |
| Position X | [TM2020.PositionX] |
| Position Y | [TM2020.PositionY] |
| Position Z | [TM2020.PositionZ] |
| Velocity X | [TM2020.VelocityX] |
| Velocity Y | [TM2020.VelocityY] |
| Velocity Z | [TM2020.VelocityZ] |
| Input Steering | [TM2020.InputSteering] |
| Input Gas Pedal | [TM2020.InputGasPedal] |
| Input is Braking | [TM2020.InputisBraking] |
| Input is Horn | [TM2020.InputisHorn] |
| Wheels Ground Contact FL | [TM2020.WheelsisGroundContactFrontLeft] |
| Wheels Ground Contact FR | [TM2020.WheelsisGroundContactFrontRight] |
| Wheels Ground Contact RL | [TM2020.WheelsisGroundContactRearLeft] |
| Wheels Ground Contact RR | [TM2020.WheelsisGroundContactRearRight] |
| Wheels Slipping FL | [TM2020.WheelsisSlippingFrontLeft] |
| Wheels Slipping FR | [TM2020.WheelsisSlippingFrontRight] |
| Wheels Slipping RL | [TM2020.WheelsisSlippingRearLeft] |
| Wheels Slipping RR | [TM2020.WheelsisSlippingRearRight] |
| Is In Water | [TM2020.IsInWater] |
| Is Flying | [TM2020.IsFlying] |
| Engine Turbo Ratio | [TM2020.EngineTurboRatio] |
| Vehicle Timestamp | [TM2020.VehicleTimestamp] |
| Gameplay Variant | [TM2020.GameplayVariant] |
| Checkpoint Times 0 – 128 | [TM2020.CheckpointTimes](0-128) |
Computed Data
Here you will also find experimentally calculated values.
| Value | Code |
|---|---|
| Computed No. Checkpoints | [TM2020.ComputedNoOfCheckpoints] |
| Computed Last Time | [TM2020.ComputedLastTime] |
| Computed Best Time | [TM2020.ComputedBestTime] |
| Computed Best Checkpoint Times 0 – 128 | [TM2020.ComputedCheckpointTimes](0-128) |
| Computed Current Time | [TM2020.ComputedCurrentTime] |
Session Data
Session Data contains some statistics collected about the current session. These include, for example, the duration since the start and the number of steering movements.
| Value | Code |
|---|---|
| Session Braking Events | [TM2020.Computed_SessionBraking] |
| Session Finishes | [TM2020.Computed_SessionFinishes] |
| Session Attempts | [TM2020.Computed_SessionAttempts] |
| Session Left Steering Events | [TM2020.Computed_SessionLeftSteering] |
| Session Right Steering Events | [TM2020.Computed_SessionRightSteering] |
| Session Timer (ms) | [TM2020.Computed_SessionSessionTimer] |












