id β Internal identifier used inside the script (e.g. "pistol").
name β Display name shown to the player (e.g. "Pistol").
category β Group of the item (e.g. "weapons", "ammo", "equipment", "protection", "utility").
grade β Minimum job grade/rank required to access the item. Example: grade = 2 means only job rank 2 or higher can buy/use it.
price β Price of the item (currently all are 0.00, so free).
image β Image file for inventory UI (empty in your config, but normally "pistol.png" etc.).
desc β Short description text (e.g. "Sidearm.", "Light armor.").
itemName β The real item name in your framework (qb-core/ox_inventory). Example: "weapon_pistol", "radio".
stack β How many items can stack in one inventory slot (e.g. 30 ammo per slot).
maxPerCart β Max amount that can be purchased in a single transaction (e.g. 200 ammo at once).
π¦ Categories
Weapons
pistol, smg, carbine, shotgun, flashbang
Each requires a certain grade (e.g. Rifle needs grade 3).
Ammo
pistol_ammo, smg_ammo, rifle_ammo, shotgun_ammo
Defines stack size (30 for bullets, 10 for shotgun shells).
Equipment
cuffs, taser, flashlight, radio
Basic police tools.
Protection
armor_light, armor_heavy, shield
Armor and riot gear.
Utility
spikes, breach, bodycam
Police special-use items.
π In short:
This config defines a shop/loadout system where items are grouped by category, restricted by rank (grade), and controlled by purchase limits (stack and maxPerCart).