Bridges
np_mdt runs on a bare server. fxmanifest.lua has no dependency entries: whatever is running gets used, and anything missing is replaced by a built-in fallback. Detection runs once at start (core/bridge/resolve.lua), so start your dependencies before np_mdt.
| Concern | Detected, in order of precedence | Built-in fallback |
|---|---|---|
| Framework | es_extended, qb-core, qbx_core, essentialmode (old ESX) | standalone: identifier from GetPlayerIdentifierByType |
| Inventory | ox_inventory, qb-inventory, es_extended | builtin: an in-memory table |
| Target | ox_target, qb-target, qtarget | builtin: raycast with its own markers |
| UI | ox_lib | builtin: the resource's own NUI (menu, progress, notifications) |
| Database | oxmysql, ghmattimysql (table np_mdt_kv) | file: JSON next to the resource |
Framework order
Unlike the other np_* resources, np_mdt checks ESX first: it's the main target. Qbox also provides qb-core, so on a Qbox server the qb adapter is used either way.
The choice is printed as a single line at start:
[np_mdt] bridge: db=file framework=standalone inventory=builtin target=builtin ui=builtinmdtstatus shows the same line.
Overriding detection
If detection picks the wrong one, pin it in config/core.lua. Leave a concern out to keep auto-detection for it:
Config.Bridge = { inventory = "builtin" }| Concern | Adapter names |
|---|---|
framework | esx_current, esx_legacy, qb, standalone |
inventory | ox, qb, esx, builtin |
target | ox, qb, builtin |
ui | oxlib, builtin |
db | oxmysql, ghmatti, file |
What the framework bridge is used for
- Identity. Character identifier and name. The MDT itself always matches players by Discord id.
- Jobs and duty for the
ranks,timeclockandtabletmodules and the medic care tiers. Duty comes fromjob.onduty(QBCore),job.onDuty(ESX 1.10+) or the ESXoff<job>convention. - Money for the hospital bill after a respawn (
Config.Medic.Respawn.account, defaultbank). - Death state for other scripts when the medic simulation is on: ESX state bag
isDead/isDownedandxPlayer.get("isDead"), QBCore metadatainlaststand/isdead. After a revive ESX getsesx:onPlayerSpawn. - Ambulance scripts that conflict with the simulation:
esx_ambulancejobunder ESX;qb-ambulancejob,qbx_medical,qbx_ambulancejobunder QBCore / Qbox. See Medic module.
Inventory
The medic and ausweis modules use items. Items are looked up by name through the inventory bridge (count, add, remove, and per-use consumption for multi-use items such as ointment tubes). With ox_inventory, usable items are handled through ox_inventory:usedItem. Make sure the items from config/medic/items.lua and mdt_dienstausweis exist in your inventory, or rename them in the config.