Spark pokazuje, gdzie serwer utyka w ticku. Od Paper 1.21 Spark jest częścią serwera. Osobnego jara nie wkładaj do plugins/. Na Fabric, Forge i NeoForge pobierz go, wrzuć do mods/ i po Uruchom ponownie używaj tych samych komend konsoli.
Profiluj tylko wtedy, gdy serwer naprawdę lagi. Pusty serwer pokazuje spokój. Przyczyny zacięć stamtąd nie zobaczysz.
Użycie Spark (szybki przegląd)
- Otwórz kartę Konsola.
- Na Paper 1.21+ wpisz:
spark. Plikuspark.jarwplugins/nie szukaj. - Gdy lagi, uruchom:
spark profiler start --timeout 30. - Otwórz link
https://spark.lucko.me/.... - Najpierw zajrzyj na kartę World z liczbami entity.
- Potem czytaj TPS, MSPT, CPU (process) i drzewo Server thread.
- Na Fabric, Forge i NeoForge pobierz jar ze strony Spark albo z Modrinth, wrzuć do
mods/, potem Uruchom ponownie.
Oficjalna ścieżka Paper jest w dokumentacji Paper.
1. Sprawdzenie Spark w konsoli
Serwer musi działać. Otwórz kartę Konsola. Komendy wpisuj w pole Wpisz komendę i naciśnij Enter…, bez ukośnika na początku.
Wpisz: plugins. Server Plugins (0) oznacza, że w plugins/ nie ma jara. Spark i tak działa: od Paper 1.21 jest wbudowany. Osobnego spark.jar tu nie trzeba. Dwa Sparki kłócą się o komendy.

Wpisz: spark i spark help. Zobaczysz wersję i listę komend. Pomoc pisze z ukośnikiem (/spark tps). Do konsoli ukośnika nie wstawiaj.

Szybki stan bez raportu:
spark tps2. Start profilera przy lagu
Dokumentacja Paper pokazuje przykład /spark profiler start --timeout 600. To 10 minut. Do pierwszego pomiaru wystarczy 30-60 sekund, ale tylko gdy lag trwa.
spark profiler start --timeout 30Konsola napisze, że profiler działa w tle i po 30 sekundach będzie wynik. Wcześniejsze zatrzymanie: spark profiler stop.

3. Otwarcie raportu
Gdy czas minie, konsola wypisze link w formie https://spark.lucko.me/.... Otwórz go w przeglądarce. Raport po czasie wygasa, więc zapisuj link tylko na czas analizy.

4. Najpierw liczby entity
W raporcie kliknij u góry ikonę i i otwórz kartę World. Zobaczysz, ile entity trzyma serwer i w którym świecie. To najszybsze sprawdzenie, czy lagu robią moby, przedmioty na ziemi albo przepełniona farma.
Szukaj świata albo typu entity, gdzie liczba skacze w setki i tysiące. Po prawej widać regiony i chunki z najwyższymi liczbami. Chunk to 16×16 bloków, współrzędna to numer chunka × 16.

5. TPS, MSPT, CPU i pamięć
W nagłówku raportu czytaj liczby w tej kolejności.
1. TPS. Zdrowy serwer trzyma 20. Poniżej około 18 gracze czują lag.
2. MSPT. Jeden tick to 50 ms. Mediana MSPT ma zostać poniżej 50 ms. Wysoka mediana znaczy, że tick jest przeciążony, nawet jeśli średnie TPS przez chwilę trzyma 20.
3. CPU (process). Obciążenie procesu Minecraft. CPU (system) to cała maszyna. Wysoki system i niski process znaczą, że ticka nie zjada gra, tylko coś obok.
4. Memory (process). Pamięć procesu. Sama z siebie nie dowodzi lagu.
5. Server thread. Korzeń drzewa. Tu widać, co zjada tick: entity, chunki, pluginy.

6. Drzewo Server thread
Rozwiń gałąź Server thread. Szukaj gałęzi z wysokim procentem: entity, ładowanie chunków, konkretny plugin.
Na pustym serwerze niemal wszystko jest w oczekiwaniu (recordTaskExecutionTimeWhileWaiting), a processPacketsAndTick to ułamek procenta. Serwer jest spokojny. Na lagiującym serwerze processPacketsAndTick jest gruby, a pod spodem konkretni pożeracze.

7. Lista metod (Flat)
Przełącz widok Flat. Lista sortuje metody zabierające najwięcej czasu. Jeśli u góry powtarza się nazwa pluginu, wyłącz go najpierw i powtórz profil.

8. Co zrobić z wynikiem
Entity trzymają drzewo albo kartę World. Zmniejsz liczbę mobów i przedmiotów na ziemi, obniż view-distance i ogranicz świat worldborderem. W trakcie gry nie generuj nowych chunków. Pregeneruj Chunky.
Jeden plugin trzyma drzewo. Wyłącz go i powtórz profil. Jeśli lag znika, szukaj nowszej wersji albo zamiennika. Nie zbieraj pluginów „na wszelki wypadek”.
Pamięć skacze i jest pełna. Serwer nie wyrabia z czyszczeniem. Zwiększ RAM w pakiecie albo ogranicz świat i pluginy. Spark nie poda dokładnych gigabajtów. Powie, że problem jest w pamięci.
Wysoki CPU (system), niski process. Na maszynie obok Minecrafta coś działa. Nowym pluginem tego nie naprawisz.
Po każdej zmianie odpal nowy profil przy podobnym obciążeniu. Porównuj medianę MSPT, nie tylko TPS.
9. Fabric, Forge i NeoForge
Na tych softach Spark nie jest w serwerze. Pobierz jar Fabric / Forge / NeoForge ze spark.lucko.me/download albo z Modrinth. Na stronie Spark też jest napisane, że Paper 1.21+ nie potrzebuje osobnego pluginu.

Na Modrinth otwórz kartę Versions i filtruj po Fabric albo Forge.

Plik wrzuć do mods/. Zrestartuj serwer. Komendy konsoli są te same: spark, spark tps, spark profiler start --timeout 30. Nowego serwera przez Spark nie zakładasz.
Częste problemy
Komenda spark nie istnieje
Na Paper 1.21+ wpisz spark bez ukośnika i bez spark.jar. Na starszym Paper, Spigot, Fabric albo Forge brakuje jara w plugins/ lub mods/, albo po wgraniu nie było restartu.
Dwa Sparki naraz
Do plugins/ wrzuciłeś osobny jar, a Paper już go ma. Usuń zbędny spark.jar i zrestartuj. Inaczej komendy się dublują, raporty są bezużyteczne.
Raport wygląda dobrze, a gracze i tak lagiują
Profilowałeś pusty serwer. Powtórz, gdy jest tyle samo graczy i ta sama aktywność co przy lagu.
Profiler działa za długo
--timeout 600 to 10 minut. Do pierwszego pomiaru 30-60 s albo spark profiler stop.