publish-mod

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Publish 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),
    .env
    files.
  • WARN: decompiler fingerprints in source (
    FUN_
    /
    DAT_
    /
    sub_
    names, "Decompiled with" headers), large engine archives, absolute user paths, a missing README, fal assets without credit.
Fix every FAIL. Resolve each WARN deliberately. For example, AoE2 data mods do ship a modified
.dat
, which is the platform's norm.
bash
um publish check ./MyMod --game "<game install folder>"
  • FAIL: 与游戏文件逐字节相同的文件、泄露的密钥(fal/Anthropic/OpenAI/GitHub/AWS)、
    .env
    文件。
  • WARN: 源码中存在反编译器指纹(
    FUN_
    /
    DAT_
    /
    sub_
    名称、"Decompiled with" 标头)、大型引擎归档文件、用户绝对路径、缺少 README、未经致谢的 fal 素材。
必须修复每个 FAIL,并审慎处理每项 WARN。例如,AoE2 数据 Mod 确实会随包发布修改后的
.dat
,这是该平台的惯例。

2. Package the way the platform expects

2. 按平台要求打包

Platform / loaderPackage
tModLoaderBuild →
.tmod
; publish from the in-game Mod Sources menu (Steam Workshop)
BepInEx / Thunderstorezip with
manifest.json
,
icon.png
(256×256),
README.md
,
plugins/<Mod>.dll
; dependency strings like
BepInEx-BepInExPack-5.4.2100
Nexus Modszip laid out as it installs (
Data/...
for Bethesda,
BepInEx/plugins/...
,
ue4ss/Mods/...
,
~mods/*.pak
)
AoE2 DEthe official mod site (ageofempires.com/mods) or the in-game uploader; data mods include
resources/_common/dat/...
Steam Workshopthe game's own uploader or SDK tool
MinecraftModrinth / CurseForge jar with
fabric.mod.json
/
neoforge.mods.toml
ROM hacks / GameMakerpatches only (BPS/IPS/xdelta), never the modified game file
平台 / loader打包方式
tModLoaderBuild →
.tmod
;从游戏内 Mod Sources 菜单发布(Steam Workshop)
BepInEx / Thunderstore包含
manifest.json
、
icon.png
(256×256)、
README.md
、
plugins/<Mod>.dll
的 zip;依赖字符串如
BepInEx-BepInExPack-5.4.2100
Nexus Mods按安装时使用的目录结构排列 zip(Bethesda 使用
Data/...
、
BepInEx/plugins/...
、
ue4ss/Mods/...
、
~mods/*.pak
)
AoE2 DE官方 Mod 站点(ageofempires.com/mods)或游戏内上传器;数据 Mod 包含
resources/_common/dat/...
Steam Workshop游戏自带的上传器或 SDK 工具
Minecraft包含
fabric.mod.json
/
neoforge.mods.toml
的 Modrinth / CurseForge jar
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>" (
      fal_manifest.jsonl
      lists them);
    • 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 并事先征得许可。
  • 发布始终由用户决定。先起草内容,向用户展示,再由用户亲自点击按钮。