Skip to content

LicensesGame

Read characters’ licenses on their citizen record, revoke or give them back in game from the MDT: supported scripts, real effects and limits.

On this page07
  1. Turn it on
  2. The Licenses tab
  3. What it really changes in game
  4. Compatibility
  5. Is your script custom?
  6. Bridge settings
  7. Troubleshooting

With Character licenses, the citizen record of a game character gets a Licenses tab: the licenses read in game (driving, weapon…), valid or revoked. An authorized officer can revoke or give back a license from the MDT: the change goes to the game.

In Settings › Game › Integrations, turn on Character licenses (administrators, or a rank with Delegated administration › Set up the game). Under the switch, SuperMDT shows the script used and whether a license is also written while the character is offline.

On the record of a citizen from the game, the Licenses tab shows:

  • each license, Valid or Revoked, and when they were read in game;
  • the pending change of a license, if there is one (“Revocation waiting for the character to log in”…);
  • the Latest changes: the 10 most recent, with the author, reason and in-game result.

Licenses arrive on every join, reconnection or character switch (unless they were read less than a minute ago), then are re-read every 10 minutes for connected characters: a license given or revoked in game (driving school, gun store) therefore shows in the MDT. An unchanged list isn’t sent again.

With esx_license, only the licenses the character holds and those revoked by the MDT (which can be given back) are shown: a catalog license they never obtained does not appear.

Known types are translated (Driving license, Weapon license, Motorcycle license, Driving theory…); an unknown type shows with its in-game name, or the label from ESX’s catalog.

  1. Open the record’s Licenses tab.
  2. On the license’s line, click Revoke (or Give back for a revoked license).
  3. Enter the Reason: required, 3 to 200 characters.
  4. To revoke, hold the Revoke button that appears (releasing cancels). To give back, click Give the license back. Cancel closes without changing anything.
  5. The change goes to the game. Its status shows on the line: in progress, waiting for login, applied in game, or failed with the reason.

Every change is written to the audit log: who, which license, the reason, before and after, then the in-game result.

Permission What it allows Default
Licenses › See licenses the Licenses tab every rank
Licenses › Revoke Revoke a license in game, with a reason supervisors and up
Licenses › Restore Give back a revoked license in game, with a reason supervisors and up

These permissions are set under the Citizens module of the matrix, in Ranks and permissions, and only show there when the game integration is on. Administrators always have them. The full catalogue is in Permissions.

License Real effect
Weapon license (weapon) Gun stores that read the native license (ox_inventory with license = 'weapon' on the item, qb-shops, esx_weaponshop) refuse the sale.
Driving license No native script stops anyone from driving without a license: revoking it is a roleplay effect (stops, records).
Physical card (inventory item) Isn’t removed from the inventory.

Tested in game tried in game on a real server. Verified in code written from the script’s source code or native API, covered by the bridge’s tests, not tried in game yet. Experimental from the publisher’s public documentation, never tried: check it on your server before relying on it.

Framework Script Status Reading Revoke and give back
Qbox native (metadata.licences) Verified in code Yes Online and offline (offline, qbx_core saves a moment later: the bridge re-reads up to 5 times before concluding).
QBCore native (metadata.licences) Tested in game Yes Connected character only: otherwise, the change waits for their login.
ESX esx_license (with oxmysql) Verified in code Held licenses, and those revoked by the MDT; catalog labels Online and offline.
ESX, QBCore, Qbox BCS License Manager Experimental Yes Revoke online or not; give back with the character connected. Takes priority if started.
ESX, QBCore, Qbox qs-licenses (Quasar) Experimental Active licenses only Revoke online or not; give back with the character connected. Takes priority if started.

On QBCore, the bridge never writes straight to the database for an offline character: the framework’s save would overwrite the change if they logged in meanwhile.

Your license script… Result
writes to metadata.licences (QBCore, Qbox) or to user_licenses (ESX) Read and editable from the MDT.
keeps its licenses in its own tables or exports Neither read nor changed.

In config.lua, Config.Integrations.licenses: resyncMinutes (re-read of connected characters, 10 minutes) and readIntervalMs (one character read at most every second).

What you see Cause What to do
No Licenses tab Integration off, game integration off, or missing permission Settings › Game › Integrations; Licenses › See licenses.
“This citizen isn’t a game character” Record entered in the MDT Nothing to read.
“Not read in game yet” The character hasn’t joined since the integration was turned on They arrive at their next login.
“… waiting for the character to log in” QBCore, or give-back with BCS or qs-licenses The change applies at the next login.
License revoked, the player still buys a weapon A counter sells the license again, or the gun store doesn’t read the native license Remove that point of sale, check the shop.