Skip to main content
このページは公開版v0.2.0に対応します。ソース・型定義・WASMを同じ版に揃えて使用してください。
この一覧はエンジンを利用するアプリケーション向けです。Luaスクリプト内で見えるゲームAPIは、モード別のVEHICLE_API_CATALOG/ADDON_API_CATALOGと仕様を参照してください。

初期化と生成

共通生成設定はenvironment(既定game)、bindings(extended専用のホスト値・同期関数)、requireLoader(extended専用のソース供給)、instructionBudget(既定1,000,000)、memoryBytes(既定8MiB)、devLogs、onLogです。WASM adapterのLuaメモリ設定は最大256MiB。予算はコールバック単位で、ホスト関数の壁時計実行時間を中断する機構ではありません。

両モード共通

modeは'vehicle'または'addon'の読み取り専用識別子です。生のABIには別途世代付きhandleの検査があり、不正ハンドルやraw double-disposeはエラーになります。

ビークル専用

frame.pixelsは借用、frame.copy()は所有コピー。width/height/strideBytes/formatを確認できます。frameのraw形式はgame-rgba8です。/canvasは表示用adapterであり、このraw契約を書き換えません。

Addon専用

Addonにはio、draw、frame、setPropertiesはありません。vehicleの操作をAddon handleへ渡してもraw ABIで拒否します。セーブ全体のUI設定、sourceファイル、hostのワールド状態は、g_savedataとは別にアプリ側で保存してください。

デバッガ

両モードでsetBreakpoints(points)、resume(mode?)、stack()、locals(level?)、upvalues(level?)、expandTable(handle,start?,limit?)、evaluateWatch(expression,level?)を提供します。標準配布のruntimeにはdebug featureを含めます。 modeはcontinue/into/over/outです。watchは副作用を起こす明示操作。localsとtableのraw検査はユーザーmetamethodを実行しません。デバッグtable handleはVMと停止世代に紐づき、resume/watch/reload後に使い回せません。詳細

値と保存ヘルパー

LuaValueはnull、boolean、number、bigint、string、Uint8Array、LuaTable。Luaから戻る文字列はbytesです。luaTextは明示的なUTF-8 decode、luaTableは文字列キーのrecord作成、luaFieldは文字列キーの読み取りに使います。 encodeSavedata/decodeSavedataはversion付きの携帯可能な保存形式です。型付き配列やbigintへ直接JSON.stringifyする必要はありません。テーブルのキーはscalarのみで、nil値は項目そのものを省略します。Luaで同じキーになる整数/浮動小数点、UTF-8文字列/同じbytesの重複は拒否します。

エラー番号

raw statusの0はcompleted、7はsuspended、8はmissingです。JSの引数検証や配送先の例外は、この表の番号だけに正規化されるとは限りません。

環境とホスト拡張

gameとextendedはVehicle/Addonの区別とは別です。onLogは配送先だけを指定し、printを有効化しません。任意の標準関数置換・独自関数・値はextendedのbindingsで初期化前に指定します。reset/reloadでも同じ設定を再適用します。利用例と制約。

開発時のソース読み込み

requireLoader(name)は{source, name}を同期的に返します。extended専用で、LifeBoat方式の初回実行・戻り値破棄・共有グローバルを提供します。ファイル解決はホスト側です。詳細はrequireと複数チャンクを参照してください。