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 ignoradaO 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
| Chave | O que faz | Padrão |
|---|---|---|
identity | Nomes, emblema, site, tags, o jogo base e as expansões de que precisa. | §6.1 |
layout | Quais arquivos compactados e pastas formam o mod, na ordem de carregamento. | §6.2 |
limits | Limites 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-extensions | Valores extras que os scripts de unidade do mod leem, como unit.kills-x100. | §7 |
data-keys | Chaves extras nos arquivos FBI e TDF que o motor precisa respeitar. | §8 |
hacks | Os ajustes padrão que o mod ativa. Os ajustes de simulação precisam ser iguais entre os jogadores. | §9 |
strings, media | Nomes traduzidos e as imagens e os sons do próprio mod para os menus. | §10 |
Onde ele se instala
Em Documentos/Open Annihilation/Mods/
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.