Comment créer un serveur sur Minecraft
Un serveur personnel offre un contrôle total sur le monde et les règles du jeu. C'est la possibilité de jouer avec des amis sans payer…
Un serveur personnel offre un contrôle total sur le monde et les règles du jeu. C'est la possibilité de jouer avec des amis sans payer d'abonnements mensuels, d'installer n'importe quelles modifications, de créer des mini-jeux ou des assemblages techniques. Le serveur se lance comme un programme distinct sur l'ordinateur : il traite la logique du jeu, tandis que les clients des joueurs s'y connectent. Le processus de création consiste à choisir le cœur, à configurer les fichiers de base et à ouvrir l'accès au réseau.
Choix du cœur du serveur
Le type de cœur détermine les fonctionnalités du serveur. Il est impossible d'installer des mods Forge sur Paper, ou des plugins sur Vanilla.
Type de cœur | Prise en charge | À quoi ça sert |
Vanilla | Seulement les datapacks | Survie pure, speedruns. Pire optimisation. |
Paper | Plugins (Bukkit/Spigot/Paper) | Serveurs publics, survie entre amis, mini-jeux. Excellente optimisation. |
Purpur | Plugins (Paper) + configuration propre | Comme Paper, mais avec des réglages fins des mécaniques (par exemple, autoriser à chevaucher les abeilles). |
Fabric | Mods (Fabric) | Serveurs techniques (Carpet mod), assemblages vanilla+, optimisation (Lithium). |
NeoForge / Forge | Mods (Forge/NeoForge) | Modpacks lourds avec de nouvelles dimensions, des mécanismes, de la magie. |
Pour 90 % des serveurs privés sans gros mods globaux, Paper est le choix optimal. Il ne nécessite pas d'installer des mods sur les clients des joueurs (tout fonctionne depuis le client vanilla), prend en charge les plugins de protection de territoires et fonctionne plus vite que le cœur officiel.
⚠️ Important : Les cœurs hybrides (Arclight, Mohist), qui prennent en charge à la fois les mods et les plugins, cassent souvent les mécaniques des mods et provoquent de l'instabilité. Choisis une seule chose : soit les plugins, soit les mods.
Configuration système requise et préparation
Le serveur consomme de la mémoire vive (RAM) et des ressources du processeur. La carte graphique n'a aucune importance pour le serveur — la génération du monde se fait exclusivement sur le CPU.
Pour 2 à 5 joueurs (Paper) :
RAM : 2 à 3 Go de mémoire allouée.
CPU : n'importe quel processeur moderne à partir de 4 cœurs.
Pour 10+ joueurs ou des modpacks lourds (NeoForge) :
RAM : 6 à 8 Go de mémoire allouée.
CPU : hautes performances par cœur.
Installation de Java
Minecraft 1.21+ nécessite Java 21 (pour les versions 26.1+ il faut Java 26). Le serveur n'utilise pas le Java intégré au client, il faut l'installer séparément sur le système.
Télécharge JDK 21 (ou JDK 26) depuis le site officiel d'Oracle.
Installe-le en activant impérativement l'option « Add to PATH » dans l'installateur.
Vérifie dans le terminal : java -version. Cela doit afficher la version 21.0.x.
Installation et lancement de base
Exemple d'installation pour le cœur Paper :
Étape 1. Téléchargement du cœur
Va sur le site officiel papermc.io, choisis la version du jeu (par exemple, 26.1) et télécharge le fichier. Crée un dossier vide pour le serveur et déplaces-y le fichier. Renomme-le en server.jar pour plus de commodité.
Étape 2. Création du fichier de lancement
Le serveur ne se lance pas par un double-clic. Il faut lui allouer de la mémoire via un script.
Crée dans le dossier du serveur un document texte start.txt,
ouvre-le et insère le code :
DOS
java -Xmx4G -Xms4G -jar server.jar nogui
pause
Le paramètre -Xmx4G définit la limite maximale de mémoire vive (4 Go). -Xms4G est la quantité de départ. Enregistre le fichier et change son extension de .txt en .bat (pour Windows).
Sous Linux/macOS, crée start.sh et ajoute #!/bin/bash comme première ligne.
Étape 3. Acceptation de l'EULA
Lance start.bat. La console s'ouvrira quelques secondes puis se fermera. Ouvre le nouveau fichier eula.txt. Change la ligne eula=false en eula=true. C'est l'accord officiel avec le contrat de licence des développeurs.
Étape 4. Lancement complet
Relance start.bat. Le serveur générera le monde et les fichiers de configuration. Le message Done! apparaîtra dans la console. Arrête le serveur exclusivement avec la commande stop dans la console, sinon le monde risque d'être endommagé.
Configuration de server.properties
Le fichier server.properties contient les principaux réglages du serveur. Pour l'ouvrir, fais un clic droit sur le fichier et choisis « Ouvrir avec… », puis choisis « Bloc-notes » ou tout autre éditeur de texte.\
Ci-dessous un tableau avec les réglages par défaut de server.properties et la description de chaque paramètre :
Paramètre | Valeur | Description |
accepts-transfers | FALSE | Détermine si ce serveur accepte les redirections (transferts) de joueurs depuis d'autres serveurs. |
allow-flight | FALSE | Autorise ou interdit le vol sur le serveur en mode survie (si le joueur utilise des modifications tierces). Avec false, le serveur expulse ces joueurs. |
broadcast-console-to-ops | TRUE | Si activé, les résultats de l'exécution des commandes console seront envoyés dans le chat à tous les opérateurs (administrateurs) du serveur. |
broadcast-rcon-to-ops | TRUE | Comme le précédent, mais pour les commandes envoyées via l'accès distant (RCON). |
bug-report-link | (vide) | Lien qui sera affiché aux joueurs à l'écran lors d'une déconnexion du serveur due à une erreur ou un plantage. |
debug | FALSE | Active le mode débogage (debug mode) pour une journalisation étendue des erreurs. |
difficulty | easy | Niveau de difficulté sur le serveur (peaceful — paisible, easy — facile, normal — normal, hard — difficile). |
enable-code-of-conduct | FALSE | Faut-il exiger des joueurs qu'ils acceptent les règles de conduite de Microsoft (Code of Conduct) lors de la connexion. |
enable-jmx-monitoring | FALSE | Autorise l'utilisation de JMX (Java Management Extensions) pour la surveillance des performances du serveur. |
enable-query | FALSE | Active le protocole GameSpy4 (Query), qui permet aux sites de monitoring tiers d'obtenir des informations sur le serveur (joueurs en ligne, plugins). |
enable-rcon | FALSE | Active l'accès distant à la console du serveur (RCON) pour le gérer sans accès direct au terminal de la machine. |
enable-status | TRUE | Permet au serveur d'apparaître comme « en ligne » dans la liste des serveurs du client de jeu. |
enforce-secure-profile | TRUE | Exige que les joueurs disposent de clés publiques signées du profil Mojang (protection contre la falsification des messages dans le chat). |
enforce-whitelist | FALSE | Si true, le serveur expulsera de force les joueurs qui ne figurent pas sur la « liste blanche » (whitelist) lorsque cette liste est activée. |
entity-broadcast-range-percentage | 100 | Contrôle la distance (en pourcentage) à laquelle le serveur envoie au client les données sur les entités (mobs, autres joueurs, objets). |
force-gamemode | FALSE | Impose de force aux joueurs le mode de jeu par défaut à chaque connexion au serveur. |
function-permission-level | 2 | Niveau de permissions (de 1 à 4) pour les fonctions exécutées via les datapacks. |
gamemode | survival | Mode de jeu par défaut (survival, creative, adventure, spectator). |
generate-structures | TRUE | Détermine si les structures seront générées dans le monde (villages, donjons, temples, etc.). |
generator-settings | {} | Réglages spéciaux pour le générateur de monde (généralement utilisé pour les mondes personnalisés). |
hardcore | FALSE | Mode « Hardcore ». Si true, après la mort, le joueur passe en mode spectateur pour toujours. |
hide-online-players | FALSE | Si true, masque la liste des pseudos des joueurs actifs dans le menu du jeu multijoueur. |
initial-disabled-packs | (vide) | Liste des datapacks qui seront désactivés lors de la création d'un nouveau monde. |
initial-enabled-packs | vanilla | Liste des datapacks activés par défaut (jeu de base « vanilla »). |
level-name | world | Nom du dossier dans lequel sont enregistrés les fichiers de ton monde. |
level-seed | (vide) | Seed (graine numérique) pour la génération du monde. Si vide, une graine aléatoire sera générée. |
level-type | minecraft\:normal | Type de génération du monde (normal — normal, flat — plat, large_biomes — grands biomes, amplified — montagneux). |
log-ips | TRUE | Détermine si les adresses IP des joueurs seront enregistrées dans les fichiers journaux du serveur. |
management-server-* | (divers) | Groupe de paramètres (ports, clés, réglages) pour les outils externes de gestion du serveur (rarement utilisé). |
max-chained-neighbor-updates | 1000000 | Limite des mises à jour en chaîne des blocs (par exemple, lors d'une explosion de TNT ou de schémas redstone complexes) pour éviter que le serveur ne se fige. |
max-players | 20 | Nombre maximal de joueurs pouvant se trouver simultanément sur le serveur. |
max-tick-time | 60000 | Temps maximal (en millisecondes) d'exécution d'un « tick ». Si le serveur « réfléchit » plus longtemps que ce temps, il s'éteint automatiquement (protection contre un gel « mort »). |
max-world-size | 29999984 | Rayon maximal de la bordure du monde (en blocs). |
motd | A Minecraft Server | Message Of The Day. Description/nom du serveur que les joueurs voient dans la liste des serveurs. |
network-compression-threshold | 256 | Taille minimale d'un paquet (en octets) à partir de laquelle le serveur commence à le compresser pour économiser le trafic internet. |
online-mode | TRUE | Paramètre très important. Si true — n'autorise que les joueurs ayant le jeu sous licence. Si false — autorise l'accès aux joueurs utilisant des launchers « pirates ». |
op-permission-level | 4 | Niveau de permissions des opérateurs par défaut (1-4, où 4 donne accès à toutes les commandes, y compris stop). |
pause-when-empty-seconds | -1 | Temps d'inactivité (en secondes) après lequel le serveur met le monde « en pause » s'il n'y a aucun joueur (-1 signifie désactivé). |
player-idle-timeout | 0 | Temps (en minutes) après lequel un joueur inactif (AFK) est automatiquement expulsé. 0 — désactivé. |
prevent-proxy-connections | FALSE | Interdit la connexion des joueurs utilisant un VPN ou un proxy (fonctionne en lien avec le système d'authentification de Mojang). |
query.port | 25565 | Port du protocole Query (s'il est activé par le paramètre enable-query). |
rate-limit | 0 | Nombre maximal de paquets du client vers le serveur. Utilisé pour la protection contre le spam de paquets (0 — désactivé). |
rcon.password | (vide) | Mot de passe pour l'accès distant à la console du serveur (à remplir si enable-rcon=true). |
rcon.port | 25575 | Port de la connexion RCON. |
region-file-compression | deflate | Algorithme de compression des fichiers du monde (régions). deflate est la norme et le plus répandu. |
require-resource-pack | FALSE | Si true, le joueur ne pourra pas entrer sur le serveur tant qu'il n'aura pas accepté de télécharger le pack de ressources du serveur. |
resource-pack | (vide) | Lien direct (URL) vers l'archive .zip du pack de ressources du serveur qui sera proposé aux joueurs. |
resource-pack-id | (vide) | Identifiant unique du pack de ressources (UUID). |
resource-pack-prompt | (vide) | Message que verra le joueur lorsqu'il lui sera proposé de télécharger le pack de ressources (par exemple : « Veuillez télécharger le pack pour une meilleure expérience de jeu »). |
resource-pack-sha1 | (vide) | Hash SHA-1 de l'archive du pack de ressources. Nécessaire pour que le client ne retélécharge pas le pack s'il n'a pas changé. |
server-ip | (vide) | Adresse IP pour « lier » le serveur. On la laisse généralement vide pour que le serveur fonctionne sur toutes les interfaces réseau de la machine. |
server-port | 25565 | Port principal du serveur par lequel les joueurs se connecteront. |
simulation-distance | 10 | Rayon (en chunks) autour du joueur dans lequel le monde est simulé (les plantes poussent, les mobs se déplacent, les mécanismes fonctionnent). |
spawn-protection | 16 | Rayon de protection de la zone de spawn (en blocs). Dans cette zone, les joueurs ordinaires ne peuvent ni casser ni poser de blocs. |
status-heartbeat-interval | 0 | Intervalle d'envoi des données étendues sur l'état du serveur (généralement non utilisé). |
sync-chunk-writes | TRUE | Rend l'enregistrement des chunks sur le disque synchrone (plus fiable pour éviter la perte des données du monde lors de plantages, mais peut légèrement ralentir le serveur). |
text-filtering-config | (vide) | Configuration d'un système tiers de filtrage des gros mots dans le chat. |
text-filtering-version | 0 | Version de l'API du système de filtrage du texte. |
use-native-transport | TRUE | Permet au serveur d'utiliser les bibliothèques réseau optimisées du système (par exemple, epoll pour Linux), ce qui améliore les performances réseau. |
view-distance | 10 | Distance de rendu (en chunks) envoyée par le serveur au client (sur laquelle s'appuie la distance de vue du joueur). |
white-list | FALSE | Activation de la « liste blanche ». Si true, seuls les joueurs dont les pseudos ont été ajoutés à cette liste pourront entrer sur le serveur (avec la commande /whitelist add <pseudo>). |
⚠️ Important : Si tu mets online-mode=false, n'importe quel joueur pourra se connecter sous le pseudo de l'administrateur. Installe impérativement un plugin d'autorisation (par exemple, AuthMe Reloaded) pour la protection.
Comment installer des plugins
Les plugins étendent les possibilités du serveur sans que les joueurs aient à installer des mods. Ils ne fonctionnent que sur Paper, Purpur et Spigot.
Télécharge le plugin au format .jar.
Place le fichier dans le dossier plugins à l'intérieur du serveur.
Redémarre le serveur (stop -> start.bat).
Dans le dossier plugins apparaîtra un dossier avec les configurations du plugin, où l'on modifie ses réglages (généralement dans le fichier config.yml).
Comment installer des mods
Pour jouer avec des mods, il faut le cœur Fabric ou NeoForge. Tous les joueurs doivent avoir un ensemble de mods identique dans leur client.
Pour Fabric :
Télécharge l'installateur depuis fabricmc.net.
Lance-le, choisis l'onglet « Server », indique la version du jeu et un dossier vide. Clique sur « Install ».
Lance le fabric-server-launch.jar téléchargé via start.bat.
Mets les mods dans le dossier mods généré. Pour Fabric, le mod Fabric API est obligatoire.
Pour NeoForge :
Télécharge l'installateur depuis neoforged.net.
Lance-le, choisis « Install server » et indique le dossier.
Après l'installation, lance le fichier run.bat (l'installateur le crée lui-même).
Place les mods serveur dans le dossier mods.
Il est interdit d'installer des mods client (mini-cartes, shaders, optimisation de l'affichage comme Sodium) sur le serveur — ils provoquent un plantage du cœur au démarrage.
Comment laisser entrer les joueurs sur le serveur
Méthode 1 : Port Forwarding
La meilleure méthode, avec le ping le plus bas. Nécessite l'accès au routeur.
Va dans le panneau de configuration du routeur (192.168.1.1 dans le navigateur).
Trouve la section « Port Forwarding » ou « NAT ».
Crée une règle : port 25565, protocole TCP/UDP, IP locale — l'adresse de ton ordinateur (trouve-la avec ipconfig).
Les joueurs se connectent via ton adresse IP externe (site 2ip.ua).
Méthode 2 : Tunnels (Playit.gg)
Si le fournisseur d'accès bloque les ports.
Télécharge le programme depuis playit.gg.
Lance-le en même temps que le serveur. Il ouvrira une page dans le navigateur.
Inscris-toi, et le service te fournira une adresse publique (par exemple, auto-bridge.playit.gg).
Les joueurs saisissent cette adresse dans le jeu.
Méthode 3 : Radmin VPN
Installe Radmin VPN sur tous les ordinateurs.
Crée un réseau et donne le nom à tes amis.
Ils rejoignent le réseau.
Les joueurs se connectent via l'adresse IP de ton PC indiquée dans Radmin VPN.
Détails techniques / Comment ça fonctionne en interne
Le serveur Minecraft est une application monothread. La boucle de jeu principale (tick loop), qui traite le déplacement des mobs, la physique et les mécanismes, s'exécute exclusivement sur un seul cœur du processeur.
Le jeu tente d'exécuter 20 ticks par seconde (TPS — Ticks Per Second). 50 millisecondes sont allouées à chaque tick. Si les calculs prennent plus de temps, le TPS chute et les joueurs ressentent des latences. C'est précisément pourquoi, pour le serveur, la fréquence d'horloge d'un seul cœur est plus importante que le nombre total de cœurs.
Le multithreading dans les cœurs comme Paper n'est utilisé que pour le chargement asynchrone des chunks depuis le disque et le traitement réseau, mais la logique du jeu elle-même reste sur un seul thread.
Commandes de base de l'administrateur
Elles se saisissent dans la console du serveur (sans /).
Action | Commande |
Accorder les droits d'opérateur | op [pseudo] |
Retirer les droits | deop [pseudo] |
Activer la liste blanche | whitelist on |
Ajouter à la liste blanche | whitelist add [pseudo] |
Expulser un joueur | kick [pseudo] [raison] |
Bannir un joueur | ban [pseudo] [raison] |
Sauvegarder le monde manuellement | save-all |
L'hébergement comme alternative
Si l'ordinateur domestique est faible, le serveur peut être loué.
Type | Représentants | Avantages | Limitations |
Gratuits | Aternos, FalixNodes | Pas besoin de payer | Files d'attente au démarrage, lags en charge, le serveur s'éteint sans joueurs. |
Payants économiques | PebbleHost, Bloom.host | À partir de 1$ par Go, fonctionnement 24/7 | Il faut payer chaque mois. |
VDS/VPS | Hetzner, Oracle | Contrôle total sur la machine | Nécessite des compétences en administration Linux. |
Erreurs courantes et comment les éviter
Erreur 1 : FAILED TO BIND TO PORT. Le serveur ne démarre pas car le port 25565 est déjà occupé. Cela arrive souvent en lançant deux start.bat. Ouvre le gestionnaire des tâches et ferme tous les processus Java(TM) Platform SE binary.
Erreur 2 : UnsupportedClassVersionError. La version de Java est obsolète. Pour 1.20.5+ il faut Java 21, et pour 1.16.5 — Java 11.
Erreur 3 : Lags lors d'un vol rapide. Le serveur n'arrive pas à générer les nouveaux chunks. Installe le plugin Chunky et génère le monde à l'avance dans un rayon de 5000 blocs.
Erreur 4 : Plantage du serveur Fabric/Forge au démarrage. Un mod client (mini-carte, Sodium) s'est retrouvé dans le dossier mods. Le serveur n'a pas d'interface graphique et plante en essayant de les charger.
Erreur 5 : Erreur Invalid session à la connexion. Le joueur utilise un launcher pirate avec online-mode=true activé. Change la valeur en false dans server.properties.
Conclusion
Un serveur personnel basé sur Paper est le choix optimal pour une survie privée entre amis, car il offre d'excellentes performances et permet d'ajouter des plugins sans modifier le client de jeu. Pour les grands assemblages avec de nouvelles mécaniques, il faudra utiliser Fabric ou NeoForge, qui nécessitent la synchronisation des mods entre le serveur et les joueurs. Le principal défi de la configuration d'un serveur domestique est l'ouverture correcte des ports, mais l'utilisation de services comme Playit.gg résout le problème des ports bloqués par le fournisseur d'accès. Si les performances du PC domestique ne suffisent pas, le passage à un hébergement payant abordable garantit un accès stable 24/7.
Aucun commentaire pour le moment. Sois le premier à partager ton avis.