Skip to content

JaydenMaalouf/VehicleTelemetryPlugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗 Vehicle Telemetry Plugin

An Unreal Engine plugin that provides UDP telemetry data for use with external programmes like SimHub, Fanalabs, and other racing telemetry applications.

🔍 Overview

The Vehicle Telemetry Plugin enables real-time transmission of vehicle telemetry data from Unreal Engine projects via UDP. It supports multiple telemetry formats and is designed to work seamlessly with Chaos Vehicle Physics, providing comprehensive vehicle data including engine metrics, position, velocity, input controls, and race information.

This plugin introduces the Vehicle Telemetry Standard (VTS), a new standardised format designed to provide consistency across racing games and simulators. By establishing a common telemetry protocol, VTS aims to simplify integration for telemetry applications like SimHub and Fanalabs, making it easier for developers to add telemetry support to their games and for users to connect their favourite racing accessories and dashboards.

✨ Features

  • :satellite_antenna: UDP Telemetry Transmission: Real-time vehicle data broadcasting via UDP
  • 🔁 Multiple Telemetry Formats: Supports the new Vehicle Telemetry Standard (VTS) format and Forza Horizon 5 format
  • 🔗 Chaos Vehicle Integration: Built-in support for UChaosWheeledVehicleMovementComponent
  • :timer: Configurable Send Rate: Adjustable transmission frequency (1-240 Hz)
  • 🛠️ Blueprint & C++ Support: Full Blueprint exposure with C++ implementation
  • 🚀 Auto-Start Option: Configurable automatic telemetry transmission on game start
  • 📊 Comprehensive Data: Includes vehicle metrics, race data, and input controls

⚙️ Configuration

Project Settings

Configure the plugin settings in Edit > Project Settings > Vehicle Telemetry:

  • Auto Start: Automatically start telemetry transmission when the game begins
  • Remote IP Address: Target IP address for UDP telemetry (default: 127.0.0.1 for localhost)
  • Remote Port: UDP port number (default: 8000)
  • Send Rate Hz: Telemetry transmission frequency (1-240 Hz, default: 60)
  • Telemetry Format: Choose between:
    • VTS (VTS format - the new standardised format)
    • FH5 (FH5 format)

🚀 Usage

Quick Start

  1. ➕ Add Component to Vehicle: Add the ChaosWheeledVehicleTelemetryComponent to your vehicle actor
  2. ⚙️ Configure Settings: Set up the IP address and port in Project Settings
  3. 🚀 Launch External App: Start SimHub, Fanalabs, or your telemetry application and configure it to listen on the specified port

Component Setup

For Chaos Wheeled Vehicles

  1. Select your vehicle actor in the editor
  2. Click Add Component > Search for Chaos Wheeled Vehicle Telemetry Component
  3. Configure component properties:
    • Auto Commit Telemetry: Automatically commit telemetry data each frame (recommended: true)
    • Update Telemetry On Tick: Update telemetry data each tick (recommended: true)

The component will automatically:

  • Extract data from the UChaosWheeledVehicleMovementComponent
  • Calculate acceleration and angular velocity
  • Update telemetry data each frame
  • Commit data to the subsystem for transmission

Custom Implementation

For custom vehicle implementations, use the base VehicleTelemetryComponent:

  1. Add VehicleTelemetryComponent to your vehicle
  2. Override UpdateTelemetry() to populate TelemetryData with your vehicle's data
  3. Call CommitTelemetry() to send the data (or enable AutoCommitTelemetry)

📊 Telemetry Data

The plugin transmits comprehensive vehicle telemetry data including:

🚗 Vehicle Data

  • ⚙️ Engine Metrics: RPM (current, idle, max), gear
  • 🧭 Position & Motion: Position (X, Y, Z), velocity, acceleration, angular velocity
  • 🔄 Orientation: Rotation (yaw, pitch, roll)
  • 💨 Performance: Speed (m/s), power (watts), torque (Nm)

🏁 Race Data

  • 🏁 Race Status: bIsRaceOn flag
  • ⏱️ Timing: Timestamp, current lap time, last lap time, best lap time, race time
  • 📈 Progress: Distance travelled, lap number, race position

🕹️ Input Data

  • 🕹️ Controls: Steering (-1.0 to 1.0), throttle, brake, clutch, handbrake (0.0 to 1.0)

🌐 Vehicle Telemetry Standard (VTS) Initiative

The Vehicle Telemetry Standard (VTS) is a new telemetry protocol being introduced to address the fragmentation in racing game telemetry formats. Currently, each racing game or simulator uses its own proprietary telemetry format, making it difficult for telemetry applications to support multiple games and for developers to implement telemetry in their projects.

🎯 Our Goal: To establish VTS as a universal standard that:

  • Provides a consistent, well-documented telemetry format
  • Simplifies integration for game developers
  • Enables telemetry applications to support multiple games through a single interface
  • Creates a thriving ecosystem where racing accessories and dashboards work seamlessly across all VTS-compatible games

By using this plugin, you're contributing to the standardisation effort. As more games adopt VTS, the entire racing community benefits from improved compatibility and easier access to telemetry features.

📦 Telemetry Formats

📑 Vehicle Telemetry Standard (VTS)

VTS is a new standardised telemetry format introduced with this plugin, designed to provide a consistent protocol across racing games and simulators. The goal is to establish a universal standard that simplifies telemetry integration for both game developers and telemetry application developers.

🔑 Key Benefits:

  • 📊 Standardised Structure: Consistent data layout across all games using VTS
  • 🔧 Easy Integration: Simplified implementation for game developers
  • 🌐 Universal Compatibility: Works with any telemetry application that supports VTS
  • 🛡️ Future-Proof: Designed to be extensible whilst maintaining backward compatibility

The VTS format transmits data as a packed binary structure, optimised for low-latency UDP transmission. It includes comprehensive vehicle metrics, race data, and input controls in a well-defined, documented format.

🎯 Standardisation Goal: By providing this plugin and the VTS specification, we aim to encourage adoption across the racing game community, creating a unified ecosystem where telemetry applications can support multiple games through a single, standardised interface.

🏎️ Forza Horizon 5 (FH5)

Compatible with applications that support Forza Horizon 5 telemetry format. This format is provided for compatibility with existing telemetry applications that already support FH5.

About

Standardised UDP Vehicle Telemetry for Unreal Engine

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors