关于 se-dev-mod
面向 Space Engineers 1 模组开发的技能,帮助开发者准备本地环境并搜索已安装模组的代码示例。它还提供 bash 命令执行和代码索引流程。
主要功能
- 01初始化模组开发环境
- 02通过 bash 执行命令
- 03搜索模组源代码
- 04为模组代码建立索引
适用场景
- 01准备本地模组开发环境
- 02查找类或方法的使用示例
- 03检查已安装模组的代码
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cometworks/ skills --skill se-dev-mod安装后在 Claude Code 中输入/se-dev-mod确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.python-versionClean.batclean.shCommandExecution.mdCommandExecutionDetails.mdcommon-posix.shcs_indexer.pyhierarchy_tree.pyindex_mods.pylist_mods.pymod_paths.pyModApiWhitelist.txtModTemplate.mdPrepare.batPrepare.mdprepare.shpyproject.tomlsearch_mods.pysummarize_whitelist.pyTroubleshooting.mdUtilityScripts.mduv.lockactions/bash.mdprepare.mdsearch.md详细介绍
SE Dev Mod 技能
为 Space Engineers 版本 1 开发模组。
⚠️ 重要:命令在 UNIX shell 中运行。请使用 bash 语法。在 Windows 上使用 BusyBox;在 Linux 上使用原生 shell。
示例:
- ✅
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 shell 命令
- search:使用
search_mods.py搜索模组代码
路由决策
按顺序检查以下模式——匹配到的第一个模式优先:
| 优先级 | 模式 | 示例 | 路由 |
|---|---|---|---|
| 1 | 空调用或不带参数的调用 | se-dev-mod | 显示此帮助信息 |
| 2 | 准备相关关键词 | se-dev-mod prepare、se-dev-mod setup、se-dev-mod init | prepare |
| 3 | Bash/shell 相关关键词 | se-dev-mod bash、se-dev-mod grep、se-dev-mod cat | bash |
| 4 | 搜索相关关键词 | se-dev-mod search、se-dev-mod find class、se-dev-mod lookup | search |
入门
⚠️ 重要:运行任何命令之前,请先阅读 CommandExecution.md,以避免导致命令失败的常见错误。
如果此文件夹中缺少 Prepare.DONE 文件,必须先执行一次性准备步骤。请参阅 prepare 操作。
重要文档
- CommandExecution.md - ⚠️ 请先阅读 - Windows 命令执行详情;在 Linux 上请使用 bash 语法并运行
prepare.sh
模组开发
仅使用符合 Mod API 白名单的名称:ModApiWhitelist.txt
该白名单由 MDK2 的 Mdk.Extractor 从游戏版本 1.208.015 导出。
模组发布在 Steam Workshop 或 Mod.IO 上,其中大多数发布在前者。 游戏会在加载世界时编译模组,并强制执行 Mod API 白名单, 按设计应确保安全性。模组仍可能因异常导致游戏崩溃。
使用 se-dev-game-code 阅读你调用的确切代码。如果已安装 se-dev-game-book
手册,请先阅读,了解游戏系统的工作方式以及涉及哪些类型;如果没有安装,则也要搜索游戏代码。
服务器端模组逻辑同样使用 se-dev-server-code 和 se-dev-server-book。
为提高效率,请将游戏代码搜索限定在 Mod API 白名单中的名称对应内容。
Graphify 图谱
准备步骤会为本地模组文件夹(或 SE_DEV_MOD_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\mod,Linux 上为~/.se-dev/mod)。持久化技能数据存储于此:Data/mods.json— 所有已安装模组的快速清单(workshop_id、path、has_scripts 等)。Data/mod_hashes.json— 每个模组的 sha1 汇总值,供索引器检测变更。Data/CodeIndex/— 完整的 Tree-sitter C# 索引(每个类别一个 CSV,另含层级树)。
LocalMods/— 指向游戏本地模组文件夹的联接/符号链接(Windows 上为%AppData%\SpaceEngineers\Mods,Linux 上为 Proton 的对应 appdata 目录)。- Steam Workshop 内容直接从 Steam 文件夹读取;不会复制到技能目录或在其中创建符号链接
Steam Workshop 文件夹通过
SE_GAME_ROOT(环境变量)或 app id 244850 对应的 Steam 注册表项解析。
参考资料
- Mod Template 仓库 用于启动新模组项目的模组模板仓库,其中包含脚本。请参阅 ModTemplate.md
- 脚本模组的 Mod API 结构化的 Mod API 文档
- Keen Software House 提供的 Mod API 文档 可能已过时
- Mod Development Kit (MDK2) 模组开发工具,主要面向 VS2022
模组代码搜索
搜索 Steam 和本地模组的源代码,查找示例和模式:
# Search for patterns
uv run search_mods.py class declaration MyBlock
uv run search_mods.py method usage Update
uv run search_mods.py class children MyGameLogicComponent
# Count results before viewing (useful for large result sets)
uv run search_mods.py class usage Init --count
# Limit number of results
uv run search_mods.py class usage Init --limit 10
搜索前,请确保索引已创建。如果缺少 Data/CodeIndex/,请运行:
uv run list_mods.py # quick inventory (always cheap)
uv run index_mods.py # full code index (incremental: only changed mods reparsed)
订阅新模组后重新建立索引: 在 Steam Workshop 订阅新模组后,
请在某个世界中加载一次(让游戏下载模组),然后重新运行上面的两条命令
(或者直接运行 Prepare.bat)。索引器会对每个模组的 .cs 文件进行哈希计算,只重新解析
哈希值相较上次运行有所变化的模组,因此再次运行速度很快。
完整文档请参阅 搜索操作。
操作参考
请参阅以下详细说明:
- prepare 操作 - 一次性准备
- bash 操作 - 通过 busybox 运行 UNIX shell 命令
- search 操作 - 搜索模组代码中的示例
备注
此技能的原始来源:https://github.com/CometWorks/skills