HomeStart / GuidesAnleitungen / Running a Palworld dedicated server on a Linux VPS (SteamCMD, systemd, the RAM curve)/ Einen Palworld-Dedicated-Server auf einem Linux-VPS betreiben (SteamCMD, systemd, die RAM-Kurve)

Running a Palworld dedicated server on a Linux VPS (SteamCMD, systemd, the RAM curve)Einen Palworld-Dedicated-Server auf einem Linux-VPS betreiben (SteamCMD, systemd, die RAM-Kurve)

Palworld's dedicated server installs cleanly with SteamCMD and runs fine on plain Ubuntu, but the memory graph is not flat: it climbs for hours after launch and keeps climbing, which is the number that actually decides which tier you need.Der Dedicated Server von Palworld installiert sich sauber mit SteamCMD und läuft problemlos auf einem gewöhnlichen Ubuntu, aber der Speicherverlauf ist nicht flach: Er steigt nach dem Start stundenlang und steigt weiter — und genau diese Zahl entscheidet, welchen Tarif du wirklich brauchst.

What you are installingWas du installierst

The dedicated server is a separate, free Steam application from the game itself, published under its own app ID:Der Dedicated Server ist eine eigene, kostenlose Steam-Anwendung, getrennt vom Spiel selbst, veröffentlicht unter einer eigenen App-ID:

It is a Linux binary built for headless use — no display, no Proton layer, no game client involved on the server side at all.Es ist ein Linux-Binary, gebaut für den Headless-Betrieb — kein Display, keine Proton-Schicht, kein Spielclient auf der Serverseite beteiligt.

Sizing it honestlyEhrlich dimensionieren

Ignore the number you see in the first ten minutes after launch. A freshly started Palworld server sits low, then climbs steadily over the next several hours as bases, Pals, dropped items and loaded map chunks accumulate in memory, and it does not give much of that back on its own between restarts. Judge the requirement from a server that has been up for a full evening, not from htop right after systemctl start.Ignoriere die Zahl, die du in den ersten zehn Minuten nach dem Start siehst. Ein frisch gestarteter Palworld-Server liegt niedrig, steigt dann über die nächsten mehreren Stunden stetig an, während sich Basen, Pals, abgelegte Items und geladene Map-Chunks im Speicher ansammeln, und gibt davon von sich aus zwischen Neustarts nicht viel zurück. Beurteile den Bedarf anhand eines Servers, der einen ganzen Abend gelaufen ist, nicht anhand von htop direkt nach systemctl start.

8 GiB is the realistic floor for a small group of two to four players, and only if you pair it with a scheduled nightly restart that clears the accumulated memory before the next session starts. Skip the restart and a long-running world on 8 GiB will eventually push into swap, which shows up in-game as rubber-banding and rejected joins rather than a clean crash. 16 GiB is comfortable for the same group without babysitting a restart timer, and is the realistic floor once you are running six or more concurrent players or a base-heavy world that has been alive for weeks. On our tiers that is Pro (8 GiB, workable with the restart habit below) versus Elite (16 GiB, comfortable). Disk is a smaller concern — the install itself is a few gigabytes, and a save directory for one active world rarely exceeds a few hundred megabytes even months in, so the gap between plans matters far more for RAM than for storage.8 GiB sind die realistische Untergrenze für eine kleine Gruppe von zwei bis vier Spielern, und das auch nur, wenn du das mit einem geplanten nächtlichen Neustart kombinierst, der den angesammelten Speicher vor der nächsten Session leert. Lässt du den Neustart aus, wird eine lange laufende Welt auf 8 GiB irgendwann in den Swap gedrängt, was sich im Spiel als Rubberbanding und abgelehnte Beitritte zeigt, statt als sauberer Absturz. 16 GiB sind komfortabel für dieselbe Gruppe, ohne dass du einen Neustart-Timer im Auge behalten musst, und sind die realistische Untergrenze, sobald du sechs oder mehr gleichzeitige Spieler betreibst oder eine basenlastige Welt, die schon Wochen lebt. Bei unseren Tarifen ist das Pro (8 GiB, machbar mit der Neustart-Gewohnheit von oben) gegenüber Elite (16 GiB, komfortabel). Die Festplatte ist ein kleineres Problem — die Installation selbst umfasst wenige Gigabyte, und ein Save-Verzeichnis für eine aktive Welt übersteigt selbst nach Monaten selten ein paar hundert Megabyte, sodass der Unterschied zwischen den Tarifen für RAM weit mehr zählt als für Speicherplatz.

CPU-wise the server is multi-threaded and benefits from more cores, but it is not the bottleneck that catches people out — memory is.CPU-seitig ist der Server mehrfädig und profitiert von mehr Kernen, aber das ist nicht der Flaschenhals, der Leute erwischt — das ist der Speicher.

Step 1: the machineSchritt 1: die Maschine

Deploy an Ubuntu LTS image, then do the security basics before anything is exposed: a non-root user, your SSH key on it, password login switched off, and a firewall that defaults to deny. We wrote those up as connect to your VPS over SSH and secure your VPS.Setze ein Ubuntu-LTS-Image auf und erledige dann die Sicherheitsgrundlagen, bevor irgendetwas exponiert ist: einen Non-Root-User, deinen SSH-Key darauf, Passwort-Login ausgeschaltet, und eine Firewall, die standardmäßig blockiert. Wir haben das aufgeschrieben unter über SSH mit deinem VPS verbinden und deinen VPS absichern.

SteamCMD needs the 32-bit runtime even on a 64-bit box, plus a handful of libraries the server binary links against:SteamCMD braucht die 32-Bit-Runtime selbst auf einer 64-Bit-Kiste, dazu eine Handvoll Bibliotheken, gegen die das Server-Binary linkt:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 curl tar
sudo useradd -m -s /bin/bash palworld

Step 2: install with SteamCMDSchritt 2: Installation mit SteamCMD

Everything below runs as the palworld user — never run a game server as root.Alles Folgende läuft als der Nutzer palworld — betreibe einen Game-Server niemals als root.

sudo -u palworld -i
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sSL https://media.steampowered.com/client/installer/steamcmd_linux.tar.gz | tar zxf -
./steamcmd.sh +force_install_dir /home/palworld/server \
              +login anonymous \
              +app_update 2394010 validate \
              +quit

The same command is how you update later. Palworld ships frequent patches, and a client on a newer build simply cannot join an older server, so plan to rerun this after every update you see land.Derselbe Befehl dient später zum Aktualisieren. Palworld bringt häufige Patches heraus, und ein Client mit einem neueren Build kann sich schlicht nicht mit einem älteren Server verbinden, plane also ein, dies nach jedem Update, das erscheint, erneut auszuführen.

Step 3: PalWorldSettings.iniSchritt 3: PalWorldSettings.ini

The server ships a default config at DefaultPalWorldSettings.ini; the one you actually edit lives at:Der Server bringt eine Standardkonfiguration unter DefaultPalWorldSettings.ini mit; die Datei, die du tatsächlich bearbeitest, liegt unter:

/home/palworld/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

If that file does not exist yet, start the server once with the defaults, stop it, and it will have been created for you. Open it and set at least the server name, the admin password, and the two ports:Existiert diese Datei noch nicht, starte den Server einmal mit den Standardwerten, stoppe ihn, und sie wird dann für dich angelegt. Öffne sie und setze mindestens den Servernamen, das Admin-Passwort und die beiden Ports:

OptionSettings=(ServerName="My Server",AdminPassword="correcthorse",PublicPort=8211,PublicIP="",RCONEnabled=True,RCONPort=25575,RESTAPIEnabled=True,RESTAPIPort=8212)

