mcpField
Q
qbcore-framework

qbcore-framework

github.com/germanfndez開発19238 回インストール2 週間前に更新
リポジトリ

qbcore-framework について

qbcore-framework は、qb-core リソースを開発・編集する開発者向けのスキルです。プレイヤーデータ、コールバック、サーバーとクライアントの役割を扱い、検証と状態管理を案内します。Qbox にそのまま適用しないよう注意を促します。

主な機能

  1. 01Player と PlayerData の使い方を案内
  2. 02コールバック、ジョブ、ギャング、金銭の説明
  3. 03アイテムとメタデータの管理方法
  4. 04サーバーとクライアントの役割分担
  5. 05入力検証と状態管理のルール

活用シーン

  1. 01qb-core リソースの作成・編集
  2. 02プレイヤーの金銭・ジョブ・ギャング処理の実装
  3. 03コールバックによるクライアントとサーバー間のデータ連携
  4. 04引数検証とプレイヤー状態設計の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/germanfndez/fiveai-skills --skill qbcore-framework

インストール後、Claude Code で/qbcore-frameworkを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

rules/
best-practices.md
core-concepts.md
player-methods.md
reference-links.md

詳細

QBCore Framework

qb-core 用のサーバー/クライアント API:Player オブジェクト、PlayerData、コールバック、ジョブ、ギャング、所持金、メタデータ。

アクティベーション条件

ユーザーが qb-core リソースを作成または編集する場合、Player/QBCore.PlayerData を扱う場合、QBCore を通じてジョブ、ギャング、所持金、アイテム、メタデータを必要とする場合、または QBCore のコールバック、イベント、ベストプラクティスについて質問する場合に、このスキルを読み込みます。

このスキルの対象は qb-core(qbcore-framework)です。ユーザーが Qbox(qbx_core、exports.qbx_core)を使用している場合、API は異なります。その旨を伝え、このスキルをそのまま適用しないでください。

必須ルール

  • local QBCore = exports['qb-core']:GetCoreObject() でコアを一度だけ取得します。関数を呼び出すたびに取得しないでください。
  • Player はサーバー上でのみ使用できます(QBCore.Functions.GetPlayer(source))。QBCore.PlayerData はクライアント上でのみ使用でき、QBCore:Client:OnPlayerLoaded の後に値が設定されます。
  • 常に nil チェックを行います。メソッドを呼び出す前に if not Player then return end を実行してください。
  • 所持金、ジョブ、ギャング、アイテム、メタデータの変更は、クライアントからではなく、サーバー上で Player.Functions.* を通じて行います。
  • AddMoney、RemoveMoney、SetMoney には reason を渡します。
  • 各状態には、ステートバッグまたはイベントのどちらか一方のみを使用し、両方は使用しません。
  • クライアントから渡される引数はすべてサーバー上で検証します。クライアントから送信された金額、価格、アイテム名を信用しないでください。
  • 通知、メニュー、ダイアログ、プログレスバーには ox_lib を優先して使用します。
  • ループでは動的な Wait() 値を使用します。フレームごとの処理が必要な場合を除き、Wait(0) は避けてください。

判断基準

必要な処理使用する API
クライアントからサーバーにデータを要求するQBCore.Functions.CreateCallback + QBCore.Functions.TriggerCallback
所持金Player.Functions.AddMoney/RemoveMoney/SetMoney/GetMoney(moneyType, ...)
ジョブ/勤務状態/ギャングPlayer.Functions.SetJob、SetJobDuty、SetGang
プレイヤーごとに永続化するフラグPlayer.Functions.SetMetaData/GetMetaData
アイテム(qb-inventory)Player.Functions.AddItem/RemoveItem/GetItemByName/GetItemBySlot
共有ランタイム状態ステートバッグ(rules/core-concepts.md を参照)

実行手順

  1. リソースより先に qb-core が起動することを確認し、サーバー側とクライアント側それぞれで QBCore をキャッシュします。
  2. 処理を行う側を決めます。変更と検証はサーバー側、表示はクライアント側で行います。
  3. Player を取得して nil チェックを行い、クライアントから渡される引数をすべて検証します。
  4. 判断基準から呼び出す API を選び、シグネチャについて対応するルールファイルを確認します。
  5. イベントを組み合わせるのではなく、コールバックでデータを返します。

出力要件

実行可能な Lua コードを返します。クライアント側とサーバー側を明確に分け、Player の nil チェックを行い、所持金を操作する処理には理由を指定してください。ユーザーから別の指定がない限り、UI には ox_lib を使用します。

参考資料

  • rules/core-concepts.md — アーキテクチャ、PlayerData、Player オブジェクト、イベント、ステートバッグ。
  • rules/player-methods.md — Player.Functions による所持金、ジョブ、ギャング、メタデータ、アイテムの操作。
  • rules/best-practices.md — 命名、キャッシュ、Wait、状態管理、セキュリティ。
  • rules/reference-links.md — QBCore の公式ドキュメントへのリンク。

上流のドキュメント:https://docs.qbcore.org

コメント