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 predefinidos que 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 (a opção Comprimir do Finder cria um ficheiro assim). Entradas armazenadas ou comprimidas com deflate, sem ligações, nomes de dispositivos, caminhos absolutos nem .., e no máximo 4 GiB descompactado.

escalation.oamodo ficheiro que um jogador transfere ou abre├─ oamod.yamlobrigatório o perfil: identidade, estrutura, limites, ajustes├─ badge.png256 × 256, mostrado na Biblioteca e neste site├─ totala1.hpi · esc.ufoarquivos, listados em layout pela ordem de carregamento├─ units/ · weapons/ · features/pastas de dados soltas, sobrepostas aos arquivos├─ scripts/ · objects3d/ · textures/scripts COB, modelos 3DO, texturas GAF├─ sounds/ · bitmaps/ · guis/áudio, imagens e menus que o mod substitui└─ README · LICENCEtudo o resto é transportado e ignorado

O perfil

YAML estrito: um documento, um único mapeamento de nível superior, sem âncoras nem escalares de bloco. Tudo o que o ficheiro omite joga-se como na 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 o intervalo 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 pode declarar

ChaveO que fazNorma
identityNomes, emblema, site, etiquetas, o jogo base e as expansões de que precisa.§6.1
layoutQue arquivos e pastas formam o mod, pela ordem de carregamento.§6.2
limitsLimites do motor que o mod aumenta, cada um com uma predefinição e um máximo que o anfitrião pode escolher.§6.3
script-extensionsValores extra que os scripts das unidades do mod leem, como unit.kills-x100.§7
data-keysChaves extra nos ficheiros FBI e TDF que o motor tem de respeitar.§8
hacksOs ajustes predefinidos que o mod ativa. Os ajustes de simulação têm de coincidir entre os jogadores.§9
strings, mediaNomes traduzidos e as imagens e os sons próprios do mod para os menus.§10

Onde se instala

Em Documentos/Open Annihilation/Mods/, pelo id do perfil, nunca pelo nome do ficheiro. Uma revisão mais recente da mesma versão substitui a instalada e guarda uma versão anterior em .backup. Outra versão pode instalar-se ao lado, como Mods/-. Tudo é verificado antes de se escrever o que quer que seja, e uma interrupção em qualquer momento deixa a pasta no estado de antes ou de depois da alteração.

Verificações antes de publicar

  • O perfil passa a validação tal como num carregamento: é resolvido duas vezes, a segunda com o INI do pacote e as definições do registo do jogador.
  • Não há dois nomes que difiram apenas em maiúsculas e minúsculas ASCII, nem um ficheiro e uma pasta com o mesmo nome.
  • version e packaging.revision nunca foram publicados com bytes diferentes. O script de publicação recusa-o.
  • Cada ajuste indicado é um que este Open Annihilation implementa. Caso contrário, a Biblioteca lista o mod mas não o consegue instalar.