Palworld launched and immediately everyone I knew was playing it. The base-building, the Pals, the cooperative multiplayer — the game is genuinely fun. But the official servers are crowded and the multiplayer is laggy when your friends are in different countries.
Running a dedicated server on a VPS gives you a private world that stays online 24/7, with settings you control, in a server region that works well for your group. The server side is lighter than you might expect — the client is the demanding part.
The world generation during the first startup does spike memory higher than the steady-state, which I'll call out explicitly with the right server sizing for your player count.
This guide sets up a Palworld dedicated server on Ubuntu 22.04 using SteamCMD.
I run game servers on Tencent Cloud Lighthouse. For Palworld, pick a region close to your players for the best latency — the game is sensitive to ping, especially in combat. Lighthouse has data centers in North America, Europe, Singapore, Tokyo, and more, so you can usually find a region within low latency of your player group. The spec upgrade path is also useful: start with a baseline plan and upgrade if you find the world needs more RAM as it grows, without re-provisioning the server.
- Key Takeaways
| Players | Minimum RAM | Recommended RAM | Notes |
|---|---|---|---|
| 1–4 | 8 GB | 12 GB | Small world, light exploration |
| 4–16 | 12 GB | 16 GB | Active base building, raids |
| 16–32 | 16 GB | 32 GB | Large servers with multiple bases |
CPU: Palworld is CPU-intensive during base raids and Pal activities. 4+ vCPU cores recommended for smooth gameplay.
Disk: ~10 GB for the game server files + world data.
| Requirement | Notes |
|---|---|
| Cloud server | Tencent Cloud Lighthouse Ubuntu 22.04 |
| 8+ GB RAM | Minimum for a functional server |
| Region close to players | Choose US East/West, EU, or Asia-Pacific |
| Steam account | Required for SteamCMD (anonymous download works) |
Cost: The Standard plan (4 vCPU / 8 GB RAM) starts at ~$12/month for a small group. Check current promotions for new user discounts.
ssh ubuntu@YOUR_SERVER_IP
sudo apt update && sudo apt upgrade -y
Add swap if your RAM is close to the minimum:
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Enable 32-bit architecture (required by SteamCMD)
sudo dpkg --add-architecture i386
sudo apt update
# Install dependencies
sudo apt install -y lib32gcc-s1 steamcmd
# Create a dedicated user for the game server
sudo adduser --disabled-password --gecos "" palworld
sudo su - palworld
Install the Palworld dedicated server via SteamCMD:
# Still as palworld user
/usr/games/steamcmd +login anonymous \
+force_install_dir ~/palworld-server \
+app_update 2394010 validate \
+quit
App ID 2394010 is the Palworld Dedicated Server.
This downloads ~8 GB and takes 5-15 minutes. When done:
ls ~/palworld-server/
# Should show Pal/, PalServer.sh, PalServer-Linux-Test, etc.
exit # Back to ubuntu user
The server creates default config files on first run. Run it once briefly:
sudo su - palworld
cd ~/palworld-server
./PalServer.sh &
sleep 30
kill %1 # Stop after config files are created
exit
Now edit the configuration:
sudo nano /home/palworld/palworld-server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Key settings to configure:
[/Script/Pal.PalGameWorldSettings]
OptionSettings=(
ServerPlayerMaxNum=16,
ServerName="My Palworld Server",
ServerDescription="Private server for friends",
AdminPassword="your_admin_password",
ServerPassword="", ; Leave empty for public, or set to require password
bUseAuth=True,
RCONEnabled=True,
RCONPort=25575,
Region="",
bBanListEnabled=True,
; Gameplay settings
DayTimeSpeedRate=1.000000,
NightTimeSpeedRate=1.000000,
ExpRate=1.000000, ; Increase for faster leveling (e.g., 2.0)
PalCaptureRate=1.000000,
PalSpawnNumRate=1.000000,
PalDamageRateAttack=1.000000,
PalDamageRateDefense=1.000000,
PlayerDamageRateAttack=1.000000,
PlayerDamageRateDefense=1.000000,
; Difficulty
bEnablePlayerToPlayerDamage=False, ; PvP
bEnableFriendlyFire=False,
bEnableInvaderEnemy=True,
DeathPenalty=All,
)
Create a systemd service file:
sudo nano /etc/systemd/system/palworld.service
[Unit]
Description=Palworld Dedicated Server
After=network.target
[Service]
Type=simple
User=palworld
WorkingDirectory=/home/palworld/palworld-server
ExecStart=/home/palworld/palworld-server/PalServer.sh \
-port=8211 \
-players=16 \
-useperfthreads \
-NoAsyncLoadingThread \
-UseMultithreadForDS
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable palworld
sudo systemctl start palworld
# Monitor startup (takes 2-5 minutes on first run)
sudo journalctl -u palworld -f
# Wait for: Running...
Palworld uses UDP ports. In the Lighthouse console firewall and UFW:
sudo ufw allow 8211/udp # Game port (default)
sudo ufw allow 27015/udp # Steam query port
sudo ufw allow 25575/tcp # RCON (optional, admin remote console)
Also open these in the Lighthouse console firewall tab.
YOUR_SERVER_IP:8211World files are in /home/palworld/palworld-server/Pal/Saved/.
nano ~/backup_palworld.sh
#!/bin/bash
BACKUP_DIR=/home/ubuntu/backups/palworld
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Stop server briefly for consistent backup
sudo systemctl stop palworld
sleep 5
tar czf $BACKUP_DIR/palworld_world_$DATE.tar.gz \
/home/palworld/palworld-server/Pal/Saved/
sudo systemctl start palworld
find $BACKUP_DIR -mtime +7 -delete
echo "Palworld backup complete: $DATE"
chmod +x ~/backup_palworld.sh
(crontab -l; echo "0 4 * * * ~/backup_palworld.sh") | crontab -
The flags in the systemd ExecStart line:
-useperfthreads = Use performance threads for optimization
-NoAsyncLoadingThread = Reduces stuttering during loading
-UseMultithreadForDS = Enable multi-threading for dedicated server
# Real-time CPU and RAM usage
htop
# Palworld process specifically
ps aux | grep PalServer
If you're experiencing lag, reduce the Pal spawn rate in settings:
PalSpawnNumRate=0.7 ; 70% of default spawn rate
Palworld generates new world chunks as players explore. This causes temporary RAM spikes — sometimes well above the normal steady-state memory usage.
If the server crashes immediately after new areas are explored:
Monitor RAM during a session:
watch -n 5 free -h
The server's normal RAM usage is 2-4 GB. During world generation, it can spike to 6-8 GB. Plan your server RAM accordingly.
Connect via RCON (if enabled) or use these commands in the server console:
# Shutdown server gracefully
Shutdown 60 # Shutdown in 60 seconds with warning
# Kick a player (by Steam ID)
KickPlayer 12345678
# Ban a player
BanPlayer 12345678
# Teleport a player to coordinates
TeleportToPlayer 12345678 0 0 0
# Save the world immediately
Save
| Issue | Likely Cause | Fix |
|---|---|---|
| Connection refused | Service not running or wrong port | Check systemctl status SERVICE and verify firewall rules |
| Permission denied | Wrong file ownership or permissions | Check file ownership with ls -la and use chown/chmod to fix |
| 502 Bad Gateway | Backend service not running | Restart the backend service; check logs with journalctl -u SERVICE |
| SSL certificate error | Certificate expired or domain mismatch | Run sudo certbot renew and verify domain DNS points to server IP |
| Service not starting | Config error or missing dependency | Check logs with journalctl -u SERVICE -n 50 for specific error |
| Out of disk space | Logs or data accumulation | Run df -h to identify usage; clean logs or attach CBS storage |
| High memory usage | Too many processes or memory leak | Check with htop; consider upgrading instance plan if consistently high |
| Firewall blocking traffic | Port not open in UFW or Lighthouse console | Open port in Lighthouse console firewall AND sudo ufw allow PORT |
What server size do I need for a Palworld server?
Check the requirements section in this guide. Generally: more RAM = more players. Start with the recommended specs and monitor actual usage with htop before scaling up.
How do I keep the Palworld server running when I close my SSH session?
Use screen, tmux, or systemd to run the server as a background process. The guide covers setting up a systemd service for automatic startup and crash recovery.
How do I update the Palworld server software?
Stop the server, download the new version, replace the old binary or files, and restart. Always back up your world/save data first. Check the game's official documentation for version-specific migration notes.
How do I protect my server from unwanted players?
Use password protection and/or whitelist mode (if supported). Restrict the server port in UFW to known IP addresses if it's a private server for a small group.
Start your Palworld server today:
👉 Tencent Cloud Lighthouse — High-performance VPS for game servers
👉 View current pricing and promotions
👉 Explore all active deals and offers