Jak stworzyć serwer w Minecraft
Własny serwer daje pełną kontrolę nad światem i zasadami gry. To możliwość grania ze znajomymi bez płacenia miesięcznych abonamentów…
Własny serwer daje pełną kontrolę nad światem i zasadami gry. To możliwość grania ze znajomymi bez płacenia miesięcznych abonamentów, instalowania dowolnych modyfikacji, tworzenia minigier lub zestawów technicznych. Serwer uruchamia się jako oddzielny program na komputerze: obsługuje logikę gry, a klienci graczy łączą się z nim. Proces tworzenia składa się z wyboru rdzenia, podstawowej konfiguracji plików config oraz otwarcia dostępu do sieci.
Wybór rdzenia serwera
Typ rdzenia określa funkcjonalność serwera. Nie da się zainstalować modów Forge na Paper ani pluginów na Vanilla.
Typ rdzenia | Wsparcie | Do czego się nadaje |
Vanilla | Tylko datapacki | Czyste przetrwanie, speedruny. Najgorsza optymalizacja. |
Paper | Pluginy (Bukkit/Spigot/Paper) | Serwery publiczne, przetrwanie ze znajomymi, minigry. Doskonała optymalizacja. |
Purpur | Pluginy (Paper) + własny config | Jak Paper, ale z subtelnymi ustawieniami mechanik (na przykład pozwolenie na jeżdżenie na pszczołach). |
Fabric | Mody (Fabric) | Serwery techniczne (Carpet mod), zestawy vanilla+, optymalizacja (Lithium). |
NeoForge / Forge | Mody (Forge/NeoForge) | Ciężkie modpacki z nowymi wymiarami, mechanizmami, magią. |
Dla 90% prywatnych serwerów bez dużych globalnych modów Paper jest optymalnym wyborem. Nie wymaga instalowania modów na klientach graczy (wszystko działa z klienta vanilla), obsługuje pluginy do ochrony terenów i działa szybciej niż oficjalny rdzeń.
⚠️ Ważne: Rdzenie hybrydowe (Arclight, Mohist), które obsługują jednocześnie i mody, i pluginy, często psują mechaniki modów i powodują niestabilność. Wybierz coś jednego: albo pluginy, albo mody.
Wymagania systemowe i przygotowanie
Serwer zużywa pamięć operacyjną (RAM) i zasoby procesora. Karta graficzna nie ma dla serwera znaczenia — generowanie świata odbywa się wyłącznie na CPU.
Dla 2–5 graczy (Paper):
RAM: 2–3 GB przydzielonej pamięci.
CPU: dowolny nowoczesny procesor od 4 rdzeni.
Dla 10+ graczy lub ciężkich modpacków (NeoForge):
RAM: 6–8 GB przydzielonej pamięci.
CPU: wysoka wydajność na jeden rdzeń.
Instalacja Javy
Minecraft 1.21+ wymaga Java 21 (dla wersji 26.1+ potrzebna jest Java 26). Serwer nie korzysta z Javy wbudowanej w klienta, należy ją zainstalować w systemie oddzielnie.
Pobierz JDK 21 (lub JDK 26) z oficjalnej strony Oracle.
Zainstaluj, koniecznie aktywując opcję „Add to PATH” w instalatorze.
Sprawdź w terminalu: java -version. Powinno wyświetlić wersję 21.0.x.
Podstawowa instalacja i uruchomienie
Przykład instalacji dla rdzenia Paper:
Krok 1. Pobranie rdzenia
Przejdź na oficjalną stronę papermc.io, wybierz wersję gry (na przykład 26.1) i pobierz plik. Stwórz pusty folder dla serwera i przenieś plik tam. Zmień jego nazwę na server.jar dla wygody.
Krok 2. Tworzenie pliku uruchamiającego
Serwer nie uruchamia się podwójnym kliknięciem. Trzeba przydzielić mu pamięć za pomocą skryptu.
Stwórz w folderze serwera dokument tekstowy start.txt,
otwórz go i wklej kod:
DOS
java -Xmx4G -Xms4G -jar server.jar nogui
pause
Parametr -Xmx4G ustawia maksymalny limit pamięci operacyjnej (4 GB). -Xms4G – ilość startową. Zapisz plik i zmień jego rozszerzenie z .txt na .bat (dla Windows).
W Linux/macOS stwórz start.sh i dodaj #!/bin/bash jako pierwszy wiersz.
Krok 3. Akceptacja EULA
Uruchom start.bat. Konsola otworzy się na kilka sekund i zamknie. Otwórz nowy plik eula.txt. Zmień wiersz eula=false na eula=true. To oficjalna zgoda na umowę licencyjną deweloperów.
Krok 4. Pełne uruchomienie
Ponownie uruchom start.bat. Serwer wygeneruje świat i pliki konfiguracji. W konsoli pojawi się komunikat Done!. Zatrzymuj serwer wyłącznie komendą stop w konsoli, w przeciwnym razie świat może ulec uszkodzeniu.
Konfiguracja server.properties
Plik server.properties zawiera główne ustawienia serwera. Aby go otworzyć, kliknij PPM (prawym przyciskiem myszy) na pliku i wybierz „Otwórz za pomocą…”, następnie wybierz „Notatnik” lub dowolny inny edytor tekstu.\
Poniżej tabela z domyślnymi ustawieniami server.properties oraz opisem każdego parametru:
Parametr | Wartość | Opis |
accepts-transfers | FALSE | Określa, czy ten serwer przyjmuje przekierowania (transfery) graczy z innych serwerów. |
allow-flight | FALSE | Pozwala lub zabrania latania na serwerze w trybie przetrwania (jeśli gracz używa zewnętrznych modyfikacji). Przy false serwer będzie wyrzucał takich graczy. |
broadcast-console-to-ops | TRUE | Jeśli włączone, wyniki wykonania komend konsolowych będą wysyłane na czat do wszystkich operatorów (administratorów) serwera. |
broadcast-rcon-to-ops | TRUE | To samo co poprzednie, ale dla komend wysłanych przez dostęp zdalny (RCON). |
bug-report-link | (puste) | Link, który zostanie pokazany graczom na ekranie przy rozłączeniu z serwerem z powodu błędu lub awarii. |
debug | FALSE | Włącza tryb debugowania (debug mode) do rozszerzonego logowania błędów. |
difficulty | easy | Poziom trudności na serwerze (peaceful - pokojowy, easy - łatwy, normal - normalny, hard - trudny). |
enable-code-of-conduct | FALSE | Czy wymagać od graczy zgody na zasady postępowania Microsoft (Code of Conduct) przy łączeniu. |
enable-jmx-monitoring | FALSE | Pozwala na użycie JMX (Java Management Extensions) do monitorowania wydajności serwera. |
enable-query | FALSE | Włącza protokół GameSpy4 (Query), który pozwala zewnętrznym stronom monitorującym pozyskiwać informacje o serwerze (online, pluginy). |
enable-rcon | FALSE | Włącza zdalny dostęp do konsoli serwera (RCON) do zarządzania bez bezpośredniego dostępu do terminala maszyny. |
enable-status | TRUE | Pozwala serwerowi wyświetlać się jako „online” na liście serwerów klienta gry. |
enforce-secure-profile | TRUE | Wymaga, aby gracze mieli podpisane publiczne klucze profilu Mojang (ochrona przed podrabianiem wiadomości na czacie). |
enforce-whitelist | FALSE | Jeśli true, serwer przymusowo wyrzuci graczy, których nie ma na „białej liście” (whitelist), gdy ta lista zostanie aktywowana. |
entity-broadcast-range-percentage | 100 | Kontroluje zasięg (w procentach), na którym serwer wysyła klientowi dane o bytach (mobach, innych graczach, przedmiotach). |
force-gamemode | FALSE | Przymusowo ustawia graczom domyślny tryb gry przy każdym połączeniu z serwerem. |
function-permission-level | 2 | Poziom uprawnień (od 1 do 4) dla funkcji wykonywanych przez datapacki (datapacks). |
gamemode | survival | Domyślny tryb gry (survival, creative, adventure, spectator). |
generate-structures | TRUE | Określa, czy w świecie będą generowane struktury (wioski, lochy, świątynie itp.). |
generator-settings | {} | Specjalne ustawienia generatora świata (zwykle używane do niestandardowych światów). |
hardcore | FALSE | Tryb „Hardcore”. Jeśli true, po śmierci gracz przechodzi w tryb obserwatora na zawsze. |
hide-online-players | FALSE | Jeśli true, ukrywa listę nicków aktywnych graczy w menu gry wieloosobowej. |
initial-disabled-packs | (puste) | Lista datapacków, które zostaną wyłączone przy tworzeniu nowego świata. |
initial-enabled-packs | vanilla | Lista datapacków włączonych domyślnie (podstawowa gra „vanilla”). |
level-name | world | Nazwa folderu, w którym przechowywane są pliki twojego świata. |
level-seed | (puste) | Seed (liczbowe ziarno) do generowania świata. Jeśli puste, wygeneruje się losowy. |
level-type | minecraft\:normal | Typ generowania świata (normal - zwykły, flat - płaski, large_biomes - duże biomy, amplified - górzysty). |
log-ips | TRUE | Określa, czy adresy IP graczy będą zapisywane w plikach logów serwera. |
management-server-* | (różne) | Grupa parametrów (porty, klucze, ustawienia) dla zewnętrznych narzędzi zarządzania serwerem (używana rzadko). |
max-chained-neighbor-updates | 1000000 | Limit łańcuchowych aktualizacji bloków (na przykład podczas wybuchu TNT lub złożonych schematów redstone) dla zapobiegania zawieszeniu serwera. |
max-players | 20 | Maksymalna liczba graczy, którzy mogą jednocześnie przebywać na serwerze. |
max-tick-time | 60000 | Maksymalny czas (w milisekundach) wykonania jednego „ticku”. Jeśli serwer „zamyśli się” dłużej niż ten czas, automatycznie się wyłączy (ochrona przed „martwym” zawieszeniem). |
max-world-size | 29999984 | Maksymalny promień granicy świata (w blokach). |
motd | A Minecraft Server | Message Of The Day. Opis/nazwa serwera, który gracze widzą na liście serwerów. |
network-compression-threshold | 256 | Minimalny rozmiar pakietu (w bajtach), po którym serwer zacznie go kompresować dla oszczędności transferu internetowego. |
online-mode | TRUE | Bardzo ważny parametr. Jeśli true — wpuszcza tylko graczy z licencyjną grą. Jeśli false — pozwala wchodzić graczom z „pirackich” launcherów. |
op-permission-level | 4 | Domyślny poziom uprawnień operatorów (1-4, gdzie 4 daje dostęp do wszystkich komend, włącznie ze stop). |
pause-when-empty-seconds | -1 | Czas bezczynności (w sekundach), po którym serwer wstrzymuje świat, jeśli nie ma graczy (-1 oznacza wyłączone). |
player-idle-timeout | 0 | Czas (w minutach), po którym nieaktywny (AFK) gracz jest automatycznie wyrzucany. 0 — wyłączone. |
prevent-proxy-connections | FALSE | Zabrania połączeń graczom, którzy używają VPN lub proxy (działa w połączeniu z systemem uwierzytelniania Mojang). |
query.port | 25565 | Port dla protokołu Query (jeśli jest włączony parametrem enable-query). |
rate-limit | 0 | Maksymalna liczba pakietów od klienta do serwera. Używana do ochrony przed spamem pakietami (0 — wyłączone). |
rcon.password | (puste) | Hasło do zdalnego dostępu do konsoli serwera (trzeba wypełnić, jeśli enable-rcon=true). |
rcon.port | 25575 | Port dla połączenia RCON. |
region-file-compression | deflate | Algorytm kompresji plików świata (regionów). deflate jest standardowy i najpowszechniejszy. |
require-resource-pack | FALSE | Jeśli true, gracz nie będzie mógł wejść na serwer, dopóki nie zgodzi się pobrać serwerowego resource packa. |
resource-pack | (puste) | Bezpośredni link (URL) do archiwum .zip resource packa serwera, który zostanie zaproponowany graczom. |
resource-pack-id | (puste) | Unikalny identyfikator resource packa (UUID). |
resource-pack-prompt | (puste) | Komunikat, który gracz zobaczy przy propozycji pobrania resource packa (na przykład: „Proszę pobrać pack dla lepszej gry”). |
resource-pack-sha1 | (puste) | Hash SHA-1 archiwum z resource packiem. Potrzebny do tego, aby klient nie pobierał packa ponownie, jeśli się nie zmienił. |
server-ip | (puste) | Adres IP do „przypisania” serwera. Zwykle zostawia się puste, aby serwer działał na wszystkich interfejsach sieciowych maszyny. |
server-port | 25565 | Główny port serwera, przez który będą łączyć się gracze. |
simulation-distance | 10 | Promień (w chunkach) wokół gracza, w którym symulowany jest świat (rosną rośliny, chodzą moby, działają mechanizmy). |
spawn-protection | 16 | Promień ochrony strefy spawnu (w blokach). W tej strefie zwykli gracze nie mogą niszczyć ani stawiać bloków. |
status-heartbeat-interval | 0 | Interwał wysyłania rozszerzonych danych o statusie serwera (zwykle nieużywany). |
sync-chunk-writes | TRUE | Sprawia, że zapis chunków na dysk jest synchroniczny (bardziej niezawodne dla uniknięcia utraty danych świata przy awariach, ale może nieco spowolnić serwer). |
text-filtering-config | (puste) | Ustawienia zewnętrznego systemu filtrowania wulgaryzmów na czacie. |
text-filtering-version | 0 | Wersja API dla systemu filtrowania tekstu. |
use-native-transport | TRUE | Pozwala serwerowi używać zoptymalizowanych bibliotek sieciowych systemu (na przykład epoll dla Linux), co poprawia wydajność sieci. |
view-distance | 10 | Zasięg renderowania (w chunkach) wysyłany przez serwer do klienta (na którym opiera się zasięg widoczności gracza). |
white-list | FALSE | Włączenie „białej listy”. Jeśli true, na serwer będą mogli wejść tylko gracze, których nicki dodano do tej listy (komendą /whitelist add <nick>). |
⚠️ Ważne: Jeśli ustawisz online-mode=false, dowolny gracz będzie mógł wejść pod nickiem administratora. Koniecznie zainstaluj plugin do autoryzacji (na przykład AuthMe Reloaded) dla ochrony.
Jak zainstalować pluginy
Pluginy rozszerzają możliwości serwera bez konieczności instalowania modów przez graczy. Działają tylko na Paper, Purpur i Spigot.
Pobierz plugin w formacie .jar.
Umieść plik w folderze plugins wewnątrz serwera.
Zrestartuj serwer (stop -> start.bat).
W folderze plugins pojawi się folder z configami plugina, gdzie edytuje się jego ustawienia (zwykle w pliku config.yml).
Jak zainstalować mody
Do gry z modami potrzebny jest rdzeń Fabric lub NeoForge. Wszyscy gracze muszą mieć identyczny zestaw modów w swoim kliencie.
Dla Fabric:
Pobierz instalator z fabricmc.net.
Uruchom go, wybierz zakładkę „Server”, podaj wersję gry i pusty folder. Kliknij „Install”.
Uruchamiaj pobrany fabric-server-launch.jar przez start.bat.
Wrzucaj mody do wygenerowanego folderu mods. Dla Fabric koniecznie potrzebny jest mod Fabric API.
Dla NeoForge:
Pobierz instalator z neoforged.net.
Uruchom, wybierz „Install server” i podaj folder.
Po instalacji uruchom plik run.bat (instalator sam go tworzy).
Umieść serwerowe mody w folderze mods.
Modów klienckich (minimapy, shadery, optymalizacja renderowania typu Sodium) nie wolno instalować na serwerze — powodują one crash rdzenia przy uruchomieniu.
Jak wpuścić graczy na serwer
Sposób 1: Port Forwarding
Najlepszy sposób z najmniejszym pingiem. Wymaga dostępu do routera.
Wejdź do panelu ustawień routera (192.168.1.1 w przeglądarce).
Znajdź sekcję „Port Forwarding” lub „NAT”.
Stwórz regułę: port 25565, protokół TCP/UDP, lokalne IP — adres twojego komputera (sprawdź przez ipconfig).
Gracze łączą się po twoim zewnętrznym adresie IP (strona 2ip.ua).
Sposób 2: Tunele (Playit.gg)
Jeśli dostawca blokuje porty.
Pobierz program z playit.gg.
Uruchom go razem z serwerem. Otworzy on stronę w przeglądarce.
Zarejestruj się, a serwis poda publiczny adres (na przykład auto-bridge.playit.gg).
Gracze wpisują ten adres w grze.
Sposób 3: Radmin VPN
Zainstaluj Radmin VPN na wszystkich komputerach.
Stwórz sieć i podaj znajomym nazwę.
Oni dołączają do sieci.
Gracze łączą się po adresie IP twojego PC, podanym w Radmin VPN.
Szczegóły techniczne / Jak to działa od środka
Serwer Minecraft jest aplikacją jednowątkową. Główna pętla gry (tick loop), która obsługuje ruch mobów, fizykę i mechanizmy, wykonuje się wyłącznie na jednym rdzeniu procesora.
Gra próbuje wykonywać 20 ticków na sekundę (TPS - Ticks Per Second). Na jeden tick przydzielane jest 50 milisekund. Jeśli obliczenia zajmują więcej czasu, TPS spada i gracze odczuwają opóźnienia. Właśnie dlatego częstotliwość taktowania jednego rdzenia jest dla serwera ważniejsza niż całkowita liczba rdzeni.
Wielowątkowość w rdzeniach typu Paper jest używana tylko do asynchronicznego wczytywania chunków z dysku oraz obsługi sieciowej, ale sama logika gry pozostaje na jednym wątku.
Podstawowe komendy administratora
Wpisywane w konsoli serwera (bez /).
Akcja | Komenda |
Nadać uprawnienia operatora | op [nick] |
Odebrać uprawnienia | deop [nick] |
Włączyć białą listę | whitelist on |
Dodać do białej listy | whitelist add [nick] |
Wyrzucić gracza | kick [nick] [powód] |
Zbanować gracza | ban [nick] [powód] |
Zapisać świat ręcznie | save-all |
Hosting jako alternatywa
Jeśli domowy komputer jest słaby, serwer można wynająć.
Typ | Przedstawiciele | Zalety | Ograniczenia |
Darmowe | Aternos, FalixNodes | Nie trzeba płacić | Kolejki przy uruchomieniu, lagi przy obciążeniu, serwer wyłącza się bez graczy. |
Płatne budżetowe | PebbleHost, Bloom.host | Od 1$ za GB, praca 24/7 | Trzeba płacić co miesiąc. |
VDS/VPS | Hetzner, Oracle | Pełna kontrola nad maszyną | Wymaga umiejętności administrowania Linuksem. |
Częste błędy i jak ich uniknąć
Błąd 1: FAILED TO BIND TO PORT. Serwer nie uruchamia się, bo port 25565 jest już zajęty. Często zdarza się przy uruchomieniu dwóch start.bat. Otwórz menedżer zadań i zamknij wszystkie procesy Java(TM) Platform SE binary.
Błąd 2: UnsupportedClassVersionError. Wersja Javy jest przestarzała. Dla 1.20.5+ potrzebna jest Java 21, a dla 1.16.5 — Java 11.
Błąd 3: Lagi przy szybkim locie. Serwer nie nadąża generować nowych chunków. Zainstaluj plugin Chunky i wstępnie wygeneruj świat w promieniu 5000 bloków.
Błąd 4: Crash serwera Fabric/Forge przy uruchomieniu. Do folderu mods trafił mod kliencki (minimapa, Sodium). Serwer nie ma interfejsu graficznego i pada przy próbie ich wczytania.
Błąd 5: Błąd Invalid session przy łączeniu. Gracz używa pirackiego launchera przy włączonym online-mode=true. Zmień wartość na false w server.properties.
Podsumowanie
Własny serwer oparty na Paper jest optymalnym wyborem do prywatnego przetrwania ze znajomymi, ponieważ zapewnia doskonałą wydajność i pozwala dodawać pluginy bez zmiany klienta gry. Do dużych zestawów z nowymi mechanikami trzeba będzie użyć Fabric lub NeoForge, które wymagają synchronizacji modów między serwerem a graczami. Głównym wyzwaniem przy konfiguracji domowego serwera jest prawidłowe otwarcie portów, ale korzystanie z usług takich jak Playit.gg rozwiązuje problem z zamkniętymi portami dostawcy. Jeśli wydajność domowego PC nie wystarcza, przejście na niedrogi płatny hosting gwarantuje stabilny dostęp 24/7.
Brak komentarzy. Bądź pierwszym, który się wypowie.