Comment tester un mod Arma Reforger sur un serveur dédié ?
Publiez le mod depuis Workbench (Publish Project), puis ajoutez son identifiant de 16 caractères dans la liste mods de serverconfig.json. Au démarrage, le serveur le télécharge dans workshop/addons/<Nom>_<ID>/ et l'écrit dans la console (Addon Download started, puis Required addons are ready to use). Les erreurs de script sont dans profile/logs/logs_<date>/script.log et console.log. Chez EsoterHost, l'onglet Paramètres accepte aussi -logStats et -logLevel pour mesurer et déboguer.
Ce guide s'adresse aux créateurs de mods Arma Reforger : scripteurs, créateurs de scénarios, d'armes ou de véhicules, et aux équipes qui maintiennent un serveur moddé. Il couvre tout ce qui se passe entre Workbench et un vrai serveur dédié : publier, charger, lire les journaux, mesurer, corriger.
Tout ce qui concerne le serveur a été vérifié sur un serveur dédié EsoterHost en novembre 2026, avec la version 1.9.0.37 du jeu : chemins, lignes de journal, paramètres, identifiants. Pour simplement installer des mods existants, le guide mods et scénario sur Arma Reforger suffit.
Le parcours d'un mod, en un coup d'œil
| Étape | Où | Ce qu'on vérifie |
|---|---|---|
| 1. Développer | Arma Reforger Tools (Workbench), sur votre PC | Le mod se lance en local |
| 2. Publier | Workbench → Publish Project | Une version est en ligne sur le Workshop |
| 3. Charger | configs/serverconfig.json du serveur, liste mods | La console affiche le téléchargement |
| 4. Déboguer | profile/logs/logs_<date>/ | Aucune erreur (E) liée à votre mod |
| 5. Mesurer | Paramètre -logStats | Images par seconde et mémoire stables |
| 6. Diffuser | Workshop, puis serveurs de la communauté | Version figée sur les serveurs de production |
Les outils
Les mods se créent avec Arma Reforger Tools, l'outil de Bohemia Interactive disponible dans la bibliothèque Steam (Windows). Il contient Workbench, l'environnement du moteur Enfusion : gestionnaire de ressources, éditeur de monde, éditeur de scripts (langage Enforce Script) et outils de publication.
Pour publier, connectez-vous à votre compte Bohemia depuis Workbench (option Login). Seul le propriétaire d'un mod peut publier ses nouvelles versions.
L'anatomie d'un mod
Chaque mod est un projet Workbench, décrit par un fichier addon.gproj. Voici celui d'un vrai mod du Workshop, tel que le serveur le télécharge :
GameProject {
ID "WhereAmI"
GUID "5965550F24A0C152"
TITLE "Where Am I?"
Dependencies {
"58D0FB3206B6F859"
}
}GUID: l'identifiant du mod, 16 caractères hexadécimaux. C'est lui que les serveurs mettent dansmodId.Dependencies: les projets dont le mod a besoin. Presque tous dépendent du jeu de base.
Les identifiants des projets officiels, lus dans les journaux du serveur :
| Projet | GUID |
|---|---|
| ArmaReforger (le jeu) | 58D0FB3206B6F859 |
| core (le moteur) | 5614BBCCBB55ED1C |
| RallyDLC | 6566A2D70498DA6B |
Dans le moteur, une ressource se désigne par le GUID de la ressource suivi de son chemin : {ECC61978EDCC2B5A}Missions/23_Campaign.conf. Ce GUID-là est celui du fichier, pas celui du mod. C'est le format d'un scenarioId.
Une fois téléchargé par un serveur, un mod occupe un dossier workshop/addons/<ID>_<GUID>/ :
| Fichier | Contenu |
|---|---|
addon.gproj | La description du projet ci-dessus |
data.pak | Les données empaquetées du mod |
resourceDatabase.rdb | La table des ressources (GUID et chemins) |
*_manifest.json | Les empreintes de la version téléchargée, avec son numéro (addon.gproj_1.2.0_manifest.json) |
meta | Les informations du Workshop : versions, dépendances (dependencies) et scénarios (scenarios) |
thumbnail.png | La vignette du Workshop |
Publier une version
- Dans Workbench, ouvrez votre projet et vérifiez qu'il se lance sans erreur en local.
- Menu Workbench → Publish Project. Workbench empaquette le projet, puis le bouton Publish envoie la version.
- Pour une mise à jour, remplissez Change Notes avec les changements : vos utilisateurs et les responsables de serveur les lisent avant de mettre à jour.
À savoir :
- Toute modification de la fiche (description, visibilité, images) passe par une nouvelle version publiée.
- Seul l'auteur d'origine peut modifier la liste des contributeurs.
- Retirer un mod du Workshop est définitif. Les serveurs qui l'utilisent ne pourront plus le télécharger.
- Pour tester une version sans l'exposer, publiez-la en visibilité non répertoriée (unlisted) : elle n'apparaît pas dans les recherches du Workshop.
Charger le mod sur un serveur dédié
Serveur arrêté, ouvrez configs/serverconfig.json (onglet Fichiers) et complétez la liste mods de la section game :
"mods": [
{ "modId": "5965550F24A0C152", "name": "Where Am I" },
{ "modId": "VOTRE_GUID_DE_MOD", "name": "Mon mod (test)", "version": "1.0.3" }
]| Champ | Rôle |
|---|---|
modId | Le GUID du mod, obligatoire |
name | Un nom pour vous y retrouver, facultatif |
version | Facultatif : fige une version. Sans lui, le serveur prend la dernière à chaque démarrage |
required | Facultatif : indique si le mod est indispensable au démarrage du serveur. La valeur par défaut se règle pour tous les mods avec modsRequiredByDefault |
Démarrez le serveur. Dans l'onglet Console, ces lignes confirment le téléchargement et le chargement :
BACKEND : Addon Download started 5965550F24A0C152 - Where Am I
BACKEND : Downloading 5965550F24A0C152 version 1.2.0
BACKEND : Required addons are ready to use.
ENGINE : gproj: '/reforger/workshop/addons/WhereAmI_5965550F24A0C152/addon.gproj' guid: '5965550F24A0C152' (packed)La ligne version indique exactement ce que le serveur a chargé : vérifiez-la après chaque publication, pour être sûr de tester la bonne.
Sur votre serveur de production, figez la version de chaque mod : une mise à jour publiée un vendredi soir ne casse pas votre partie. Sur un serveur de test, laissez la dernière version. Un essai gratuit de 24 h suffit pour valider une mise à jour avant de la déployer.
Et un mod qui n'est pas encore publié ?
Le serveur charge les mods déclarés dans serverconfig.json à partir du Workshop. Pour un mod qui n'y est pas encore, la documentation de Bohemia Interactive décrit un lancement local sur votre PC, avec le serveur d'Arma Reforger Tools : -server suivi d'un monde, -addonsDir vers votre dossier de mods et -addons suivi du mod. Dans ce mode, le fichier de configuration est ignoré. C'est la méthode à suivre pour les tout premiers essais. Sur un serveur hébergé, publiez une version non répertoriée.
Lire les journaux du serveur
Où sont-ils ?
Chaque démarrage crée un dossier daté. Chez EsoterHost, il est dans l'onglet Fichiers :
profile/
logs/
logs_2026-11-08_22-50-00/
console.log tout ce qu'affiche le serveur
script.log les messages des scripts (Enforce Script)
error.log les erreurs
crash.log en cas de plantage
.backend/ les échanges avec les services de BohemiaL'onglet Console du panel affiche le contenu de console.log en direct. Pour une analyse après coup, téléchargez le dossier du démarrage concerné en SFTP.
Repérer les erreurs de votre mod
Les lignes portent une catégorie et un niveau : (W) pour un avertissement, (E) pour une erreur. Les messages de script indiquent le fichier et la ligne :
SCRIPT (W): @"scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
ENTITY (E): GenericEntity component Hierarchy cannot be combined with component HierarchyLe jeu de base produit lui-même des avertissements et quelques erreurs à chaque démarrage, comme les deux lignes ci-dessus. Pour isoler les vôtres :
- Notez les messages d'un démarrage sans votre mod.
- Ajoutez votre mod et redémarrez.
- Cherchez les nouvelles lignes, en filtrant sur le chemin de vos scripts ou le préfixe de vos classes. L'onglet Console a un champ de recherche et des filtres Avertissements et Erreurs.
Les messages d'erreur à connaître, tels qu'ils figurent dans le programme du serveur :
| Message | Cause probable |
|---|---|
Addon '…' not found | Le GUID est faux, ou le mod n'est pas dans la liste |
Addon was not found on workshop. | Le mod n'est pas publié, a été retiré, ou n'est pas accessible |
Addon loading failed {…} | Le mod est présent mais n'a pas pu être chargé : dépendance absente, fichiers corrompus |
Can't compile "…" script module! | Une erreur de compilation dans les scripts. La ligne précédente donne le fichier |
LoadSessionSave id '…' was not found. | La sauvegarde de session demandée n'existe pas |
Écrire dans les journaux depuis vos scripts
En Enforce Script, Print écrit dans les journaux, avec un niveau facultatif. Préfixez vos messages pour les retrouver d'un coup d'œil :
// Code à n'exécuter que sur le serveur (dédié ou hébergé)
if (!Replication.IsServer())
return;
Print("[MonMod] Initialisation côté serveur", LogLevel.NORMAL);
Print("[MonMod] Valeur inattendue, vérifier la configuration", LogLevel.WARNING);Un serveur dédié n'a ni écran ni joueur local : le code d'interface (widgets, caméra du joueur) n'y a pas sa place. Vérifiez toujours qui a l'autorité avant de modifier l'état du jeu.
Mesurer les performances de votre mod
Chez EsoterHost, l'onglet Paramètres d'un serveur Arma Reforger a un champ Paramètres de lancement (avancé). Il accepte une liste fermée de paramètres, vérifiés dans le programme du serveur :
| Paramètre | Effet |
|---|---|
-logStats 10000 | Écrit les statistiques du serveur toutes les 10 000 millisecondes (1 000 au moins) |
-logLevel warning | Ne garde que les avertissements et les erreurs. Valeurs : normal, warning, error, fatal |
-freezeCheck 60 | Délai, en secondes, avant que le serveur ne s'arrête s'il reste figé. 0 désactive la détection |
-aiLimit 40 | Nombre maximum d'IA. -1 retire la limite |
Avec -logStats, la console affiche une ligne de ce type :
DEFAULT : FPS: 116.6, frame time (avg: 8.6 ms, min: 2.2 ms, max: 178.2 ms, mean: 8.3 ms, median: 8.3 ms), Mem: 1046448 kB, Player: 0, AI: 11, AIChar: 0, Veh: 0 (5), …Comparez ces lignes avec et sans votre mod, à charge égale :
- FPS : les images par seconde du serveur. Chez EsoterHost, elles sont plafonnées à 120 (
-maxFPS 120). Une chute durable sous 30 se ressent souvent en jeu. - frame time max : les pics. Un pic régulier trahit souvent un traitement lourd lancé à intervalle fixe.
- Mem : la mémoire estimée par le moteur, une approximation. L'onglet Métriques du panel donne la mémoire réelle du serveur.
- AI, AIChar, Veh : l'IA et les véhicules. Un mod qui en fait apparaître doit aussi les nettoyer.
Retirez -logStats une fois les mesures faites : les journaux grossissent vite.
Scénarios : identifiants officiels et scénarios de mods
Le scénario d'un serveur se règle avec scenarioId dans serverconfig.json. Les identifiants ci-dessous ont été lus dans les fichiers du jeu, et ceux marqués ✓ chargés un par un sur un serveur dédié EsoterHost (version 1.9), avec le bon mode de jeu :
| Scénario | scenarioId | Testé |
|---|---|---|
| Conflict, Everon | {ECC61978EDCC2B5A}Missions/23_Campaign.conf | ✓ |
| Conflict, Arland | {C41618FD18E9D714}Missions/23_Campaign_Arland.conf | ✓ |
| Conflict, Kolguyev | {9C6054B42A044DEC}Missions/23_Campaign_Cain.conf | ✓ |
| Conflict HQ Commander, Everon | {0220741028718E7F}Missions/23_Campaign_HQC_Everon.conf | ✓ |
| Combat Ops, Everon | {DFAC5FABD11F2390}Missions/26_CombatOpsEveron.conf | ✓ |
| Combat Ops, Arland | {DAA03C6E6099D50F}Missions/24_CombatOps.conf | ✓ |
| Combat Ops, Kolguyev | {CB347F2F10065C9C}Missions/CombatOpsCain.conf | ✓ |
| Game Master, Everon | {59AD59368755F41A}Missions/21_GM_Eden.conf | |
| Game Master, Arland | {2BBBE828037C6F4B}Missions/22_GM_Arland.conf | ✓ |
| Game Master, Kolguyev | {F45C6C15D31252E6}Missions/27_GM_Cain.conf | ✓ |
| Capture & Hold, Morton | {2B4183DF23E88249}Missions/CAH_Morton.conf | ✓ |
La liste complète des 35 scénarios multijoueurs officiels, avec toutes les variantes de Conflict, de Capture & Hold et de Rally, est dans le guide mods et scénarios Arma Reforger. Dans les fichiers du jeu, Kolguyev porte le nom interne Cain, et Everon le nom Eden.
Pour un scénario venant d'un mod :
- ajoutez le mod dans la liste
mods, - trouvez l'identifiant du scénario sur la page Workshop du mod (onglet des scénarios), ou dans le champ
scenariosdu fichiermetaque le serveur télécharge (workshop/addons/<ID>_<GUID>/meta), - pour votre propre mod, le
scenarioIdest la référence de votre fichier.confde mission, au format{GUID}Missions/MonScenario.conf.
Sauvegardes de session
Pour les scénarios persistants, la case Reprendre la session sauvegardée de l'onglet Paramètres ajoute -loadSessionSave : le serveur recharge la dernière partie du scénario à chaque démarrage. Les sauvegardes sont rangées par scénario :
profile/profile/.save/game/ECC61978EDCC2B5A-23-Campaign/Testez la persistance de votre mod ainsi : jouez, arrêtez proprement le serveur depuis le panel, redémarrez, puis vérifiez que l'état est revenu. Supprimez le dossier du scénario pour repartir d'une partie neuve.
Faire le ménage dans les mods
Le serveur ne supprime pas tout seul les mods que vous retirez de la liste : leurs dossiers restent dans workshop/addons/ et occupent de l'espace. Après un gros changement de liste, supprimez les dossiers <ID>_<GUID> des mods retirés depuis l'onglet Fichiers, serveur arrêté. Ils seront retéléchargés s'ils reviennent dans la liste.
Check-list avant de publier une version
- Le serveur démarre avec votre mod seul, sans nouvelle ligne
(E)dansconsole.log. - Le serveur démarre avec les mods les plus courants de votre communauté.
- Toutes les dépendances sont déclarées dans le projet, et chargées par le serveur.
- Une partie complète avec deux joueurs ou plus fonctionne : ce que fait un joueur, l'autre le voit.
-logStatsmontre des images par seconde stables, avec et sans votre mod.- La persistance est vérifiée après un redémarrage, si votre mod garde des données.
- Les Change Notes décrivent ce qui change pour les responsables de serveur.
Questions fréquentes
Où trouver l'identifiant d'un mod Arma Reforger ?
Sur sa page du Workshop Arma Reforger, ou dans le champ GUID de son fichier addon.gproj. C'est une suite de 16 caractères hexadécimaux, à mettre dans modId.
Où sont les journaux d'un serveur Arma Reforger ?
Dans le dossier du profil, sous logs/logs_<date>/ : console.log, script.log, error.log et crash.log. Chez EsoterHost, ils sont dans profile/logs de l'onglet Fichiers.
Comment voir les FPS d'un serveur Arma Reforger ?
Ajoutez le paramètre de lancement -logStats suivi d'un intervalle en millisecondes, par exemple -logStats 10000. Le serveur écrit alors ses FPS, sa mémoire et le nombre d'IA dans la console.
Comment figer la version d'un mod sur un serveur Arma Reforger ?
Ajoutez "version": "1.2.3" à l'entrée du mod dans la liste mods de serverconfig.json. Sans ce champ, le serveur prend la dernière version à chaque démarrage.
Peut-on tester un mod non publié sur un serveur dédié Arma Reforger ?
La configuration du serveur charge les mods depuis le Workshop. Pour un mod non publié, Bohemia Interactive décrit un lancement local avec -server, -addonsDir et -addons. Sur un serveur hébergé, publiez une version non répertoriée.
Pourquoi mon serveur Arma Reforger affiche-t-il « Addon was not found on workshop » ?
Le mod n'est pas publié, a été retiré du Workshop, ou son identifiant est faux. Vérifiez le modId sur la page du mod.
Où sont les sauvegardes de session d'un serveur Arma Reforger ?
Dans profile/profile/.save/game/, un dossier par scénario. Chez EsoterHost, la case Reprendre la session sauvegardée de l'onglet Paramètres recharge la dernière partie à chaque démarrage.
Pour aller plus loin
- Installer des mods et changer de scénario sur Arma Reforger
- Modifier les fichiers de votre serveur
- Combien de RAM pour un serveur Arma Reforger ?
- Le wiki officiel de Bohemia Interactive pour Arma Reforger
Image : Arma Reforger, Bohemia Interactive