Whatever keys you touch, they all live inside that same single OptionSettings=(...) line — don't split it across lines or leave a trailing comma, or you end up with a server that starts but silently ignores half the settings you thought you set. The example above shows only the keys you're likely to change on day one; the real file ships with dozens more (difficulty, rates, PvP, death penalties and so on) — leave the rest of your existing line alone and edit in place rather than pasting a shortened line over it.Welche Keys du auch anfasst, sie stehen alle in derselben einzelnen OptionSettings=(...)-Zeile — teile sie nicht über mehrere Zeilen auf und lass kein abschließendes Komma stehen, sonst endest du mit einem Server, der startet, aber die Hälfte der Einstellungen, die du gesetzt zu haben glaubst, stillschweigend ignoriert. Das Beispiel oben zeigt nur die Keys, die du am ersten Tag wahrscheinlich änderst; die echte Datei bringt Dutzende weitere mit (Schwierigkeitsgrad, Raten, PvP, Todesstrafen und so weiter) — lass den Rest deiner bestehenden Zeile in Ruhe und bearbeite an Ort und Stelle, statt eine gekürzte Zeile darüberzukopieren.

Lock the file down once you've edited it — it now holds your admin password in plaintext, and that same password is what gates both RCON and the REST API below:Sperre die Datei ab, sobald du sie bearbeitet hast — sie enthält jetzt dein Admin-Passwort im Klartext, und genau dieses Passwort schützt sowohl RCON als auch die REST-API weiter unten:

sudo chmod 600 /home/palworld/server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

The file is owned by palworld, so after this only that account and root can read it. Left at the default mode from useradd -m, it is commonly world-readable — meaning any other local account on the box, including your own sudo user, could read the credential without needing root.Die Datei gehört palworld, sodass danach nur dieser Account und root sie lesen können. Bleibt sie im Standardmodus von useradd -m, ist sie häufig für alle lesbar — das heißt, jeder andere lokale Account auf der Maschine, einschließlich deines eigenen Sudo-Users, könnte die Zugangsdaten lesen, ohne root zu brauchen.

Step 4: the game port, and the NAT IPv4 catchSchritt 4: der Spiel-Port, und die NAT-IPv4-Falle

Palworld's default game port is 8211/udp. Open it:Palworlds Standard-Spiel-Port ist 8211/udp. Öffne ihn:

sudo ufw allow 8211/udp

UDP, not TCP — the client-facing game port is UDP end to end, and a firewall rule opened as TCP will leave the process running and joinable to no one, with nothing in the logs to point at the actual cause.UDP, nicht TCP — der clientseitige Spiel-Port ist durchgängig UDP, und eine Firewall-Regel, die als TCP geöffnet wird, lässt den Prozess laufen, aber für niemanden beitretbar, ohne dass in den Logs etwas auf die eigentliche Ursache hinweist.

If your VPS gives you NAT IPv4 rather than an address of your own, you do not get to pick 8211 just because that is the default — you get a fixed, small set of forwarded ports, and the game port has to be one of them. Two ways through it: set -port= in the ExecStart line below to whichever UDP port your provider already forwards to you, and put the same number in PublicPort in PalWorldSettings.ini — the launch argument is what the server actually listens on, PublicPort is only what it advertises (Palworld does not care what number it runs on, as long as you tell players the same one), or get a dedicated IPv4, which on our plans is available on request by e-mail rather than as a self-service add-on. Read NAT IPv4 vs a dedicated IP and NAT IPv4, ports and forwarding before you order if you are not sure which situation you are in.Gibt dir dein VPS NAT-IPv4 statt einer eigenen Adresse, kannst du dir 8211 nicht einfach aussuchen, nur weil das der Standard ist — du bekommst einen festen, kleinen Satz weitergeleiteter Ports, und der Spiel-Port muss einer davon sein. Zwei Wege daran vorbei: Setze -port= in der ExecStart-Zeile weiter unten auf welchen UDP-Port auch immer dein Provider dir schon weiterleitet, und trage dieselbe Nummer als PublicPort in PalWorldSettings.ini ein — das Startargument ist der Port, auf dem der Server tatsächlich lauscht, PublicPort ist nur der, den er nach außen meldet (Palworld ist es egal, auf welcher Nummer es läuft, solange du deinen Spielern dieselbe nennst), oder besorge dir eine dedizierte IPv4, die bei unseren Tarifen auf Anfrage per E-Mail verfügbar ist, nicht als Self-Service-Add-on. Lies NAT IPv4 vs. dedizierte IP und NAT IPv4, Ports und Weiterleitung, bevor du bestellst, falls du nicht sicher bist, in welcher Situation du dich befindest.

