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 ignoradoO 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
| Chave | O que faz | Norma |
|---|---|---|
identity | Nomes, emblema, site, etiquetas, o jogo base e as expansões de que precisa. | §6.1 |
layout | Que arquivos e pastas formam o mod, pela ordem de carregamento. | §6.2 |
limits | Limites 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-extensions | Valores extra que os scripts das unidades do mod leem, como unit.kills-x100. | §7 |
data-keys | Chaves extra nos ficheiros FBI e TDF que o motor tem de respeitar. | §8 |
hacks | Os ajustes predefinidos que o mod ativa. Os ajustes de simulação têm de coincidir entre os jogadores. | §9 |
strings, media | Nomes traduzidos e as imagens e os sons próprios do mod para os menus. | §10 |
Onde se instala
Em Documentos/Open Annihilation/Mods/
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.