Spark montre où le serveur bloque dans un tick. Depuis Paper 1.21, Spark fait partie du serveur. Ne mets pas de jar séparé dans plugins/. Sur Fabric, Forge et NeoForge, télécharge-le, dépose-le dans mods/, clique sur Redémarrer, puis utilise les mêmes commandes console.
Profile seulement quand le serveur a vraiment du lag. Un serveur vide a l’air calme. Tu ne verras pas les causes de blocage depuis ça.
L’interface du viewer Spark reste en anglais. Les libellés ci-dessous correspondent à ce viewer anglais.
Utiliser Spark (aperçu rapide)
- Ouvre l’onglet Console.
- Sur Paper 1.21+, tape
spark. Ne cherche passpark.jardansplugins/. - Quand le lag frappe, lance
spark profiler start --timeout 30. - Ouvre le lien
https://spark.lucko.me/.... - Vérifie d’abord l’onglet World pour les comptes d’entités.
- Puis lis TPS, MSPT, CPU (process) et l’arbre Server thread.
- Sur Fabric, Forge et NeoForge, télécharge le jar depuis le site Spark ou Modrinth, mets-le dans
mods/, puis Redémarrer.
Le chemin officiel Paper est dans la doc Paper.
1. Vérifie Spark dans Console
Le serveur doit tourner. Ouvre Console. Tape les commandes sans slash en tête.
Tape plugins. Server Plugins (0) veut dire qu’il n’y a pas de jar dans plugins/. Spark marche quand même : depuis Paper 1.21 il est intégré. Tu n’as pas besoin d’un spark.jar séparé. Deux Spark se battent pour les commandes.

Tape spark et spark help. Tu verras la version et la liste des commandes. L’aide s’affiche avec un slash (/spark tps). Ne mets pas de slash dans Console.

Statut rapide sans rapport :
spark tps2. Démarre le profiler pendant le lag
La doc Paper montre /spark profiler start --timeout 600. C’est 10 minutes. Pour un premier échantillon, 30-60 secondes suffisent, mais seulement pendant que le lag est là.
spark profiler start --timeout 30Console dit que le profiler tourne en arrière-plan et finira après 30 secondes. Arrête plus tôt avec spark profiler stop.

3. Ouvre le rapport
Quand le temps est écoulé, Console affiche un lien du type https://spark.lucko.me/.... Ouvre-le dans un navigateur. Le rapport expire, donc garde le lien seulement pendant ton analyse.

4. Les comptes d’entités d’abord
Dans le rapport, clique sur l’icône i en haut et ouvre l’onglet World. Tu verras combien d’entités le serveur tient et dans quel monde. C’est le contrôle le plus rapide pour les mobs, les items au sol, ou une ferme surchargée.
Cherche un monde ou un type d’entité où les comptes montent à des centaines ou des milliers. À droite tu vois les régions et chunks avec les comptes les plus hauts. Un chunk fait 16×16 blocs ; la coordonnée est le numéro de chunk × 16.

5. TPS, MSPT, CPU et mémoire
Dans l’en-tête du rapport, lis les chiffres dans cet ordre.
1. TPS. Un serveur sain tient 20. En dessous d’environ 18, les joueurs sentent le lag.
2. MSPT. Un tick fait 50 ms. Le MSPT médian doit rester sous 50 ms. Un médian haut veut dire que le tick est surchargé, même si le TPS moyen tient brièvement 20.
3. CPU (process). Charge du processus Minecraft. CPU (system) est toute la machine. System haut et process bas veut dire que le jeu ne mange pas le tick ; c’est autre chose.
4. Memory (process). Mémoire du processus. Seule, elle ne prouve pas le lag.
5. Server thread. Racine de l’arbre. Ici tu vois ce qui mange le tick : entités, chunks, plugins.

6. Arbre Server thread
Déplie la branche Server thread. Cherche les branches avec un pourcentage élevé : entités, chargement de chunks, un plugin précis.
Sur un serveur vide, presque tout est en attente (recordTaskExecutionTimeWhileWaiting), et processPacketsAndTick est une fraction de pourcent. Le serveur est calme. Sur un serveur qui a du lag, processPacketsAndTick est épais, avec des mangeurs concrets en dessous.

7. Liste des méthodes (Flat)
Passe à la vue Flat. La liste trie les méthodes qui prennent le plus de temps. Si un nom de plugin revient en haut, désactive-le d’abord et profile à nouveau.

8. Que faire du résultat
Les entités dominent l’arbre ou l’onglet World. Coupe les mobs et les items au sol, baisse view-distance, et limite le monde avec une limite du monde. Ne génère pas de nouveaux chunks pendant le jeu. Pré-génère avec Chunky.
Un plugin domine l’arbre. Désactive-le et profile à nouveau. Si le lag disparaît, cherche une version plus récente ou un remplacement. Ne collectionne pas les plugins « au cas où ».
La mémoire monte en flèche et reste pleine. Le serveur n’arrive pas à nettoyer. Monte la RAM du forfait ou réduis monde et plugins. Spark ne donne pas de gigaoctets exacts. Il te dit que le problème est la mémoire.
CPU (system) haut, process bas. Autre chose tourne sur la machine à côté de Minecraft. Un nouveau plugin ne corrigera pas ça.
Après chaque changement, lance un nouveau profil sous une charge similaire. Compare le MSPT médian, pas seulement le TPS.
9. Fabric, Forge et NeoForge
Sur Fabric, Forge et NeoForge, Spark n’est pas intégré. Télécharge le jar Fabric / Forge / NeoForge depuis spark.lucko.me/download ou Modrinth. Le site Spark indique aussi que Paper 1.21+ n’a pas besoin de plugin séparé.

Sur Modrinth, ouvre Versions et filtre par Fabric ou Forge.

Mets le fichier dans mods/. Redémarre le serveur. Les commandes console sont les mêmes : spark, spark tps, spark profiler start --timeout 30. Tu ne crées pas de nouveau serveur via Spark.
Problèmes fréquents
La commande spark n’existe pas
Sur Paper 1.21+, tape spark sans slash et sans spark.jar. Sur Paper plus ancien, Spigot, Fabric ou Forge, le jar manque dans plugins/ ou mods/, ou il n’y a pas eu de redémarrage après l’import.
Deux Spark à la fois
Tu as déposé un jar séparé dans plugins/, et Paper a déjà Spark. Supprime le spark.jar en trop et redémarre. Sinon les commandes se dupliquent et les rapports sont inutiles.
Le rapport a l’air bon, mais les joueurs ont encore du lag
Tu as profilé un serveur vide. Recommence avec le même nombre de joueurs et la même activité que pendant le lag.
Le profiler tourne trop longtemps
--timeout 600 fait 10 minutes. Pour un premier échantillon, utilise 30-60 s, ou spark profiler stop.