🎉 Nouvelles formules : 1er mois Légende à 3 € Voir

Comment créer un serveur Minecraft JavaScript multijoueurs ?

Publié le par Nico Mis à jour le 7 min de lecture

L'essentiel à retenir
  • JavaScript et Java sont deux langages distincts : le jeu est écrit en Java, et un vrai serveur JS reste un projet expérimental.
  • Trois options existent : flying-squid pour un serveur entièrement en JS, mineflayer pour des bots, ou un Paper piloté depuis Node.js.
  • Pour jouer réellement à plusieurs, fais tourner Paper et automatise-le depuis Node.js : tu gardes les mécaniques vanilla et ta couche JavaScript.
  • La redstone, l'IA des mobs et l'enchantement ne sont pas implémentés : ton monde tourne, mais il ne se comporte pas comme du vanilla.
  • flying-squid annonce les versions 1.8 à 1.21, alors que le drop stable du jeu en 2026 est la 26.2.

Tu installes flying-squid, le serveur Minecraft écrit en JavaScript et maintenu par le collectif PrismarineJS, avec npm install -g flying-squid, puis tu le lances. La configuration tient dans config/settings.json. Ce serveur convient au prototypage et à l'apprentissage du protocole, beaucoup moins à une partie survie entre amis.

Les deux routes, comparées
EXPÉRIMENTAL

Serveur écrit en JavaScript (flying-squid)

Ce que tu écris en JS
Le serveur lui-même, via l'API createMCServer
Mécaniques vanilla
Redstone, IA et enchantement absents ou partiels
Version du jeu
1.8 à 1.21
Plugins existants
Aucun écosystème Bukkit, quelques plugins communautaires
RECOMMANDÉ

Paper piloté depuis Node.js

Ce que tu écris en JS
La couche d'automatisation, via RCON ou mineflayer
Mécaniques vanilla
Complètes, celles du serveur officiel
Version du jeu
26.2, alignée sur le client courant
Plugins existants
LuckPerms, CoreProtect, EssentialsX et le reste

Java ou JavaScript : lever la confusion avant de taper une commande

Minecraft Java Edition tire son nom du langage dans lequel le jeu est écrit, et ce langage n'a rien de commun avec JavaScript malgré la ressemblance des noms. La confusion touche aussi des joueurs expérimentés, parce que les deux mots se croisent en permanence dans les tutoriels et les forums.

Deux objectifs se cachent derrière la même question, et le logiciel serveur découle entièrement de celui que tu poursuis. Pour jouer avec tes amis sur ta propre machine, la route normale passe par Paper et par Java 25, exigé depuis la version 26.1. Pour écrire toi-même la logique du serveur en JS, flying-squid reste la seule implémentation sérieuse.

L'écart pratique se voit immédiatement, un serveur Paper accepte des milliers de plugins, suit chaque drop de Mojang et repose sur un socle éprouvé, là où un serveur JavaScript te donne le contrôle du code au prix des mécaniques manquantes. Le choix se joue donc sur ce que tu veux fabriquer, pas sur le langage que tu préfères.

Ce que flying-squid sait faire

Le projet couvre le socle d'un serveur jouable : il affiche le monde, gère le déplacement, le minage et la pose de blocs, tient la liste des connectés, génère un terrain et charge des mondes au format Anvil. Le multi-monde figure aussi parmi les fonctions annoncées, ce qui autorise plusieurs cartes sur une même instance.

Cette base suffit à réunir plusieurs personnes au même endroit, avec un client Minecraft ordinaire et sans mod côté joueur. Ce qui manque se situe une couche plus bas, dans les mécaniques de jeu, et cette différence pèse lourd dès que tu quittes la simple exploration.

Côté mise en route, tu n'installes aucune JVM, seulement Node.js, ce qui allège nettement une petite machine. Le serveur se comporte ensuite comme un serveur classique, avec un port à ouvrir vers l'extérieur et un fichier de configuration à éditer.

  1. Vérifie que Node.js répond en ligne de commande, puis crée un dossier de projet vide.
  2. Installe le paquet en global pour obtenir une commande, ou en local pour l'utiliser comme bibliothèque.
  3. Lance node app.js et laisse le premier démarrage générer l'arborescence du serveur.
  4. Ouvre config/settings.json et règle le message d'accueil, la difficulté et le mode de jeu.
  5. Teste depuis un second client, sur une version annoncée comme supportée, avant d'inviter qui que ce soit.

Installer le serveur et le lancer

L'installation tient en deux commandes, puisque le paquet est publié sur npm : npm install -g flying-squid pose le binaire, la commande flying-squid démarre le serveur, et docker run prismarinejs/flying-squid fait le même travail dans un conteneur isolé.

Le fichier config/settings.json regroupe ensuite les réglages habituels, du message d'accueil au dossier de monde, en passant par le nombre de joueurs, la difficulté et le mode de jeu. Tu y retrouves online-mode, qui vérifie les comptes Microsoft exactement comme sur un serveur officiel, ainsi que le choix du générateur de terrain.

