ホーム › MOD制作情報 › MODの構造
第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
layoutMODを構成するアーカイブとフォルダー(読み込み順)。§6.2
limitsMODが引き上げるエンジンの上限。それぞれ既定値と、ホストが選べる最大値を持ちます。§6.3
script-extensionsunit.kills-x100など、MODのユニットスクリプトが読む追加の値。§7
data-keysエンジンが従うべき、FBIファイルとTDFファイルの追加キー。§8
hacksMODが有効にする標準ハック。シミュレーションハックはプレイヤー間で一致している必要があります。§9
strings, media翻訳された名前と、メニューに使うMOD独自の画像やサウンド。§10

インストール先

Documents/Open Annihilation/Mods/に、ファイル名ではなくプロファイルのIDでインストールされます。同じバージョンの新しいリビジョンは置き換えとなり、1つ前のバージョンを.backupに残します。別のバージョンはMods/-として並べてインストールできます。何かを書き込む前にすべてを確認し、どの時点で中断しても、フォルダーは変更前か変更後のどちらかの状態になります。

公開前の確認

  • プロファイルが、読み込み時と同じように検証を通ること。解決は2回行われ、2回目はパッケージのINIとプレイヤーのレジストリ設定を使います。
  • ASCIIの大文字と小文字だけが違う名前が2つないこと。同じ名前のファイルとフォルダーがないこと。
  • versionとpackaging.revisionの組が、異なる中身で公開されたことがないこと。公開スクリプトはこれを拒否します。
  • 指定したハックがすべて、このOpen Annihilationに実装されていること。そうでなければ、ライブラリはMODを一覧に載せても、インストールはできません。