- Documentation
- 06Game
LicensesGame
Read characters’ licenses on their citizen record, revoke or give them back in game from the MDT: supported scripts, real effects and limits.
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.
Turn it on
Section titled “Turn it on”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.
The Licenses tab
Section titled “The Licenses tab”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.
Revoke or give back a license
Section titled “Revoke or give back a license”- Open the record’s Licenses tab.
- On the license’s line, click Revoke (or Give back for a revoked license).
- Enter the Reason: required, 3 to 200 characters.
- To revoke, hold the Revoke button that appears (releasing cancels). To give back, click Give the license back. Cancel closes without changing anything.
- 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.
Who can do it
Section titled “Who can do it”| 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.
What it really changes in game
Section titled “What it really changes in game”| 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. |
Compatibility
Section titled “Compatibility”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.
Is your script custom?
Section titled “Is your script custom?”| 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. |
Bridge settings
Section titled “Bridge settings”In config.lua, Config.Integrations.licenses: resyncMinutes (re-read of connected
characters, 10 minutes) and readIntervalMs (one character read at most every second).
Troubleshooting
Section titled “Troubleshooting”| 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. |