Installation
Requirements
Before installing MBT Malisling, make sure the following resources are present and up to date on your server:
| Dependency | Required | Notes |
|---|---|---|
| ox_lib | ✅ Hard | Notifications, callbacks, skill checks, zones |
| OneSync | ✅ Hard | Scope detection won't work without it |
| ox_inventory | Soft | Auto-detected at runtime. Required if not using qb-inventory |
| qb-inventory | Soft | Alternative to ox_inventory for QBCore servers |
| oxmysql | Soft | Required only for: vehicle trunk rack, weapon rack, chain of custody, prop position editor. These modules auto-disable if oxmysql is absent |
Your server must also be running one of: ESX, QBCore, QBox (qbx_core) or OX Core. The script auto-detects the active framework at startup.
At least one inventory system (ox_inventory or qb-inventory) must be present. The script will not load without a supported inventory.
Steps
Add to your resources folder
Extract the folder and place it inside your resources directory:
resources/
└── [mbt]/
└── mbt_malisling/
├── core/
├── modules/
├── data/
├── locales/
├── config.lua
├── default.lua
└── fxmanifest.luaAdd to server.cfg
Ensure the resource starts after ox_lib and your inventory system:
ensure ox_lib
ensure ox_inventory # or qb-inventory
ensure mbt_malislingIf you use oxmysql for persistence modules, start it before mbt_malisling:
ensure oxmysql
ensure ox_lib
ensure ox_inventory
ensure mbt_malislingConfigure your modules
Open config.lua and enable or disable the modules you want. Every module has its own section with a top-level Enabled key:
MBT.Safety = { Enabled = true, ... }
MBT.ConcealedCarry = { Enabled = false, ... }
MBT.WeaponRack = { Enabled = true, ... }Modules are independent — disabling one has no effect on others.
Restart your server
Start or restart your server. On first load, the script patches the active inventory to add holster animation hooks.
A full server restart is required after first install. The ox_inventory hook is applied at startup. Players must reconnect after the restart to load the patched file.
Multicharacter support
If you use esx_multicharacter and have relog enabled, set:
MBT.Relog = trueThis ensures weapons are properly cleaned up when switching characters without a full reconnect.
Verifying the install
After restarting, equip any weapon via your inventory. You should see:
- The weapon prop appearing on your back/side
- A holster prompt at the bottom of the screen:
[RMOUSE] - Unholster [BACKSPACE] - Cancel - Other nearby players seeing the weapon on your character
If the prop does not appear, check your server console for errors and confirm ox_lib and your inventory system are loaded before mbt_malisling.
Upgrading from v1.x
v2.0.0 is a full rewrite. The folder structure has changed — do not copy your old config.lua over the new one. Instead, re-apply your customisations (job positions, weapon positions, locale overrides) to the new config.lua and default.lua files.
Key differences from v1:
config.luanow uses module-scoped tables (MBT.Safety,MBT.ConcealedCarry, etc.) instead of flat keysdata/weapons.luahas two additional slot types:back2andextinguisher- The death drop system has been replaced by the unified
WeaponDropmodule — update your config accordingly - ox_inventory is no longer a hard dependency; qb-inventory is now supported