EXTERNAL SIM INTEGRATION
This feature is currently in beta. Some breaking changes in the telemetry “contract” may still occur. Thank you for your understanding. SimHub was originally built around avoiding third-party plugins for telemetry integration, while maintaining strong normalization across all supported simulations. However, this approach is not sufficient for private, specialized, or experimental simulations that are not publicly available.
To address this, SimHub now allows declaring external simulations.
Core concepts
External simulation integration is designed to avoid:
Sim-side SDKs
Plugin SDKs
Any hard dependency on a specific language
It relies on a simple binary UDP feed and a formalized contract, defined by a definition file.
The definition file (*.simdef)
The definition file describes:
The game identity (name, picture, unique ID)
Process identification for automatic sim detection.
The telemetry format (default UDP port, available fields, etc.)
It acts as the contract between the simulation and SimHub.
The definition file is typically shipped with the simulation to ensure it is always up to date. A dedicated editor is available in SimHub.
The registration file (*.simlink)
The registration file is a simple pointer to a definition file, allowing SimHub to discover it automatically.
It contains a single line: the path to the
.simdeffile.
Registration can be skipped by placing the definition directly in a SimHub-managed folder (see Getting Started).
The UDP telemetry feed
Once the definition is created, a corresponding data structure can be sent from the simulation over UDP.
SimHub provides:
A C# generator
A C++ generator
These generate:
The correct structure
A minimal sending loop
The packet includes a header to ensure proper identification and reduce invalid format errors.
Optional extractor process
If the target simulation cannot provide a native integration, an external extractor can be used.
The extractor is responsible for:
Reading simulation data (memory, API, etc.)
Producing the expected UDP telemetry feed
Getting started
Enable the definition editor
In SimHub, open the settings, and in Global enable the game definition authoring tools

The editor will now appear in the left menu

Creating the definition
Open the editor tool and create a new definition
Simulation Identity
Fill:
Name
Icon path : The icon path must be relative to the definition file
Important
If you are copying a definition from another sim, make sure to regenerate the Unique Id to avoid conflicts later
Telemetry definition
Add all the fields you will be able to provide out of the sim

You can also add custom fields:
They will be exposed in SimHub
They won’t be used internally by SimHub features
Important
The declared fields will be used to determine the available features. Do not declare fields you cannot provide.
Create the telemetry feed
Once the definition is ready : Click on copy demo code (c# or c++) This gives you:
The exact packet structure
Required constants
A minimal sending loop
Data conversion
The generated structure includes comments for:
Units
Directions
Expected formats
You must convert your simulation data to match these expectations. Important
Everytime you change the definition (Add, remove or reorder fields), this structure and/or constants must be updated.
SimHub requires a minimum of 60Hz data for a correct fidelity. Higher rates are allowed and Extra packets may be ignored if needed
Test your UDP feed
Once your simulation sends telemetry:
Open Telemetry Receiver Tester in SimHub editor.
If the feed is invalid the error will be visible. Otherwise the content will be shown

Important :
If you have configured an extractor process, this won't be automatically spawned using the tester.
Store your definition
During development
You can register the definition right from the editor to make it available in SimHub.
Production recommendation
It is recommended to ship the definition file along the sim installed files, so it's always up to date and matching the simulator build.
Make the simulation visible in SimHub
There are two approaches
Registered (recommended)
Create a link file into
%localappdata%\SimHub\ExternalSims\Registrations\{UniqueId}.shlinkThe file must simply contain the absolute path of the definition file.
It is recommended to always write/rewrite it at sim startup so it's kept up to date in case the installation got moved.
The link file name must match the pointing definition UniqueId
Dropped in (fallback)
This procedure is a fall back in case the integration is not native to the game (IE extractor process).
In such case simply drop the definition and all the dependencies (logo, extractor process) into
%localappdata%\SimHub\ExternalSims\Definitions\{SimName}\
Important :
If multiple definitions share the same UniqueId: Registered definitions take priority
Summary
Create a definition
Generate the structure
Send UDP telemetry
Register or drop the definition
Last updated