Konfiguracja Paper i Spigot dla maksymalnej wydajności serwera
Konkretne wartości w paper.yml, spigot.yml i bukkit.yml potrafią zmniejszyć obciążenie procesora kilkukrotnie. Pokazujemy gotową konfigurację z komentarzami, którą możesz wkleić u siebie.
Większość problemów z wydajnością serwera Minecraft nie wymaga lepszego sprzętu — wymaga przemyślanej konfiguracji. paper.yml, spigot.yml, bukkit.yml i server.properties mają dziesiątki opcji, których domyślne wartości pochodzą z czasów, gdy serwery działały na komputerach z 2 GB RAM.
W tym wpisie zbieramy konkretną, gotową do wklejenia konfigurację, która zadziała na większości serwerów survival do 50 graczy. Wszystkie zmiany są bezpieczne dla gameplayu — nie psują farm i nie ograniczają mechanik.
Zasada nr 1: zmieniaj po jednym
Konfiguracja Papera ma efekt kumulatywny. Każda zmiana wpływa na inne. Najlepiej trzymać się reguły:
- Zrób backup pliku konfiguracyjnego.
- Zmień pojedynczą sekcję.
- Zrestartuj serwer.
- Sprawdź
/tpsprzez 10–15 minut. - Jeśli TPS wzrósł i nikt nie narzeka — zostawiasz, wracasz do punktu 1.
server.properties
view-distance=8
simulation-distance=4
network-compression-threshold=256
sync-chunk-writes=false
max-tick-time=60000
entity-broadcast-range-percentage=80
Najważniejsza para to view-distance i simulation-distance. Pierwsza kontroluje to, co widzą gracze, druga — to, co serwer aktywnie symuluje. Najczęstszy błąd to ustawianie obu na 10+, co zarzyna procesor.
Dobre punkty wyjścia: view-distance=8, simulation-distance=4. Dla większych serwerów (50+ graczy) zejdź do 6/3.
paper-world-defaults.yml
chunks:
delay-chunk-unloads-by: 10s
prevent-moving-into-unloaded-chunks: true
entities:
spawning:
per-player-mob-spawns: true
despawn-ranges:
monster:
soft: 28
hard: 96
duplicate-uuid:
mode: SAFE_REGEN
ticks-per:
hopper-transfer: 8
hopper-check: 8
mob-spawner: 2
squid-spawn-height:
maximum: 0.0
fix-items-merging-through-walls: true
per-player-mob-spawns: true daje sprawiedliwy rozkład mobów (każdy gracz ma własny limit) i ogranicza farmy XP-grindingowe pochłaniające cały budżet spawnów.
delay-chunk-unloads-by: 10s powstrzymuje serwer przed ciągłym wczytywaniem i wyładowywaniem tych samych chunków, gdy gracze pływają po krawędzi.
spigot.yml
world-settings:
default:
entity-activation-range:
animals: 16
monsters: 24
raiders: 48
misc: 8
water: 12
villagers: 16
mob-spawn-range: 6
nerf-spawner-mobs: true
item-merge-radius: 4.0
exp-merge-radius: 4.0
arrow-despawn-rate: 600
trident-despawn-rate: 1200
ticks-per:
hopper-transfer: 8
hopper-check: 8
entity-activation-range to lokalny zasięg, w którym mob jest aktywny (atakuje, porusza się, AI). Poza tym zasięgiem mob „zamraża się". Domyślne wartości są przesadzone — propozycja powyżej obniża obciążenie 20–30%.
nerf-spawner-mobs: true wyłącza AI mobów ze spawnerów (nadal można je zabić — ale nie atakują, nie chodzą). Ogromna oszczędność na farmach mobów.
bukkit.yml
spawn-limits:
monsters: 50
animals: 8
water-animals: 3
ambient: 1
axolotls: 3
water-ambient: 5
water-underground-creature: 3
ticks-per:
animal-spawns: 400
monster-spawns: 1
water-spawns: 1
water-ambient-spawns: 1
axolotl-spawns: 1
ambient-spawns: 1
Niższy spawn-limits oznacza mniej mobów do symulowania. monsters: 50 jest wystarczające — przy per-player-mob-spawns każdy gracz dostaje własną pulę.
Hoppery i redstone
Hoppery są największymi pożeraczami CPU w wielu serwerach. Skuteczne metody:
ticks-per.hopper-transfer: 8ihopper-check: 8— zmniejsza częstotliwość sprawdzania o połowę.- Plugin HopperLagFix lub LimitedLife — automatycznie wyłącza nieużywane hoppery.
- Edukacja graczy: zachęcaj do używania storage drawerów i mniejszej liczby hopperów.
Pre-generacja świata
Generowanie nowych chunków jest jednym z najdroższych operacji w Minecrafcie. Plugin Chunky pozwala wygenerować mapę z wyprzedzeniem:
/chunky world world
/chunky radius 5000
/chunky start
Po zakończeniu (czasem kilka godzin) gracze mogą się poruszać po mapie bez generowania nowych chunków. Efekt: znaczny wzrost TPS i mniejsze MSPT.
Profilowanie sparkiem
spark to dziś standard. Polecane komendy:
/spark profiler --timeout 60
/spark tps
/spark health
Po 60 sekundach /spark profiler wygeneruje link do raportu pokazującego, które pluginy i metody zżerają najwięcej CPU. To jedyny sposób, by trafnie zoptymalizować serwer.
Czego NIE robić
- Nie ustawiaj
view-distancewyżej niż 10 bez bardzo mocnego CPU. - Nie wyłączaj
save-all— backupy są ważniejsze niż mikrooptymalizacja. - Nie kombinuj z
max-tick-time=-1, jeśli nie wiesz, co robisz. - Nie instaluj 5 antycheatów naraz — każdy zżera CPU.
- Nie używaj ClearLag co minutę — zniszczysz UX gry.
Podsumowanie
Dobra konfiguracja Papera i Spigota potrafi obsłużyć dwa razy więcej graczy przy tym samym sprzęcie. Najwięcej dają cztery zmiany: per-player-mob-spawns, niższy simulation-distance, niższe entity-activation-range i ticks-per.hopper-transfer: 8.
Reszta to drobne zyski. Pamiętaj — bez sparka i mierzenia /tps łatwo wyciąć ważną mechanikę gameplayu w pogoni za milisekundami.