mxbmrp3

A customizable, open-source HUD plugin for MX Bikes and GP Bikes displaying real-time race information and telemetry.

MXBMRP3 HUD Screenshot Example HUD layout. All elements are fully customizable.

Features

Get Started

Download and install the plugin to begin customizing your HUD.

Download Installer Download ZIP

Quick Start

  1. Install the plugin
  2. Launch the game and load a track
  3. Right-click drag to reposition elements
  4. Press Tilde (~) or click the [=] settings button to customize visibility, scale, opacity, and more

See Installation for detailed setup instructions.

Contents

Installation

Requirements:

Automatic Installation

  1. Download the latest installer mxbmrp3-Setup.exe
  2. Run the installer - it will:
    • Auto-detect your MX Bikes and GP Bikes installations (Steam or standalone)
    • Let you choose which games to install for
    • Install to the correct plugins folder for each game
    • Handle upgrades automatically (preserves your settings)

Manual Installation

  1. Download the latest release archive mxbmrp3.zip
  2. Find your game’s plugins folder:
    • Steam: Right-click the game in your library → ManageBrowse local files → open plugins
    • Standalone: Navigate to your game installation folder (e.g., C:\Games\MX Bikes\ or C:\Games\GP Bikes\) → open plugins
  3. Extract the plugin files:
    • Copy mxbmrp3.dlo (MX Bikes) or mxbmrp3_gpb.dlo (GP Bikes) to the plugins/ folder
    • Copy the mxbmrp3_data/ folder to the plugins/ folder

    Do NOT delete the existing game files (proxy64.dlo, proxy_udp64.dlo, xinput64.dli, or telemetry64.dlo for GP Bikes) - these are native game files, not old plugin versions.

    Your directory should look like this after installation (files vary slightly by game):

    [Game]/
    │   mxbikes.exe / gpbikes.exe
    │   ...
    │
    └───plugins/
        ├── mxbmrp3_data/        ← Add this folder (from release)
        │   ├── fonts/           ← Font files (.fnt)
        │   ├── textures/        ← Texture files (.tga)
        │   ├── icons/           ← Icon files (.tga)
        │   └── web/             ← Web overlay files (HTML/CSS/JS)
        ├── mxbmrp3.dlo          ← Add this (MX Bikes only)
        ├── mxbmrp3_gpb.dlo      ← Add this (GP Bikes only)
        ├── proxy_udp64.dlo      ← Keep (native game file)
        ├── proxy64.dlo          ← Keep (native game file)
        ├── xinput64.dli         ← Keep (native game file)
        └── telemetry64.dlo      ← Keep (GP Bikes only)
    

After Installation

Launch the game - the plugin loads automatically. Some elements are enabled by default and can be repositioned or configured via the settings menu. See Tips & Tricks for useful setup ideas. If nothing appears, see Troubleshooting.

Controls

Mouse

Keyboard Shortcuts

Keyboard and controller hotkeys can be customized in Settings > Hotkeys. By default, only the settings menu hotkey is configured:

Configuration

Use the settings menu (Tilde key or [=] settings button) to configure all HUDs and widgets. Hover over any setting to see its description - all controls have in-game tooltips explaining their function.

The settings menu provides:

All settings are automatically saved between sessions.

Profiles

Four separate profiles store complete HUD layout configurations:

Auto-switch (disabled by default) automatically changes profiles based on session type.

HUDs & Widgets

All HUDs and widgets are configurable via the settings menu or directly in the .ini file.

HUDs

