mcpField
R
roblox-luau-core

roblox-luau-core

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

roblox-luau-core について

Luauの仕様と、JavaScriptやPythonから移行する際の注意点をまとめたリファレンススキルです。Luauを書く開発者やコードレビュー担当者向けに、実行時の挙動と構文を簡潔な規則や例で説明します。

主な機能

  1. 01真偽値と等価性の規則
  2. 02テーブルと反復処理の挙動
  3. 03Luau構文と文字列パターン
  4. 04バイナリデータとエンコーディングの指針
  5. 05JavaScript・Pythonからの移行時の注意点

活用シーン

  1. 01Luauの言語仕様の確認
  2. 02JavaScriptコードのLuauへの移行
  3. 03言語間の前提に関するコードレビュー

インストール

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

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-luau-core

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

同梱ファイルreferences/full.md

詳細

Luau コア言語

読み込むタイミング

Luau のセマンティクスや JS/Python からの翻訳では読み込みます。型については roblox-luau-types、ライフサイクルについては roblox-luau-patterns、エンジン API についてはドメインスキルを参照してください。

クイックリファレンス

  • falsy なのは false と nil だけです。0、""、{} は truthy です。
  • 等価比較では型変換されません。0 == "0" は false です。不等号には ~= を使います。
  • 配列のインデックスは 1 始まりです。#array が意味を持つのは、nil による欠落のないシーケンスだけです。
  • nil を代入するとテーブルのキーが削除されます。テーブルを代入すると参照がコピーされます。table.clone は浅いコピーです。
  • ディクショナリの反復順序は未指定です。順序に依存する動作を作らないでください。
  • 動的キーには角括弧が必要です:record[field]。ドット構文ではリテラルの識別子を使います。
  • 引数が不足すると nil になり、余分な戻り値や引数は破棄されることがあります。
  • a が falsy になる可能性がある場合は、condition and a or b ではなく if 式を使ってください。
  • ローカル変数のスコープは宣言位置から始まり、repeat 内のローカル変数は until まで有効です。相互再帰には前方宣言を使ってください。
  • Luau の文字列パターンは正規表現ではありません。構文や機能が異なります。
  • バッククォートによる補間と .. は有効です。ホットループでは、多数の断片を一度に結合してください。
  • NaN は自身と等しくなく、</> の比較もできません。x ~= x で判定してください。
  • バイナリデータには buffer ライブラリを使います。サイズは固定で、オフセットは 0 始まり、読み書きには幅の明示が必要です。buffer.readinteger/writeinteger は使わないでください(スタブであり、リリース済みのランタイムではありません)。
  • Base64、ハッシュ化、圧縮には EncodingService を使ってください(文字列ではなくバッファを使用し、JSON には HttpService を使います)。詳細は完全版リファレンスを参照してください。
local label = if enabled then "On" else "Off"
local message = `{name}: {score}`

local byId: {[number]: string} = {}
byId[userId] = name

for index, value in values do
    print(index, value)
end
翻訳時の注意点
  • JavaScript の ===、!==、null、オプショナルチェーン、スプレッド構文、アロー関数、配列メソッドは Luau の構文ではありません。
  • Python の None、リストが 0 始まりであるという前提、リスト内包表記、例外、暗黙のタプル動作は、そのまま翻訳できません。
  • x or fallback は、値が存在しないかどうかではなく、truthy かどうかを判定します。有効な false の値も置き換えます。
  • typeof(value) は Roblox のデータ型を認識します。type(value) は基盤となる Luau の型カテゴリを返します。
レビュー

有効な Luau であること、nil による欠落がないこと、ディクショナリの順序を前提にしていないこと、意図しないエイリアスがないこと、他言語の構文が混在していないこと、false や nil を隠すフォールバックがないことを確認してください。

詳細な言語上の注意点と翻訳例:references/full.md

コメント