Jak zainstalować dedykowany serwer Palworld u siebie w domu
Par Benjamin D. · PDG
· Mis à jour le 2 września 2026 · Lecture 7 min
Spis treści
Dedykowany serwer Palworld uruchomiony na domowym komputerze daje pełną kontrolę nad światem, tempem gry i konfiguracją. W tym przewodniku przechodzimy przez pobranie plików narzędziem SteamCMD, uruchomienie procesu PalServer, otwarcie portów UDP, przekierowanie ruchu na routerze oraz strojenie pliku PalWorldSettings.ini. Wszystko krok po kroku, z komendami gotowymi do wklejenia i listą typowych błędów połączenia.
Wymagania sprzętowe i sieciowe pod dedykowany serwer Palworld
Proces PalServer to samodzielna aplikacja Unreal Engine. Nie renderuje grafiki, ale utrzymuje w pamięci cały świat: bazy gildii, Pale przypisane do postaci, symulację produkcji i AI stworzeń. Dlatego wąskim gardłem prawie zawsze jest pamięć RAM i pojedynczy rdzeń CPU o wysokiej częstotliwości, a nie liczba rdzeni.
| Element | Minimum realne | Zalecane (8–16 graczy) |
|---|---|---|
| RAM dostępny dla procesu | 8 GB | 16 GB i więcej |
| CPU | 4 wątki, ~3,0 GHz | Nowoczesny Ryzen / Intel o wysokim taktowaniu |
| Dysk | 20 GB wolnego miejsca | SSD NVMe (zapisy świata są częste) |
| Łącze — upload | 10 Mb/s | 30 Mb/s i więcej, stabilny ping |
| System | Windows 10/11 lub Ubuntu 22.04+ | Ubuntu Server LTS (mniejszy narzut) |
Dwie rzeczy, które zaskakują początkujących administratorów. Po pierwsze, zużycie RAM rośnie w czasie — świat z rozbudowanymi bazami po kilkudziesięciu godzinach gry potrafi zająć dwa razy więcej pamięci niż świeży zapis. Po drugie, w domowej sieci liczy się upload, a nie download: to Twoja maszyna wysyła stan świata do wszystkich graczy jednocześnie.
Jeśli komputer musi być wyłączany na noc, łącze jest za wolne albo router siedzi za CGNAT operatora, sensowną alternatywą jest hosting Palworld na infrastrukturze Fly-Serv z panelem Pterodactyl i ochroną anty-DDoS. Dalsza część tekstu dotyczy jednak wyłącznie instalacji na własnej maszynie w domu.
Pobranie plików przez SteamCMD krok po kroku
Pliki serwera Palworld mają identyfikator aplikacji 2394010 i są dostępne przez anonimowe logowanie w SteamCMD. Nie potrzebujesz konta z grą, żeby je pobrać — licencja jest wymagana tylko po stronie klienta.
Windows
Rozpakuj SteamCMD do katalogu bez spacji w ścieżce, na przykład C:\steamcmd, i uruchom w wierszu poleceń:
cd C:\steamcmd
steamcmd.exe +force_install_dir C:\palserver +login anonymous +app_update 2394010 validate +quit
Po zakończeniu pobierania uruchom serwer po raz pierwszy, aby wygenerował strukturę katalogów zapisu:
cd C:\palserver
PalServer.exe -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
Zamknij proces po kilkunastu sekundach (Ctrl+C w konsoli). Katalog C:\palserver\Pal\Saved\Config\WindowsServer\ powinien już istnieć.
Linux (Ubuntu / Debian)
Silnik serwera to plik 64-bitowy, ale sam SteamCMD wymaga bibliotek 32-bitowych. Uruchamiaj wszystko z konta bez uprawnień root:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1 lib32stdc++6 xdg-user-dirs
sudo adduser --disabled-password --gecos "" palworld
sudo -u palworld -i
Następnie, już jako użytkownik palworld:
steamcmd +force_install_dir /home/palworld/palserver \
+login anonymous +app_update 2394010 validate +quit
mkdir -p ~/.steam/sdk64
cp ~/palserver/linux64/steamclient.so ~/.steam/sdk64/
Skopiowanie steamclient.so jest kluczowe — bez tego proces startuje i natychmiast się zamyka, a w logu pojawia się błąd inicjalizacji Steam API. Pierwsze uruchomienie:
cd ~/palserver
./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
Uruchamianie w tle przez systemd
Na Linuksie warto od razu zrobić usługę, która sama się aktualizuje przy każdym starcie i wstaje po awarii. Plik /etc/systemd/system/palworld.service:
[Unit]
Description=Palworld Dedicated Server
After=network-online.target
[Service]
User=palworld
WorkingDirectory=/home/palworld/palserver
ExecStartPre=/usr/games/steamcmd +force_install_dir /home/palworld/palserver +login anonymous +app_update 2394010 validate +quit
ExecStart=/home/palworld/palserver/PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=60
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now palworld
sudo journalctl -u palworld -f
Parametry startowe -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS są zalecane przez twórców do lepszego rozłożenia pracy na wątki. Szczegóły techniczne znajdziesz w oficjalnej dokumentacji serwera Palworld.
Porty UDP i przekierowanie NAT — jak wpuścić graczy do środka
Palworld komunikuje się po UDP. To najczęstsze źródło problemów: administrator otwiera port TCP, a klient nadal dostaje timeout. Poniżej pełna lista.
| Port | Protokół | Rola | Wymagany? |
|---|---|---|---|
| 8211 | UDP | Ruch gry (domyślny) | Tak |
| 27015 | UDP | Zapytania Steam / widoczność na liście | Zalecany |
| 25575 | TCP | RCON (zdalna konsola) | Opcjonalny |
| 8212 | TCP | REST API | Opcjonalny |
Zapora systemowa
Na Linuksie z ufw:
sudo ufw allow 8211/udp comment 'Palworld game'
sudo ufw allow 27015/udp comment 'Palworld query'
sudo ufw allow from 192.168.1.50 to any port 25575 proto tcp comment 'RCON z mojego PC'
sudo ufw status numbered
Na Windowsie dodaj regułę ruchu wejściowego z PowerShella uruchomionego jako administrator:
New-NetFirewallRule -DisplayName "Palworld UDP" -Direction Inbound `
-Protocol UDP -LocalPort 8211,27015 -Action Allow
Przekierowanie NAT na routerze
Kolejność działań, która oszczędza godzinę zgadywania:
- Ustaw maszynie serwera statyczny adres w LAN (rezerwacja DHCP po adresie MAC albo konfiguracja stała w systemie). Jeśli adres się zmieni, przekierowanie przestanie działać.
- W panelu routera wejdź w Port Forwarding / Virtual Server / Przekierowanie portów.
- Dodaj wpis: port zewnętrzny
8211→ port wewnętrzny8211, protokół UDP, docelowy adres IP serwera. - Powtórz dla
27015/UDP. - Wyłącz UPnP, jeśli nie musi być włączony — ręczna reguła jest przewidywalna i nie zniknie po restarcie.
- Sprawdź publiczny adres IP i przetestuj port UDP zewnętrznym narzędziem albo poproś kogoś z innej sieci o próbę połączenia.
Typowe blokery połączenia
- CGNAT u operatora — jeśli adres WAN routera zaczyna się od
100.64.–100.127., jesteś za współdzielonym NAT i przekierowanie nie zadziała. Rozwiązanie: publiczny adres IP od operatora albo tunel VPN typu WireGuard. - Brak NAT loopback — z tej samej sieci lokalnej połączenie po publicznym IP może nie działać. Domownicy powinni łączyć się po adresie LAN, np.
192.168.1.50:8211. - Podwójny NAT — modem operatora plus własny router. Trzeba przekierować port na obu urządzeniach albo przełączyć modem w tryb bridge.
- Brak wpisu PublicIP — serwer nie zgłosi się poprawnie na listę społecznościową, jeśli nie zna swojego adresu zewnętrznego.
Dołączanie przez adres IP
W kliencie Palworld wybierz Dołącz do gry wieloosobowej → Wpisz adres IP i podaj adres:8211. Ta metoda jest niezawodniejsza niż szukanie wpisu na liście, która filtruje i cache'uje wyniki.
PalWorldSettings.ini: parametry, które faktycznie zmieniają grę
Po pierwszym uruchomieniu plik konfiguracyjny znajduje się w:
Windows: C:\palserver\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini
Linux: /home/palworld/palserver/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Jest praktycznie pusty. Wzorzec z wszystkimi kluczami leży w katalogu głównym jako DefaultPalWorldSettings.ini. Skopiuj jego zawartość do pliku docelowego:
# Linux
systemctl stop palworld
cp ~/palserver/DefaultPalWorldSettings.ini \
~/palserver/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
nano ~/palserver/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Zasada, o którą wywraca się większość konfiguracji
Cała sekcja OptionSettings=(...) musi pozostać jedną linią, bez łamania wiersza i bez spacji po przecinkach. Jeden enter w środku nawiasu sprawia, że serwer wczyta wartości domyślne i po cichu zignoruje Twoje zmiany. Edytuj plik w edytorze bez automatycznego zawijania i zawsze zatrzymuj serwer przed zapisem — proces nadpisuje konfigurację przy wyłączaniu.
Parametry warte uwagi
| Klucz | Domyślnie | Co robi |
|---|---|---|
ServerName | Default | Nazwa widoczna na liście |
ServerPassword | puste | Hasło wejścia — najprostsza forma whitelisty |
AdminPassword | puste | Wymagane do komend administratora i RCON |
ServerPlayerMaxNum | 32 | Limit slotów; powyżej 16 mocno rośnie zużycie RAM |
PublicIP / PublicPort | puste | Adres zgłaszany do listy społecznościowej |
ExpRate | 1.0 | Mnożnik doświadczenia |
PalCaptureRate | 1.0 | Szansa złapania Pala |
CollectionDropRate | 1.0 | Wydajność zbieractwa |
DeathPenalty | All | Co gubisz po śmierci: None, Item, ItemAndEquipment, All |
bEnablePlayerToPlayerDamage | False | PvP między graczami |
GuildPlayerMaxNum | 20 | Maksymalna liczba osób w gildii |
BaseCampMaxNumInGuild | 4 | Liczba baz na gildię — silnie wpływa na wydajność |
PalSpawnNumRate | 1.0 | Zagęszczenie Pali w świecie; obniż przy spadkach TPS |
bIsUseBackupSaveData | True | Wewnętrzne kopie zapisu |
AutoSaveSpan | 30 | Interwał autozapisu w sekundach |
RCONEnabled / RCONPort | False / 25575 | Zdalna konsola administracyjna |
Przykładowy fragment dla sesji kooperacyjnej z przyspieszoną progresją (pamiętaj: jedna linia):
OptionSettings=(Difficulty=None,ExpRate=2.000000,PalCaptureRate=1.500000,CollectionDropRate=2.000000,DeathPenalty=Item,bEnablePlayerToPlayerDamage=False,GuildPlayerMaxNum=10,BaseCampMaxNumInGuild=4,ServerPlayerMaxNum=8,ServerName="Baza Palowa",ServerDescription="Kooperacja PL",AdminPassword="dlugie-haslo-admina",ServerPassword="",PublicPort=8211,PublicIP="",RCONEnabled=True,RCONPort=25575,bIsUseBackupSaveData=True,AutoSaveSpan=180.000000)
Wydajność i utrzymanie
- AutoSaveSpan: domyślne 30 sekund powoduje regularne mikroprzycięcia. Wartość 180–300 sekund na dysku SSD to dobry kompromis między płynnością a ryzykiem utraty progresu.
- Limit baz: każda baza gildii symuluje pracujące Pale non stop. Ograniczenie
BaseCampMaxNumInGuilddaje zauważalną ulgę procesorowi przy większej liczbie graczy. - Restart dobowy: proces Unreal Engine z czasem gromadzi pamięć. Zaplanowany restart w nocy przez
systemd timerlub Harmonogram zadań Windows utrzymuje stabilną latencję. - Kopie zapasowe: archiwizuj cały katalog
Pal/Saved/SaveGames/na inny nośnik. Wbudowane kopie leżą na tym samym dysku, więc awaria dysku zabiera i świat, i backup.
tar -czf ~/backup-palworld-$(date +%F-%H%M).tar.gz \
-C /home/palworld/palserver/Pal/Saved SaveGames Config
Bezpieczeństwo domowej instalacji
Serwer wystawiony na publiczny adres IP ujawnia Twoje domowe łącze. Minimum higieny: długie i unikalne AdminPassword, RCON dostępny wyłącznie z zaufanych adresów (nigdy otwarty na cały świat), logowanie na maszynę po kluczach SSH zamiast hasła, aktywny fail2ban oraz reguły ufw domyślnie odrzucające ruch. Wolumetryczne ataki na łącze operatora to jednak coś, czego domowy router nie odfiltruje — to argument za przeniesieniem projektu na infrastrukturę z ochroną sieciową w standardzie. Podobne poradniki dla innych tytułów survivalowych znajdziesz na Blog Fly-Serv, a listę wspieranych gier w sekcji Wszystkie nasze serwery gier — mechanika konfiguracji jest zbliżona choćby do tego, co robi się na Serwer Enshrouded.
Po każdej aktualizacji gry pamiętaj o ponownym app_update 2394010 validate — klient i serwer muszą mieć zgodną wersję, inaczej gracze zobaczą błąd niezgodności buildu przy wejściu.
Podsumowanie
Uruchomienie własnej instancji Palworld w domu sprowadza się do czterech kroków: pobranie plików SteamCMD, jedno uruchomienie testowe, przekierowanie portów 8211 i 27015 po UDP oraz staranna edycja PalWorldSettings.ini w jednej linii. Reszta to rutyna administratora — kopie zapasowe poza maszyną, restart dobowy i weryfikacja wersji po każdej łatce.
FAQ
Dlaczego moje zmiany w PalWorldSettings.ini nie działają po restarcie?Trzy najczęstsze powody. Pierwszy: edytowałeś DefaultPalWorldSettings.ini zamiast pliku w Pal/Saved/Config/WindowsServer/ lub LinuxServer/. Drugi: sekcja OptionSettings=(...) została złamana na kilka linii — musi być jedną, ciągłą linią. Trzeci: zapisałeś plik przy działającym procesie, który nadpisał go przy zamykaniu. Zatrzymaj serwer, edytuj, zapisz, uruchom ponownie.