Моддинг
Набор карт — это один файл .oamap, мод — один файл .oamod, мутатор — один файл .oamut, а мозг — один файл .oabrain: zip-архив с манифестом в корне. Игра проверяет манифест, устанавливает пакет под его id и играет по объявленным в нём правилам. Это руководство проведёт вас от папки до выпуска в каталоге, а каждая глава ссылается на стандарт в документации движка, который она кратко пересказывает.
От папки до игры у игрокаинтерактивная схема
Устройство набора карт
Zip-файл .oamap, его манифест oamap.yaml, индекс карт, который пишет упаковщик, и как размер и объекты карты решают, подходит ли она к игре.
GitHub ·docs/maps/oamap-standard.md02Устройство мода
Zip-файл .oamod и профиль oamod.yaml: идентификация, структура, лимиты, ключи данных, расширения скриптов и стандартные доработки, которые включает мод.
GitHub ·docs/mods/oamod-standard.md03Сделать мутатор
Небольшой .oamut поверх основной игры или любого мода: папка, манифест, план, который возвращает mutate, параметры, песочница и порядок применения стека.
GitHub ·docs/mutators/oamut-standard.md04Примеры на Lua
Шесть рабочих скриптов из настоящих пакетов: одно правило, масштаб с ограничениями, одна сторона, хук units с отказом от игры, хук features и план files со слоями папок.
GitHub ·docs/mutators/oamut-standard.md#61-the-lua-forms05Перенос старого мутатора
KroggyComm 1.1 из исходных архивов в пакет, а также файл правил TA: Mutation, оставленный через sm или переписанный на Lua.
GitHub ·docs/mutators/authoring.md#15-importing-a-ta-mutation-mutator06Проверка, упаковка и публикация
oa-tool mutator check и pack, пробный прогон, что показывает страница каталога, значок и как предложить пакет Core Prime.
GitHub ·docs/mutators/authoring.md#1-a-first-mutator07Сделать мозг
Пакет .oabrain для одного места компьютера: папка, все ключи манифеста, теги, уровни, полный обзор, где выполняется скрипт, бюджеты и что бывает, когда он останавливается.
GitHub ·docs/brains/oabrain-standard.md08Lua мозга
Манифест и скрипт Steady Commander, хуки, что мозг может знать и делать, числа, случайные значения, таймеры и чат.
GitHub ·docs/brains/oabrain-standard.md#7-what-a-brain-may-know09Classic: разбор примера
Встроенный компьютерный игрок на Lua: файлы, таблица задач, одна задача, заметки о причудах, что остаётся в движке и как доказано, что приказы совпадают.
GitHub ·docs/brains/authoring.md#13-classic-a-walkthrough10Обученные сети
Зачем мозгу поставлять .oann, целочисленная арифметика, слои, запуск сети, oa-tool brain net, лимиты и что показывает Библиотека.
GitHub ·docs/brains/oabrain-standard.md#9-neural-networks11Проверка, упаковка и публикация мозга
oa-tool brain pack и check, матч без графики и трассировка, проверка в Библиотеке и журнал места, тип oabrain в каталоге и как предложить пакет Core Prime.
GitHub ·docs/brains/authoring.md#11-testing12Стандартные доработки
Задокументированные правила, которые может включить профиль: ключ, значения и исходное поведение каждого. Доработки симуляции должны совпадать у всех игроков.
GitHub ·docs/mods/standard-hacks13Расширения скриптов
Значения, которые профиль может передать скриптам юнитов мода, например число убийств юнита или союзы его владельца, и как скрипт COB читает каждое из них.
GitHub ·docs/mods/script-extensions14Версии и выпуски
Версия — произвольный текст без порядка. packaging.revision растёт с каждой переупаковкой, каталог нумерует выпуски. Не выпускайте одну версию и ревизию с разными байтами.
GitHub ·docs/mods/oamod-standard.md#47-catalogue-releases15Публикация в Core Prime
Проверка пакета, отправка в библиотеку контента, как выпуск появляется в каталоге и в Библиотеке у каждого игрока и как запустить собственный реестр.
GitHub ·docs/registriesБыстрый старт: набор карт
# одна папка, внутри ваши карты, в корне манифест my-maps/ oamap.yaml Ridge.tnt Ridge.ota Long Lakes.tnt Long Lakes.ota # oamap.yaml oamap: 1 id: my-maps name: My Maps version: "1.0" author: {name: A. Mapper} packaging: {revision: 1, date: 2026-10-18, packager: A. Mapper} # проверка и упаковка, индекс пишется автоматически $ oa-tool pack my-maps/ -o my-maps.oamap
Быстрый старт: мод
# мод, который поднимает лимит юнитов и включает два общих правила oamod: 1 id: small-mod name: Small Mod version: "1.0" author: {name: A. Modder} packaging: {revision: 1, date: 2026-10-04, packager: A. Modder} limits: units-per-player: {default: 500, max: 1000} hacks: units.id-reuse-delay: true economy.deterministic-wind: true # всё, что файл не указывает, работает как в 3.1c $ oa-tool pack small-mod/ -o small-mod.oamod
Быстрый старт: мутатор
# Commander Radar от Drinken: одна папка, манифест в корне commander-radar/ oamut.yaml mutator.lua # mutator.lua: одно правило, параметр radar выбирает дальность function mutate(ctx) local distance = ctx.options.radar == "none" and 0 or 2880 return { rules = { where { commander = 1, bmcode = 1 }:change { radardistance = set(distance), }, }, } end # упакуйте снаружи папки, затем проверьте .oamut $ oa-tool mutator pack commander-radar $ oa-tool mutator check commander-radar-1.oamut
Быстрый старт: мозг
# Steady Commander: одна папка, манифест в корне steady-commander/ oabrain.yaml brain.lua # oabrain.yaml oabrain: 1 id: steady-commander name: Steady Commander version: "1.0" author: name: Ridge Workshop description: "Builds a little economy, then a factory, and sends a squad when it is ready." tags: - economy - teaching works-with: - "*" # упакуйте папку, затем проверьте .oabrain с игрой $ build/oa-tool brain pack brains/examples/steady-commander --out /tmp/brain-scratch/steady-commander.oabrain $ build/oa-tool brain check /tmp/brain-scratch/steady-commander.oabrain --game-dir "$OA_GAME_DIR"