Home › Info modding › Anatomia di una mod
Capitolo 02

Anatomia di una mod

Lo zip .oamod e il profilo oamod.yaml: identità, layout, limiti, chiavi dati, estensioni di script e le regole standard che attiva.

Il pacchetto

Un .oamod è uno zip della cartella della mod. Il profilo sta in cima, o nell'unica cartella contenuta nella radice (così fa Comprimi nel Finder). Voci memorizzate o compresse; niente link, nomi di dispositivo, percorsi assoluti o ..; al massimo 4 GiB decompressi.

escalation.oamodil file che un giocatore scarica o apre├─ oamod.yamlobbligatorio il profilo: identità, layout, limiti, regole├─ badge.png256 × 256, mostrato nella Libreria e su questo sito├─ totala1.hpi · esc.ufoarchivi, elencati sotto layout in ordine di caricamento├─ units/ · weapons/ · features/cartelle dati sciolte, sovrapposte agli archivi├─ scripts/ · objects3d/ · textures/script COB, modelli 3DO, texture GAF├─ sounds/ · bitmaps/ · guis/audio, immagini e menu che la mod sostituisce└─ README · LICENCEtutto il resto viene portato dentro e ignorato

Il profilo

YAML rigoroso: un documento, una mappa di primo livello, niente ancore, niente scalari a blocco. Tutto ciò che il file omette si gioca come in 3.1c.

oamod: 1
id: escalation                 # kebab-case, da 1 a 32 byte; il nome della cartella di installazione
name: Escalation
version: "10.2.0"             # testo libero, mai ordinato
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"}   # metti l'intervallo del motore tra virgolette

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

Cosa può dichiarare

ChiaveCosa faStandard
identityNomi, badge, sito, tag, il gioco base e le espansioni richieste.§6.1
layoutQuali archivi e cartelle compongono la mod, in ordine di caricamento.§6.2
limitsLimiti del motore che la mod alza, ciascuno con un valore predefinito e un massimo che l'host può scegliere.§6.3
script-extensionsValori extra che leggono gli script delle unità della mod, come unit.kills-x100.§7
data-keysChiavi extra nei file FBI e TDF che il motore deve rispettare.§8
hacksLe regole standard che la mod attiva; le regole di simulazione devono coincidere tra i giocatori.§9
strings, mediaNomi tradotti e immagini e suoni propri della mod per i menu.§10

Dove si installa

In Documenti/Open Annihilation/Mods/, con l'identificativo del profilo, mai con il nome del file. Una revisione più recente della stessa versione sostituisce, tenendo una versione precedente in .backup; un'altra versione può installarsi accanto come Mods/-. Tutto viene controllato prima di scrivere qualsiasi cosa, e un'interruzione lascia la cartella nello stato precedente o successivo alla modifica.

Controlli prima della pubblicazione

  • Il profilo supera la convalida come farebbe un caricamento: risolto due volte, la seconda con l'INI del pacchetto e le impostazioni di registro del giocatore.
  • Niente nomi che differiscono solo per maiuscole ASCII; nessun file e cartella con lo stesso nome.
  • version e packaging.revision non sono mai stati pubblicati con byte diversi. Lo script di pubblicazione lo rifiuta.
  • Ogni regola nominata è implementata da questo Open Annihilation, altrimenti la Libreria elenca la mod senza poterla installare.