publish-mod
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePublish a mod
发布 Mod
1. Lint
1. Lint
bash
um publish check ./MyMod --game "<game install folder>"- FAIL: files byte-identical to game files, leaked keys (fal/Anthropic/OpenAI/GitHub/AWS), files.
.env - WARN: decompiler fingerprints in source (/
FUN_/DAT_names, "Decompiled with" headers), large engine archives, absolute user paths, a missing README, fal assets without credit.sub_
Fix every FAIL. Resolve each WARN deliberately. For example, AoE2 data mods do ship a modified , which
is the platform's norm.
.datbash
um publish check ./MyMod --game "<game install folder>"- FAIL: 与游戏文件逐字节相同的文件、泄露的密钥(fal/Anthropic/OpenAI/GitHub/AWS)、文件。
.env - WARN: 源码中存在反编译器指纹(/
FUN_/DAT_名称、"Decompiled with" 标头)、大型引擎归档文件、用户绝对路径、缺少 README、未经致谢的 fal 素材。sub_
必须修复每个 FAIL,并审慎处理每项 WARN。例如,AoE2 数据 Mod 确实会随包发布修改后的 ,这是该平台的惯例。
.dat2. Package the way the platform expects
2. 按平台要求打包
| Platform / loader | Package |
|---|---|
| tModLoader | Build → |
| BepInEx / Thunderstore | zip with |
| Nexus Mods | zip laid out as it installs ( |
| AoE2 DE | the official mod site (ageofempires.com/mods) or the in-game uploader; data mods include |
| Steam Workshop | the game's own uploader or SDK tool |
| Minecraft | Modrinth / CurseForge jar with |
| ROM hacks / GameMaker | patches only (BPS/IPS/xdelta), never the modified game file |
| 平台 / loader | 打包方式 |
|---|---|
| tModLoader | Build → |
| BepInEx / Thunderstore | 包含 |
| Nexus Mods | 按安装时使用的目录结构排列 zip(Bethesda 使用 |
| AoE2 DE | 官方 Mod 站点(ageofempires.com/mods)或游戏内上传器;数据 Mod 包含 |
| Steam Workshop | 游戏自带的上传器或 SDK 工具 |
| Minecraft | 包含 |
| ROM hacks / GameMaker | 仅提供补丁(BPS/IPS/xdelta),绝不包含修改后的游戏文件 |
3. README (in the zip and on the page)
3. README(包含在 zip 和发布页面中)
- What it adds: bullets, a GIF or the showcase video.
- Requirements: game version, the loader and its version, dependencies.
- Install, uninstall and troubleshooting (where the log is).
- Compatibility: multiplayer? Known conflicts?
- Credits:
- the loader and libraries;
- references you learned from;
- "Art/audio generated with fal (fal.ai) using <models>" (lists them);
fal_manifest.jsonl - honest AI disclosure (which agent and model built it).
- License for your code (MIT/Apache is common). Your assets' terms follow the models' licenses.
- 它新增的内容:要点说明、GIF 或展示视频。
- 要求:游戏版本、loader 及其版本、依赖项。
- 安装、卸载和故障排查(日志位置)。
- 兼容性:是否支持多人游戏?已知冲突?
- 致谢与署名:
- loader 和相关 libraries;
- 编写过程中参考的资料;
- “使用 fal(fal.ai)和 <models> 生成的美术/音频”(中列出了这些模型);
fal_manifest.jsonl - 如实披露 AI 使用情况(说明是哪个 Agent 和模型构建了它)。
- 注明代码许可证(MIT/Apache 很常见)。素材的使用条款遵循相应模型的许可证。
4. Version and changelog
4. 版本与 changelog
Use semver in the manifest/build file, name the supported game version, and keep a changelog. When the game
updates, re-run the in-game test scene before bumping.
在 manifest/build 文件中使用 semver,注明支持的游戏版本,并维护 changelog。游戏更新后,在提升版本号前重新运行游戏内测试场景。
5. The post
5. 发布帖
- Lead with the video: the showcase-video skill; 20-45 s, gameplay within 2-3 s.
- Post text: the hook, what it is, the "how" credit (which agent + fal built it), a link.
- If the video uses anyone else's footage, credit them by handle and ask first.
- Publishing is always the user's call. Draft it, show them, and let them press the button.
- 以视频作为开头:使用 showcase-video skill;时长 20–45 秒,并在前 2–3 秒内展示游戏画面。
- 帖子正文:吸睛的开场(hook)、它是什么、说明构建方式的致谢(哪个 Agent + fal 构建了它)、链接。
- 如果视频使用了其他人的片段,请注明其 handle 并事先征得许可。
- 发布始终由用户决定。先起草内容,向用户展示,再由用户亲自点击按钮。