Advanced Inventory can bring your server's items and saved inventories over from the inventory you run today, so players keep what they own. Everything happens from an Import tab in /inventorycreator — no converter scripts and no SQL by hand — and the old data is never deleted.
Coming from | Route |
|---|---|
| The importer in |
The old qs-inventory ( | A one-shot switch in |
Chezza or | Their items only: through the ESX card (they use ESX's |
Before You Switch#
Two inventories cannot run at the same time — they handle the same items, keys and events. The importer refuses to run while the old one is started, but it does want its folder: item lists kept in files and item images are read from there.
Stop the old inventory, keep its folder
Remove its
ensureline fromserver.cfgbut leave the folder insideresources. Remove the scripts that came with it as well —qb-weapons,qb-shops,esx_inventoryhudand the like.Install Advanced Inventory
Follow Installation, with one difference on ESX: the first line of
esx.sqlempties every player's inventory column, which is exactly what you want to import. Delete that line before importing the file:sql UPDATE `users` SET `inventory` = '[]' WHERE identifier IS NOT NULL; -- remove this line when importing playersqb.sqlnever touchesplayers.inventory, so QBCore and Qbox need no change.Start the server with nobody on it
Online players are skipped, because their inventory is live in memory and would overwrite the import when they leave. Join alone as an admin; the Import tab says Server empty, everything can be imported when the coast is clear.
The Importer#
Open /inventorycreator → Import. There is one card per source inventory, and each card says where its data will come from — Folder stopped (what it should say), No folder (only the database is read) or Running (stop it first).
Analyse
Reads all four sources without writing anything. Each card lists what it found: items found, new and already existing; rows to import per part; storages that already exist in qs; online players that will be skipped; and the unknown items a saved inventory holds.
Paste the item list, if the card asks for it
ox_inventory, qb-inventory and tgiann-inventory keep their items in a Lua file, not in SQL. Open the file named on the card, copy everything and press Paste list (4 MB at most). With nothing pasted, the list is read from the stopped folder if it is there.
Pick the parts and press Import
The parts are Items and images, Player inventories, Stashes and Trunks and gloveboxes. Items are created right away as creator items — live for every player, editable in the Items tab — and saved inventories are written to the qs-inventory tables.
Source | Items from | Saved data read |
|---|---|---|
ox_inventory |
| Player inventories; the |
qb-inventory |
|
|
ESX | The | Player inventories with their loadout (tints and components included), |
tgiann-inventory |
| Its player, stash, trunk and glovebox tables. Players already imported once are not imported again. |
The rules it follows#
Nothing in qs is overwritten. An item that already exists is skipped, and a stash, trunk or glovebox that already has a qs row is counted as a conflict and left alone.
Money is never imported.
money,cashandblack_moneystay with the framework's accounts.Weapons are left out of the item import and only counted. Every GTA weapon is already in the inventory; make add-on weapons in the creator's Weapons tab.
Player items are fitted into the slots you have (41 by default). What does not fit is counted, so raise the slots in
/inventoryconfig→ Capacity first if the count is high.Items the inventory does not know are listed as unknown. Import the items part before the inventories, or make the missing ones in Items.
Images are copied only when the inventory has none with that name, and only from a folder that is back in
resources. ESX has no image folder to copy from.ESX weights between 0 and 100 are read as kilograms and converted to grams, which is the unit the inventory uses.
One import at a time. A second admin pressing Import while one runs is told to wait.
Every import is logged to the console and to the admin Discord webhook. Once you are happy with the result, the old inventory's folder and tables can go — the importer never needs them again.
From the Old qs-inventory#
Servers that ran the old qs-inventory kept stashes, trunks and gloveboxes in qs_stash, qs_trunk and qs_glovebox. Player inventories already live in users / players in the same format and need nothing.
Switch it on
/inventoryconfig→ General → Show advanced settings → Import data from the old qs-inventory, then save.Restart the inventory
Every non-empty stash, trunk and glovebox is copied into the new tables, over what they hold, with its slots renumbered from 1. Items your item list no longer has are skipped and written to
server/custom/backward/missing_items.json.Read the console
It prints
Backward compatibility has been completed.and switches the setting off by itself, so the copy never runs twice. If it could not, turn it off by hand. The oldqs_*tables can then be deleted.
Scripts Written for Another Inventory#
Your other resources do not need rewriting. Advanced Inventory answers the exports scripts already call on exports.ox_inventory and exports['qb-inventory'], replaces the QBCore player item methods, and fires the ESX and qb-inventory item events. Integrations lists exactly what is covered.
Keeping an item list in a file instead? Paste it into the QS Inventory Item Converter and it comes back in the format of shared/items.lua.



