How to Set Up a Palworld Dedicated Server in 2026
Palworld's built-in co-op limits you to 4 players in a session that disappears when the host logs off. A dedicated server removes those restrictions -- supporting up to 32 players in a persistent world that runs 24/7. This guide covers installation, configuration, optimization, and troubleshooting.
---
What You Will Need
Palworld is one of the more resource-intensive dedicated servers you can run. Each connected player increases RAM usage substantially.
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | Quad-core 2.8 GHz | 6-core 3.0 GHz+ |
| RAM | 8GB | 16GB+ |
| Storage | 20GB SSD | 40GB SSD |
| Bandwidth | 5 Mbps upload | 20 Mbps upload |
| OS | Windows 10/11 or Ubuntu 20.04+ | Windows Server 2019+ or Ubuntu 22.04 LTS |
Player Scaling Guide
| Players | CPU | RAM | Storage | Bandwidth |
|---|---|---|---|---|
| 1-4 | 4 cores | 8GB | 20GB | 5 Mbps |
| 5-8 | 4 cores | 12GB | 25GB | 10 Mbps |
| 9-16 | 4+ cores | 16GB | 30GB | 15 Mbps |
| 17-32 | 6+ cores | 32GB | 40GB | 20+ Mbps |
Important: Palworld servers are memory-hungry. RAM usage grows as players explore, build bases, and capture Pals. Schedule regular restarts every 6-12 hours to reclaim memory.
Software Requirements
- >SteamCMD - Valve's command-line client for downloading server files
- >Static IP address or dynamic DNS service
- >Firewall / router access for port forwarding
Step 1: Install SteamCMD
Windows
C:\steamcmdC:\steamcmdsteamcmd.exe -- it will self-update on first launchLinux
Ubuntu / Debian:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc-s1 steamcmd -y
Manual install:
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh
---
Step 2: Download Palworld Dedicated Server
The server has Steam App ID 2394010. It is free and does not require a Palworld game license.
Using a SteamCMD Script
Create update_palworld.txt:
@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
force_install_dir C:\palworld_server
login anonymous
app_update 2394010 validate
quit
On Linux, changeforce_install_dirto/home/palworld/palworld_server.
Run it:
Windows:
C:\steamcmd\steamcmd.exe +runscript C:\steamcmd\update_palworld.txt
Linux:
~/steamcmd/steamcmd.sh +runscript ~/steamcmd/update_palworld.txt
Or use a one-liner:
~/steamcmd/steamcmd.sh +login anonymous +app_update 2394010 validate +quit
Download size: ~5-7 GB. Expect 10-30 minutes.
---
Step 3: Server Configuration
All settings live in a single file: PalWorldSettings.ini.
Configuration File Location
- >Windows:
C:\palworld_server\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini - >Linux:
/home/palworld/palworld_server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Windows:
copy "C:\palworld_server\DefaultPalWorldSettings.ini" "C:\palworld_server\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini"
Linux:
cp ~/palworld_server/DefaultPalWorldSettings.ini ~/palworld_server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Settings Format
The file uses a single long line inside [/Script/Pal.PalGameWorldSettings] with comma-separated key-value pairs:
[/Script/Pal.PalGameWorldSettings]
OptionSettings=(Difficulty=None,DayTimeSpeedRate=1.000000,NightTimeSpeedRate=1.000000,ExpRate=1.000000,PalCaptureRate=1.000000,PalSpawnNumRate=1.000000,DeathPenalty=All,bIsPvP=False,ServerPlayerMaxNum=32,ServerName="My Server",AdminPassword="",ServerPassword="",PublicPort=8211,RCONEnabled=False,RCONPort=25575,bIsMultiplay=True,CoopPlayerMaxNum=32)
Tip: Use the PalworldSettingsGenerator web tool to build your configuration visually.
Server Identity Settings
| Setting | Default | Description |
|---|---|---|
ServerName | "Default Palworld Server" | Display name in server browser |
ServerDescription | "" | Server description |
AdminPassword | "" | Password for admin commands and RCON |
ServerPassword | "" | Join password (empty = public) |
PublicPort | 8211 | Primary game port (UDP) |
ServerPlayerMaxNum | 32 | Maximum concurrent players |
RCONEnabled | False | Enable remote console |
RCONPort | 25575 | RCON port |
Gameplay Settings
| Setting | Default | Description |
|---|---|---|
ExpRate | 1.0 | XP multiplier |
PalCaptureRate | 1.0 | Capture success multiplier |
PalSpawnNumRate | 1.0 | Wild Pal density |
DayTimeSpeedRate | 1.0 | Daytime speed (lower = longer days) |
NightTimeSpeedRate | 1.0 | Nighttime speed (lower = longer nights) |
CollectionDropRate | 1.0 | Resource gathering multiplier |
EnemyDropItemRate | 1.0 | Enemy loot multiplier |
DeathPenalty | All | Drop on death: None, Item, ItemAndEquipment, All |
WorkSpeedRate | 1.0 | Pal work speed at bases |
PalEggDefaultHatchingTime | 72.0 | Egg hatching time in hours |
Difficulty and PvP Settings
| Setting | Default | Description |
|---|---|---|
PalDamageRateAttack | 1.0 | Pal attack multiplier |
PalDamageRateDefense | 1.0 | Damage taken by Pals |
PlayerDamageRateAttack | 1.0 | Player attack multiplier |
PlayerDamageRateDefense | 1.0 | Damage taken by players |
PlayerStomachDecreaseRate | 1.0 | Hunger drain rate |
PlayerStaminaDecreaseRate | 1.0 | Stamina drain rate |
bIsPvP | False | Enable PvP combat |
bEnablePlayerToPlayerDamage | False | Player damage to other players |
bEnableFriendlyFire | False | Friendly fire within guilds |
bEnableInvaderEnemy | True | Base raids by wild Pals |
bExistPlayerAfterLogout | False | Player body persists after logout |
Max Players and Base Settings
| Setting | Default | Description |
|---|---|---|
CoopPlayerMaxNum | 4 | Co-op invite limit |
GuildPlayerMaxNum | 20 | Max players per guild |
BaseCampMaxNum | 128 | Max base camps in world |
BaseCampMaxNumInGuild | 3 | Max bases per guild |
BaseCampWorkerMaxNum | 15 | Max Pal workers per base |
DropItemMaxNum | 3000 | Max items on ground |
AutoSaveSpan | 30.0 | Auto-save interval (minutes) |
Example: Casual PvE Server
[/Script/Pal.PalGameWorldSettings]
OptionSettings=(Difficulty=None,ExpRate=2.000000,PalCaptureRate=1.500000,CollectionDropRate=2.000000,DeathPenalty=Item,PlayerStomachDecreaseRate=0.500000,WorkSpeedRate=1.500000,PalEggDefaultHatchingTime=12.000000,bEnableInvaderEnemy=False,bIsPvP=False,ServerPlayerMaxNum=16,ServerName="Chill Palworld",AdminPassword="youradminpass",PublicPort=8211,bIsMultiplay=True)
---
Step 4: Community Server vs Dedicated Server
| Feature | Co-op (P2P) | Dedicated Server |
|---|---|---|
| Max players | 4 | 32 |
| Uptime | Host must be online | Runs 24/7 |
| Configuration | Limited | Full PalWorldSettings.ini |
| Admin tools | None | RCON + in-game commands |
| GPU required | Yes (host plays) | No (headless) |
---
Step 5: Starting the Server
Windows
Create start_palworld.bat:
@echo off
cd /d C:\palworld_server
start PalServer.exe -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
echo Server is starting...
pause > nul
Linux
Create start_palworld.sh:
#!/bin/bash
PALWORLD_DIR="/home/palworld/palworld_server"
cd "$PALWORLD_DIR" || exit 1
export SteamAppId=2394010
export LD_LIBRARY_PATH="$PALWORLD_DIR/linux64:$LD_LIBRARY_PATH"
./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
chmod +x start_palworld.sh
./start_palworld.sh
Startup Flags
| Flag | Purpose |
|---|---|
-useperfthreads | Optimizes thread usage |
-NoAsyncLoadingThread | Reduces hitching during loading |
-UseMultithreadForDS | Enables multi-threaded server processing |
ss -tuln | grep 8211 # Linux
netstat -an | findstr 8211 # Windows
---
Step 6: Port Forwarding
Required Ports
| Port | Protocol | Purpose |
|---|---|---|
| 8211 | UDP | Primary game traffic |
| 27015 | UDP | Steam query port (server browser) |
Steps
ipconfig (Windows) or ip addr show (Linux)Windows:
netsh advfirewall firewall add rule name="Palworld Server" dir=in action=allow protocol=UDP localport=8211
netsh advfirewall firewall add rule name="Palworld Query" dir=in action=allow protocol=UDP localport=27015
Linux (ufw):
sudo ufw allow 8211/udp
sudo ufw allow 27015/udp
sudo ufw reload
curl -s ifconfig.me---
Step 7: Connecting to Your Server
Direct Connect
your.public.ip:8211Server Browser
Public servers (no password) appear in the community server list. Search by your server name. New servers may take 5-10 minutes to appear.LAN
Use the server's local IP (e.g.,192.168.1.100:8211).---
Admin Commands
Authenticate in-game by opening chat (Enter) and typing /AdminPassword youradminpassword. Or enable RCON (RCONEnabled=True) and connect with an RCON client on port 25575.
| Command | Description |
|---|---|
/Broadcast | Send message to all players |
/KickPlayer | Kick a player |
/BanPlayer | Ban a player |
/UnBanPlayer | Unban a player |
/Save | Force world save |
/Shutdown | Shutdown with countdown |
/ShowPlayers | List connected players with Steam IDs |
/Info | Display server information |
/TeleportToPlayer | Teleport to a player |
/TeleportToMe | Teleport a player to you |
/ShowPlayers to find Steam IDs for kick and ban commands. The ban list is stored at Pal/Saved/SaveGames/banlist.txt.---
Backup Strategies
Save File Location
- >Windows:
C:\palworld_server\Pal\Saved\SaveGames\0\\ - >Linux:
/home/palworld/palworld_server/Pal/Saved/SaveGames/0//
Level.sav (world data), LevelMeta.sav (metadata), Players/ (player saves), and WorldOption.sav (world options).Backup Commands
Issue /Save in-game first, then copy the SaveGames folder:
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
cp -r ~/palworld_server/Pal/Saved/SaveGames ~/backups/palworld_$TIMESTAMP
For automated backups, create a script that copies, compresses, and rotates old backups, then schedule it via cron:
0 */6 * * * /home/palworld/backup_palworld.sh >> /home/palworld/backups/backup.log 2>&1
---
Performance Optimization
Memory Management
Palworld's RAM usage grows steadily during runtime. Key strategies:
- >Restart every 6-12 hours to reclaim leaked memory
- >Reduce
DropItemMaxNumto 1500-2000 to lower memory overhead - >Lower
BaseCampMaxNumfor smaller servers - >Use an SSD -- disk I/O matters for world loading and saving
- >Monitor usage:
top -p $(pgrep PalServer)on Linux
Save Interval Tuning
Large servers with many bases can lag during auto-saves. Increase AutoSaveSpan to 45-60 minutes for smoother gameplay, or decrease to 10-15 minutes on small servers to minimize crash data loss.
Network Tips
- >Use wired ethernet, not Wi-Fi
- >Set QoS rules to prioritize UDP traffic on port 8211
- >Plan for ~5 Mbps upload per 4 connected players
Auto-Restart and Crash Recovery
Linux: systemd Service
Create /etc/systemd/system/palworld.service:
[Unit]
Description=Palworld Dedicated Server
After=network.target
[Service]
Type=simple
User=palworld
Group=palworld
WorkingDirectory=/home/palworld/palworld_server
ExecStartPre=/home/palworld/steamcmd/steamcmd.sh +login anonymous +app_update 2394010 +quit
ExecStart=/home/palworld/palworld_server/PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
Restart=always
RestartSec=30
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable palworld
sudo systemctl start palworld
Useful commands: systemctl status palworld, journalctl -u palworld -f, systemctl restart palworld.
The ExecStartPre line auto-updates before each start. Remove it to update manually.Windows: Auto-Restart Script
Create auto_restart_palworld.bat:
@echo off
:loop
echo [%date% %time%] Starting Palworld server...
cd /d C:\palworld_server
PalServer.exe -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
echo [%date% %time%] Server stopped. Restarting in 15 seconds...
timeout /t 15
goto loop
---
Troubleshooting Common Issues
Memory Leaks / High RAM Usage
DropItemMaxNum and BaseCampMaxNumtop or Task ManagerConnection Timeouts
PublicPort matches your forwarded portIP:8211World Save Corruption
WorldOption.sav (resets settings, preserves world)Server Not in Browser
ServerPassword for public listingPlayers Rubber-Banding
PalSpawnNumRate and BaseCampWorkerMaxNumServer Crashes on Startup
validatePalWorldSettings.ini formatting (malformed line = no boot)lib32gcc-s1 is installed on Linux---
Updating the Server
Stop the server, then run SteamCMD:
~/steamcmd/steamcmd.sh +login anonymous +app_update 2394010 validate +quit
The validate flag checks file integrity. Clients on a newer version cannot connect to an older server, so keep your server updated after each Pocketpair patch.
Check your current build:
grep "buildid" ~/palworld_server/steamapps/appmanifest_2394010.acf
Compare against SteamDB to confirm you are up to date.
---
Quick Reference
Default Ports
- >Game: 8211 UDP
- >Query: 27015 UDP
- >RCON: 25575 TCP (if enabled)
Key File Locations
| File | Windows | Linux |
|---|---|---|
| Executable | PalServer.exe | PalServer.sh |
| Settings | Pal\Saved\Config\WindowsServer\PalWorldSettings.ini | Pal/Saved/Config/LinuxServer/PalWorldSettings.ini |
| Saves | Pal\Saved\SaveGames\0\ | Pal/Saved/SaveGames/0/ |
| Logs | Pal\Saved\Logs\ | Pal/Saved/Logs/ |
| Default config | DefaultPalWorldSettings.ini | DefaultPalWorldSettings.ini |
Useful Links
- >Palworld Wiki
- >PalworldSettingsGenerator
- >SteamCMD Docs
- >Palworld Steam Discussions
- >SteamDB - Server Builds
Conclusion
Running a Palworld dedicated server takes some initial setup, but the result is a persistent world where your community can explore, build, and catch Pals together. Remember:
- >RAM is your bottleneck -- 16GB+ and regular restarts
- >Back up your saves -- automate and keep two weeks of history
- >Keep updated -- version mismatches block connections
- >Use systemd on Linux for crash recovery