Monter un serveur Factorio multijoueur
Un serveur Factorio dédié garde ton usine en marche pour tout le groupe : plus besoin que l'hôte soit connecté, et chacun reprend la megabase quand il veut. Voici comment ça fonctionne réellement — et les deux pièges qui font perdre une soirée.
Le serveur ne se configure pas par l'environnement, mais par un fichier
C'est le point que la plupart des tutoriels ratent. Le serveur Factorio lit ses réglages dans config/server-settings.json, et lui seul. Contrairement à un serveur Minecraft, il n'existe pas de variable d'environnement MAX_PLAYERS ou PASSWORD : si le fichier n'est pas écrit, le serveur démarre avec ses valeurs par défaut, sans mot de passe.
Voici les clés qui comptent, avec les valeurs que nous posons :
| Clé | Valeur | Ce que ça fait |
|---|---|---|
name |
le nom de ton serveur | affiché aux joueurs |
game_password |
généré par serveur | la seule barrière d'entrée |
max_players |
tes places (0 = illimité) |
plafond de connexions simultanées |
visibility |
{ public: false, lan: true } |
non listé publiquement : on entre par l'adresse |
username / token |
vides | inutiles hors serveur public (voir plus bas) |
autosave_interval |
10 (minutes) |
fréquence des sauvegardes automatiques |
autosave_slots |
5 |
nombre de sauvegardes tournantes conservées |
auto_pause |
true |
le jeu se met en pause quand plus personne n'est là |
only_admins_can_pause_the_game |
true |
évite qu'un joueur mette l'usine en pause pour tous |
non_blocking_saving |
true |
la sauvegarde n'interrompt plus la partie |
allow_commands |
admins-only |
commandes console : admins seuls, tous, ou personne |
Tu n'as pas besoin d'un compte factorio.com. C'est la fausse croyance la plus répandue : le wiki officiel est explicite, username et token « sont nécessaires si tu veux rendre le serveur public. Sinon, ils peuvent rester vides ». Un serveur privé auquel on se connecte par son adresse n'a besoin d'aucune identification — juste du mot de passe.
Les ports : celui du jeu n'est pas celui qu'on sonde
Factorio joue en UDP sur le port 34197 (wiki officiel). L'UDP ne se teste pas comme le TCP : rien ne « répond » à une simple sonde. C'est pourquoi la disponibilité du serveur se vérifie sur le port RCON, en TCP 27015 — quand RCON répond, le serveur est bien debout.
Retiens-le si tu t'héberges toi-même : ouvrir 34197 en TCP ne sert à rien, et « le port ne répond pas » ne veut rien dire en UDP.
Piège n°1 : le serveur recharge une carte vide
Celui-là coûte des soirées entières, et il vient de l'image Docker la plus utilisée.
Deux réglages cohabitent : GENERATE_NEW_SAVE (crée une carte neuve) et LOAD_LATEST_SAVE (charge la sauvegarde la plus récente). Au premier démarrage il n'y a aucune sauvegarde, donc générer est la bonne chose. Mais si GENERATE_NEW_SAVE reste actif alors qu'une sauvegarde existe déjà, la séquence est impitoyable : l'image génère une carte neuve, cette carte devient la plus récente, et LOAD_LATEST_SAVE charge… la carte vide. Ton usine est toujours là, sur le disque, mais personne ne la charge.
La règle est donc : dès qu'une sauvegarde existe, GENERATE_NEW_SAVE doit repasser à false. Chez nous, l'agent inspecte le dossier saves/ avant chaque démarrage et bascule le réglage lui-même — c'est pour ça qu'un monde importé ou une session précédente se rechargent toujours.
Piège n°2 : SAVE_NAME est obligatoire quand on génère
Corollaire du précédent, et moins connu : quand GENERATE_NEW_SAVE vaut true, l'image exige SAVE_NAME. Sans lui, elle ne démarre pas du tout et sort en erreur sur you must specify $SAVE_NAME. Le message est clair une fois qu'on le lit dans les logs — encore faut-il aller les chercher, puisque le conteneur meurt en quelques secondes.
Les versions doivent correspondre exactement
Le wiki ne laisse aucune marge : « toutes les instances du jeu ont besoin de l'installation de strictement les mêmes versions du jeu et les mêmes mods ». Les sommes de contrôle des mods sont calculées au lancement et comparées au moment de rejoindre.
Conséquence directe chez nous : le serveur tire la dernière version stable à chaque session. Tu es toujours à jour, sans rien faire — mais tout le monde doit l'être aussi. Si un ami reste sur une version antérieure, il ne pourra pas rejoindre. C'est un compromis assumé : mieux vaut un serveur toujours à jour qu'un serveur figé sur une version que le groupe a dépassée.
La RAM ne sauvera pas ta megabase — le CPU, oui
Factorio est un jeu de UPS (mises à jour par seconde), et les UPS dépendent d'un seul cœur rapide. Une usine qui rame ne rame presque jamais par manque de mémoire : elle rame parce que le cœur qui simule les convoyeurs n'y arrive plus.
- Usine petite ou moyenne, jusqu'à 8 joueurs : le palier 8 Go suffit largement.
- Grosse usine, megabase, beaucoup de robots : monte en RAM si tu veux, mais surtout passe au niveau CPU dédié — c'est le seul changement qui remonte les UPS.
Le nombre de places est à 8 par défaut, réglable jusqu'à 32.
Le préréglage de carte se choisit une fois, et pas deux
Huit préréglages sont disponibles : par défaut, ressources abondantes, monde ferroviaire, île, monde ruban, marathon, monde mortel, monde mortel marathon. Ils n'agissent qu'à la génération de la carte : une fois le monde créé, changer le préréglage ne change plus rien. Choisis-le à la création, ou importe une sauvegarde existante.
L'extension Space Age est désactivée par défaut — jeu de base. Il faut l'activer explicitement, et le faire avant de charger une sauvegarde Space Age, sinon elle ne se chargera pas.
Console, sauvegardes et import
La console RCON est intégrée à ta console TickServ : commandes serveur, gestion des joueurs, /server-save à la demande, sans quitter le jeu. C'est aussi elle qui compte les joueurs en ligne.
Côté sauvegardes, trois filets se superposent : les autosaves du jeu toutes les 10 minutes (5 conservées, tournantes), une archive complète avant chaque arrêt avec un /server-save juste avant, et une sauvegarde automatique toutes les 30 minutes en cours de session, dont les 5 dernières sont gardées.
Tu peux enfin importer une partie existante en déposant son fichier .zip à la création — celui-là même que Factorio écrit dans son dossier saves.
Crée ton serveur Factorio. Ta 1re partie est offerte.