首页 › 模组制作 › 模组的构成
第 02 章

模组的构成

.oamod 压缩包和 oamod.yaml 配置文件:身份、布局、上限、数据键、脚本扩展,以及它启用的标准规则。

包

.oamod 是模组文件夹的 zip。配置文件位于顶层或顶层所含的唯一文件夹中(Finder 的“压缩”即生成此类文件)。存储或 deflate 条目;无链接、设备名、绝对路径或 ..;解压后至多 4 GiB。

escalation.oamod玩家下载或打开的文件├─ oamod.yaml必需 配置文件:身份、布局、上限、规则├─ badge.png256 × 256,显示在资料库和本站├─ totala1.hpi · esc.ufo档案,按加载顺序列在 layout 下├─ units/ · weapons/ · features/松散数据文件夹,叠加在档案之上├─ scripts/ · objects3d/ · textures/COB 脚本、3DO 模型、GAF 贴图├─ sounds/ · bitmaps/ · guis/模组替换的音频、图片和菜单└─ README · LICENCE其余内容随包携带并被忽略

配置文件

严格 YAML:单文档,顶层为映射,无锚点、无块标量。文件未写的一切都按 3.1c 运行。

oamod: 1
id: escalation                 # kebab-case,1 到 32 字节;安装文件夹的名称
name: Escalation
version: "10.2.0"             # 自由文本,从不排序
author: {name: Wotan and the ESC team}
packaging: {revision: 1, date: 2026-10-15, packager: Core Prime}
homepage: https://example.net/escalation
tags: [units, balance, ai]
requires: {base: ta-3.1c, engine: ">= 0.8.0"}   # 引擎范围要加引号

layout:
  archives: [esc.ufo, escgui.ccx]
limits:
  units-per-player: {default: 1500, max: 5000}
hacks:
  ai.income-multipliers: {easy: 1.0, medium: 1.5, hard: 2.0}
  weapons.high-arc-ballistic: true
  veterancy.model: escalation

可声明的内容

键作用标准
identity名称、徽章、主页、标签、所需的基础游戏和扩展。§6.1
layout构成模组的档案和文件夹,按加载顺序。§6.2
limits模组提高的引擎上限,每项有默认值和主机可选的最大值。§6.3
script-extensions模组单位脚本读取的额外值,例如 unit.kills-x100。§7
data-keys引擎必须遵守的 FBI 和 TDF 文件额外键。§8
hacks模组启用的标准规则;模拟规则必须在玩家之间一致。§9
strings, media翻译后的名称,以及模组自带的菜单图片和声音。§10

安装位置

安装到 Documents/Open Annihilation/Mods/,按配置文件的标识,从不按文件名。同一版本号的更新修订会替换,并把上一版本保留在 .backup 中;另一版本号可作为 Mods/- 并排安装。写入任何内容之前都会先完成全部检查,任何时候中断都会让文件夹处于更改前或更改后的状态。

发布前的检查

  • 配置文件像加载时一样通过校验:解析两次,第二次带上包内的 INI 和玩家的注册表设置。
  • 没有仅 ASCII 大小写不同的两个名称;没有同名的文件和文件夹。
  • version 和 packaging.revision 从未以不同字节发布过。发布脚本会拒绝。
  • 所列的每条规则都已由本 Open Annihilation 实现,否则资料库会列出该模组但无法安装。