Match the item key everywhere
QBCore inventory issues are often simple but easy to miss. The item key used by the script must match the key defined in your shared item list or inventory configuration. A label can say “Advanced Lockpick”, but the code might need advancedlockpick or advanced_lockpick depending on your server. If a shop sells one key, a crafting script creates another key and a job reward gives a third key, players will see missing icons, unknown items or nothing at all.
Start by writing down the internal item key, display label, image name, weight, stack setting and any metadata fields. Then search the custom resource for every place the item is used. Do not rename a live item casually if players already own it. A rename can strand old database records unless you also migrate stored inventories. When possible, fix the definition or giving script rather than inventing a new item key.
item key:
shared item definition:
image filename:
script that gives the item:
inventory resource:
framework version:Confirm which inventory you actually use
Many QBCore servers have moved between qb-inventory, lj-inventory, ps-inventory and ox_inventory. Guides and snippets from one inventory can look close to another while still using different exports, metadata rules or image locations. Before asking AI for a fix, state your exact inventory resource. If you use ox_inventory with QBCore, say that clearly. If you still use qb-inventory, include the shared/items.lua definition and the images directory.
Restart order matters too. The inventory resource, qb-core and any library dependency should start before resources that register shops, stashes, crafting benches or usable items. If an item is registered by a custom resource during startup, make sure the inventory is ready first. A missing dependency can look like an item problem even when the item definition is correct.
Check images and cache
If the item exists but the icon does not show, focus on the image. Match the filename to the inventory's expected convention. Check case sensitivity, extension, spaces and punctuation. Some hosts treat Lockpick.png and lockpick.png as different files. Some UI builds cache assets heavily, so restart the resource and refresh the client before assuming the patch failed. Also confirm the image file made it onto the live server, not only your local folder.
Protect usable-item logic
When fixing an item, preserve server-side validation. A usable item should check that the player really owns the item, has the required job or state, and is allowed to trigger the result. Do not move rewards, payment or permission logic to the client just because it makes a menu appear. Good QBCore inventory debugging fixes the data mismatch while keeping the server authoritative.
After the patch, test four paths: admin give item, real gameplay reward, use item successfully, and invalid use by the wrong player or missing condition. That proves the item appears, displays correctly, works in the intended flow and cannot be abused through a simple client call.
Debug it in Stellar
Paste the item definition, image filename, inventory resource, giving code and console output into Stellar AI. Ask for a minimal patch and a test checklist.
Open Stellar AI free →