Step 5: systemd, with a restart policy that actually helpsSchritt 5: systemd, mit einer Neustart-Policy, die tatsächlich hilft

Save the unit as /etc/systemd/system/palworld.service:Speichere die Unit als /etc/systemd/system/palworld.service:

[Unit]
Description=Palworld dedicated server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=palworld
WorkingDirectory=/home/palworld/server
ExecStart=/home/palworld/server/PalServer.sh -port=8211 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
Restart=on-failure
RestartSec=15
TimeoutStopSec=90

[Install]
WantedBy=multi-user.target

Restart=on-failure recovers from a crash; it will not save you from the slow memory climb described above, which is why a scheduled restart matters as much as this unit does on 8 GiB. Add a weekly-or-nightly systemctl restart palworld via cron or a systemd timer, timed for when nobody is on, rather than relying on the server to fail on its own.Restart=on-failure erholt sich von einem Absturz; es rettet dich nicht vor dem langsamen Speicheranstieg von oben, weshalb ein geplanter Neustart genauso wichtig ist wie diese Unit auf 8 GiB. Füge einen wöchentlichen oder nächtlichen systemctl restart palworld per Cron oder Systemd-Timer hinzu, getimt auf eine Zeit, zu der niemand online ist, statt dich darauf zu verlassen, dass der Server von selbst ausfällt.

Enable and watch it:Aktivieren und beobachten:

sudo systemctl enable --now palworld
journalctl -u palworld -f

Step 6: RCON or the REST API, for a restart that does not eat someone's progressSchritt 6: RCON oder die REST-API, für einen Neustart, der niemandem den Fortschritt frisst

A hard systemctl restart mid-session can cost whoever is playing their last few minutes if it lands between autosaves. RCON, enabled in Step 3, gives you a clean alternative: connect with any RCON client on port 25575 and issue Save to force a save on demand, or Shutdown <seconds> <message> to warn players and bring the server down gracefully on your schedule instead of systemd's.Ein harter systemctl restart mitten in der Session kann denjenigen, der gerade spielt, seine letzten paar Minuten kosten, wenn er zwischen zwei Autosaves fällt. RCON, in Schritt 3 aktiviert, gibt dir eine saubere Alternative: Verbinde dich mit einem beliebigen RCON-Client auf Port 25575 und gib Save ein, um auf Zuruf einen Save zu erzwingen, oder Shutdown <seconds> <message>, um Spieler zu warnen und den Server nach deinem eigenen Zeitplan sauber herunterzufahren statt nach dem von systemd.

The REST API on port 8212 covers the same ground over plain HTTP with basic auth (admin plus the AdminPassword from your ini), which is easier to script than an RCON client if you are wiring a save-then-restart into a cron job or a small shell script. Either interface listens only where you tell it to — do not expose 25575 or 8212 beyond your own IP or a loopback tunnel, since both grant full admin control of the server.Die REST-API auf Port 8212 deckt dasselbe über einfaches HTTP mit Basic Auth ab (admin plus das AdminPassword aus deiner ini), was leichter zu skripten ist als ein RCON-Client, wenn du ein Save-dann-Neustart in einen Cron-Job oder ein kleines Shell-Skript einbaust. Beide Schnittstellen lauschen nur dort, wo du es ihnen sagst — exponiere 25575 oder 8212 nicht über deine eigene IP oder einen Loopback-Tunnel hinaus, da beide vollen Admin-Zugriff auf den Server gewähren.

Step 7: backupsSchritt 7: Backups

The world lives under:Die Welt liegt unter:

/home/palworld/server/Pal/Saved/SaveGames/

Everything under that directory is the save — copy the whole tree, not individual files, since a Palworld save is a set of per-player and per-level data rather than one single file like some other servers use. A Save issued through RCON or the REST API first guarantees you are copying a consistent state rather than whatever happened to be on disk mid-write.Alles unter diesem Verzeichnis ist der Spielstand — kopiere den ganzen Baum, nicht einzelne Dateien, da ein Palworld-Save eine Sammlung aus spielerbezogenen und levelbezogenen Daten ist statt einer einzigen Datei wie bei manch anderen Servern. Ein per RCON oder REST-API zuvor ausgelöstes Save garantiert, dass du einen konsistenten Zustand kopierst und nicht das, was gerade mitten im Schreiben auf der Platte lag.

