fivem-basics について
FiveM basicsは、FiveM Luaリソースの開発やデバッグを行う開発者向けのスキルです。リソース構成、マニフェスト、クライアントとサーバーの役割、イベント、エクスポート、検証、デバッグ方法を扱います。
主な機能
- 01リソースファイルとfxmanifest.luaの整理
- 02クライアントとサーバーの処理分担
- 03ローカルイベントとネットワークイベントの処理
- 04リソース間エクスポートの定義と呼び出し
- 05サーバー側での入力と状態の検証
- 06サーバーやF8ログを使ったデバッグ
活用シーン
- 01FiveMリソースの作成や編集
- 02クライアントとサーバー間のイベント通信
- 03リソース間での関数呼び出し
- 04サーバーやクライアントのログによる障害調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ germanfndez/ fiveai-skills --skill fivem-basicsインストール後、Claude Code で/fivem-basicsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/client-server.mddebugging.mdevents.mdexports.mdfxmanifest.mdoptimization.mdreference-links.mdstructure.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 のクライアントログを確認する |
実行手順
client/、server/、shared/とマニフェストを配置し、rules/structure.md と rules/fxmanifest.md を読みます。- ロジックごとに処理する側を決めます(ネイティブはクライアント、データと検証はサーバー)。
- 選択の判断基準に従って通信を設定し、イベント名を
resource:side:actionにします。 - すべてのサーバーハンドラーの引数を検証し、距離と状態のチェックを追加します。
- ネイティブの参照先として 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/
コメント
Markdown 対応