Inicio › Info de modding › Anatomía de un mod
Capítulo 02

Anatomía de un mod

El zip .oamod y el perfil oamod.yaml: identidad, disposición, límites, claves de datos, extensiones de script y las reglas estándar que activa.

El paquete

Un .oamod es un zip de la carpeta del mod. El perfil está en la raíz, o en la única carpeta que contiene la raíz (así lo hace Comprimir en el Finder). Entradas almacenadas o comprimidas; sin enlaces, nombres de dispositivo, rutas absolutas ni ..; como mucho 4 GiB descomprimidos.

escalation.oamodel archivo que un jugador descarga o abre├─ oamod.yamlobligatorio el perfil: identidad, disposición, límites, reglas├─ badge.png256 × 256, mostrado en la Biblioteca y en este sitio├─ totala1.hpi · esc.ufoarchivos, listados bajo layout en orden de carga├─ units/ · weapons/ · features/carpetas de datos sueltas, superpuestas a los archivos├─ scripts/ · objects3d/ · textures/scripts COB, modelos 3DO, texturas GAF├─ sounds/ · bitmaps/ · guis/sonido, imágenes y menús que el mod sustituye└─ README · LICENCEtodo lo demás viaja dentro y se ignora

El perfil

YAML estricto: un documento, un mapa de nivel superior, sin anclas, sin escalares de bloque. Todo lo que el archivo omite se juega como en 3.1c.

oamod: 1
id: escalation                 # kebab-case, de 1 a 32 bytes; el nombre de la carpeta de instalación
name: Escalation
version: "10.2.0"             # texto libre, 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"}   # entrecomilla el rango de motor

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

Qué puede declarar

ClaveQué haceEstándar
identityNombres, insignia, sitio web, etiquetas, el juego base y las expansiones que necesita.§6.1
layoutQué archivos y carpetas forman el mod, en orden de carga.§6.2
limitsLímites del motor que el mod sube, cada uno con un valor por defecto y un máximo que el anfitrión puede elegir.§6.3
script-extensionsValores extra que leen los scripts de unidades del mod, como unit.kills-x100.§7
data-keysClaves extra en archivos FBI y TDF que el motor debe respetar.§8
hacksLas reglas estándar que el mod activa; las de simulación deben coincidir entre jugadores.§9
strings, mediaNombres traducidos e imágenes y sonidos propios del mod para los menús.§10

Dónde se instala

En Documentos/Open Annihilation/Mods/, bajo el identificador del perfil, nunca bajo el nombre del archivo. Una revisión más nueva de la misma versión sustituye, guardando una versión anterior en .backup; otra versión puede instalarse al lado como Mods/-. Todo se comprueba antes de escribir nada, y una interrupción deja la carpeta en el estado anterior o posterior al cambio.

Comprobaciones antes de publicar

  • El perfil pasa la validación como lo haría una carga: resuelto dos veces, la segunda con el INI del paquete y los ajustes de registro del jugador.
  • No hay dos nombres que solo difieran en mayúsculas ASCII; ningún archivo y carpeta con el mismo nombre.
  • version y packaging.revision nunca se han publicado con otros bytes. El script de publicación lo rechaza.
  • Cada regla nombrada la implementa este Open Annihilation, o la Biblioteca lista el mod sin poder instalarlo.