Главная › Моддинг › Устройство набора карт
Глава 01

Устройство набора карт

Zip-файл .oamap, его манифест oamap.yaml, индекс карт, который пишет упаковщик, и как размер и объекты карты решают, подходит ли она к игре.

Пакет

Файл .oamap — это zip-архив папки набора, где oamap.yaml лежит в корне или в единственной папке корня (такой файл создаёт команда «Сжать» в Finder). Правила для архива те же, что у пакета мода: записи без сжатия или со сжатием deflate, без ссылок, имён устройств, абсолютных путей и .., без двух имён, которые различаются только регистром, не больше 4 ГиБ в распакованном виде.

my-maps.oamapфайл, который игрок скачивает или открывает├─ oamap.yamlобязательно манифест: id, name, version, author, packaging и индекс карт├─ Ridge.tnt · Ridge.otaодна карта: рельеф (.tnt) и настройки (.ota)├─ Long Lakes.tnt · Long Lakes.otaещё одна. В наборе от 1 до 256 карт└─ READMEвсё остальное переносится как есть и игнорируется

Манифест

Строгий YAML: один документ, одно отображение верхнего уровня, без якорей и блочных скаляров. id пишется строчными буквами в kebab-case, от 1 до 32 байт, и это имя папки, в которую устанавливается набор. Ключ, которого нет в стандарте, отклоняется.

oamap: 1
id: my-maps                  # kebab-case, от 1 до 32 байт. Имя папки установки
name: My Maps
version: "1.0"             # произвольный текст, не упорядочивается
description: Two maps for four and ten players
author: {name: A. Mapper}
packaging: {revision: 1, date: 2026-10-18, packager: A. Mapper}
requires: {engine: ">= 0.8.0"}   # диапазон версий движка берите в кавычки: > без кавычек начинает блочный скаляр, а он отклоняется
# maps: пишет за вас oa-tool pack (индекс ниже)

Индекс

oa-tool pack пишет запись maps для каждой карты в папке, у которой есть схема Network, в порядке байтов её пути. Папка может сама перечислить записи, чтобы задать название, описание или число игроков карты. Всё остальное всегда вычисляется.

КлючПравило
stemИмя файла карты без расширения. Если такого файла в папке нет, это ошибка.
name, descriptionЗадаётся списком в папке или берётся из карты. Правила те же, что для упакованной записи.
playersЧисло игроков, на которое рассчитана карта, от 2 до 10.
size, preview, filesВсегда вычисляются упаковщиком, даже если папка их задаёт.

Когда карта подходит

Карта подходит к игре, если в игре есть набор тайлов, объекты и юниты, которые называет карта. Библиотека контента проверяет каждый набор с основной игрой и с каждым модом и записывает результаты. Отсюда берутся число в разделе «Подходящие карты» на странице мода и список модов у карты.

Набор, которому нужно дополнение, указывает его в requiredExpansions. Карта, которая не подходит к одной только основной игре, всё равно попадает в список, а игра объясняет, почему она не загрузится.

Куда устанавливается

В Документы/Open Annihilation/Maps/, по id из манифеста, а не по имени файла. Более новая ревизия той же версии заменяет папку, а другая версия может установиться рядом. Всё проверяется до того, как что-либо будет записано.