Anatomie d'un mod
Le zip .oamod et le profil oamod.yaml : identité, disposition, limites, clés de données, extensions de script et les règles standard qu'il active.
Le paquet
Un .oamod est un zip du dossier du mod. Le profil est à la racine, ou dans l'unique dossier que la racine contient (la commande Compresser du Finder produit un tel fichier). Entrées stockées ou compressées ; pas de liens, de noms de périphériques, de chemins absolus ni de .. ; au plus 4 Gio décompressés.
escalation.oamodle fichier qu'un joueur télécharge ou ouvre├─ oamod.yamlrequis le profil : identité, disposition, limites, règles├─ badge.png256 × 256, affiché dans la Bibliothèque et sur ce site├─ totala1.hpi · esc.ufoarchives, listées sous layout dans l'ordre de chargement├─ units/ · weapons/ · features/dossiers de données libres, superposés aux archives├─ scripts/ · objects3d/ · textures/scripts COB, modèles 3DO, textures GAF├─ sounds/ · bitmaps/ · guis/sons, images et menus que le mod remplace└─ README · LICENCEtout le reste est embarqué et ignoréLe profil
YAML strict : un document, une table de premier niveau, ni ancres ni scalaires de bloc. Tout ce que le fichier omet se joue comme en 3.1c.
oamod: 1 id: escalation # kebab-case, 1 à 32 octets ; le nom du dossier d'installation name: Escalation version: "10.2.0" # texte libre, jamais ordonné 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"} # mettez la plage de moteur entre guillemets 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
Ce qu'il peut déclarer
| Clé | Rôle | Standard |
|---|---|---|
identity | Noms, badge, site, étiquettes, le jeu de base et les extensions nécessaires. | §6.1 |
layout | Quelles archives et quels dossiers composent le mod, dans l'ordre de chargement. | §6.2 |
limits | Les limites du moteur que le mod relève, chacune avec une valeur par défaut et un maximum que l'hôte peut choisir. | §6.3 |
script-extensions | Les valeurs supplémentaires que lisent les scripts d'unités du mod, comme unit.kills-x100. | §7 |
data-keys | Les clés supplémentaires des fichiers FBI et TDF que le moteur doit honorer. | §8 |
hacks | Les règles standard que le mod active ; les règles de simulation doivent coïncider entre joueurs. | §9 |
strings, media | Noms traduits et images et sons propres au mod pour les menus. | §10 |
Où il s'installe
Dans Documents/Open Annihilation/Mods/
Vérifications avant publication
- Le profil passe la validation comme un chargement le ferait : résolu deux fois, la seconde avec l'INI du paquet et les réglages de registre du joueur.
- Pas deux noms qui ne diffèrent que par la casse ASCII ; pas de fichier et de dossier du même nom.
- version et packaging.revision n'ont jamais été publiés avec d'autres octets. Le script de publication le refuse.
- Chaque règle nommée est implémentée par cet Open Annihilation, sinon la Bibliothèque liste le mod sans pouvoir l'installer.