# Optymalizacja serwera

In 

Ten poradnik opisuje bezpieczną optymalizację, która znacząco zmniejsza zużycie CPU bez wpływu na mechaniki gry:

  • farmy działają
  • redstone działa
  • villagerzy działają
  • hoppery i sortownie działają
  • spawner farmy działają
  • gracze nie odczują żadnych zmian w gameplayu

Testowane na Paper / Purpur 1.21.5 + Java 21


# Źródło poradnika

Ten poradnik jest uproszczoną i „bezpieczną” wersją bardzo rozbudowanego opracowania:

https://github.com/YouHaveTrouble/minecraft-optimization/

Jeśli potrzebujesz bardziej zaawansowanego tuningu lub korzystasz z innej wersji Minecrafta, możesz sprawdzić dedykowane wersje oryginalnego poradnika:


# Wymagania

  • Paper, Purpur lub dowolny fork oparty na Paper
  • Java 21
  • Nie używaj Spigot/CraftBukkit

# 1. server.properties - absolutna podstawa

Edytuj plik server.properties:

sync-chunk-writes=false
simulation-distance=4
view-distance=7
network-compression-threshold=256

Dlaczego:

Opcja Efekt
sync-chunk-writes zapis chunków poza głównym wątkiem
simulation-distance serwer symuluje mały obszar
view-distance gracz widzi daleko bez obciążania ticków
network-compression-threshold mniejsze użycie CPU przy pakietach

# 2. paper-world - największy zysk wydajności

Plik: config/paper-world-defaults.yml (lub per świat)

# Opóźnienie wyładowywania chunków

delay-chunk-unloads-by: 10s

# Blokada wchodzenia w niezaładowane chunki

prevent-moving-into-unloaded-chunks: true

# Szybszy redstone (bez zmiany mechaniki)

redstone-implementation: ALTERNATE_CURRENT

# Szybsze eksplozje

optimize-explosions: true

# Mapy skarbów (częsta przyczyna freezów)

treasure-maps:
  enabled: false
  find-already-discovered:
    loot-tables: true
    villager-trade: true

# Anti-Xray

anti-xray:
  enabled: true

# Rzadsze ticki trawy

tick-rates:
  grass-spread: 4

# Strzały szybciej znikają

non-player-arrow-despawn-rate: 20
creative-arrow-despawn-rate: 20

# 3. spigot.yml - redukcja ilości encji

# Łączenie itemów i expa

merge-radius:
  item: 3.5
  exp: 4.0

# Zasięg śledzenia encji

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

# Aktywacja encji tylko blisko gracza

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

# 4. bukkit.yml + Paper - limity mobów

# bukkit.yml

spawn-limits:
  monsters: 20
  animals: 5
  water-animals: 2
  ambient: 1

# paper-world

per-player-mob-spawns: true

# 5. Map pregeneration (pregen)

Obecnie, dzięki optymalizacjom generowania chunków w Paper, pregen nie jest wymagany na nowoczesnych CPU.

Główne zastosowanie pregenu:

  • mapy Dynmap / Pl3xMap
  • bardzo słabe, jednowątkowe CPU

Jeśli chcesz wykonać pregen:

  • użyj pluginu Chunky
  • ustaw wcześniej world border
  • pamiętaj, że overworld, nether i end mają osobne bordery
  • nether jest 8× mniejszy od overworlda

Ustaw także vanilla world border:

/worldborder set [średnica]

Ogranicza to m.in. zakres wyszukiwania map skarbów, które potrafią powodować lagi.


# 6. „Too good to be true” pluginy (unikać)

# Pluginy usuwające itemy z ziemi

Niepotrzebne. merge-radius i alt-item-despawn-rate robią to lepiej i taniej wydajnościowo.


# Mob stacker pluginy

Stackowanie naturalnych mobów powoduje WIĘKSZY lag niż ich brak. Jedyny sensowny przypadek to farmy spawnerów na serwerach z ogromną ilością spawnerów.


# Pluginy włączające/wyłączające inne pluginy

Ekstremalnie niebezpieczne. Powodują błędy w śledzeniu danych i dependency.
Komenda /reload ma dokładnie te same problemy.


# 7. Co laguje? - mierzenie wydajności

# /mspt (Paper)

Jeśli pierwsze dwie wartości są poniżej 50 - serwer nie laguje.
Trzecia wartość powyżej 50 oznacza pojedynczy wolniejszy tick - to normalne.


# Spark

Plugin do profilowania CPU i pamięci. Pozwala dokładnie znaleźć przyczynę lagów i spike’ów.

https://spark.lucko.me/

https://spark.lucko.me/docs

https://spark.lucko.me/docs/guides/Finding-lag-spikes


# 8. Flagi Java

Użytkownik nie ma możliwości samodzielnej zmiany flag startowych.

Jeśli potrzebujesz optymalizacyjnych flag JVM, administrator może je dodać na życzenie.

W tym celu otwórz ticket na naszym serwerze Discord z prośbą o dodanie flag optymalizacyjnych.

Link do Discorda: https://discord.com/invite/S6Cb3FuUZJ