HUD Description
Standings Live race positions with gaps, status, and tracked rider indicators
Map Top-down track map with rider positions (click to spectate)
Radar Proximity radar with approach alerts and distance arrows
Timing Split and lap times with gap comparisons
Gap Bar Visual gap-to-PB bar with position markers
Pitboard Pitboard-style lap information display
Lap Log Historical lap times with PB indicators
Lap Consistency Lap time consistency analysis with trend visualization
Ideal Lap Best sector times and theoretical ideal lap
Records Online lap records (CBR or MXB-Ranked) with personal bests (MX Bikes only)
FMX Freestyle trick detection with scoring and chain combos
Telemetry Throttle, brake, suspension graphs
Performance FPS and plugin CPU usage
Rumble Controller rumble effect visualization
Stats Riding stats with columns for last lap, session, and all-time totals
Session Session info (type, format, track, server, players, password)
Notices Race status notices (wrong way, blue flag, PB alerts, last lap, finished)
Event Log Timestamped feed of race events (session changes, fastest laps, penalties, finishes, pit activity)

Widgets

Widget Description
Lap Current lap number
Position Race position
Time Session time/countdown
Speed Current speed
Gear Current gear
Clock Real-time clock
Speedo Analog speedometer
Tacho Analog tachometer
Bars Telemetry bars (throttle, brake, clutch, RPM, suspension, fuel)
Fuel Fuel calculator with consumption tracking
Lean Bike lean angle with arc gauge
Gamepad Controller visualization

Web Overlay

The plugin includes a built-in HTTP server that streams live race data to a browser-based overlay, designed for use as an OBS Browser Source.

Setup

  1. Enable the web server in Settings > General > Web Server (the port number is shown when active)
  2. In OBS, add a Browser Source with URL http://localhost:8080
  3. Set width/height to match your stream resolution (e.g., 1920x1080)
  4. The overlay auto-connects and displays a standings tower, event log, and rider focus card

Note: The overlay shell is cached by a service worker after the first successful load, so OBS can render the UI even if MX Bikes (and the plugin’s HTTP server) isn’t running yet. The very first load still requires the plugin server to be up at least once so the cache can be primed.

Settings Panel

The overlay includes a built-in settings panel for configuring display options without editing files:

Colors and fonts sync automatically from your in-game settings.

What’s Displayed

Customization

The overlay files are plain HTML, CSS, and JS. To customize them, place modified files in Documents\PiBoSo\[Game]\mxbmrp3\web\ — user files override the bundled versions on startup and are preserved across updates (see Modding).

Tips & Tricks

Enable update notifications - The plugin doesn’t check for updates by default. Go to Settings > Updates and set the update mode to “Notify” to get notified when a new version is available. You can also install updates directly from the settings menu.

Streaming setup - Enable the Session HUD (Settings > Session) to show the server name, track, and session type on screen for your viewers. The Pitboard and Gamepad widgets also work well on stream - both have fully customizable textures, and the Gamepad widget shows your live controller inputs. Pair with Discord Rich Presence (Settings > General) to show your current session and track in your Discord profile. For a broadcast-style overlay, see Web Overlay below.

Web overlay for OBS - The plugin includes a broadcast-style overlay for streaming. See Web Overlay for setup and configuration.

Power-user INI tweaks - Many additional options are available by editing the INI file directly. The file is well-commented and easy to work with. Each HUD section also supports per-element color overrides using ABGR hex values. For example:

[StandingsHud]
classicLayout=1         ; remove number plates and brand color strips

[SpeedWidget]
color_primary=0xff00ff00 ; green text (ABGR format)

Use the Color Override Picker to convert RGB colors to ABGR format. See Advanced Settings for how to edit and hot-reload the INI file.

Track records - The Records HUD fetches online lap records from CBR or MXB-Ranked. Enable “Auto-fetch” in Settings > Records to automatically load records when you enter a track. Records also work while spectating.

Click-to-spectate - Left-click on any rider on the Map HUD or Standings HUD to switch the spectate camera to that rider.

Remove the stock pitboard - Create an empty file called pitboard.cfg in [Game]\misc\hud\ (create the directories if needed). This removes the default 2D pitboard while keeping the small 3D pitboard in the game world. Delete the file to restore it.

Show/hide the rider stand icon - This is a game setting, not a plugin setting. Enable it under Simulation > “Show Rider Stand”. To customize the icon or its position, extract rider.cfg and riderstand.tga from misc.pkz\misc\helpers\ to [Game]\misc\helpers\ and edit them there.

