What you need
- Any 64-bit PC or VM running Ubuntu Server
- RAM: 16 GB recommended; 8 GB may cause issues
- Disk: ~30 GB free (the download is 12–15 GB)
- CPU: 4 cores
- A user account with
sudo— don't run game servers as root
You do not need to own Palworld to host — the server (Steam app 2394010) downloads free via anonymous login. Only players need the game.
source: docs.palworldgame.com — server requirements
Step 1 — Install SteamCMD
SteamCMD needs the multiverse repo and 32-bit support enabled:
sudo add-apt-repository multiverse -y
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd -y
Step 2 — Download the Palworld server
+force_install_dir puts the files in a predictable place instead of SteamCMD's version-dependent hidden paths.
/usr/games/steamcmd +force_install_dir ~/PalServer +login anonymous +app_update 2394010 validate +quit
This is the long step: 12–15 GB. Wait for:
Success! App '2394010' fully installed.
If it stalls or errors, re-run the same command — it resumes and re-validates.
Step 3 — Fix steamclient.so
The server boots without this fix, but the library is part of how it identifies players. Do this before anyone plays.
/usr/games/steamcmd +force_install_dir ~/steamworks-sdk +login anonymous +app_update 1007 +quit
mkdir -p ~/.steam/sdk64/
cp ~/steamworks-sdk/linux64/steamclient.so ~/.steam/sdk64/
Step 4 — Start the server
cd ~/PalServer
./PalServer.sh
An error at startup is normal — every launch prints:
dlopen failed trying to load: steamclient.so ... No such file or directory
Ignore it. The next line should say OK — that means Step 3 worked:
[S_API] SteamAPI_Init(): Loaded '/home/YOU/.steam/sdk64/steamclient.so' OK.
The server is up when it prints Setting breakpad minidump AppID and sits there.
Step 5 — Join
In Palworld: Join Multiplayer Game → Direct Connect → enter SERVER_IP:8211
Same network: connect to the server's LAN IP (find it with ip a).
Friends over the internet: pick one:
Can port forward → 1. CGNAT or friends who won't install anything → 2. Small trusted group → 3. Locked-down homelab → 4.
Quick reference
# Install SteamCMD
sudo add-apt-repository multiverse -y
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install steamcmd -y
# Download server
/usr/games/steamcmd +force_install_dir ~/PalServer +login anonymous +app_update 2394010 validate +quit
# steamclient.so fix (BEFORE first launch)
/usr/games/steamcmd +force_install_dir ~/steamworks-sdk +login anonymous +app_update 1007 +quit
mkdir -p ~/.steam/sdk64/
cp ~/steamworks-sdk/linux64/steamclient.so ~/.steam/sdk64/
# Firewall
sudo ufw allow 8211/udp
# Launch
cd ~/PalServer && ./PalServer.sh
# Join in-game: Direct Connect → SERVER_IP:8211