外观
MOD 案例教程
收录边界
SCAPI 与 SuAPI 案例必须分开标注。本页的 SCAPI 路线以 API 1.9 模板为起点;SuAPI 案例请转到SuAPI 开发路线。
案例选择表
| 想学习什么 | 最小练习 | 先读 |
|---|---|---|
| MOD 结构与打包 | 修改模板名称、版本和一条本地化文本,生成 scmod | 项目搭建 |
| 数据扩展 | 增加一条配方或衣物数据,不写 C# | 数据与素材 |
| 方块与资源 | 为测试方块绑定独立纹理和配方 | DLL 插件 |
| 生命周期 | 在加载、存档和卸载阶段记录可识别日志 | API 开发说明 |
| 行为 Hook | 监听一个玩家操作,并保证异常不阻止原逻辑 | 从零开发 MOD |
| 方法注入 | 用 HarmonyX 做单点、可撤销的前置或后置修改 | API 1.9 发行说明 |
| 模型与动画 | 从简单 glTF 模型开始,再增加骨骼与动画 | AdvancedGltfFoxModForSC |
每个案例都要完成的闭环
- 写明游戏版本、API 名称、分支或提交以及目标平台。
- 从干净模板构建,记录使用的 dotnet 命令和 SDK。
- 只安装当前案例,在新测试世界复现功能。
- 保存并重启,检查数据和内容 ID 是否稳定。
- 移除 MOD 后再次启动,说明世界是否仍可安全加载。
- 打包源码、许可证、依赖、安装、升级和卸载说明。
可以先参考
常见失败点
- 用 SCAPI 程序集编译,却放进 SuAPI 客户端,或反过来;
- 模板、游戏端和引用 DLL 来自不同分支;
- 数据文件中的标识与 C# 注册值不一致;
- 发布包嵌套了多余目录,加载器找不到 modinfo 或程序集;
- 只测试新世界,没有验证旧存档、卸载和升级;
- 复制游戏本体或第三方资源,却没有明确授权。
IyBNT0Qg5qGI5L6L5pWZ56iLCgo6OjogaW5mbyDmlLblvZXovrnnlYwKU0NBUEkg5LiOIFN1QVBJIOahiOS+i+W/hemhu+WIhuW8gOagh+azqOOAguacrOmhteeahCBTQ0FQSSDot6/nur/ku6UgQVBJIDEuOSDmqKHmnb/kuLrotbfngrnvvJtTdUFQSSDmoYjkvovor7fovazliLBbU3VBUEkg5byA5Y+R6Lev57q/XSgvZGV2ZWxvcGVyL21vZGRpbmcvc3VhcGkp44CCCjo6OgoKIyMg5qGI5L6L6YCJ5oup6KGoCgp8IOaDs+WtpuS5oOS7gOS5iCB8IOacgOWwj+e7g+S5oCB8IOWFiOivuyB8CnwgLS0tIHwgLS0tIHwgLS0tIHwKfCBNT0Qg57uT5p6E5LiO5omT5YyFIHwg5L+u5pS55qih5p2/5ZCN56ew44CB54mI5pys5ZKM5LiA5p2h5pys5Zyw5YyW5paH5pys77yM55Sf5oiQIHNjbW9kIHwgW+mhueebruaQreW7ul0oL2RldmVsb3Blci9tb2RkaW5nL3Byb2plY3Qtc2V0dXApIHwKfCDmlbDmja7mianlsZUgfCDlop7liqDkuIDmnaHphY3mlrnmiJbooaPnianmlbDmja7vvIzkuI3lhpkgQyMgfCBb5pWw5o2u5LiO57Sg5p2QXSgvZGV2ZWxvcGVyL21vZGRpbmcvZGF0YS1hc3NldHMpIHwKfCDmlrnlnZfkuI7otYTmupAgfCDkuLrmtYvor5XmlrnlnZfnu5Hlrprni6znq4vnurnnkIblkozphY3mlrkgfCBbRExMIOaPkuS7tl0oL2RldmVsb3Blci9tb2RkaW5nL2RsbC1wbHVnaW5zKSB8Cnwg55Sf5ZG95ZGo5pyfIHwg5Zyo5Yqg6L2944CB5a2Y5qGj5ZKM5Y246L296Zi25q616K6w5b2V5Y+v6K+G5Yir5pel5b+XIHwgW0FQSSDlvIDlj5Hor7TmmI5dKGh0dHBzOi8vZ2l0ZWUuY29tL1NDLVNQTS9TdXJ2aXZhbGNyYWZ0QXBpL2Jsb2IvU0NBUEkxLjkvZG9jcy9EZXZlbG9wbWVudC5tZCkgfAp8IOihjOS4uiBIb29rIHwg55uR5ZCs5LiA5Liq546p5a625pON5L2c77yM5bm25L+d6K+B5byC5bi45LiN6Zi75q2i5Y6f6YC76L6RIHwgW+S7jumbtuW8gOWPkSBNT0RdKGh0dHBzOi8vZ2l0ZWUuY29tL1NDLVNQTS9TdXJ2aXZhbGNyYWZ0QXBpL2Jsb2IvU0NBUEkxLjkvZG9jcy9Ib3dUb0RldmVsb3BBTW9kLm1kKSB8Cnwg5pa55rOV5rOo5YWlIHwg55SoIEhhcm1vbnlYIOWBmuWNleeCueOAgeWPr+aSpOmUgOeahOWJjee9ruaIluWQjue9ruS/ruaUuSB8IFtBUEkgMS45IOWPkeihjOivtOaYjl0oaHR0cHM6Ly9naXRlZS5jb20vU0MtU1BNL1N1cnZpdmFsY3JhZnRBcGkvdGFncykgfAp8IOaooeWei+S4juWKqOeUuyB8IOS7jueugOWNlSBnbFRGIOaooeWei+W8gOWni++8jOWGjeWinuWKoOmqqOmqvOS4juWKqOeUuyB8IFtBZHZhbmNlZEdsdGZGb3hNb2RGb3JTQ10oaHR0cHM6Ly9naXRodWIuY29tL1hpYW9mZW5nZGlaaHUvQWR2YW5jZWRHbHRmRm94TW9kRm9yU0MpIHwKCiMjIOavj+S4quahiOS+i+mDveimgeWujOaIkOeahOmXreeOrwoKMS4g5YaZ5piO5ri45oiP54mI5pys44CBQVBJIOWQjeensOOAgeWIhuaUr+aIluaPkOS6pOS7peWPiuebruagh+W5s+WPsOOAggoyLiDku47lubLlh4DmqKHmnb/mnoTlu7rvvIzorrDlvZXkvb/nlKjnmoQgZG90bmV0IOWRveS7pOWSjCBTREvjgIIKMy4g5Y+q5a6J6KOF5b2T5YmN5qGI5L6L77yM5Zyo5paw5rWL6K+V5LiW55WM5aSN546w5Yqf6IO944CCCjQuIOS/neWtmOW5tumHjeWQr++8jOajgOafpeaVsOaNruWSjOWGheWuuSBJRCDmmK/lkKbnqLPlrprjgIIKNS4g56e76ZmkIE1PRCDlkI7lho3mrKHlkK/liqjvvIzor7TmmI7kuJbnlYzmmK/lkKbku43lj6/lronlhajliqDovb3jgIIKNi4g5omT5YyF5rqQ56CB44CB6K645Y+v6K+B44CB5L6d6LWW44CB5a6J6KOF44CB5Y2H57qn5ZKM5Y246L296K+05piO44CCCgojIyDlj6/ku6XlhYjlj4LogIMKCi0gW0FQSSAxLjkg56S65L6L5qih5p2/XShodHRwczovL2dpdGVlLmNvbS9TQy1TUE0vU3Vydml2YWxjcmFmdFRlbXBsYXRlTW9kRm9yQVBJKQotIFtBZHZhbmNlZEdsdGZGb3hNb2RGb3JTQ10oaHR0cHM6Ly9naXRodWIuY29tL1hpYW9mZW5nZGlaaHUvQWR2YW5jZWRHbHRmRm94TW9kRm9yU0MpCi0gW1NDLVNQTSDnu4Tnu4fpobnnm65dKGh0dHBzOi8vZ2l0ZWUuY29tL1NDLVNQTSkKLSBb6K+t6ZuA6LWE5paZ6L+B56e75a+554WnXSgvcmVzLWNvbW11bml0eS95dXF1ZS1taWdyYXRpb24pCgojIyDluLjop4HlpLHotKXngrkKCi0g55SoIFNDQVBJIOeoi+W6j+mbhue8luivke+8jOWNtOaUvui/myBTdUFQSSDlrqLmiLfnq6/vvIzmiJblj43ov4fmnaXvvJsKLSDmqKHmnb/jgIHmuLjmiI/nq6/lkozlvJXnlKggRExMIOadpeiHquS4jeWQjOWIhuaUr++8mwotIOaVsOaNruaWh+S7tuS4reeahOagh+ivhuS4jiBDIyDms6jlhozlgLzkuI3kuIDoh7TvvJsKLSDlj5HluIPljIXltYzlpZfkuoblpJrkvZnnm67lvZXvvIzliqDovb3lmajmib7kuI3liLAgbW9kaW5mbyDmiJbnqIvluo/pm4bvvJsKLSDlj6rmtYvor5XmlrDkuJbnlYzvvIzmsqHmnInpqozor4Hml6flrZjmoaPjgIHljbjovb3lkozljYfnuqfvvJsKLSDlpI3liLbmuLjmiI/mnKzkvZPmiJbnrKzkuInmlrnotYTmupDvvIzljbTmsqHmnInmmI7noa7mjojmnYPjgIIK
