ox-inventory: skill de FiveM para Cursor, VS Code e Claude Code
Trigger: ox_inventory, items, stash, AddItem, RemoveItem, metadata, item registration, inventory hooks, shops. Server and client exports for ox_inventory.
Não quer gerenciar as skills por conta própria? Obtenha o app completo.
Como instalar esta skill
Baixe o zip, descompacte e coloque a pasta onde a sua ferramenta carrega skills ou regras. O caminho exato depende da ferramenta:
Claude Code
Descompacte em .claude/skills/ox-inventory/ dentro do projeto (a pasta precisa conter SKILL.md). Para todos os projetos, use ~/.claude/skills/ox-inventory/.
Cursor
O Cursor carrega as regras do projeto de .cursor/rules/. Adicione ali um arquivo de regra apontando para a skill descompactada, ou cole o conteúdo do SKILL.md e dos arquivos de regras em uma regra. O formato é .mdc com frontmatter e muda entre versões, então confira a documentação da sua versão.
VS Code / Copilot
O Copilot lê arquivos de instruções em .github/instructions/*.instructions.md. Copie o SKILL.md para lá com um glob applyTo para os seus arquivos Lua e mantenha os arquivos de regras ao lado.
O arquivo SKILL.md
Este é o arquivo que o seu assistente de IA lê. Ele aponta para os arquivos de regras incluídos no download.
O conteúdo da skill está em inglês: é documentação técnica feita para agentes de IA.
ox_inventory
Slot-based inventory with weight, metadata, stashes, shops and hooks. Supports ox_core, esx and qbx_core.
Activation Contract
Load this skill when the user asks to give, take, count or check items, register a stash or shop, define a new item, react to inventory actions, or migrate from qb-inventory or esx inventory.
Hard Rules
- Call everything through
exports.ox_inventory:<fn>(...). There is no global table. - Grant, remove and count items on the SERVER only. Client exports are for display and UI decisions.
AddItemcan fail. Always check the return value: the player may be over weight or out of slots.- Check
CanCarryItemBEFORE taking payment or removing the traded item, never after. - Never invent item names. An item must exist in
data/items.luaor it silently fails. invis a player source, an identifier, or a stash id. Passing the wrong one returns nil, not an error.- Metadata makes items non-stackable when it differs. Do not put volatile data in metadata.
Decision Gates
| Goal | Call |
|---|---|
| Give an item | AddItem(inv, item, count, metadata, slot) |
| Take an item | RemoveItem(inv, item, count, metadata, slot) |
| Check space first | CanCarryItem(inv, item, count, metadata) |
| How many does the player have | GetItemCount(inv, item, metadata, strict) |
| Read one slot | GetSlot(inv, slot) |
| Find items across slots | Search(inv, 'slots'|'count', item, metadata) |
| Persistent storage | RegisterStash(...) |
| Short-lived storage | CreateTemporaryStash(properties) |
| React to a player action | registerHook(event, cb, options) |
Execution Steps
- Confirm
ox_inventorystarts afterox_liband the framework core. - Decide the side: mutation is server, display is client.
- For a trade or reward, order the calls:
CanCarryItem-> take payment ->AddItem-> verify the return. - Define any new item in
data/items.luabefore referencing it. Read rules/items.md. - Use hooks instead of polling when reacting to moves, opens or purchases.
Output Contract
Return runnable Lua using exports.ox_inventory, with the server/client split explicit. Include the data/items.lua entry whenever a new item is introduced.
References
- rules/server-exports.md — item and inventory functions on the server.
- rules/client-exports.md — weight, current weapon, opening inventories.
- rules/items.md — defining items in data/items.lua.
- rules/stashes.md — stashes, shops and temporary storage.
- rules/hooks.md — registerHook and cancelling actions.
Upstream docs: https://overextended.dev/ox_inventory