None of that protects you from losing the machine itself, since a copy sitting next to the world it backs up goes down with the same disk. Push a copy somewhere else on a schedule; back up your VPS covers what that looks like and what is not covered by default anywhere.Nichts davon schützt dich vor dem Verlust der Maschine selbst, da eine Kopie, die direkt neben der Welt liegt, die sie sichert, mit derselben Festplatte untergeht. Schiebe eine Kopie nach einem Zeitplan woandershin; Backup deines VPS beschreibt, wie das aussieht und was standardmäßig nirgends enthalten ist.

On overnight.hostBei overnight.host

Full disclosure: this is what we sell. Palworld's memory use climbs for hours after launch rather than settling, so size for where a session ends up, not where it starts — Elite (16 GiB) is comfortable, and Pro (8 GiB) works for a small group as long as you schedule a nightly restart to bring memory back down.Zur vollen Transparenz: Das ist, was wir verkaufen. Palworlds Speicherverbrauch steigt nach dem Start stundenlang, statt sich einzupendeln, dimensioniere also dafür, wo eine Session endet, nicht wo sie beginnt — Elite (16 GiB) ist komfortabel, und Pro (8 GiB) funktioniert für eine kleine Gruppe, solange du einen nächtlichen Neustart einplanst, um den Speicher wieder herunterzubringen.

Linux KVM VPS — EUR 4.99 to EUR 59.99 a month, on our own single-tenant bare metal in Dallas, TX and Charlotte, NC. Full hardware virtualisation (KVM), your own kernel, full root. Six tiers, vps-starter to vps-ultra. Starter is 1 vCPU, 1 GiB RAM, 25 GB disk.Linux-KVM-VPS — 4,99 bis 59,99 EUR im Monat, auf unserer eigenen Single-Tenant-Bare-Metal-Hardware in Dallas, TX und Charlotte, NC. Vollständige Hardware-Virtualisierung (KVM), eigener Kernel, volles Root. Sechs Tarife, vps-starter bis vps-ultra. Starter hat 1 vCPU, 1 GiB RAM, 25 GB Speicher.

You order in the shop, pay by card (Stripe) or SEPA bank transfer, and your login details are e-mailed to you once the service is set up. Support is e-mail, run by one person, with no guaranteed response time. All prices are final totals under the German small-business rule (§19 UStG); no VAT is added or shown.Du bestellst im Shop, zahlst per Karte (Stripe) oder SEPA-Überweisung, und deine Zugangsdaten werden dir per E-Mail zugeschickt, sobald der Dienst eingerichtet ist. Support läuft per E-Mail, von einer einzelnen Person betrieben, ohne garantierte Reaktionszeit. Alle Preise sind Endpreise. Gemäß § 19 UStG wird keine Umsatzsteuer ausgewiesen.

Order vps-elite → · Linux KVM VPS overviewvps-elite bestellen → · Übersicht Linux-KVM-VPS

Written by the person who runs overnight.host: a small, honest hosting company on dedicated bare metal — Linux VPS, game servers, web hosting. Live status at up.overnight.host.Geschrieben von der Person, die overnight.host betreibt: ein kleines, ehrliches Hosting-Unternehmen auf dedizierter Bare-Metal-Hardware — Linux-VPS, Gameserver, Webhosting. Live-Status unter up.overnight.host.

Technical guidance is informational. Plans, specifications and final prices are listed in the shop and can be ordered directly; VPS, game server, web hosting, one-click app and automation plans are provisioned automatically after payment. Custom configurations are still arranged by e-mail.Technische Hinweise dienen der Information. Pläne, Spezifikationen und Endpreise stehen im Shop und können direkt bestellt werden; VPS-, Gameserver-, Webhosting-, One-Click-App- und Automatisierungs-Pläne werden nach der Zahlung automatisch bereitgestellt. Sonderkonfigurationen werden weiterhin per E-Mail vereinbart.

FAQFAQ

How much RAM does a Palworld server need?Wie viel RAM braucht ein Palworld-Server?

