What goes wrong most often, what it actually means, and what to do about it. Most of these are configuration, not faults — and the console usually says which. Read it from the top before opening a ticket.
Installation and Access#
The resource does not start
Check that ox_lib, oxmysql, MugShotBase64 and qs-inventory-objects are all ensured before qs-inventory — FiveM refuses to start a resource whose dependencies are missing — and that your server artifact is build 4752 or newer.
"You have renamed the script!" and the console freezes
The folder must be named exactly qs-inventory. Rename it back — a category folder around it, such as [qs], is fine. The add-ons in [dlc] have the same rule.
The SQL file fails to import
The files use MariaDB's ADD COLUMN IF NOT EXISTS, which MySQL 8 rejects. Use MariaDB, or run those ALTER TABLE lines without IF NOT EXISTS once. Remember both files drop the inventory_* tables: never re-import them on an update.
Stashes, trunks or quests are not saved
The SQL file was not imported. The six inventory_* tables and the inventory_skill / unlocked_skills columns come only from [sql]; only the qs_inventory_* tables create themselves. The console shows a "Table doesn't exist" error from oxmysql.
"You do not have permission to open the inventory settings" (or creator)
Look at the server console: it prints the exact add_ace line that would let that player in. Nine times out of ten the ace is in server.cfg but the server was not restarted, or the player is not in the group the line names. ESX admin / superadmin and QBCore god / admin always pass.
Usable items from my other scripts do nothing (ESX)
es_extended is not handing its inventory to qs-inventory. Use the pre-edited es_extended from Installation, or set Config.CustomInventory = 'qs' in es_extended/shared/config/main.lua, and restart.
I saved a setting and nothing changed
Look for the Restart chip: the language, target, key binds, command names and the switches that turn whole features on or off apply after restart qs-inventory. The panel lists them under Waiting for a restart. Key binds also never replace a key a player already bound for that action.
I edited a file in shared/data and nothing changed
Correct behaviour. Those files are the factory defaults; once a value is saved in /inventoryconfig or the creator, the database wins. Change it in game, or use Reset section to go back to the file's value.
Opening the Inventory#
TAB does nothing
Another resource probably has the key. Rebind Open/Close Inventory in GTA's Settings → Key Bindings → FiveM. It also refuses while you are dead, falling, ragdolled or busy (using an item, trading), and after pressing it repeatedly ("Stop trying..."). If a script called setInventoryDisabled(true), it stays blocked until that script releases it.
ESC opens the inventory instead of GTA's menu
That is the inventory's pause menu. Turn off Replace the GTA pause menu in /inventoryconfig → Pause menu (restart), or let a player move the action to another key in Settings → Keys.
The trunk does not open
Stand within 1.5 m of the back of the vehicle — or the front, for rear-engine cars — and make sure it is unlocked ("Vehicle locked!"). If Anyone can open any trunk is off, only the owner and police can. A supercar whose trunk is at the front but is missing from the rear-engine list can be added in Vehicles.
"Another player is using the inventory!" but nobody is
A stash, trunk or glovebox was left marked as open, usually by a crash. /resetinv stash <id> (or trunk / glovebox with the plate) unlocks it without touching its items.
Target options do not appear
Use target needs a restart after you switch it on, and ox_target or qb-target must start before the inventory. Show target zones draws the zones so you can see where they are.
The character or the 3D background is missing
The background rooms are streamed by qs-inventory-objects, which must be started. The preview also hides on the Settings, Information, Skills and Shop pages by design, and players can turn it off for themselves — or turn on the transparent background — in Settings → Inventory.
Items and Weapons#
An item shows no image or does not exist
On QBCore, items come from qb-core/shared/items.lua — add it there, or make it in the creator's Items tab, which works on every framework. For an image of your own, use Link in the item's image field with a direct PNG, JPG or WebP address.
Clothes do not come off on QBCore
The clothing items are missing from qb-core/shared/items.lua. Paste them from Installation and restart.
An item cannot be used from a quick slot or in a car
It is in Items blocked on keys 1-6 (Item rules → Hotbar), or Use items in vehicles is off. Items can also be restricted to a job, a level or a section of the inventory in their definition.
"You can't store this item" or "can't take more"
The item is in Items that can't be stored (a backpack, by default) or has a Carry limit (one backpack per player). Both are in Item rules → Limits and protected items.
Food goes bad too fast, or never
The decay rate is the number of days an item takes to go from 100% to 0% — a higher number lasts longer. 0.07 is about an hour and forty minutes; 0 never decays. Quality is updated when the inventory opens.
A weapon will not come out, or will not reload
At 0% quality it is broken: repair it with a kit or at a repair point. A full magazine refuses another reload while One magazine at a time is on, and a reload needs the matching ammo item — or master_ammo. With Weapons usable inside vehicles off, weapons stay away in cars.
The URL tint does not show on the weapon
The weapon must be in URL tint textures (Weapons, advanced) and the link must point straight at an image. Use the tint item with the weapon in hand — dropping it on the attachments screen is refused.
Players and the World#
Bags on the ground cannot be kicked
Kicking needs OneSync and Show a prop for bags, and bags stay still while sv_entityLockdown is strict — the console says which on start. Kick unarmed, on foot, within 1.6 m.
The Steal button does not appear
The other player must have their hands up (or be dead, with robbing the dead on), be within 3 m, and you must be armed unless Rob without a weapon is on. A player in the middle of a trade cannot be searched.
A shop does not let me buy
Purchases need you within 8 m of the shop, the licence item it asks for, the right job or gang, the money in the account it charges, and stock left. A product the shop lists for a job or licence is hidden from everyone else.
Crafting benches are gone
Crafting is switched off in /inventoryconfig → Crafting, which hides every bench, or the bench is limited to a job. A recipe also hides when its result or an ingredient is not a real item.
Outfits are lost after a relog
The appearance script must start before the inventory so it is detected; the outfit is saved through it when the inventory closes. See Integrations.
Admin Tools#
The importer refuses to run
Running means the old inventory is started next to qs-inventory: remove its ensure and restart. Busy means another admin's import is still going. Players online are skipped on purpose — import with the server empty. See Switching to Advanced Inventory.
Too many anti-dupe alerts
A job script that legitimately hands out large amounts trips Burst or Spike. Raise the limits in Anti-dupe alerts; the Stats tab shows which script gave the items, so you can tell a farm from a dupe.
Discord logs or avatars do not show
Run testwebhooks in the server console: it says which categories are empty and which ones Discord refused. Avatars in the pause menu need your own Discord bot token in webhook.lua.
Players can open other players' inventories with a command
Debug mode is on. It registers test commands for every player. Turn it off in /inventoryconfig → General (advanced) and restart.
Console Messages#
Message | Means |
|---|---|
| Those log categories have no URL in |
| The server runs without OneSync, so items on the ground stay still. |
| Bags cannot be kicked; thrown and placed items still can. |
| A restart-only setting was saved but the early copy in |
| The database user cannot create tables. Run the matching block of the |
| Somebody without access typed the command. The line ends with the |
| The inventory stopped qb-inventory for you. Remove it from |
| An update is out; download it from the CFX Portal. Your settings and creator content live in the database and survive it. |
| The version server could not be reached. Harmless. |
Still stuck? Open a ticket and include your framework and its version, the console output from the start of the server, and a screenshot of the F8 console for anything about the interface.



