Common Issues
Welcome to our troubleshooting baseline. Identify rapid solutions for frequent issues in XR-MDT.🔴 Tablet / Interface Issues
Tablet Never Opens
- Check the F8 console for red errors.
- Ensure
ox_libis started beforexr-mdtinserver.cfg. - Verify
ensure xr-mdtis present inserver.cfg. - Check that the
web/dist/index.htmlfile exists and theui_pageinfxmanifest.luapoints correctly.
NUI Renders Black / Blank
- FiveM’s Chromium engine does not support
backdrop-filter. If you have modified NUI files, remove anybackdrop-filterCSS properties. - Do not use
rgba(0,0,0,0)as a container background — usetransparentor a solid color instead. - Flush FiveM cache:
%localappdata%/FiveM/FiveM.app/data/cache
NUI Ghosting (Clicks heard but nothing visible)
- Flush FiveM cache and restart the resource.
Tablet Opens but Permissions are Wrong
- Confirm the player’s
job.namematches a key inConfig.PoliceJobs, or matches'ambulance'/'doj'. - Check that
Config.EnablePolice = true(notConfig.EnableLSPD). - For ESX: verify
Config.ESXDutyis set correctly andGetESXDutyStatus()is returning the expected value.
💾 Database Issues
Error: Unknown Column ssn / charid
- You are using ESX without running the migration SQL. Execute
INSTALL/database_esx.sqland restart. - Alternatively, run manually:
Error: Table mdt_reports / lspd_warrants / etc. Does Not Exist
- You skipped the SQL import step. Import
INSTALL/xr-mdt.sql(andINSTALL/database_esx.sqlfor ESX) immediately. - The startup Database Auditor will list all missing tables in the server console. Look for lines beginning with
^1[!] MISSING TABLES DETECTED.
Finance Queries Return 0 / Empty
- Finance data (revenue, expenses) is read from the
bank_statementstable. - This table is only populated when transactions go through
Bridge.Bank.AddMoney()orBridge.Bank.RemoveMoney(). If your banking resource writes to a different table, overrideEditTable.Business.Queries.GetRevenueineditable/server/business.lua.
📹 Bodycam Issues
Bodycam Feed Never Appears / Buffers Infinitely
- Lower
Config.Cameras.DefaultFPSandConfig.Cameras.IdleFPSinconfig.main.lua. - Ensure the player’s job is in
Config.Cameras.AllowedJobs. - The bodycam uses WASM — no server-side FFmpeg. Check the F8 console for NUI errors.
- On servers with 15+ concurrent bodycam users, reduce
DefaultFPSto avoid NUI thread saturation.
📑 A4 Document Issues
Signatures Not Saving / Syncing
- Ensure players are standing still when signing — network tick propagation requires brief stability.
- If scaling appears erratic, check for custom UI scaling mods that break 16:9 NUI constraints.
Document Item Metadata is Empty
- Ensure the
documentitem is registered withclient = { export = 'xr-mdt.document' }inox_inventory, or a server-sideRegisterUsableItemin other inventory systems.
🗺️ GPS / Tracking Issues
Ghost Blips Persist After Player Disconnects
- The
cl_gps.luaactively cleans tracking loops on resource stop. - If blips persist after duty-off, ensure your framework fires an item-drop event when going off duty — the GPS loop requires a server kill trigger.
Tracking Band Doesn’t Appear on MDT Map
- Confirm
Config.Items.tracking_band = 'tracking_band'matches your inventory item name. - Ensure
Config.InventoryAutoRegister = trueor manually register the item.
⚙️ Escrow / Permission Issues
Cannot Edit Core Logic Files
- Files NOT listed in
escrow_ignoreinfxmanifest.luaare Tebex-escrowed. You cannot modify them. - All customizable logic is exposed via
editable/and theEditTablesystem. See EditTable Reference.
EditTable.Functions.ErrorCodes Not Available
EditTableis initialized ineditable/server/main.luawhich loads before all other server scripts. If you see this error, check thateditable/server/main.luais listed first infxmanifest.luaserver_scripts.
🐛 Debug Mode
Enable debug mode inconfig.main.lua:
- Verbose F8 console logging for all Bridge operations (jobs, money, items, callbacks).
- Visual markers for registered targeting zones in-world.
- The
/mdt_debugcommand to list all active target zones. - Discord debug webhook forwarding for errors.
[!TIP]
Always disable Config.Debug = false on production servers. Debug mode generates significant log volume and Discord webhook traffic.
[!TIP] If all else fails, seek assistance directly via Discord with your exact error code dumps from the F8 console and server console.