8 GiB is workable for a small group of two to four players if you schedule a nightly restart to reset the climbing memory use; 16 GiB is comfortable for the same group without that habit, and becomes the realistic floor past about six concurrent players or a base-heavy world that has been running for weeks. Judge it from a server that has been up for hours, not from the number right after launch.8 GiB sind machbar für eine kleine Gruppe von zwei bis vier Spielern, wenn du einen nächtlichen Neustart einplanst, um den steigenden Speicherverbrauch zurückzusetzen; 16 GiB sind komfortabel für dieselbe Gruppe ohne diese Gewohnheit und werden zur realistischen Untergrenze ab etwa sechs gleichzeitigen Spielern oder einer basenlastigen Welt, die schon Wochen läuft. Beurteile es anhand eines Servers, der Stunden gelaufen ist, nicht anhand der Zahl direkt nach dem Start.

Which port does Palworld use, and is it UDP or TCP?Welchen Port nutzt Palworld, und ist er UDP oder TCP?

8211/udp by default; the listening port is the -port= launch argument in the systemd unit, and PublicPort in PalWorldSettings.ini should carry the same number. It is UDP end to end — a firewall rule opened as TCP is a common reason a running server shows nobody able to join.8211/udp standardmäßig; der Lausch-Port ist das Startargument -port= in der systemd-Unit, und PublicPort in PalWorldSettings.ini sollte dieselbe Nummer tragen. Er ist durchgängig UDP — eine als TCP geöffnete Firewall-Regel ist ein häufiger Grund, warum ein laufender Server niemanden beitreten lässt.

Do I need to own the game to run the dedicated server?Muss ich das Spiel besitzen, um den Dedicated Server zu betreiben?

No. The dedicated server is a separate free Steam application (2394010) that installs anonymously through SteamCMD. You do need the game itself to actually play.Nein. Der Dedicated Server ist eine eigene kostenlose Steam-Anwendung (2394010), die sich anonym über SteamCMD installiert. Um tatsächlich zu spielen, brauchst du das Spiel selbst.

How do I restart the server without losing recent progress?Wie starte ich den Server neu, ohne aktuellen Fortschritt zu verlieren?

Use RCON or the REST API to issue a Save first, then either Shutdown through RCON with a warning message or a plain systemctl restart once the save has completed. A cron job that saves and then restarts on a schedule is the practical version of this for a group that plays most nights.Nutze RCON oder die REST-API, um zuerst ein Save auszulösen, dann entweder Shutdown per RCON mit einer Warnmeldung oder einen einfachen systemctl restart, sobald der Save abgeschlossen ist. Ein Cron-Job, der nach Zeitplan speichert und dann neu startet, ist die praktische Version davon für eine Gruppe, die an den meisten Abenden spielt.

What if my VPS can't forward the default port 8211?Was, wenn mein VPS den Standardport 8211 nicht weiterleiten kann?

Set -port= in the ExecStart line to a UDP port your provider does forward, put the same number in PublicPort in PalWorldSettings.ini, open that port in your firewall instead, and tell players the new port. The alternative is a dedicated IPv4, which removes the forwarded-port limit entirely but is arranged by e-mail rather than self-service on most budget plans.Setze -port= in der ExecStart-Zeile auf einen UDP-Port, den dein Provider tatsächlich weiterleitet, trage dieselbe Nummer als PublicPort in PalWorldSettings.ini ein, öffne stattdessen diesen Port in deiner Firewall, und teile deinen Spielern den neuen Port mit. Die Alternative ist eine dedizierte IPv4, die das Limit weitergeleiteter Ports komplett aufhebt, aber bei den meisten Budget-Tarifen per E-Mail statt per Self-Service arrangiert wird.

Ready to order?Bereit zu bestellen?

Prices are final totals; no VAT is shown (§19 UStG). Need something the shop does not list? Email us for a written offer.Alle Preise sind Endpreise ohne ausgewiesene USt. (§19 UStG). Du brauchst etwas, das nicht im Shop steht? Schreib uns für ein schriftliches Angebot.

Order now →Jetzt bestellen → Request a custom configIndividuelle Konfiguration anfragen