Skip to main content
Storm Code は本家と同じ Lua 5.3 を WASM にしたエンジンで実行します。 ゲームを起動せずにスクリプトの挙動を確認できます。

実行する

実行の前に自動で解析が走ります。require の誤りなど、エクスポート時に確実に失敗するものが あれば VM を起動せずに拒否します。「ブラウザで動いたのにゲームでは動かない」を防ぐためです。

Auto Rerun

File > Auto Rerun on Lua Change が有効なとき、.lua を編集すると自動で再実行します。 既定は有効です。 Stop を押すと、VM を止めるだけでなく予約されている自動再実行も取り消します。 止めたつもりが勝手に動き出すことはありません。Stop 後に新しく編集すれば、また予約されます。

ブレークポイント

止まっている間は、変数 パネルで現在のスコープの値を、コールスタック パネルで呼び出しの階層を確認できます。 変数 パネルには Watch 欄があり、登録した式が停止のたびに評価されます。 ブレークポイントと Watch 式は端末ごとに保存され、リロードで復元されます。

ログ

ログ パネルは読み取り専用の表示です。入力やコマンド履歴はありません。 表示は「実行ブロック」単位で、ヘッダ行 $ <コマンド> → 標準出力/標準エラー → フッタ [exit N · 123ms] の形です。終了コードが 0 でなければ赤く表示されます。 Lua の print もここに流れます。 上限は 5000 行です。超えると「N 行を破棄」という行が1つ出ます。
Remote MCP 経由でエージェントが実行した出力は、この パネルには出ません。人間が操作した結果だけを出す方針のためです。 エージェントの出力は MCP ターミナルウィンドウに分けて表示します。

scode コマンド

ログパネルからは scode コマンドで実行を操作できます。 --help で使い方が出ます。 lscat のような標準的なコマンドとシェルの構文も使えます。 参照先は Storm Code のワークスペースで、端末のファイルではありません。

エラーの見え方

実行時エラーは種類ごとに分類され、原因に応じたヒントが付きます (nil の添字参照、nil の呼び出し、算術演算、比較、連結、引数不正、 スタックオーバーフロー、実行時間超過、メモリ超過、構文エラーなど)。 分類できないものは原文をそのまま表示します。黙って握り潰すことはありません。 一覧は診断とエラーコードにあります。 require したモジュールで起きたエラーは、そのモジュール名と行番号で表示されます。 デバッグ実行はリンクも minify も通さず、書いたソースをそのまま実行しているためです。

タブを離れると自動で止まります

タブが隠れて30秒経つと Lua VM の実行を止め、戻ってきたら再開します。 モバイルで電池を消費し続けるのを防ぐためです。
  • 止めるのは実行中のときだけです。ブレークポイントで止まっているときや、 自分で一時停止したものには触りません。
  • 再開するのは自動で止めたものだけです。手で止めたものが勝手に動き出すことはありません。
  • モニターは最後のフレームを残します。
  • **同期は止まりません。**止まるのはこの端末の実行だけで、ワークスペースの内容ではありません。
  • 戻ってきたときに1回だけ通知します (止まった瞬間は画面が見えていないため)。
この状態は保存されません。リロード後は停止状態から始まります。