Info de modding
Um pacote de mapas é um ficheiro .oamap, um mod é um ficheiro .oamod, um mutador é um ficheiro .oamut e um cérebro é um ficheiro .oabrain: um zip com um manifesto no topo. O jogo valida o manifesto, instala o pacote pelo seu id e joga-o segundo as regras que declara. Este guia acompanha-o desde uma pasta até um lançamento no catálogo, e cada capítulo tem uma ligação para a norma que resume, na documentação do próprio motor.
De uma pasta até ao jogo de um jogadormapa interativo do processo
Anatomia de um pacote de mapas
O zip .oamap, o seu manifesto oamap.yaml, o índice de mapas que o empacotador escreve, e como o tamanho e os elementos de um mapa decidem se é compatível com uma 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 predefinidos que ativa.
GitHub ·docs/mods/oamod-standard.md03Criar um mutador
Um pequeno .oamut sobreposto ao jogo base ou a qualquer mod: a pasta, o manifesto, o plano que mutate devolve, as opções, a sandbox e a ordem pela qual uma pilha se aplica.
GitHub ·docs/mutators/oamut-standard.md04Exemplos em Lua
Seis scripts funcionais de pacotes reais: uma regra, escalonamento com limites, um lado, um hook de unidades que pode recusar a partida, um hook de elementos e um plano de ficheiros com pastas sobrepostas.
GitHub ·docs/mutators/oamut-standard.md#61-the-lua-forms05Portar um mutador legado
O KroggyComm 1.1, dos seus arquivos até um pacote, e um ficheiro 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 ensaio, 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, todas as chaves do manifesto, as etiquetas, os níveis, a visão total, onde o script corre, as quotas e o que acontece quando 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, temporizadores e chat.
GitHub ·docs/brains/oabrain-standard.md#7-what-a-brain-may-know09Classic, um exemplo comentado
O computador integrado escrito em Lua: os seus ficheiros, a tabela de tarefas, uma tarefa, as notas sobre peculiaridades, o que fica no motor e como se prova que as ordens são as mesmas.
GitHub ·docs/brains/authoring.md#13-classic-a-walkthrough10Redes treinadas
Porque é que um cérebro pode incluir um .oann, a aritmética de inteiros, as camadas, como executar uma, 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 rasto, a verificação da Biblioteca e o registo do lugar, o tipo oabrain do catálogo e como oferecer o pacote ao Core Prime.
GitHub ·docs/brains/authoring.md#11-testing12Ajustes predefinidos
As regras documentadas que um perfil pode ativar, cada uma com a sua chave, os seus valores e o comportamento de onde veio. Os ajustes de simulação têm de coincidir entre os jogadores.
GitHub ·docs/mods/standard-hacks13Extensões de script
Os valores que um perfil pode dar aos scripts das unidades de um mod, como o número de abates de uma unidade ou as alianças do seu dono, e como um script COB lê cada um.
GitHub ·docs/mods/script-extensions14Versões e lançamentos
A sua versão é texto livre e nunca é ordenada. packaging.revision sobe a cada novo empacotamento, e o catálogo numera os lançamentos. Nunca reutilize uma versão e uma revisão com bytes diferentes.
GitHub ·docs/mods/oamod-standard.md#47-catalogue-releases15Publicar no Core Prime
Verificar um pacote, oferecê-lo à biblioteca de conteúdos, como um lançamento aparece no catálogo e na Biblioteca de cada jogador, e como manter um repositório próprio.
GitHub ·docs/registriesInício rápido: um pacote de mapas
# uma pasta, os seus mapas lá 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 automaticamente $ 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 partilhadas 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 ficheiro omite joga-se como na 3.1c $ oa-tool pack small-mod/ -o small-mod.oamod
Início rápido: um mutador
# Commander Radar, de Drinken: uma pasta, com 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 # empacote a partir de fora da pasta e depois verifique 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, com 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: - "*" # empacote a pasta e depois verifique 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"