Jak postawić serwer Minecraft na VPS z Ubuntu 24.04
Instrukcja konfiguracji serwera Paper na Ubuntu 24.04. Poradnik obejmuje instalację Java 25, optymalizację pamięci RAM, tworzenie usługi systemd oraz zabezpieczenie portu 25565.
Co budujesz
Serwer Minecraft Java Edition o wysokiej dostępności: Paper na systemie Ubuntu 24.04, działający jako dedykowany użytkownik minecraft pod kontrolą systemd z Restart=on-failure, z włączoną białą listą, portem 25565 otwartym w ufw oraz w sieciowym firewallu dostawcy, jeśli jest aktywny, oraz kopiami zapasowymi wykonywanymi w sposób, który nie uszkadza zabezpieczanego świata. Sam serwer to jeden plik jar i jedno polecenie java; wszystko, co odróżnia serwer, na którym znajomi grają przez rok, od takiego, który przestaje działać w pierwszy weekend, skupia się wokół tego polecenia i to właśnie obejmuje ten poradnik.
Dwa szczere ostrzeżenia przed wydaniem pieniędzy. Po pierwsze, Minecraft jest zasobożerny pod względem pamięci RAM i w większości jednowątkowy: VPS z 1 GB pamięci nie zapewni płynnej rozgrywki, a jeden szybki rdzeń jest lepszy niż cztery wolne. Po drugie, jest to wersja Java Edition. Gracze korzystający z Bedrock, konsol, telefonów oraz aplikacji Windows Bedrock nie mogą dołączyć do serwera Java; Bedrock wymaga innego oprogramowania serwerowego na porcie UDP 19132 lub wtyczki Geyser, co wykracza poza zakres tego poradnika.
Wymagany jest świeży VPS z Ubuntu 24.04 oparty na KVM z dostępem root lub sudo oraz około trzydzieści minut czasu.
Dobór zasobów: czego faktycznie potrzebuje serwer dla znajomych
Pamięć RAM jest kluczowym parametrem, a rzeczywiste zapotrzebowanie jest niższe, niż sugerują fora poświęcone modpackom:
- 2 GB wystarcza do uruchomienia wersji vanilla dla 2–5 graczy przy umiarkowanym zasięgu widzenia. Jest to wartość graniczna, bez zapasu wydajności.
- 4 GB to optymalny rozmiar dla serwera dla znajomych: pozwala na grę około dziesięciu osób jednocześnie na silniku Paper z kilkoma wtyczkami, pozostawiając wystarczającą ilość pamięci dla systemu operacyjnego.
- 8 GB i więcej to obszar dla modpacków i serwerów obsługujących powyżej 20 graczy. W tym przypadku należy również zwrócić uwagę na wydajność pojedynczego rdzenia procesora, ponieważ główna pętla gry działa na jednym wątku.
Wraz z eksploracją świata przez graczy rośnie również zajętość miejsca na dysku. Często odwiedzany świat w trybie survival może osiągnąć rozmiar kilku gigabajtów, dlatego należy zapewnić odpowiedni zapas miejsca na świat oraz jego kopie zapasowe.
Vanilla czy Paper? Paper jest bezpośrednim zamiennikiem oficjalnego pliku jar: obsługuje te same światy, tych samych klientów i nie wymaga modyfikacji po stronie klienta. Optymalizuje on najbardziej obciążające procesy serwerowe, takie jak ładowanie chunków, przetwarzanie jednostek (entity ticking), działanie lejków (hoppers) oraz dodaje API dla wtyczek. Jedynym powodem, dla którego warto pozostać przy wersji vanilla, jest potrzeba zachowania identycznej z oryginałem mechaniki gry, co jest istotne w przypadku zaawansowanych farm redstone, na które optymalizacje Paper mogą wpływać. Dla większości użytkowników Paper oznacza więcej graczy na każdy gigabajt pamięci RAM. Wszystkie poniższe instrukcje działają dla obu rozwiązań.
Krok 1: instalacja Java 25
Minecraft 26.1 oraz każde wydanie od tego momentu wymaga Java 25; Java 21 obsługuje jedynie starszą linię od 1.20 do 1.21.11. Ubuntu 24.04 dostarcza Java 25 poprzez swoje repozytoria aktualizacji i zabezpieczeń. Należy zainstalować pełne JRE, a nie wersję -headless: przewodnik instalacji Java dla Paper ostrzega przed wariantami headless, ponieważ brakuje w nich zależności wymaganych przez Paper.
sudo apt update && sudo apt install -y openjdk-25-jre
java -versionPoprawny wynik: pierwsza linia zawiera openjdk version "25.0.x". Jeśli widnieje tam 21, 17 lub 11, oznacza to, że zainstalowane jest inne JRE, które ma wyższy priorytet; należy to naprawić za pomocą sudo update-alternatives --config java i wybrać wpis zawierający java-25.
Pominięcie tej weryfikacji prowadzi do najczęściej wyszukiwanego błędu serwera Minecraft w późniejszym czasie. W przypadku Java 21 plik jar serwera kończy działanie natychmiast z komunikatem:
Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been
compiled by a more recent version of the Java Runtime (class file version 69.0),
this version of the Java Runtime only recognizes class file versions up to 65.0Liczby te wskazują na niezgodność: wersja pliku klasy 69.0 to Java 25, 65.0 to Java 21, a 61.0 to Java 17. Niezależnie od wyświetlonej pary, rozwiązanie jest identyczne: należy zainstalować nowsze JRE i ponownie uruchomić update-alternatives.
Krok 2: dedykowany użytkownik, nigdy root
Serwer wykonuje kod wtyczek i przetwarza dane wejściowe z sieci od każdego, kto ma dostęp do portu. W przypadku wystąpienia błędu, przejęcie serwera działającego jako root oznacza utratę kontroli nad całym VPS; przejęcie serwera działającego jako minecraft ogranicza skutki do świata gry.
sudo adduser --system --group --home /opt/minecraft minecraft--system tworzy konto bez hasła, które nie może logować się przez SSH, z /opt/minecraft jako katalogiem domowym i roboczym. Każde polecenie dotyczące serwera od tego momentu jest wykonywane jako ten użytkownik.
Krok 3: pobranie pliku jar serwera z oficjalnego źródła
Plik jar serwera należy pobierać wyłącznie z dwóch miejsc: oficjalnej strony pobierania minecraft.net dla wersji vanilla oraz strony papermc.io dla wersji Paper. Zewnętrzne serwisy oferujące pliki jar są częstym źródłem złośliwego oprogramowania. Plik jar serwera to dowolny kod, który będzie uruchamiany w trybie ciągłym na serwerze wystawionym na działanie Internetu.
Skopiuj link do pobrania aktualnej kompilacji z oficjalnej strony (adres URL zmienia się wraz z każdą wersją i kompilacją, dlatego umieszczenie go tutaj na stałe byłoby nieaktualne), a następnie:
cd /opt/minecraft
sudo -u minecraft wget -O server.jar 'PASTE-THE-COPIED-URL-HERE'Poprawny wynik: plik server.jar o rozmiarze około 60 MB, którego właścicielem jest minecraft, zweryfikowany za pomocą ls -lh /opt/minecraft/server.jar.
Krok 4: pierwsze uruchomienie, EULA i nadanie uprawnień operatora
Uruchom serwer interaktywnie przed skonfigurowaniem systemd. Pierwsze uruchomienie ma dwa zadania, które wymagają aktywnej konsoli.
cd /opt/minecraft
sudo -u minecraft java -Xms1G -Xmx1G -jar server.jar noguiProces zakończy się w ciągu kilku sekund. Paper poświęca chwilę na nałożenie poprawek, a dziennik kończy się komunikatem, który pojawia się u każdego:
[ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.To nie jest błąd, lecz wymóg licencyjny. Uruchomienie utworzyło plik eula.txt obok pliku jar. Przeczytaj zalinkowaną treść EULA, jeśli jeszcze tego nie zrobiono, a następnie zmień flagę:
sudo -u minecraft sed -i 's/eula=false/eula=true/' /opt/minecraft/eula.txtUruchom ponownie to samo polecenie java. Tym razem serwer wygeneruje świat, co przy pierwszym uruchomieniu zajmie minutę lub dwie, a następnie zatrzyma się na komunikacie:
[Server thread/INFO]: Done (9.204s)! For help, type "help"Masz teraz dostęp do aktywnej konsoli. Wykorzystaj ją do drugiego zadania: wpisz op YourMinecraftName (podając dokładną nazwę użytkownika z gry), a serwer zapisze Cię w pliku ops.json. Dzięki temu, gdy konsola nie będzie dostępna, będziesz mógł wykonywać wszystkie polecenia administracyjne bezpośrednio z poziomu gry. Następnie wpisz stop, aby zapisać stan i poprawnie zamknąć serwer.
Krok 5: server.properties i dlaczego online-mode pozostaje true
Pierwsze uruchomienie utworzyło również server.properties. Większość ustawień domyślnych jest poprawna; poniższe linie wymagają świadomej decyzji:
online-mode=true
white-list=true
enforce-whitelist=true
view-distance=8
max-players=10
motd=A private server for people I actually knowonline-mode=true sprawia, że serwer weryfikuje każdą nazwę użytkownika dołączającego do gry z serwerami sesji Mojang, co potwierdza, że gracz posiada konto. Ustawienie wartości false, czyli przełączenie w tryb "cracked server", oznacza, że serwer ufa deklaracji klienta co do jego tożsamości: każdy może dołączyć pod dowolną nazwą, w tym Twoją. Ponieważ uprawnienia operatora i listy dozwolonych (whitelist) są powiązane z nazwą, osoba podszywająca się pod Ciebie przejmie Twoje uprawnienia administratora. Jedynym uzasadnionym powodem wyłączenia tej opcji jest praca za proxy uwierzytelniającym, takim jak Velocity, które samo weryfikuje graczy. Na standardowym serwerze opcja ta musi pozostać włączona.
view-distance to najważniejszy parametr wpływający na wydajność w tym pliku; zapotrzebowanie na CPU i RAM rośnie w przybliżeniu do kwadratu tej wartości. 8 to rozsądne ustawienie domyślne dla VPS; 10 to wartość domyślna dla vanilla, która jest zauważalnie bardziej obciążająca.
white-list=true oraz enforce-whitelist=true zamykają serwer przed nieznajomymi, co w sekcji dotyczącej bezpieczeństwa poniżej uznano za wymóg konieczny. Graczy należy dodawać za pomocą /whitelist add TheirName z poziomu gry jako operatora.
Krok 6: flagi pamięci, dlaczego -Xms i -Xmx powinny być równe
JVM przydziela stertę w zakresie między -Xms (rozmiar początkowy) a -Xmx (limit). Na dedykowanym serwerze gier ustaw obie wartości na ten sam poziom: sterta i tak osiągnie limit, a jej stopniowe powiększanie jedynie zwiększa obciążenie mechanizmu garbage collector podczas gry. Na VPS z 4 GB RAM właściwa para to:
/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui-Xmx to nie jest całkowita pamięć używana przez proces. JVM dodaje narzut spoza sterty (off-heap), stosy wątków, pamięci podręczne JIT, bufory bezpośrednie, co daje około pół gigabajta lub więcej, a sam system Ubuntu również wymaga zasobów. Zasada praktyczna: -Xmx to maksymalnie RAM serwera VPS minus 1 GB. Przekroczenie tej wartości skutkuje jedną z dwóch awarii. Jeśli przydział pamięci nie powiedzie się na starcie, serwer odmówi uruchomienia z komunikatem:
Error: Could not reserve enough space for object heapTen błąd jest czytelny i występuje natychmiast. Gorsza wersja uruchamia się poprawnie, ale po kilku godzinach serwer zostaje zabity, gdy sterta zapełnia się pod obciążeniem, a mechanizm OOM killer jądra systemu musi poświęcić jakiś proces. Wybiera on ofiarę na podstawie wyniku "badness score", zależnego głównie od użycia pamięci i swapu przez proces, więc na maszynie dedykowanej do serwera gier to JVM jest najbardziej prawdopodobną ofiarą. W logach serwera nie pojawia się żaden wpis; dowody znajdują się w sudo dmesg | grep -i oom, w linii takiej jak Out of memory: Killed process 1234 (java). Jeśli usługa restartuje się "losowo", sprawdź to miejsce w pierwszej kolejności i zmniejsz -Xmx.
Dla projektu Paper udokumentowano również Aikar's flags, zestaw dostrojonych parametrów G1GC (-XX:+UseG1GC -XX:MaxGCPauseMillis=200 oraz kilkanaście innych), stworzony w celu wygładzenia przerw powodowanych przez garbage collector. Nie są one już domyślną rekomendacją: generator skryptów startowych Paper wskazuje, że na nowoczesnym JVM (17, 21 lub nowszym) należy najpierw spróbować uruchomienia bez dodatkowych flag, a flagi Aikara stosować tylko w przypadku problemów z GC lub przy korzystaniu ze starszej wersji Minecrafta lub Javy. Na Java 25 ze stertą 2–4 GB zacznij od zwykłego polecenia powyżej i dodaj flagi tylko wtedy, gdy faktycznie zauważysz zacięcia wywołane przez GC.
Krok 7: jednostka systemd z parametrem Restart=on-failure
Serwer uruchomiony ręcznie wyłącza się wraz z sesją SSH i nie wstaje po restarcie systemu. Utwórz plik /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft server (Paper)
After=network-online.target
Wants=network-online.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now minecraft
systemctl status minecraft
journalctl -u minecraft -fPoprawny wynik: status pokazuje active (running), a dziennik, który teraz zawiera wyjście konsoli serwera, kończy się ponownie linią Done.
W tej jednostce dokonano dwóch celowych wyborów. Restart=on-failure przywraca serwer po awarii, ale nie po czystym stop, dzięki czemu prace konserwacyjne pozostają możliwe. Z kolei TimeoutStopSec=120 jest ważniejsze, niż się wydaje: systemctl stop wysyła sygnał SIGTERM, serwer Minecraft przechwytuje go i zapisuje każdy świat przed wyjściem, a w przypadku dużego świata zapis ten zajmuje czas. Domyślny limit czasu systemd może wysłać sygnał SIGKILL do JVM w trakcie zapisu, co prowadzi do uszkodzenia plików regionów. Należy przydzielić dwie minuty.
Jeśli usługa ulega ciągłym restartom, a dziennik pokazuje:
[Server thread/WARN]: **** FAILED TO BIND TO PORT!
[Server thread/WARN]: The exception was: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address already in use
[Server thread/WARN]: Perhaps a server is already running on that port?oznacza to, że port 25565 jest już zajęty, najprawdopodobniej przez wcześniejszy proces uruchomiony w innym oknie SSH. Znajdź go za pomocą sudo ss -tlnp | grep 25565 i zatrzymaj tę kopię; nigdy nie uruchamiaj dwóch serwerów na tym samym porcie.
Krok 8: otwarcie portu 25565 na obu zaporach sieciowych
Minecraft Java używa wyłącznie TCP 25565 (UDP to tylko opcjonalny protokół zapytań, domyślnie wyłączony). Na serwerze VPS:
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enableTo pierwsza zapora sieciowa. Wielu dostawców VPS oferuje również drugą zaporę na poziomie sieci w panelu sterowania i gdy jest ona aktywna, to właśnie o niej użytkownicy zapominają. W przypadku SSD Nodes jest to dodatek Advanced Firewall Groups, płatna opcja wybierana przy zakupie lub w panelu (plany Business VPS wymieniają grupy firewalli jako funkcję wliczoną w cenę); jeśli serwer ją posiada, otwórz port TCP 25565 również tam. Objaw braku reguły w którejkolwiek z nich jest irytująco niejasny: klient zawiesza się na komunikacie "Connecting to the server..." i kończy błędem Connection timed out: no further information, bez odmowy połączenia, bez błędu serwera, bez wpisów w dzienniku, ponieważ pakiety nigdy nie dotarły do celu. Zweryfikuj to z maszyny poza VPS za pomocą nc -vz your.server.ip 25565; succeeded oznacza, że każda zapora na ścieżce jest otwarta, a zawieszenie zazwyczaj oznacza, że któraś z nich nadal odrzuca pakiety, choć host zbyt zajęty, by przyjmować połączenia, również może przekroczyć limit czasu, więc potwierdź, że serwer nasłuchuje za pomocą ss na samej maszynie.
Podczas pracy z ufw pamiętaj, że ta sama maszyna uruchamia SSH na publicznym adresie IP, a szum w logach związany z atakami brute-force zacznie się w ciągu kilku godzin, skonfiguruj Fail2ban dla SSH na Ubuntu 24.04 zanim o tym zapomnisz.
Teraz połącz się: Multiplayer, Direct Connection, adres IP serwera. Ponieważ przyznano sobie uprawnienia operatora w kroku 4, polecenia w grze działają natychmiast, /whitelist add FriendName dla każdego gracza, /gamemode creative jeśli taki jest plan.
Krok 9: lista dozwolonych (whitelist), ponieważ Internet skanuje port 25565
Pozostawienie serwera Minecraft otwartego na świat nie jest zagrożeniem teoretycznym: masowe skanery nieustannie przeszukują całą przestrzeń adresową IPv4 w poszukiwaniu portu 25565, hobbystyczne projekty typu griefing zmapowały w ten sposób setki tysięcy otwartych serwerów, a serwer bez listy dozwolonych w ciągu dni, a czasem godzin, zyskuje nieproszonych gości. Rozwiązaniem jest lista dozwolonych z kroku 5: online-mode=true potwierdza tożsamość, a lista dozwolonych ogranicza dostęp wyłącznie do wybranych tożsamości. To połączenie stanowi kompletny model bezpieczeństwa i jest wystarczające dla serwera przeznaczonego dla znajomych.
Aby uzyskać dostęp do konsoli bez uruchamiania gry, wykonywać skryptowane kopie zapasowe lub zadania cron, należy włączyć RCON w pliku server.properties (ustawić enable-rcon=true oraz silne rcon.password, port 25575) i zbudować niewielkiego klienta mcrcon z kodu źródłowego pobranego z GitHub bezpośrednio na VPS; narzędzie to nie znajduje się w repozytoriach Ubuntu. Nie należy otwierać portu 25575 w żadnej zaporze sieciowej: RCON przesyła hasło otwartym tekstem, dlatego dostęp musi być ograniczony wyłącznie do interfejsu loopback.
Krok 10: kopie zapasowe, które nie uszkadzają świata
Obowiązuje jedna zasada: nigdy nie kopiuj katalogu świata, gdy serwer zapisuje dane. Pliki regionów są nadpisywane w sposób ciągły podczas gry; tar, który wyprzedzi operację zapisu, utworzy archiwum z częściowo zapisanymi fragmentami (chunks). W momencie przywracania kopii, czyli wtedy, gdy musi ona zadziałać, dziennik zapełni się błędami ładowania fragmentów, a w terenie pojawią się dziury. Dwie metody pozwalają tego uniknąć.
Stop-copy-start to proste rozwiązanie, wymagające minuty przestoju:
sudo systemctl stop minecraft
sudo mkdir -p /opt/backups
sudo tar czf /opt/backups/world-$(date +%F-%H%M).tgz \
-C /opt/minecraft world
sudo systemctl start minecraft(Od wersji 26.1 Paper przechowuje wszystkie trzy wymiary wewnątrz world/dimensions/, podobnie jak w wersji vanilla, więc world stanowi cały świat. Serwer Paper w wersji 1.21.11 lub starszej rozdziela je na world, world_nether oraz world_the_end; należy dodać te dwa katalogi do polecenia tar.)
Save-off pozwala na tworzenie kopii w czasie pracy serwera: przez RCON wyślij save-off (zatrzymanie automatycznego zapisu), następnie save-all flush (wymuszenie zapisu wszystkiego na dysk i oczekiwanie), wykonaj archiwum tar, a potem save-on. Jest to wersja odpowiednia do dodania do cron o godzinie 5 rano.
Niezależnie od metody, kopia zapasowa znajdująca się na tym samym VPS co serwer nie jest kopią zapasową. scp lub rclone archiwa poza serwer i przechowuj więcej niż jedną kopię. Ponieważ nie będziesz obserwować konsoli w momencie awarii, skonfiguruj zewnętrzny monitoring portu: Uptime Kuma na innej maszynie wykonujący test TCP na porcie 25565 poinformuje o niedostępności serwera, zanim zrobią to gracze.
Wtyczki i aktualizacje
W przypadku Paper wtyczka to plik jar umieszczony w /opt/minecraft/plugins/, po czym następuje restart; to cały proces instalacji. Wtyczki należy pobierać wyłącznie z oficjalnych stron projektów (Hangar, Modrinth, SpigotMC) z tego samego powodu co plik jar serwera: każda z nich to dowolny kod wykonywany na koncie użytkownika minecraft.
Aktualizacja serwera polega na: zatrzymaniu, wykonaniu kopii zapasowej, zastąpieniu server.jar kompilacją dla nowej wersji Minecraft i uruchomieniu. Należy zachować dwie ostrożności. Aktualizacje świata są jednostronne; świat otwarty w nowszej wersji nie zadziała w starszej, co stanowi kolejne zadanie dla kopii zapasowych. Wtyczki często wykazują opóźnienie względem nowego wydania Minecraft wynoszące dni lub tygodnie, dlatego przed pośpieszną aktualizacją w dniu premiery należy sprawdzić kompatybilność. Przejście z wersji 1.21.11 na 26.1 lub nowszą wymaga również Java 25 (krok 1) i przenosi foldery Nether oraz End serwera Paper do world/dimensions/.
Jeśli zarządzanie tym wszystkim ma odbywać się w kontenerze, z przypinaniem wersji, akceptacją EULA i flagami pamięci jako zmiennymi środowiskowymi, powszechnie używany obraz itzg/minecraft-server uruchamia ten sam serwer Paper w ramach Docker Compose na Twoim VPS z zachowaniem identycznej dyscypliny w zakresie firewalla i kopii zapasowych.
FAQ
Ile pamięci RAM wymaga serwer Minecraft?
2 GB wystarcza do uruchomienia wersji vanilla dla 2–5 graczy; 4 GB zapewnia komfortową pracę serwera dla około dziesięciu znajomych na silniku Paper z kilkoma wtyczkami; paczki modów oraz ponad 20 graczy wymagają 8 GB lub więcej. Niezależnie od rozmiaru VPS, ustaw -Xmx na wartość co najwyżej całkowitej pamięci RAM minus 1 GB, ponieważ JVM wykorzystuje pamięć poza stertą, a przekroczenie tego limitu kończy się błędem Error: Could not reserve enough space for object heap lub cichym zabiciem procesu przez mechanizm OOM.
Dlaczego znajomi nie mogą połączyć się z moim serwerem Minecraft?
Zawieszenie klienta kończące się błędem Connection timed out: no further information zazwyczaj oznacza problem z zaporą sieciową: ufw na VPS lub sieciowym firewallem dostawcy, jeśli jest włączony w panelu sterowania. Port TCP 25565 musi być otwarty w każdej zaporze na drodze połączenia. Potwierdź, że serwer nasłuchuje, używając sudo ss -tlnp | grep 25565 na maszynie, a następnie przetestuj połączenie z zewnątrz za pomocą nc -vz your.server.ip 25565.
Czy należy ustawić online-mode=false w pliku server.properties?
Nie. Przy ustawieniu online-mode=false serwer całkowicie pomija uwierzytelnianie Mojang, więc każdy może dołączyć pod dowolną nazwą użytkownika, w tym nazwą administratora, przejmując jego uprawnienia; dodatkowo przestają działać skiny oraz stabilne identyfikatory UUID. Jedynym uzasadnionym przypadkiem użycia jest praca za uwierzytelniającym proxy, takim jak Velocity, które samodzielnie weryfikuje graczy. W przypadku standardowego serwera należy pozostawić wartość true.
Czy Paper jest lepszy od serwera vanilla Minecraft?
Dla niemal każdego użytkownika tak: Paper to zamiennik pliku jar, który wczytuje światy vanilla, obsługuje niezmodyfikowanych klientów, przetwarza jednostki i wczytuje chunki znacznie wydajniej oraz dodaje ekosystem wtyczek. Wyjątkiem są społeczności techniczne zajmujące się mechanizmami redstone, które wymagają zachowania identycznego z vanilla, co niektóre optymalizacje Paper mogą zmieniać. Na małym VPS wydajność Paper jest w praktyce równoważna z darmowym zwiększeniem ilości pamięci RAM.
Jak wykonać kopię zapasową świata Minecraft bez jego uszkodzenia?
Nigdy nie archiwizuj katalogu świata, gdy serwer zapisuje do niego dane; kopia wykonana w trakcie zapisu pliku regionu tworzy uszkodzone chunki, które zostaną wykryte dopiero podczas przywracania. Należy zatrzymać serwer, spakować katalogi świata za pomocą tar i uruchomić go ponownie, albo utrzymać serwer w trybie online, używając save-off, save-all flush, tar oraz save-on przez RCON. Następnie przenieś archiwum poza serwer VPS.