roblox-networking について
roblox-networkingは、Robloxのネットワークゲームを開発する人向けのスキルです。クライアント入力の検証、権限モデルの選択、リモート通信の安全な扱いを解説します。
主な機能
- 01サーバーでクライアント入力を検証
- 02権限モデルの選択
- 03ゲーム要求に使うリモートの選択
- 04要求頻度とペイロードの制限
- 05編集モードでのネットワーク模擬
活用シーン
- 01Robloxゲームへのリモート追加
- 02改ざんされたゲーム要求への対策
- 03編集モードでのネットワークコード検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-networkingインストール後、Claude Code で/roblox-networkingを入力して読み込まれたか確認します。
同梱ファイルreferences/full.md
詳細
roblox networking
読み込むタイミング
リモートの追加、信頼できない入力の処理、クールダウンの追加、または権限の割り当てを行うときに読み込みます。
クイックリファレンス
- クライアントからのすべての引数は攻撃者が制御できます。サーバー側で型、サイズ、所有権、状態、距離、クールダウンを検証してください。
- 価格、ダメージ、報酬、権限は、サーバーが管理する定義から参照してください。
- まず権限モデルを選択します。Server Authority はクライアント予測とサーバーロールバックを使用し、
SetNetworkOwnerとは異なります。 - Server Authority では、シミュレーション入力にリモートではなく、
InputAction/BindToSimulation()とUseFixedSimulationを使用します。 - ほとんどのゲームプレイリクエストにはイベントを使い、
RemoteFunctionの呼び出しは短く、範囲を限定してください。 - 信頼性が必要な状態には
RemoteEventを使います。プロパティ/属性のレプリケーションとは順序が保証されないため、明示的なチャネルを1つ使うか、状態にバージョンを付けてください。UnreliableRemoteEventは置き換え可能なデータにのみ使います。データは破棄される可能性があり、上限は1000バイトです。 - エンジンの上限:各リモートタイプには、クライアントごとに約500 FireServer req/s の上限があります。同じタイプのリモート間で共有される上限であり、目標値ではありません。
- 負荷がかかった状態でペイロードと発火頻度を測定し、頻度 × バイト数 × 受信者数を基準に予算を設定してください。参加時にはスナップショットを送り、その後は差分を送信します。
- ヒット時刻は信頼できないコンテキストであり、証拠にはなりません。鮮度の範囲を制限し、サーバーの履歴を検証してください。full.md §3a を参照してください。
- 型付きスキーマはセキュリティチェックの代わりにはなりません。ジェネレーターのバージョンを固定し、CI で生成された出力を検証してください。
- まず NaN/無限大を確認してください(
x ~= x、math.abs(x) == math.huge)。NaNは</>による判定を無効にします。utf8.lenは、DataStore の保存に失敗する不正な UTF-8 を検出します。 - シリアライズ:関数は
nilとして届き、メタテーブルは除去され、混在するキーは破損し、nilはテーブルを途中で切り詰め、テーブルはコピーされます。フィールドごとに検証し、サーバー管理のスナップショット/ID を使って状態を共有してください。 - Server Authority には
AuthorityMode = Serverとそのバンドルが必要です。誤予測/ロールバックは通常どおり発生します(full.md)。 - レート制限はサーバーを保護しますが、検証では引き続き無効なリクエストを拒否する必要があります。Bindable は同じ側でのみ使用できます。テーブルはコピーされ、メタテーブルは除去されます。また、
InvokeはOnInvokeが返るまで処理を中断します。 - 疑わしい動作はしきい値を使って記録してください。不正なパケット1つだけで処罰してはいけません。
- 編集モードでのプレイ:ネットワーク層をラップし、
RunContext:IsEdit()の場合にループバックモックを使うようにしてください(full.md)。
詳細が必要ですか? references/full.md に、検証、スロットリング、モックのパターンがあります。
コメント
Markdown 対応