第02章
MODの構造
.oamodのzipとプロファイルoamod.yaml。識別情報、レイアウト、上限、データキー、スクリプト拡張、有効にする標準ハック。
パッケージ
.oamodはMODのフォルダーをzipにしたものです。プロファイルは最上位か、最上位にある唯一のフォルダーの中に置きます(Finderの「圧縮」でこの形のファイルができます)。エントリは無圧縮(stored)か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/MODが置き換える音声、画像、メニュー└─ README · LICENCEそのほかのファイルは同梱されるだけで無視されるプロファイル
厳格なYAMLです。ドキュメントは1つ、最上位は1つのマッピングで、アンカーとブロックスカラーは使えません。ファイルに書かれていない部分はすべて3.1cどおりに動作します。
oamod: 1 id: escalation # ケバブケース、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 | MODを構成するアーカイブとフォルダー(読み込み順)。 | §6.2 |
limits | MODが引き上げるエンジンの上限。それぞれ既定値と、ホストが選べる最大値を持ちます。 | §6.3 |
script-extensions | unit.kills-x100など、MODのユニットスクリプトが読む追加の値。 | §7 |
data-keys | エンジンが従うべき、FBIファイルとTDFファイルの追加キー。 | §8 |
hacks | MODが有効にする標準ハック。シミュレーションハックはプレイヤー間で一致している必要があります。 | §9 |
strings, media | 翻訳された名前と、メニューに使うMOD独自の画像やサウンド。 | §10 |
インストール先
Documents/Open Annihilation/Mods/
公開前の確認
- プロファイルが、読み込み時と同じように検証を通ること。解決は2回行われ、2回目はパッケージのINIとプレイヤーのレジストリ設定を使います。
- ASCIIの大文字と小文字だけが違う名前が2つないこと。同じ名前のファイルとフォルダーがないこと。
- versionとpackaging.revisionの組が、異なる中身で公開されたことがないこと。公開スクリプトはこれを拒否します。
- 指定したハックがすべて、このOpen Annihilationに実装されていること。そうでなければ、ライブラリはMODを一覧に載せても、インストールはできません。