ATY Scripts Logo
ATY Scripts/Docs/Inventory/Configuration

Configuration

Configuration

Everything lives in shared/config.lua. It is heavily commented — this page covers the settings you actually touch on day one; the full list is in Config Reference.

**75 fields** can be changed live from the admin panel. 52 are on its Settings tab: `UI`, `OpenRadius`, `Hotbar`, `Consume`, `Decay`, `Drop`, `Give`, `Search`, `Evidence`, `Encumbrance`, `Wear`, `Shops_Restock`, `Standalone` and `Webhook`. The rest have screens of their own: Airdrops (`Airdrop`), Dumpsters (a dumpster's loot and timing) and Appearance (`UI.theme` and the two position pickers). Four of them need a restart to take effect and the panel says so on the row.

That writes to aty_settings, never to this file — the file keeps the factory defaults so "what did this used to be" stays answerable. See Admin Panel.

Everything else is file-only, by design in two different ways:

  • Config.Admin decides who may open the panel. If it lived in the panel, one bad value would lock every admin out of the screen they need to fix it.
  • Config.Anim, Config.PropPoints (bar a dumpster's loot and timing), Config.CarryVisible and the weapon tables are not tunables at all — they are wiring: animation dictionaries, bone indices, prop models, ammo mappings. They bind the resource to GTA.

The player

Config.Player = {
    slots     = 50,      -- how many squares
    maxWeight = 30000,   -- grams. 30000 = 30 kg
}

Weight is always grams, everywhere in the resource. The interface converts for display; the server never does.

Keys

Config.OpenKey        = 'F2'   -- your inventory (glovebox when seated, a stash/shop point when at one)
Config.SecondaryKey   = 'K'    -- boot behind you, glovebox when seated, bin / vending machine
Config.Hotbar.peekKey = 'TAB'  -- show the quick slots
Config.OpenRadius     = 3.0    -- metres from a stash / shop point to open it; its panel closes 1 m past that

These are ox_inventory's keys. All three are rebindable FiveM keybinds (Settings → Key Bindings → FiveM). They are defaults: FiveM keeps a player's key once they have joined, so changing one here reaches new players only. ESC, F2 and K close the open inventory. F2 (any F-key it is rebound to) closes it even while you type in the search, rename or note box; K, being a letter, types there instead.

Quick slots

Config.Hotbar = {
    mode      = 'ox',    -- or 'bind' / 'slots'
    holdTime  = 3000,    -- ms the TAB peek stays up
    showOnUse = false,   -- flash the bar on every use
}

ox (the default) works like ox_inventory: bag slots 1–5 are the quick slots. They are the first row of the ordinary 50-slot bag, marked 1–5 when something is in them, and keys 1–5 use whatever sits there with the inventory closed. The bag gets no extra slots, there is no second bar inside the inventory, and 1–5 do nothing while it is open. TAB shows slots 1–5 on their own for three seconds.

The other two models stay available:

  • bind (the default before 1.7.7) — a quick slot points at an item, not a place. It is bound by dragging onto a bar under the bag, and a binding whose item runs out stays with a red zero. Bindings are kept on each player's PC.
  • slots — the quick slots are five extra slots on top of the bag (50 + 5), drawn only in the bar under the bag.

The mode can be switched live from the admin panel. A value saved there wins over the file: invsettings clear Hotbar.mode goes back to the file default.

Language

Config.UI = {
    language       = 'en',
    languagePicker = true,
    languages      = { de = 'Deutsch', fr = 'Francais', … },
}

language is what every player gets before choosing. languagePicker = false removes the choice entirely — correct for a single-language server, where a mixed-language screen is worse than one consistent wrong one.

English (en) and Turkish (tr) are built into the interface and are not listed. Each entry in languages needs a matching locales/<code>.json. Nine packs ship with the resource; delete the ones you have no players for and those files stop being read.

English and Turkish are complete. The other nine packs are behind on newer keys and fall back to English for anything missing — visible, never blank.

Starter items

Config.StarterItems = {
    { name = 'phone', count = 1 },
    { name = 'id_card', count = 1 },
    …
}

Given once, on first spawn of a fresh character; an empty table hands out nothing. The grant is written to the ledger like everything else, so "did this player start with that" is answerable.

Turning features off

Every major feature has an enabled flag and turning it off removes it completely — the key stops responding, the panel section disappears, the commands refuse. Nothing is left half-present.

Setting Turns off
Config.Wear.enabled Clothing slots and the character view
Config.Placeable.enabled Putting props down in the world
Config.Airdrop.enabled Airdrop crates and their commands
Config.Decay.water.enabled Water damage to carried items while swimming
Config.Encumbrance.enabled Movement penalty when heavy
Config.Pricing.enabled Dynamic shop pricing
Config.Webhook.enabled Discord webhooks

Money in the bag

Config.Money = {
    mode = 'mirror',             -- or 'framework'
    stack = 250000,              -- per slot; false = no ceiling
    accounts = { cash = 'cash', black_money = 'black_money' },
}

mirror (the default, as in ox_inventory) keeps an item in the bag equal to the wallet, both ways: drop $500 and the wallet loses $500, get paid and the item grows. The mirrored item weighs nothing and stacks to stack a slot (250,000 by default). A balance bigger than the bag's free slots can hold is shown as far as it fits; the rest appears as slots free up, and the wallet is never wrong in the meantime. framework keeps money in the wallet only.

Cash is the cash item; scripts written for ox_inventory that ask for money reach it. black_money is ESX's dirty-money account; qb-core and Qbox have none.

invwallet <playerId> shows which backend holds the money and what it reads.

**Switching from `framework`.** Loose `cash` already in a bag is added to that character's account the first time the mirror sees them, once, instead of being replaced by the wallet. A server whose mirror already ran is left as it was. `invmoneyadopt cash on|off` overrides that choice.
**On Qbox** the item is Qbox's own `money` (convar `inventory:accounts`, default `["money"]`), kept equal to the wallet in both directions as ox\_inventory does: dropping it, handing it over or `RemoveItem(src, 'money', n)` moves the wallet.

After any change

invdoctor

It checks the config the server is running and reports anything inconsistent — a shop or loot table naming an item that does not exist, an item worn on a slot Config.Wear.slots does not define, two items whose labels are confusable, stored ammunition not yet converted for Config.Ammo.mode.

ATY Scripts LogoATY SCRIPTS

Des scripts FiveM hautement optimisés pour QBCore & ESX. Performance maximale, code précis, zéro lag.

Rejoindre la communauté

Partenaire

Partenaire officiel de Tebex. Paiement sécurisé et intégration Cfx.re Keymaster.

Mentions légales

Non affilié à Rockstar Games, Cfx.re, FiveM ou Take-Two Interactive. Les achats sont soumis aux CGU de Tebex.

© 2026 ATY SCRIPTS. Tous droits réservés.