# Config

### 📝 Fields (what each value means)

* **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

1. **Weapons**
   * `pistol`, `smg`, `carbine`, `shotgun`, `flashbang`
   * Each requires a certain **grade** (e.g. Rifle needs grade 3).
2. **Ammo**
   * `pistol_ammo`, `smg_ammo`, `rifle_ammo`, `shotgun_ammo`
   * Defines stack size (`30` for bullets, `10` for shotgun shells).
3. **Equipment**
   * `cuffs`, `taser`, `flashlight`, `radio`
   * Basic police tools.
4. **Protection**
   * `armor_light`, `armor_heavy`, `shield`
   * Armor and riot gear.
5. **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`).

```lua
    Items = {

        { id = "pistol",   name = "Pistol",   category = "weapons", grade = 0, price = 0.00, image = "",    desc = "Sidearm.", itemName = "weapon_pistol", stack = 1, maxPerCart = 1 },
        { id = "smg",      name = "SMG",      category = "weapons", grade = 2, price = 0.00, image = "",       desc = "SMG.", itemName = "weapon_smg", stack = 1, maxPerCart = 1 },
        { id = "carbine",  name = "Rifle",    category = "weapons", grade = 3, price = 0.00, image = "",   desc = "Rifle.", itemName = "weapon_carbinerifle", stack = 1, maxPerCart = 1 },
        { id = "shotgun",  name = "Shotgun",  category = "weapons", grade = 3, price = 0.00, image = "",   desc = "Shotgun.", itemName = "weapon_pumpshotgun", stack = 1, maxPerCart = 1 },
        { id = "flashbang",name = "Flash",    category = "weapons", grade = 4, price = 0.00, image = "", desc = "Flash.", itemName = "weapon_flashlight", stack = 2, maxPerCart = 5 },

        -- Ammo
        { id = "pistol_ammo",  name = "Pistol Ammo",  category = "ammo", grade = 0, price = 0.00, image = "", desc = "Ammo.", itemName = "pistol_ammo", stack = 30, maxPerCart = 200 },
        { id = "smg_ammo",     name = "SMG Ammo",     category = "ammo", grade = 2, price = 0.00, image = "",    desc = "Ammo.", itemName = "smg_ammo", stack = 30, maxPerCart = 200 },
        { id = "rifle_ammo",   name = "Rifle Ammo",   category = "ammo", grade = 3, price = 0.00, image = "",  desc = "Ammo.", itemName = "rifle_ammo", stack = 30, maxPerCart = 200 },
        { id = "shotgun_ammo", name = "Shotgun Ammo", category = "ammo", grade = 3, price = 0.00, image = "", desc = "Ammo.", itemName = "shotgun_ammo", stack = 10, maxPerCart = 50 },

        -- Equipment
        { id = "cuffs",     name = "Cuffs",    category = "equipment", grade = 0, price = 0.00, image = "", desc = "Cuffs.", itemName = "handcuffs", stack = 1, maxPerCart = 5 },
        { id = "taser",     name = "Taser",    category = "equipment", grade = 1, price = 0.00, image = "",     desc = "Taser.", itemName = "weapon_stungun", stack = 1, maxPerCart = 1 },
        { id = "flashlight",name = "Light",    category = "equipment", grade = 0, price = 0.00, image = "", desc = "Light.", itemName = "weapon_flashlight", stack = 1, maxPerCart = 1 },
        { id = "radio",     name = "Radio",    category = "equipment", grade = 0, price = 0.00, image = "",      desc = "Radio.", itemName = "radio", stack = 1, maxPerCart = 1 },

        -- Protection
        { id = "armor_light", name = "L-Armor", category = "protection", grade = 0, price = 0.00, image = "", desc = "Light armor.", itemName = "armor", stack = 1, maxPerCart = 2 },
        { id = "armor_heavy", name = "H-Armor", category = "protection", grade = 2, price = 0.00, image = "", desc = "Heavy armor.", itemName = "heavyarmor", stack = 1, maxPerCart = 2 },
        { id = "shield",      name = "Shield",  category = "protection", grade = 4, price = 0.00, image = "", desc = "Shield.", itemName = "police_stormram", stack = 1, maxPerCart = 1 },

        -- Utility
        { id = "spikes",   name = "Spikes",   category = "utility", grade = 2, price = 0.00, image = "", desc = "Spikes.", itemName = "police_spikestrip", stack = 1, maxPerCart = 5 },
        { id = "breach",   name = "Breach",   category = "utility", grade = 3, price = 0.00, image = "", desc = "Breach kit.", itemName = "police_breachkit", stack = 1, maxPerCart = 2 },
        { id = "bodycam",  name = "Bodycam",  category = "utility", grade = 0, price = 0.00, image = "", desc = "Bodycam.", itemName = "police_bodycam", stack = 1, maxPerCart = 1 }
    },
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.0resmon.org/0resmon/frkn-resources/frkn-police-job/armory-shop-system/config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
