Моддинг
Набір мап — це один файл .oamap, мод — один файл .oamod, мутатор — один файл .oamut, а мозок — один файл .oabrain: zip-архів із маніфестом у корені. Гра перевіряє маніфест, установлює пакет за його ідентифікатором і грає за оголошеними в ньому правилами. Цей посібник проведе тебе від теки до випуску в каталозі, а кожен розділ посилається на стандарт, який він стисло викладає, у власній документації рушія.
Від теки до гри гравцяінтерактивна схема
Будова набору мап
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"