Charger un monde au format Anvil mérite une mention à part, puisque cette possibilité te laisse reprendre une carte déjà explorée plutôt que d'en générer une neuve. Sauvegarde-la avant l'essai, comme pour n'importe quelle migration de monde.

Fiche express
Licence
MIT
Part de JavaScript dans le code
99,9 %
Port par défaut
25565 TCP
Joueurs dans la configuration d'exemple
10 max-players
Hauteur de monde générée
80 blocs
Entités simultanées
100 max-entities
Trouver des joueurs pour tester ton serveur Minecraft Pour la première session multijoueur, quand deux clients ne suffisent plus.

Écrire ta logique de jeu en JavaScript

Le serveur s'utilise aussi comme bibliothèque, et c'est là que la voie JavaScript prend tout son sens. Un appel à createMCServer depuis ton propre fichier Node.js démarre l'instance avec l'objet de configuration que tu lui passes, ce qui rend chaque réglage programmable.

Tu écris ensuite tes plugins comme de simples modules, exportés depuis un fichier JavaScript et chargés par le serveur au démarrage. Une fonction server écoute les événements du monde, par exemple randomTickBlock, qui permet de transformer l'herbe en pierre au tick aléatoire. Une fonction player couvre le joueur, avec des événements comme spawned pour envoyer un message de bienvenue coloré.

Autour du serveur gravite un écosystème déjà mûr, où node-minecraft-protocol gère l'analyse des paquets, l'authentification et le chiffrement, pendant que prismarine-chunk, prismarine-entity, prismarine-item et prismarine-world fournissent les modèles de données. Pour le terrain, diamond-square sert de générateur par défaut, node-voxel-worldgen ajoute des grottes et un superflat configurable complète l'ensemble.

Rien ne t'oblige d'ailleurs à tout écrire toi-même, puisque des plugins communautaires couvrent déjà les ponts IRC et Discord, le chargement de schematics ou l'authentification en mode hors ligne.

Les limites à connaître avant d'inviter tes joueurs

La parité fonctionnelle avec le serveur officiel n'existe pas, et ce point commande tout le reste. La redstone, le comportement des mobs, l'IA et l'enchantement ne sont pas implémentés ou le sont partiellement, si bien qu'un monde flying-squid se visite plus qu'il ne se joue.

Côté versions, le retard du projet est structurel plutôt qu'accidentel. Les versions annoncées comme supportées vont de 1.8 à 1.21, alors que le drop stable de 2026 est la 26.2, sortie le 16 juin. Tes joueurs devront donc conserver un profil ancien dans leur launcher pour te rejoindre.

Reste à situer les cas où cette voie devient franchement le bon outil, parce qu'ils existent et qu'ils sont précis. Apprendre le protocole Minecraft, expérimenter la génération procédurale, prototyper une expérience qui utilise le client comme interface ou construire un bac à sable technique : dans ces quatre situations, flying-squid fait exactement ce qu'on lui demande.

L'approche hybride : Paper devant, Node.js derrière

Une troisième route répond à la demande réelle dans la majorité des cas, et elle mérite d'être posée avant que tu ne codes quoi que ce soit. Si ton objectif est de scripter ton serveur en JavaScript plutôt que d'écrire le serveur en JavaScript, fais tourner un Paper classique et pilote-le depuis Node.js.

RCON constitue la première passerelle, puisque cette console distante s'interroge avec le paquet rcon-client : un say pour annoncer un redémarrage, un list pour récupérer les joueurs connectés, puis tout ce que ta logique impose. mineflayer forme la seconde, de loin le projet le plus utilisé du collectif, avec des bots joueurs qui se connectent comme des clients ordinaires.

Cette combinaison te rend la robustesse du serveur officiel, l'accès aux plugins et le suivi des versions, sans rien retirer à ta couche d'automatisation. Bot Discord relié au chat, tableau de bord web, tâches planifiées : tout cela se construit sans réimplémenter le jeu. Active enable-rcon=true avec un mot de passe solide et garde ce port hors d'Internet.

Le partage des rôles devient alors lisible, avec Paper qui tient le monde, les permissions et les sauvegardes, et ton code Node.js qui tient l'automatisation. Chaque brique reste remplaçable sans casser l'autre, et un serveur de test séparé te permet de valider un nouveau script avant de le passer en production.

5/5 · 1 avis
Icône du serveur Elythera 🌿
🔥
195 membres
🔥 Très Actif
Gaming
#communauté #event #art

🌿 Communauté conviviale autour des passions, des jeux et du partage. Rejoins l'aventure !

Icône du serveur Astrakana ⚜
40 membres
Inactif
Gaming
#minecraft #roleplay #serious

Serveur RolePlay dans la thématique du médiéval-fantastique. Forgez votre destinée à Astrakana.