Skip to content

Install the bridgeGame

Install the supermdt-bridge resource on your FiveM server: requirements, downloading and checking the archive, bridge key, server.cfg, jobs, updates and troubleshooting.

On this page12
  1. Requirements
  2. Download the bridge
  3. Install
  4. Link jobs to services
  5. When settings apply
  6. The Settings › Game page
  7. Update the bridge
  8. The ensure order
  9. Replace or revoke the key
  10. Troubleshooting
  11. Common errors
  12. What the bridge does to stay light

The supermdt-bridge bridge is a FiveM resource you install once on your server. Allow about fifteen minutes. You need access to the server files (resources folder, server.cfg) and to be an administrator of your SuperMDT organization.

Framework ESX Legacy, QBCore or Qbox. No other (see Game integration).
OneSync On (onesync on). Without OneSync, everything works except live map positions.
FXServer artifacts Recent enough for Node 22 (node_version '22'). On an older artifact, only positions are cut off.
SuperMDT An organization with at least one service, and the game integration turned on.
screencapture or screenshot-basic Optional: only for in-game photos. screencapture is recommended.

The bridge is downloaded from the SuperMDT website, as a ZIP archive:

File Address
The latest version (permanent link) https://supermdt.fr/downloads/supermdt-bridge-latest.zip
A specific version https://supermdt.fr/downloads/supermdt-bridge-<version>.zip (for example supermdt-bridge-0.8.0.zip)
That version’s fingerprint https://supermdt.fr/downloads/supermdt-bridge-<version>.zip.sha256
The current version, its fingerprint and size https://supermdt.fr/downloads/supermdt-bridge.json

The Download the bridge step of getting started shows the file, its version, its size and its SHA-256 fingerprint, with the download button and the permanent link.

Unzip the archive into your server’s resources folder: you should get resources/supermdt-bridge/fxmanifest.lua. Keep this exact folder name, with no duplicate folder (supermdt-bridge/supermdt-bridge).

To make sure the archive was neither damaged nor modified, compute its fingerprint and compare it with the one shown in SuperMDT (or in supermdt-bridge.json):

Fenêtre de terminal
# Linux, Git Bash (macOS: shasum -a 256)
sha256sum supermdt-bridge-0.8.0.zip
# with the .sha256 file downloaded next to it
sha256sum -c supermdt-bridge-0.8.0.zip.sha256
Fenêtre de terminal
# Windows (PowerShell): same value, shown in uppercase
Get-FileHash .\supermdt-bridge-0.8.0.zip -Algorithm SHA256

If the two fingerprints differ, don’t install it: download it again.

  1. Turn on the integration. In SuperMDT, open Settings › Game and turn on Turn on game integration.

  2. Create the bridge key. In the Bridge key card, click Generate a key and copy it right away: it is shown only once. Also note the API address shown on the same page.

  3. Copy the resource. Download the archive and unzip it into your server’s resources folder (or a bracketed subfolder, like [supermdt]). Keep the supermdt-bridge name: the tablet only agrees to display inside a resource with this name.

  4. Declare it in server.cfg, after your framework and after the scripts the bridge uses (inventory, bank, phone, garages, billing, licenses, screencapture):

    # SuperMDT
    set supermdt_url "https://<your-api-address>"
    set supermdt_key "smdt_src_…"
    ensure supermdt-bridge
    # Bridge admin commands
    add_ace group.admin command.supermdt allow
  5. Restart the server, then type supermdt status in the console. You should see the detected framework, a recent “Last hello” and “Relay: … connected: yes”. In SuperMDT, the Connection card turns Connected within a minute.

  6. Link your jobs to your services (next section).

Convar Role Default
supermdt_url The API address (required), in https://. —
supermdt_key The bridge key (required). —
supermdt_framework auto, esx, qbcore or qbox. Keep auto unless detection fails. auto
supermdt_debug true: detailed log in the console. false
supermdt_link_command The name of the link-by-code command. Empty: linking by code is off. mdtlink
supermdt_duty_command The name of a duty on/off command provided by the bridge (for example service), for a server with no duty point. Empty: off. empty

Other settings live in three files of the resource. The defaults suit most servers: you don’t need to change anything to get started.

