oxlib について
oxlibは、FiveMリソースで共有ライブラリox_libを使うためのスキルです。LuaでUI、コールバック、コマンド、ゾーンを実装する方法を、クライアントとサーバーの役割や設定要件とともに案内します。
主な機能
- 01通知、ダイアログ、メニュー
- 02プログレスUIとTextUI
- 03クライアント・サーバー間コールバック
- 04型付きサーバーコマンド
- 05クライアント側のゾーンとキー割り当て
- 06セットアップとモジュール読み込みのガイド
活用シーン
- 01リソースへの通知や入力ダイアログの追加
- 02クライアントとサーバー間のデータ要求
- 03権限を制限したコマンドの作成
- 04プレイヤーのエリア進入・退出時の処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ germanfndez/ fiveai-skills --skill oxlibインストール後、Claude Code で/oxlibを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/addCommand.mdcallback.mdinit.mdinterface.mdzones.md詳細
ox_lib
共有 FiveM ライブラリ:グローバルな lib を介した UI(通知、ダイアログ、メニュー、進行状況)、クライアント/サーバー間のコールバック、コマンド、ゾーンを提供します。
有効化の条件
ユーザーが通知、アラートまたは入力ダイアログ、メニュー、進行状況バー、TextUI、クライアントとサーバー間のリクエスト/レスポンス、型指定されたサーバーコマンド、ゾーン(「プレイヤーがエリアに入る/出る」)、キー割り当て、または ox_lib に依存するリソースを必要としている場合に、このスキルを読み込みます。
厳守事項
fxmanifest.luaにshared_scripts { '@ox_lib/init.lua' }を追加し、リソースより先にox_libが起動するようにします。そうしないとlibは nil になります。- ネットワーク越しにデータをやり取りする場合は、イベントのペアやフレームワーク固有のコールバックよりも
lib.callback/lib.callback.awaitを優先します。 - サーバー側の
lib.callback.register(name, function(source, ...))では、最初の引数としてsourceを受け取ります。そこで引数を検証してください。 - コールバック名は一意にします(
resourcename:action)。 - UI 関数(
lib.notify、lib.alertDialog、lib.inputDialog、lib.progress、lib.context、lib.menu、lib.showTextUI)はクライアントで描画されます。サーバーから呼び出す場合は、クライアント側で実行するようトリガーしてください。 - アイコンは Font Awesome 6 を使用し、デフォルトのスタイルは
solidです。ブランドアイコンには{'fab', 'name'}を使用します。 lib.addCommandはサーバー側で使用します。権限にはrestrictedを、型指定されたparamsにはnumber、playerId、string、longStringを使用します。- ゾーンの
onEnter、onExit、insideはサーバーでは動作しません。ゾーンはクライアントで作成します。zone:remove()を呼び出せるよう、返されたゾーンを保持してください。 - モジュールは初回使用時、または
ox_libs { ... }/lib.requireによって読み込まれます。
判断基準
| 必要な機能 | 呼び出し |
|---|---|
| トースト通知 | lib.notify({ title, description, type }) |
| 確認/OK ダイアログ | lib.alertDialog({ header, content, centered, cancel }) |
| フォーム入力 | lib.inputDialog(title, rows) |
| クライアントからサーバーへのリクエスト | lib.callback.await(name, false, ...) + サーバー側の lib.callback.register |
| サーバーからクライアントへのリクエスト | lib.callback.await(name, source, ...) + クライアント側の lib.callback.register |
| 引数付きチャットコマンド | lib.addCommand(name, { help, params, restricted }, cb) |
| エリアのトリガー | lib.zones.poly/lib.zones.box/lib.zones.sphere |
実行手順
- マニフェストの行と起動順序を設定します(rules/init.md を参照)。
- 判断基準から呼び出しを選び、オプションの一覧について対応するルールファイルを読みます。
- リクエスト処理はサーバー側のコールバックに配置し、UI はクライアント側に配置します。
- コールバックとコマンドにはリソースのプレフィックスを付けます。
- 削除できるよう、ゾーンのハンドルを保持します。
出力条件
グローバルな lib を使用した実行可能な Lua コードを返します。新しいリソースの場合は、クライアント側/サーバー側を明示したうえでマニフェストの行も含めます。
参考資料
- rules/init.md — fxmanifest、shared_script、ox_libs、lib.require。
- rules/callback.md — 両側での lib.callback、await、register。
- rules/interface.md — notify、alertDialog、inputDialog、その他の UI モジュール、アイコン。
- rules/addCommand.md — help、params、restricted を使ったサーバーコマンド。
- rules/zones.md — poly、box、sphere ゾーン、メソッド、ユーティリティ。
上流のドキュメント:https://overextended.dev/ox_lib
コメント
Markdown 対応