se-dev-script について
se-dev-scriptは、Space Engineers 1のProgrammable Blockスクリプト開発向けスキルです。セットアップ、シェルコマンド、スクリプト検索を提供し、ローカルとSteam Workshopのスクリプトを索引化して、例やAPIの使い方を探せます。
主な機能
- 01開発準備の実行
- 02BusyBox経由のUnixシェルコマンド実行
- 03ローカルおよびWorkshopスクリプトの検索
- 04増分更新可能なC#コード索引
- 05PB APIホワイトリストに沿った開発
活用シーン
- 01スクリプト開発環境の準備
- 02スクリプト内のクラスやメソッドの例を検索
- 03スクリプト購読後のコード索引更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cometworks/ skills --skill se-dev-scriptインストール後、Claude Code で/se-dev-scriptを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.python-versionClean.batclean.shCommandExecution.mdCommandExecutionDetails.mdcommon-posix.shcs_indexer.pyhierarchy_tree.pyindex_scripts.pylist_scripts.pyPBApiWhitelist.txtPrepare.batPrepare.mdprepare.shpyproject.tomlscript_paths.pyScriptDev.mdScriptMerge.mdScriptTemplate.mdsearch_scripts.pysummarize_whitelist.pyTroubleshooting.mdUtilityScripts.mduv.lockactions/bash.mdprepare.mdsearch.md詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
SE Dev Script スキル
Space Engineers バージョン 1 向けのゲーム内スクリプト(プログラマブルブロック、略して PB)の開発です。
⚠️ 重要:コマンドは UNIX シェルで実行されます。bash 構文を使用してください。Windows では BusyBox、Linux では標準のシェルを使用します。
例:
- ✅
test -f file.txt && echo exists - ✅
ls -la | head -10 - ❌
if exist file.txt (echo exists)- 動作しません
アクション:
- prepare:初回の準備を実行します(Windows では
Prepare.bat、Linux ではprepare.sh) - bash:BusyBox 経由で UNIX シェルコマンドを実行します
- search:
search_scripts.pyを使用してスクリプトコードを検索します
ルーティングの判定
次のパターンを順番に確認してください。最初に一致したものが適用されます。
| 優先度 | パターン | 例 | ルート |
|---|---|---|---|
| 1 | 空または引数なしの呼び出し | se-dev-script | このヘルプを表示 |
| 2 | prepare キーワード | se-dev-script prepare、se-dev-script setup、se-dev-script init | prepare |
| 3 | bash/shell キーワード | se-dev-script bash、se-dev-script grep、se-dev-script cat | bash |
| 4 | search キーワード | se-dev-script search、se-dev-script find class、se-dev-script lookup | search |
はじめに
⚠️ 重要:コマンドを実行する前に、コマンドの失敗につながるよくあるミスを避けるため、必ず CommandExecution.md を読んでください。
このフォルダーに Prepare.DONE ファイルがない場合は、必ず最初に一度だけ準備手順を実行してください。prepare アクションを参照してください。
必読ドキュメント
- CommandExecution.md - ⚠️ 最初にお読みください - Windows でのコマンド実行の詳細。Linux では bash 構文を使用し、
prepare.shを実行してください
スクリプト開発
PB API の許可リストにある名前のみを使用してください:PBApiWhitelist.txt
許可リストは、MDK2 の Mdk.Extractor を使用して、ゲームバージョン 1.208.015 からエクスポートされています。
ゲーム内(PB)スクリプトは Steam Workshop または Mod.IO で公開されており、その大半は前者で公開されています。 ゲーム内(PB)スクリプトは、PB またはワールドの読み込み時(PB にスクリプトが読み込まれている場合)にゲームによってコンパイルされ、PB スクリプト API の許可リストが適用されます。これにより安全性が保証されます。 例外はすべて捕捉され、ゲームによってスクリプトが停止されるため、スクリプトがゲームをクラッシュさせることはありません。 ただし、プレイヤーまたはサーバー管理者がリソース使用量の制限を設定していない場合、スクリプトによってゲームの動作が遅くなることがあります。
プレイヤーがスクリプトを読み込む際、ソースコードのサイズは 100,000 バイトに制限されます。ScriptDev プラグインを使用すると、テスト用にローカルファイルからオフライン(ローカル)ゲームへ、これより大きなスクリプトを読み込めます。そのため、ソースコードを圧縮せずにテストでき、詳細な例外トレースバックを取得する際に便利です。
呼び出すコードを正確に確認するには、se-dev-game-code を使用してください。se-dev-game-book ハンドブックがインストールされている場合は、まずそれを読み、ゲームシステムの仕組みと関係する型を確認してください。インストールされていない場合は、その情報もゲームコードから検索してください。効率化のため、PB API の許可リストにある名前に対応するゲームコードの検索に限定してください。
Graphify グラフ
準備時に、ローカルの PB スクリプトフォルダー(または
SE_DEV_SCRIPT_PROJECT_ROOT)用の個別の Graphify グラフが構築されます。高速な Rust クラスタリングバックエンドを利用できる場合(uv 経由の Python 3.12。自動的にセットアップされます)、準備時にグラフが自動的に構築されます。このコーパスは小さいため、どちらの場合も処理はすぐに完了します。高速バックエンドが利用できない場合は、SE_DEV_GRAPHIFY=1 を指定して任意で有効化できます。SE_DEV_GRAPHIFY=0 を指定すると無効になります。通常の検索作業では使用せず、必要に応じて参照してください。GraphifyPrepare.md で構築し、GraphifyUsage.md でクエリを実行します。
フォルダー構成
Data/— ユーザーごとの永続スクリプトデータフォルダー(Windows では%USERPROFILE%\.se-dev\script、Linux では~/.se-dev/script)へのジャンクション/シンボリックリンクです。永続的なスキルデータはここに保存されます。Data/scripts.json— インストール済みのすべての PB スクリプトの簡易一覧です。Data/script_hashes.json— インデクサーが変更を検出するために使用する、スクリプトごとの集約 sha1 です。Data/CodeIndex/— Tree-sitter による C# の完全なインデックスです(カテゴリごとに 1 つの CSV と、階層ツリーを含みます)。
LocalScripts/— ゲームのローカルスクリプトフォルダー(Windows では%AppData%\SpaceEngineers\IngameScripts\local、Linux では Proton の同等の appdata フォルダー)へのジャンクション/シンボリックリンクです。 ゲームのローカル PB スクリプトフォルダーです。- Steam Workshop のコンテンツは Steam フォルダーから直接読み込まれます。スキル内にコピーまたはシンボリックリンクされることはありません。
PB スクリプトは、各数値名の Workshop フォルダー内にトップレベルの
Script.csファイルがあるかどうかで検出されます。Workshop フォルダーは、SE_GAME_ROOT(環境変数)または app id 244850 の Steam レジストリエントリから特定されます。
参考資料
- Script Template repo 新しいプロジェクトを始めるための PB スクリプトテンプレートリポジトリです。ScriptTemplate.md を参照してください。
- Script Merge tool C# プロジェクトの PB スクリプトを 1 つのファイルにマージするツールです。コード圧縮も任意で行えます。ScriptMerge.md を参照してください。
- Script Dev plugin テストを簡単にするため、ゲーム内の PB にスクリプトを自動で読み込むプラグインです。ScriptDev.md を参照してください。
- Mod Development Kit (MDK2)
- Programmable Block API
- スクリプトに関する Wiki
スクリプトコード検索
Steam およびローカルの PB スクリプトのソースコードを検索して、例やパターンを探します。
# Search for patterns
uv run search_scripts.py class declaration Program
uv run search_scripts.py method usage Main
uv run search_scripts.py class children MyGridProgram
# Count results before viewing (useful for large result sets)
uv run search_scripts.py class usage Program --count
# Limit number of results
uv run search_scripts.py class usage GridTerminalSystem --limit 30
検索する前に、インデックスが存在することを確認してください。Data/CodeIndex/ がない場合は、次を実行します。
uv run list_scripts.py # quick inventory (always cheap)
uv run index_scripts.py # full code index (incremental: only changed scripts reparsed)
新しいスクリプトをサブスクライブした後の再インデックス作成: Steam Workshop で新しいスクリプトをサブスクライブしたら、ワールド内で一度読み込みます(ゲームがダウンロードするため)。その後、上記の 2 つのコマンドを再実行します(または Prepare.bat を実行します)。インデクサーは各スクリプトの .cs ファイルのハッシュを計算し、前回の実行からハッシュが変わったスクリプトのみを再解析するため、再実行は短時間で済みます。
詳しい説明については、検索アクションを参照してください。
アクションの参考資料
次の詳細な手順に従ってください。
- prepare アクション - 初回の準備
- bash アクション - busybox を使用した UNIX シェルコマンドの実行
- search アクション - 例を探すためのスクリプトコードの検索
備考
このスキルの元のソース:https://github.com/CometWorks/skills