File Where it’s read What it holds
config.lua server only (never sent to players) the address, key and framework (read from the convars), the rates towards SuperMDT (Config.Http), sending players (Config.Players) and positions (Config.Positions), linking with a code (Config.Link), the tablet, photo, quick dispatch and panic rates, the server side of the plate reader, electronic tags, printing (Config.Documents) and the integrations (Config.Integrations: weapons, vehicles, transfers, licenses, fines, properties)
config_shared.lua server and players the message language (Config.Locale, fr or en), the tablet, photos, quick dispatch, the SuperMDT menu, the panic button, call waypoints, the default keys on ESX (Config.FrameworkKeys) and the player side of the plate reader
config_alerts.lua server and players game alerts: dispatch scripts and phones listened to, bridge detections

config_shared.lua and config_alerts.lua are sent to players: put nothing secret in them. Each integration and each in-game feature must also be turned on in SuperMDT: these files only let you turn them off on the game server side.

After changing one of these files, restart the resource (ensure supermdt-bridge, or refresh then ensure if you added files).

The bridge needs to know which framework job matches which service. In Settings › Game, Jobs and services card:

  1. Click Link a job.
  2. In Framework job, type the job name as it exists in the framework, in lowercase: police, sheriff, ambulance…
  3. Pick the Service.
  4. Optional, in Grades: match a framework grade (number or name) with an MDT grade. It’s shown on the player sheet (expected grade, any mismatch); the MDT grade is not changed automatically.
  5. Save.

A job belongs to a single service; a service can have several jobs (police and sheriff, for example). With no linked job, the bridge still sends players and their characters, but puts nobody on duty and sends no positions: the console shows “No job is linked to a service”.

To remove a job: open it, then hold Remove this job.

The bridge re-reads SuperMDT’s settings (jobs, position interval, tablet options, integrations) at each hello. SuperMDT tells it as soon as a setting changes: the change reaches the game within a few seconds, and players already in game see it without reconnecting (30 seconds at most when the live map is off). It also says hello at startup, then every 10 minutes. supermdt hello in the server console forces one right away.

Everything about the game on the SuperMDT side fits on one page (permission Delegated administration › Set up the game, or administrator). While the integration is off, only the first card shows.

Card What it holds Details
Game integration The Turn on game integration switch. Game integration
Connection The bridge state: Connected (contact less than 5 minutes ago), Quiet (older) or Never connected; the framework and its version, the resource and its version, the server name, the Last check-in, and the API address with Copy. above
Bridge key Generate a key, Replace the key, Revoke. below
Jobs and services Framework jobs linked to services (Link a job). above
Positions The positions’ Send interval (seconds), from 10 to 300 (60 by default): it’s the same setting as the live map’s (Map settings). Duty and positions
In game In-game photos and Quick dispatch. In-game tablet
Integrations Weapons, vehicles, transfers, licenses, fines and care, plate reader, properties, and the Alerts and dispatch line: for each, the detected script and its support level. Game integration and each integration’s page
Installation The three steps and the server.cfg lines, with your API address (and the key, right after you generate it); Installation guide opens this page. above
Players Game accounts seen by the bridge or entered by hand. Accounts and characters
  1. Download the new version (the permanent supermdt-bridge-latest.zip link always follows the latest) and replace the supermdt-bridge folder with the one from the archive.
  2. In the server console, type refresh, then ensure supermdt-bridge (or restart the server).

The bridge detects the scripts started before it. Put ensure supermdt-bridge after:

  1. the framework (es_extended, qb-core or qbx_core) and oxmysql;
  2. the inventory (ox_inventory, qb-inventory…), vehicles (qbx_vehicles), bank, phone, licenses, billing;
  3. screencapture or screenshot-basic, for in-game photos.

If one of these scripts starts later, the bridge sees it at its next hello (10 minutes, or supermdt hello). At startup, it waits up to 60 seconds for the framework.

In the Bridge key card: Replace the key creates a new key and cuts off the old one immediately; Revoke (hold button) cuts it off without replacing it. After a replacement, put the new key in supermdt_key, then type supermdt hello: the bridge re-reads the key without restarting.

The same key is used for players, duty, the tablet and live map positions.

These commands are reserved for the console and for players allowed by the add_ace group.admin command.supermdt allow line. None of them shows the key.

Command Effect
supermdt status Full status: framework, last hello, linked jobs, players, position relay, tablet, photos, quick dispatch, call waypoints, panic button, game alerts (scripts listened to, grouped as tested in game, verified in code or experimental; listeners and phones on or off; detections; counters), plate reader (active or not, and why), properties, electronic tags, printed documents, phone used for numbers, and each integration (script detected, on or off, counters, support level of the script in use).
supermdt log [n] The last n log lines (15 by default, 100 at most).
supermdt hello Re-reads the key and asks SuperMDT for the settings again.
supermdt resync Sends all players and all positions again; reads and sends right away the vehicles, homes and licenses of every connected character (even unchanged) and rescans weapon inventories.

