ox-inventory について
ox-inventory は、ox_inventory を使う開発者向けのスロット制インベントリスキルです。ox_core、esx、qbx_core に対応し、アイテム操作やストレージ設定、フック、移行をサーバーとクライアントの役割を区別して案内します。
主な機能
- 01サーバー側でのアイテム付与・削除・集計
- 02スタッシュとショップの登録ガイド
- 03インベントリ操作用フック
- 04アイテム定義とメタデータのルール
- 05qb-inventory と esx からの移行ガイド
活用シーン
- 01アイテム報酬や取引の実装
- 02永続・一時スタッシュの作成
- 03アイテム移動や購入への対応
- 04既存インベントリシステムの移行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ germanfndez/ fiveai-skills --skill ox-inventoryインストール後、Claude Code で/ox-inventoryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/client-exports.mdhooks.mditems.mdserver-exports.mdstashes.md詳細
ox_inventory
重量、メタデータ、スタッシュ、ショップ、フックに対応したスロットベースのインベントリです。ox_core、esx、qbx_core をサポートしています。
有効化の条件
ユーザーがアイテムの付与、削除、個数の取得や確認、スタッシュまたはショップの登録、新しいアイテムの定義、インベントリ操作への反応、あるいは qb-inventory または esx inventory からの移行を求めた場合に、このスキルを読み込みます。
厳守事項
- すべての呼び出しは
exports.ox_inventory:<fn>(...)を通じて行ってください。グローバルテーブルはありません。 - アイテムの付与、削除、個数の取得はサーバー側のみで行ってください。クライアントのエクスポートは表示や UI の判断に使用します。
AddItemは失敗することがあります。必ず戻り値を確認してください。プレイヤーの重量が上限を超えているか、空きスロットがない可能性があります。- 支払いを受け取ったり、交換するアイテムを削除したりする前に、必ず
CanCarryItemを確認してください。後で確認してはいけません。 - アイテム名を捏造してはいけません。アイテムは
data/items.luaに存在する必要があります。存在しない場合、エラーなしで失敗します。 invはプレイヤーのソース、識別子、またはスタッシュ ID です。誤った値を渡すと、エラーではなく nil が返ります。- メタデータが異なるアイテムはスタックされません。変動するデータをメタデータに含めないでください。
判断の基準
| 目的 | 呼び出し |
|---|---|
| アイテムを付与する | AddItem(inv, item, count, metadata, slot) |
| アイテムを削除する | RemoveItem(inv, item, count, metadata, slot) |
| 先に空きがあるか確認する | CanCarryItem(inv, item, count, metadata) |
| プレイヤーが所持している個数を確認する | GetItemCount(inv, item, metadata, strict) |
| 1 つのスロットを読み取る | GetSlot(inv, slot) |
| 複数のスロットからアイテムを検索する | Search(inv, 'slots'|'count', item, metadata) |
| 永続ストレージ | RegisterStash(...) |
| 一時的なストレージ | CreateTemporaryStash(properties) |
| プレイヤーの操作に反応する | registerHook(event, cb, options) |
実行手順
ox_inventoryがox_libおよびフレームワークのコアより後に起動することを確認します。- 実行する側を決めます。変更処理はサーバー側、表示処理はクライアント側です。
- 取引や報酬の場合は、呼び出しを次の順序にします:
CanCarryItem-> 支払いを受け取る ->AddItem-> 戻り値を確認する。 - 新しいアイテムを参照する前に、
data/items.luaで定義します。rules/items.md を読んでください。 - アイテムの移動、インベントリを開く操作、購入への反応には、ポーリングではなくフックを使用します。
出力条件
サーバーとクライアントの区別を明示し、exports.ox_inventory を使用した実行可能な Lua コードを返します。新しいアイテムを追加する場合は、data/items.lua のエントリも含めてください。
参考資料
- rules/server-exports.md — サーバー側のアイテムおよびインベントリ関数。
- rules/client-exports.md — 重量、現在の武器、インベントリを開く操作。
- rules/items.md — data/items.lua でのアイテムの定義。
- rules/stashes.md — スタッシュ、ショップ、一時ストレージ。
- rules/hooks.md — registerHook と操作のキャンセル。
コメント
Markdown 対応