Advanced Settings

All plugin settings are stored in mxbmrp3_settings.ini in your user data folder.

In-game vs INI-only settings:

INI structure:

Editing the INI file:

With the game closed (recommended):

  1. Exit the game completely
  2. Edit mxbmrp3_settings.ini
  3. Launch the game to apply changes

Hot reload (for rapid iteration):

  1. Disable Auto-Save in Settings > General
  2. Edit the INI file while the game is running
  3. Use the Reload Config hotkey to apply changes (bind it in Settings > Hotkeys)

If Auto-Save is enabled, changes made to the INI while the game is running will be overwritten.

Modding

Plugin data and custom assets are stored in Documents\PiBoSo\[Game]\mxbmrp3\.

Custom Assets

Add custom fonts, textures, and icons by placing them in the appropriate subfolder:

mxbmrp3/
├── fonts/       ← Custom .fnt files
├── textures/    ← Custom .tga textures
└── icons/       ← Custom .tga icons

On game startup, the plugin syncs these files to the plugin’s data directory (plugins/mxbmrp3_data/). User files with the same name as bundled assets will override them. This keeps your customizations separate from the plugin installation, so updates won’t overwrite your files. Restart the game after adding or modifying assets.

Custom Textures

Textures use the naming convention {element_name}_{number}.tga (e.g., standings_hud_1.tga). They’re auto-discovered and selectable via the Texture control in each HUD’s settings.

Pitboard - Drop a custom .tga file (e.g., pitboard_hud_2.tga) into the textures\ subfolder. It will be auto-discovered and selectable in Settings > Pitboard > Texture.

Gamepad - The Gamepad widget ships with Xbox and PlayStation layouts. To customize them, copy gamepad_widget_1.tga (Xbox) or gamepad_widget_2.tga (PlayStation) from plugins\mxbmrp3_data\textures\ to the textures\ subfolder and edit them. Source design files (PSD) are available in assets/.

Custom Fonts

Fonts (.fnt files) are auto-discovered and assignable to categories (Title, Normal, Strong, Marker, Small) in Settings > Appearance. To generate fonts, use the fontgen utility provided by PiBoSo. See this forum post for details. An example configuration is provided in fontgen.cfg.

Custom Icons

Icons (.tga files) placed in the icons\ subfolder are discovered alphabetically and available for tracked rider customization in Settings > Riders.

Data Files

File Description
mxbmrp3_settings.ini All HUD settings (positions, visibility, options)
mxbmrp3_tracked_riders.json Tracked riders with colors and icons
mxbmrp3_rumble_profiles.json Per-bike rumble effect profiles
mxbmrp3_stats.json Unified stats, personal bests, and odometer data

Troubleshooting

HUD Not Appearing

Installer Detected the Wrong Game Directory

Text or Icons Not Appearing

Gamepad Widget Appears Cut Off

Elements Appearing Twice (Ghost/Duplicate)

Elements Overlapping

Controller or Rumble Not Working

Game Fails to Launch, Crashes, or Shows Black Screen

For bug reports or feature requests, open an issue on GitHub.

Development

Built with C++17, Visual Studio 2022, Piboso Plugin API, and Claude Code.

Building from Source

Requirements: Visual Studio 2022+, Windows SDK 10.0, Platform Toolset v143

  1. Clone the repository:
    git clone https://github.com/thomas4f/mxbmrp3.git
    cd mxbmrp3
    
  2. Open mxbmrp3.sln in Visual Studio 2022
  3. Select configuration:
    • MXB-Release / MXB-Debug for MX Bikes
    • GPB-Release / GPB-Debug for GP Bikes
  4. Build the solution (Ctrl+Shift+B)
  5. Output:
    • MX Bikes: build/MXB-Release/mxbmrp3.dlo
    • GP Bikes: build/GPB-Release/mxbmrp3_gpb.dlo

Licensed under the MIT License. See THIRD_PARTY_LICENSES.md for bundled asset attributions.

Feedback and contributions are welcome.