Início › Info de modding › Anatomia de um mod
Capítulo 02

Anatomia 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.

O pacote

Um .oamod é um zip da pasta do mod. O perfil fica no topo, ou na única pasta que o topo contém (o Comprimir do Finder gera um arquivo assim). Entradas armazenadas ou com deflate; sem links, nomes de dispositivo, caminhos absolutos nem ..; no máximo 4 GiB descompactado.

escalation.oamodo arquivo que um jogador baixa ou abre├─ oamod.yamlobrigatório o perfil: identidade, estrutura, limites, ajustes├─ badge.png256 × 256, mostrado na Biblioteca e neste site├─ totala1.hpi · esc.ufoarquivos compactados, listados em layout na ordem de carregamento├─ units/ · weapons/ · features/pastas de dados soltas, em camadas sobre os arquivos compactados├─ scripts/ · objects3d/ · textures/scripts COB, modelos 3DO, texturas GAF├─ sounds/ · bitmaps/ · guis/áudio, imagens e menus que o mod substitui└─ README · LICENCEqualquer outra coisa é levada junto e ignorada

O perfil

YAML estrito: um documento, um mapeamento de nível superior, sem âncoras, sem escalares de bloco. Tudo o que o arquivo omite funciona como no 3.1c.

oamod: 1
id: escalation                 # kebab-case, de 1 a 32 bytes; o nome da pasta de instalação
name: Escalation
version: "10.2.0"             # texto livre, nunca ordenado
author: {name: Wotan and the ESC team}
packaging: {revision: 1, date: 2026-10-15, packager: Core Prime}
homepage: https://example.net/escalation
tags: [units, balance, ai]
requires: {base: ta-3.1c, engine: ">= 0.8.0"}   # ponha a faixa do motor entre aspas

layout:
  archives: [esc.ufo, escgui.ccx]
limits:
  units-per-player: {default: 1500, max: 5000}
hacks:
  ai.income-multipliers: {easy: 1.0, medium: 1.5, hard: 2.0}
  weapons.high-arc-ballistic: true
  veterancy.model: escalation

O que ele pode declarar

ChaveO que fazPadrão
identityNomes, emblema, site, tags, o jogo base e as expansões de que precisa.§6.1
layoutQuais arquivos compactados e pastas formam o mod, na ordem de carregamento.§6.2
limitsLimites do motor que o mod aumenta, cada um com um padrão e um máximo que o anfitrião pode escolher.§6.3
script-extensionsValores extras que os scripts de unidade do mod leem, como unit.kills-x100.§7
data-keysChaves extras nos arquivos FBI e TDF que o motor precisa respeitar.§8
hacksOs ajustes padrão que o mod ativa. Os ajustes de simulação precisam ser iguais entre os jogadores.§9
strings, mediaNomes traduzidos e as imagens e os sons do próprio mod para os menus.§10

Onde ele se instala

Em Documentos/Open Annihilation/Mods/, pelo ID do perfil, nunca pelo nome do arquivo. Uma revisão mais nova da mesma versão substitui a anterior e guarda uma versão para trás em .backup. Outra versão pode ser instalada ao lado, como Mods/-. Tudo é verificado antes que qualquer coisa seja escrita, e uma interrupção em qualquer ponto deixa a pasta como estava antes ou como fica depois da mudança.

Verificações antes de publicar

  • O perfil passa na validação como num carregamento: é resolvido duas vezes, a segunda com o INI do pacote e as configurações do jogador no Registro.
  • Nenhum par de nomes difere só em maiúsculas e minúsculas ASCII, e nenhum arquivo tem o mesmo nome de uma pasta.
  • version e packaging.revision nunca foram publicados com bytes diferentes. O script de publicação recusa isso.
  • Cada ajuste citado é um que este Open Annihilation implementa. Do contrário, a Biblioteca lista o mod mas não consegue instalá-lo.