Comment Optimiser son Serveur Minecraft (Paper/Purpur) - Guide Complet 2025

Comment Optimiser son Serveur Minecraft (Paper/Purpur) - Guide Complet 2025

Table des matières

Comment Optimiser son Serveur Minecraft (Paper/Purpur) - Guide Complet 2025

Introduction

Vous avez un serveur Minecraft qui lag ? Vos joueurs se plaignent de TPS bas ? Ce guide vous montrera comment optimiser votre serveur pour obtenir des performances maximales, que vous utilisiez Paper, Purpur ou Spigot.

---

1. Choisir le bon JAR serveur

Hiérarchie de performance

| JAR | Performance | Compatibilité Plugins |
|-----|-------------|----------------------|
| Purpur | Excellente | Excellente |
| Paper | Très bonne | Excellente |
| Spigot | Bonne | Excellente |
| Vanilla | Basique | Aucune |

Recommandation : Utilisez Purpur pour les meilleures performances.

# Télécharger Purpur
wget https://api.purpurmc.org/v2/purpur/1.21.4/latest/download -O purpur.jar

---

2. Optimiser les flags de démarrage (Aikar's Flags)

Remplacez votre script de démarrage par celui-ci :

#!/bin/bash
java -Xms6G -Xmx6G \
    -XX:+UseG1GC \
    -XX:+ParallelRefProcEnabled \
    -XX:MaxGCPauseMillis=200 \
    -XX:+UnlockExperimentalVMOptions \
    -XX:+DisableExplicitGC \
    -XX:+AlwaysPreTouch \
    -XX:G1NewSizePercent=30 \
    -XX:G1MaxNewSizePercent=40 \
    -XX:G1HeapRegionSize=8M \
    -XX:G1ReservePercent=20 \
    -XX:G1HeapWastePercent=5 \
    -XX:G1MixedGCCountTarget=4 \
    -XX:InitiatingHeapOccupancyPercent=15 \
    -XX:G1MixedGCLiveThresholdPercent=90 \
    -XX:G1RSetUpdatingPauseTimePercent=5 \
    -XX:SurvivorRatio=32 \
    -XX:+PerfDisableSharedMem \
    -XX:MaxTenuringThreshold=1 \
    -Dusing.aikars.flags=https://mcflags.emc.gs \
    -Daikars.new.flags=true \
    -jar purpur.jar nogui

> Important : Ajustez -Xms et -Xmx selon votre RAM disponible. Règle : laissez 1-2 Go pour le système.

---

3. Configuration server.properties

# Réduire la distance de vue
view-distance=6
simulation-distance=4

# Désactiver le spawn protection inutile
spawn-protection=0

# Optimiser le réseau
network-compression-threshold=256

# Limiter les entités
max-tick-time=60000

---

4. Configuration bukkit.yml

settings:
  allow-end: true
  connection-throttle: 4000

spawn-limits:
  monsters: 50      # Défaut: 70
  animals: 8        # Défaut: 10
  water-animals: 3  # Défaut: 5
  water-ambient: 10 # Défaut: 20
  ambient: 1        # Défaut: 15

chunk-gc:
  period-in-ticks: 400

ticks-per:
  animal-spawns: 400
  monster-spawns: 4
  water-spawns: 400
  ambient-spawns: 400
  autosave: 6000

---

5. Configuration spigot.yml

world-settings:
  default:
    merge-radius:
      item: 4.0
      exp: 6.0

    hopper-transfer: 8
    hopper-check: 1
    hopper-amount: 1

    mob-spawn-range: 4
    entity-activation-range:
      animals: 16
      monsters: 24
      raiders: 48
      misc: 8
      water: 8
      villagers: 16
      flying-monsters: 32

    entity-tracking-range:
      players: 48
      animals: 48
      monsters: 48
      misc: 32
      other: 64

    tick-inactive-villagers: false
    nerf-spawner-mobs: true

---

6. Configuration paper-world-defaults.yml

chunks:
  auto-save-interval: 6000
  delay-chunk-unloads-by: 10s
  max-auto-save-chunks-per-tick: 8
  prevent-moving-into-unloaded-chunks: true

entities:
  armor-stands:
    do-collision-entity-lookups: false
    tick: false

  spawning:
    per-player-mob-spawns: true

environment:
  disable-ice-and-snow: true
  disable-thunder: true
  optimize-explosions: true
  treasure-maps:
    enabled: false

hopper:
  cooldown-when-full: true
  disable-move-event: true
  ignore-occluding-blocks: true

tick-rates:
  behavior:
    villager:
      validatenearbypoi: 60
  container-update: 3
  grass-spread: 4
  mob-spawner: 2

misc:
  redstone-implementation: ALTERNATE_CURRENT
  update-pathfinding-on-block-update: false

---

7. Configuration purpur.yml (Purpur uniquement)

settings:
  lagging-threshold: 19.0

world-settings:
  default:
    mobs:
      villager:
        lobotomize:
          enabled: true
          check-interval: 100
      zombie:
        aggressive-towards-villager-when-lagging: false
    gameplay-mechanics:
      disable-chest-cat-detection: true

---

8. Plugins d'optimisation recommandés

| Plugin | Fonction |
|--------|----------|
| Spark | Profiler de performances |
| ClearLagg | Nettoyage des entités |
| FarmControl | Limite les fermes automatiques |
| ChunkSpawnerLimiter | Limite les spawners par chunk |

Installation de Spark :

cd plugins/
wget https://ci.lucko.me/job/spark/lastSuccessfulBuild/artifact/spark-bukkit/build/libs/spark-bukkit.jar

---

9. Commandes utiles pour monitorer

# Dans le jeu (avec Spark)
/spark tps          # Voir les TPS
/spark profiler     # Profiler le serveur
/spark health       # Santé générale

# Timings Paper
/timings on         # Activer le profiling
/timings paste      # Générer un rapport

---

10. Résultats attendus

| Avant optimisation | Après optimisation |
|--------------------|-------------------|
| 15-18 TPS | 19.8-20 TPS |
| 200ms tick time | 30-50ms tick time |
| Lag avec 20 joueurs | Fluide avec 50+ joueurs |

---

Besoin d'aide ?

Chez OneHeberge, nos VPS sont optimisés pour Minecraft avec processeurs AMD EPYC haute fréquence, SSD NVMe ultra-rapides et protection Anti-DDoS incluse.