Accueil › Infos modding › Anatomie d'un mod
Chapitre 02

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ôleStandard
identityNoms, badge, site, étiquettes, le jeu de base et les extensions nécessaires.§6.1
layoutQuelles archives et quels dossiers composent le mod, dans l'ordre de chargement.§6.2
limitsLes 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-extensionsLes valeurs supplémentaires que lisent les scripts d'unités du mod, comme unit.kills-x100.§7
data-keysLes clés supplémentaires des fichiers FBI et TDF que le moteur doit honorer.§8
hacksLes règles standard que le mod active ; les règles de simulation doivent coïncider entre joueurs.§9
strings, mediaNoms traduits et images et sons propres au mod pour les menus.§10

Où il s'installe

Dans Documents/Open Annihilation/Mods/, sous l'identifiant du profil, jamais sous le nom du fichier. Une révision plus récente du même numéro remplace, en gardant la version précédente dans .backup ; un autre numéro peut s'installer à côté sous Mods/-. Tout est vérifié avant d'écrire quoi que ce soit, et un arrêt à tout moment laisse le dossier dans l'état d'avant ou d'après le changement.

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.