A summary of what the bridge adds in game, with the out-of-the-box settings. Each player changes each key in Settings › Key Bindings › FiveM (under the label shown, in the Config.Locale language); the player’s choice wins from then on. An action with no default key can still be bound.

Command What it does Default key (QBCore, Qbox) On ESX Setting
/mdt Open or close the tablet (“Open or close the SuperMDT tablet”) F6 F4 Config.Tablet.command, key
/dispatchrapide Show or hide the quick dispatch; /dispatchrapide position opens the HUD layout F7 none Config.QuickDispatch.command, key
supermdt_status_1 to _9 Set the service’s n-th status from the quick dispatch none (only those in statusKeys) none Config.QuickDispatch.statusKeys
supermdt_menu Open the SuperMDT menu (“SuperMDT menu”) F9 none Config.Menu.key
/mdthud (supermdt_layout) Open the HUD layout none none Config.Menu.layoutCommand, layoutKey
/panique (supermdt_panic) Trigger the panic button; /panique son mutes or unmutes colleagues’ alerts F10 none Config.Panic.command, keyEnabled, key
/supermdt_panic_sound Mute or unmute colleagues’ alerts, when /panique is turned off — — —
supermdt_waypoint_clear Remove the call waypoint (“Remove the SuperMDT GPS waypoint”) without releasing the unit none none Config.Waypoints.clearKey
supermdt_plate_toggle Turn the built-in plate reader on or off none none Config.PlateReader.key
supermdt_plate_lock_front, supermdt_plate_lock_rear Lock or unlock the front or rear camera none none lockFrontKey, lockRearKey
supermdt_plate_open Open the flagged vehicle’s record Page Up Page Up Config.PlateReader.openKey
/supermdt_plate_sound Mute or unmute plate alerts — — —
/mdtlink <code> Link your game account — — supermdt_link_command convar
/service (any name) Go on or off duty (off by default) — — supermdt_duty_command convar
supermdt_client [debug] Diagnostics, in the player’s F8 console (see below) — — —

The command names are those of the bridge as shipped (/dispatchrapide, /panique): your server may have renamed them. On ESX, F6, F7, F9 and F10 are already taken by the base scripts: see Keys on ESX (Config.FrameworkKeys).

supermdt_client shows what the tablet can offer this player: tablet open or not, in-game photos announced or not (and through which capture resource), quick dispatch announced or not, and the state of the call waypoint (supermdt_client debug turns on its traces). It’s the command to ask for when an officer can’t see a button.

What you see Likely cause What to do
“API address missing” or “Bridge key missing” Missing or misspelled convar Check set supermdt_url and set supermdt_key, then restart the resource.
“Invalid API address” Address without https:// (http:// is only accepted for localhost) Copy the API address shown in Settings › Game.
“Unsupported or missing framework” The framework starts after the bridge, or isn’t ESX, QBCore or Qbox Put ensure supermdt-bridge after the framework.
“Bridge key refused” Key revoked, replaced or badly copied Generate a new key, put it in supermdt_key, then supermdt hello.
“Game integration is turned off in SuperMDT” The Settings › Game switch is off Turn it on: the bridge retries every 30 seconds on its own (or supermdt hello).
“Organisation suspended” Subscription or organization suspended Check your organization’s status.
“No job is linked to a service” No linked job Link your jobs, then supermdt hello.
A new feature doesn’t show after an update No refresh refresh, then ensure supermdt-bridge.
“Relay: …, connected: no” Outbound firewall, artifact without Node 22 supermdt log gives the error code; update the artifacts.
“Positions: no” Live map off, or OneSync off Turn on the live map in SuperMDT; onesync on.
The tablet stays blank Renamed resource Keep the supermdt-bridge name.
“Rate limit reached” Too many requests for the organization The bridge pauses on its own.
Settings › Game: “No compatible resource detected” Script missing, stopped or started after the bridge ensure that script before the bridge, then supermdt hello.

Errors specific to account linking, the tablet and each integration are on their own pages.

  • At most 5 requests per second to SuperMDT, with a bounded queue; it waits on its own if SuperMDT asks it to slow down, and retries with a growing delay during an outage.
  • It never trusts what a player sends: it re-reads everything from the framework, server side. The key never leaves the game server.
  • Positions are never stored in SuperMDT’s database: they stay in memory in the live map relay.
Settings › Game, top to bottom