Головна › Моддинг › Будова моду
Розділ 02

Будова моду

Zip-архів .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/, за id з профілю, а не за іменем файлу. Новіша ревізія тієї самої версії замінює наявну, а одна попередня версія зберігається в .backup; інша версія може встановитися поруч як Mods/-. Усе перевіряється до того, як буде щось записано, а зупинка в будь-який момент лишає теку в стані до зміни або після неї.

Перевірки перед публікацією

  • Профіль проходить перевірку так само, як під час завантаження в гру: його розвʼязують двічі, вдруге — з INI пакета й налаштуваннями гравця з реєстру.
  • Жодні два імені не відрізняються лише регістром ASCII; жоден файл не має того самого імені, що й тека.
  • version і packaging.revision ще ніколи не публікувалися з іншими байтами. Скрипт публікації таке відхиляє.
  • Кожен названий хак реалізовано в цій версії Open Annihilation, інакше Бібліотека покаже мод, але не зможе його встановити.