Vanilla, Paper, Spigot, Fabric ou Forge : quel serveur choisir ?
Les plugins et les mods ne sont pas la même chose, et se tromper de côté oblige à tout recommencer. Ce qu'est réellement chaque option, ce qu'elle sait faire tourner, et laquelle correspond à ce que vous montez.
10 minutes de lecture
Il y a une décision qui détermine tout le reste de votre serveur, et la plupart des gens la prennent sans s'en rendre compte. Ce n'est pas l'hébergeur, ni la RAM, ni la version. C'est plugins ou mods, parce que ces deux mots décrivent des choses complètement différentes et que presque rien ne passe de l'une à l'autre.
Se tromper ne coûte pas un réglage. Ça coûte de tout recommencer.
La phrase qui coupe l'écosystème en deux
Un plugin tourne uniquement sur le serveur. Les joueurs se connectent avec un jeu non modifié et n'installent jamais rien. Un mod modifie le jeu lui-même, et chaque joueur doit installer les mêmes mods que vous.
Cette seule phrase décide de toute votre installation :
- Si vous voulez que n'importe qui clique sur votre adresse dans la liste des serveurs et joue, vous voulez des plugins. C'est la famille Bukkit : CraftBukkit, Spigot, Paper, Purpur, Folia.
- Si vous voulez de nouveaux blocs, de nouveaux monstres, de nouvelles dimensions, des machines, de la magie, bref tout ce que le jeu de base ne contient pas, vous voulez des mods. C'est Fabric, Forge ou NeoForge, et tous ceux qui rejoignent auront besoin du même modpack.
Un plugin Bukkit ne tournera pas sur Fabric. Un mod Fabric ne tournera pas sur Paper. Il existe des projets passerelles, et ce sont des pièces mobiles en plus, pas un repas gratuit.
Décidez ça en premier. Tout ce qui suit en découle.
Vanilla
Le jar serveur de Mojang. Pas de plugins, pas de mods, pas de système de permissions, pas de protection de terrain, pas d'économie.
Ce n'est pas un reproche. Vanilla est la référence : c'est ce à quoi tout le reste se compare, et c'est le seul disponible le jour de la sortie.
On le lance littéralement comme ça :
java -Xms4096M -Xmx4096M -jar server.jar --nogui
Mais voici ce que la plupart des guides passent sous silence, et c'est probablement la phrase la plus utile de cet article :
Même pour quatre amis sur une machine modeste, Paper est en général un meilleur choix que Vanilla. Même jeu, mêmes fichiers de monde, même expérience pour les joueurs, et nettement plus léger pour la machine. Vous n'avez pas besoin d'installer le moindre plugin pour en profiter.
PaperMC annonce lui-même que Paper « contains numerous improvements and optimizations resulting in a significant increase in performance », en citant nommément le chargement asynchrone des chunks et la réécriture du moteur de lumière, des entonnoirs et de la gestion des entités. Le chargement des chunks et le moteur de lumière sont précisément ce qui met une machine modeste à genoux quand quelqu'un part en sprint vers du terrain inexploré : ce n'est donc pas une victoire abstraite dans un benchmark. C'est le coup de lag que vous remarquez vraiment.
Votre monde reste un monde Minecraft normal. Vous pouvez le passer sur Paper et revenir en arrière. Personne n'a à faire quoi que ce soit de différent pour se connecter.
La réserve honnête, et c'est PaperMC qui la formule : « the gameplay experience between Vanilla and Paper can have inconsistencies », et « it currently is not possible to get a 100% Vanilla experience in Paper ». Si votre serveur repose sur un montage redstone au tick près ou une ferme à monstres calée sur le spawn vanilla, ça compte, et PaperMC publie une page de réglages pour s'approcher au maximum du comportement d'origine. Pour la plupart des groupes, la question ne se pose jamais.
Le cas où rester sur Vanilla se défend est donc étroit mais réel : vous voulez des mécaniques garanties identiques au jeu de base, ou vous voulez jouer le jour même de la sortie d'une version, avant que Paper n'ait construit pour elle.
Dans tous les cas, Vanilla ne vous donne aucun outil. Pas de /home, pas de protection de terrain, pas d'anti-grief. Dès que vous en voulez, vous voulez des plugins de toute façon.
La famille des plugins
Tous descendent d'un même projet, et tous font tourner les mêmes plugins.
CraftBukkit
L'ancêtre. C'est la couche qui a rendu les plugins côté serveur possibles. Plus personne ne le déploie aujourd'hui ; il survit comme la racine dont tout le reste a hérité, et comme la raison pour laquelle l'API des plugins s'appelle « Bukkit ».
Spigot
CraftBukkit plus des correctifs de performance et de la configuration. Pendant des années, c'était la réponse par défaut, et une énorme quantité de documentation le suppose encore.
Sa particularité aujourd'hui est gênante : on ne peut pas télécharger un jar Spigot. On télécharge BuildTools et il en compile un sur votre machine. C'est une conséquence de licence, pas un choix de conception, et c'est la raison pour laquelle beaucoup d'hébergeurs et de guides sont discrètement passés à autre chose.
Paper
Un fork de Spigot, et en pratique le choix par défaut pour un serveur à plugins. PaperMC le dit sans détour :
Paper is a drop in replacement for both CraftBukkit and Spigot, you don't need to make any changes.
Vos plugins Spigot continuent donc de fonctionner, et vous récupérez par-dessus un large jeu de correctifs de performance et une configuration bien plus profonde. Paper publie en plus un vrai téléchargement : vous récupérez un jar, vous le lancez.
Si vous vous posez cette question et que vous voulez des plugins, la réponse est presque certainement Paper. Et ce n'est pas serré.
Purpur
Un fork de Paper. PurpurMC le décrit comme « minecraft server software based on Paper » qui « focuses on providing as much configurability as possible ».
Comprenez : Paper, plus plusieurs centaines de réglages supplémentaires, plus des fonctionnalités de gameplay absentes du jeu de base comme les montures inhabituelles ou les dégâts configurables. Les plugins Paper y tournent sans modification.
Prenez Purpur quand vous avez déjà fait le tour de la config de Paper et que vous savez quel bouton vous cherchez. Le prendre en premier, c'est hériter d'un très gros fichier de réglages auxquels vous n'avez aucune raison de toucher.
Folia
Celui qu'on choisit pour de mauvaises raisons, alors prudence.
Folia est « a fork of Paper which adds regionised multithreading to the dedicated server ». Il découpe le monde en régions qui tournent en parallèle. Ça ressemble à de la performance gratuite, et ça n'en est pas, à cause de ceci, tiré du README de Folia lui-même :
I expect every single plugin that exists to require some level of modification to function in Folia.
Les plugins doivent déclarer explicitement folia-supported: true dans leur plugin.yml, et le déclarer ne suffit pas : le plugin doit réellement avoir été écrit pour ça. La plupart ne le sont pas.
Ce que Folia dit lui-même de qui en profite :
Server types that naturally spread players out, like skyblock or SMP, will benefit the most from Folia. The server should have a sizeable player count, too.
Trente joueurs sur la même place de village, c'est exactement le cas que Folia n'aide pas. Si c'est vous, vous voulez Paper.
La famille des mods
Autre monde. Les joueurs les installent aussi.
Fabric
Léger, rapide, et généralement le premier disponible sur une nouvelle version de Minecraft. Les mods vont dans un dossier mods, et la plupart réclament en plus Fabric API, qui est elle-même un mod à déposer dans le même dossier.
Un serveur Fabric ne lance pas directement le jar vanilla. L'installateur produit un fabric-server-launch.jar, qui attend le server.jar vanilla à côté de lui.
Forge
La vieille garde, et toujours l'endroit où vivent énormément de gros modpacks installés depuis longtemps. Si vous lancez un pack CurseForge avec des machines et des quêtes dedans, il y a de bonnes chances qu'il soit Forge.
NeoForge
Le framework que vise la majorité du développement de mods actuel. Si vous montez un serveur moddé sur une version récente, vérifiez pour lequel des deux, Forge ou NeoForge, votre pack a été construit. Ils ne sont pas interchangeables, et c'est le pack qui décide, pas vous.
Pour un serveur moddé, c'est le modpack qui choisit le loader et la version, pas vous. Choisissez le pack d'abord, puis installez exactement le loader et la version de Minecraft qu'il indique. Mélanger les versions est la première cause de serveur moddé qui refuse de démarrer.
Alors, quoi lancer ?
| Ce que vous voulez | Lancez |
|---|---|
| Quelques amis, une petite machine ou une machine ancienne, les meilleures performances | Paper |
| Des mécaniques garanties identiques au jeu de base, ou le jour même d'une nouvelle version | Vanilla |
| N'importe qui peut rejoindre, vous voulez permissions, claims, économie | Paper |
| Paper, mais vous voulez tout régler | Purpur |
| Beaucoup de joueurs réellement dispersés, et vous vérifierez chaque plugin | Folia |
| De nouveaux blocs, monstres, machines, dimensions | Fabric, Forge ou NeoForge, selon ce que votre pack indique |
Ensuite, la version de Java
Celle-là n'est pas une préférence, c'est une contrainte, et elle change avec la version de Minecraft. Quelques repères :
| Minecraft | Java |
|---|---|
| 1.12 à 1.16.5 | 8 |
| 1.17 | 16 |
| 1.18 à 1.20.4 | 17 |
| 1.20.5 à 1.21.11 | 21 |
| 26.1 et suivantes | 25 |
Plutôt que de faire confiance à un tableau qui vieillit, la page de téléchargement lit la version de Java requise directement dans le manifeste de Mojang pour la version que vous choisissez. Elle est donc juste par construction.
Paper suit la même exigence que la version de Minecraft pour laquelle il est construit.
La suite
- Répondez à la question plugins ou mods. Tout le reste en découle.
- Récupérez le jar. La page de téléchargement couvre Vanilla, Paper, Purpur, Folia, Fabric, Forge et NeoForge, toutes les versions que chacun publie, directement depuis leurs serveurs.
- Générez le script de lancement avec le générateur de script de démarrage, pour Windows, Linux ou systemd, avec la mémoire et les flags déjà en place.
- Lancez-le une fois. Il s'arrêtera en écrivant
eula.txt. Passezeula=falseàeula=trueet relancez.
À propos des flags : la recommandation actuelle de PaperMC est d'essayer d'abord sans aucun flag JVM. Les JVM récentes gèrent très bien cette charge avec leurs réglages d'origine, et les flags d'Aikar sont ce qu'on sort quand le serveur saccade réellement, pas ce par quoi on commence.
Sources : documentation PaperMC, README de Folia, PurpurMC, documentation Fabric, tutoriel serveur du Minecraft Wiki.