Info de modding
Um pacote de mapas é um arquivo .oamap, um mod é um arquivo .oamod, um mutador é um arquivo .oamut e um cérebro é um arquivo .oabrain: um zip com um manifesto no topo. O jogo valida o manifesto, instala o pacote pelo ID e o joga segundo as regras que ele declara. Este guia leva você de uma pasta até um lançamento no catálogo, e cada capítulo traz o link do padrão que ele resume, na documentação do próprio motor.
De uma pasta ao jogo de um jogadormapa interativo do fluxo
Anatomia de um pacote de mapas
O zip .oamap, o manifesto oamap.yaml, o índice de mapas que o empacotador escreve e como o tamanho e os elementos de um mapa decidem se ele serve numa partida.
GitHub ·docs/maps/oamap-standard.md02Anatomia de um mod
O zip .oamod e o perfil oamod.yaml: identidade, estrutura, limites, chaves de dados, extensões de script e os ajustes padrão que ele ativa.
GitHub ·docs/mods/oamod-standard.md03Criar um mutador
Um .oamut pequeno sobre o jogo base ou qualquer mod: a pasta, o manifesto, o plano que mutate retorna, as opções, o sandbox e a ordem em que uma pilha se aplica.
GitHub ·docs/mutators/oamut-standard.md04Exemplos em Lua
Seis scripts de pacotes reais: uma regra, escala com limites, um lado, um hook de unidades que pode recusar a partida, um hook de elementos e pastas de arquivos em camadas.
GitHub ·docs/mutators/oamut-standard.md#61-the-lua-forms05Portar um mutador antigo
O KroggyComm 1.1, dos arquivos compactados originais a um pacote, e um arquivo de regras do TA: Mutation mantido com sm ou reescrito em Lua.
GitHub ·docs/mutators/authoring.md#15-importing-a-ta-mutation-mutator06Verificar, empacotar e publicar
oa-tool mutator check e pack, uma execução de teste, o que a página do catálogo mostra, o ícone e como oferecer o pacote ao Core Prime.
GitHub ·docs/mutators/authoring.md#1-a-first-mutator07Criar um cérebro
Um .oabrain que joga num lugar de computador: a pasta, cada chave do manifesto, as tags, os níveis, a visão total, onde o script roda, as cotas e o que acontece quando ele para.
GitHub ·docs/brains/oabrain-standard.md08O Lua do cérebro
O manifesto e o script do Steady Commander, os hooks, o que um cérebro pode saber e fazer, números, sorteios aleatórios, timers e chat.
GitHub ·docs/brains/oabrain-standard.md#7-what-a-brain-may-know09Classic, um exemplo comentado
O computador integrado escrito em Lua: os arquivos, a tabela de tarefas, uma tarefa, as notas de peculiaridades, o que fica no motor e como se prova que as ordens são iguais.
GitHub ·docs/brains/authoring.md#13-classic-a-walkthrough10Redes treinadas
Por que um cérebro levaria um .oann, aritmética de inteiros, as camadas, como executar uma rede, oa-tool brain net, os limites e o que a Biblioteca mostra.
GitHub ·docs/brains/oabrain-standard.md#9-neural-networks11Verificar, empacotar e publicar um cérebro
oa-tool brain pack e check, uma partida sem interface e um rastreamento, a verificação da Biblioteca e o log do lugar, o tipo oabrain e como oferecer o pacote ao Core Prime.
GitHub ·docs/brains/authoring.md#11-testing12Ajustes padrão
As regras documentadas que um perfil pode ativar, com chave, valores e o comportamento de origem. Os ajustes de simulação precisam ser iguais entre os jogadores.
GitHub ·docs/mods/standard-hacks13Extensões de script
Os valores que um perfil pode passar aos scripts de unidade de um mod, como os abates de uma unidade ou as alianças do dono, e como um script COB lê cada um.
GitHub ·docs/mods/script-extensions14Versões e lançamentos
A versão é texto livre e nunca é ordenada. packaging.revision sobe a cada reempacotamento, e o catálogo numera os lançamentos. Não reutilize versão e revisão com outros bytes.
GitHub ·docs/mods/oamod-standard.md#47-catalogue-releases15Publicar no Core Prime
Verificar um pacote, oferecê-lo à biblioteca de conteúdo, como um lançamento chega ao catálogo e à Biblioteca de cada jogador, e como manter um repositório próprio.
GitHub ·docs/registriesInício rápido: um pacote de mapas
# uma pasta, seus mapas dentro, um manifesto no topo 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} # validar e empacotar: o índice é escrito para você $ oa-tool pack my-maps/ -o my-maps.oamap
Início rápido: um mod
# um mod que aumenta o limite de unidades e ativa duas regras compartilhadas 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 # tudo o que o arquivo omite funciona como no 3.1c $ oa-tool pack small-mod/ -o small-mod.oamod
Início rápido: um mutador
# Commander Radar, de Drinken: uma pasta, o manifesto no topo commander-radar/ oamut.yaml mutator.lua # mutator.lua: uma regra; a opção radar escolhe a distância 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 # empacotar de fora da pasta e depois verificar o .oamut $ oa-tool mutator pack commander-radar $ oa-tool mutator check commander-radar-1.oamut
Início rápido: um cérebro
# Steady Commander: uma pasta, o manifesto no topo 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: - "*" # empacotar a pasta e depois verificar o .oabrain com um jogo $ 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"