mcpField
F
fivem-basics

fivem-basics

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

fivem-basics について

FiveM basicsは、FiveM Luaリソースの開発やデバッグを行う開発者向けのスキルです。リソース構成、マニフェスト、クライアントとサーバーの役割、イベント、エクスポート、検証、デバッグ方法を扱います。

主な機能

  1. 01リソースファイルとfxmanifest.luaの整理
  2. 02クライアントとサーバーの処理分担
  3. 03ローカルイベントとネットワークイベントの処理
  4. 04リソース間エクスポートの定義と呼び出し
  5. 05サーバー側での入力と状態の検証
  6. 06サーバーやF8ログを使ったデバッグ

活用シーン

  1. 01FiveMリソースの作成や編集
  2. 02クライアントとサーバー間のイベント通信
  3. 03リソース間での関数呼び出し
  4. 04サーバーやクライアントのログによる障害調査

インストール

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

$npx skills add https://github.com/germanfndez/fiveai-skills --skill fivem-basics

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

同梱ファイル

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

rules/
client-server.md
debugging.md
events.md
exports.md
fxmanifest.md
optimization.md
reference-links.md
structure.md

詳細

FiveM の基本

FiveM Lua のリソース構成、fxmanifest、クライアント/サーバーの分離、イベント、エクスポート、デバッグについて説明します。

有効化の条件

ユーザーが FiveM リソース、fxmanifest.lua、client*.lua、server*.lua を作成または編集する場合、クライアント/サーバー間の仕組みやイベント、エクスポートについて質問する場合、またはサーバーと F8 のログが必要なバグを報告する場合に、このスキルを読み込みます。

必須ルール

  • マニフェストでは、fx_version 'cerulean' と game 'gta5'(または 'rdr3' / 'common')を指定します。クライアントに配信するファイルはすべて files に追加します。
  • ネットワークイベントは RegisterNetEvent で登録します。ローカル専用イベントには AddEventHandler のみを使い、RegisterNetEvent は使いません。
  • サーバーハンドラーでは送信元を source から取得します。ブロードキャストには TriggerClientEvent(event, -1, ...) を使います。
  • ネットワークを介するすべてのネットイベントでは、GetInvokingResource() は nil になります。これは認証チェックには使えません。型、範囲、サーバー管理の状態を検証してください。
  • 金銭やアイテムの取引をクライアントで処理してはいけません。サーバー側で検証して適用してください。
  • 環境をチェックする処理で保護されていない限り、shared_scripts でゲームネイティブを使わないでください。
  • GetPlayerPed(-1) ではなく PlayerPedId() を使い、GetDistanceBetweenCoords ではなく #(a - b) を使ってください。
  • local を優先してください。固定の Wait(0) より、変数を使った Wait() を優先してください。
  • リソース名にはアンダースコアを使い、スペースや特殊文字は使いません。

選択の判断基準

用途使用するもの
クライアントからサーバーTriggerServerEvent(event, ...)
サーバーから特定またはすべてのクライアントTriggerClientEvent(event, playerId | -1, ...)
同じ側だけでの通信TriggerEvent + AddEventHandler
ネットワークを介してデータを返すイベントのペアではなく、コールバック(ox_lib / フレームワーク)
単一リソース内のネットワークを介さない呼び出しイベントではなく、通常の関数
リソース間の関数呼び出しマニフェストで exports / server_export を指定し、exports.res:fn() を使う
サーバーコンソールに問題がない場合のバグF8 のクライアントログを確認する

実行手順

  1. client/、server/、shared/ とマニフェストを配置し、rules/structure.md と rules/fxmanifest.md を読みます。
  2. ロジックごとに処理する側を決めます(ネイティブはクライアント、データと検証はサーバー)。
  3. 選択の判断基準に従って通信を設定し、イベント名を resource:side:action にします。
  4. すべてのサーバーハンドラーの引数を検証し、距離と状態のチェックを追加します。
  5. ネイティブの参照先として https://docs.fivem.net/natives/ を案内します。

出力要件

マニフェストと、実行可能な Lua コードを処理する側ごとに分けて提示し、イベント名、検証、source の処理を明示します。

参考資料

  • rules/structure.md — 対象範囲、クライアント/サーバーの分離、命名規則。
  • rules/fxmanifest.md — マニフェストの項目、glob、最小限の例。
  • rules/client-server.md — 各側で実行する処理と、側間の通信方法。
  • rules/events.md — 登録、トリガー、命名、イベントと関数の使い分け、セキュリティ。
  • rules/exports.md — エクスポートの定義と利用。
  • rules/debugging.md — サーバーコンソールと F8 ログ。
  • rules/optimization.md — ローカル変数、テーブル、ネイティブ、ループ、セキュリティ。
  • rules/reference-links.md — 公式ドキュメントとネイティブのリファレンス。

上流のドキュメント:https://docs.fivem.net/docs/

コメント