A Palworld dedicated server VPS needs 16 GB of RAM, and Pocketpair’s official server guide recommends 4 or more CPU cores. The same guide recommends 32 GB or more for stable operation and warns that 8 GB boots but raises the risk of out-of-memory crashes. On Linux you install the server with SteamCMD (app ID 2394010), allow UDP port 8211 in the firewall and run PalServer.sh under systemd.
This guide follows Pocketpair’s Palworld 1.0 server documentation (docs v1.0.4, server build v1.0.5) on Ubuntu 24.04 LTS. It adds a daily restart timer, maps each documented RAM tier to a real plan, and prices one weekend of play against keeping the world online all month.
Key takeaways
- Pocketpair's docs require 16 GB of RAM for a Palworld dedicated server, recommend 4 or more CPU cores and 32 GB or more for stable operation, and say 8 GB boots with a higher risk of out-of-memory crashes.
- The only port the official docs require is UDP 8211; keep the REST API (8212) and the deprecated RCON (25575) closed to the internet.
- In 1.0 the docs say leaving -useperfthreads, -NoAsyncLoadingThread and -UseMultithreadForDS unset may improve performance; RCON is deprecated, and server-side mods still work only on the Windows server.
- Pocketpair has shipped server memory-leak fixes in v0.3.10, v0.5.3 and v1.0, so a scheduled daily restart under systemd is cheap insurance.
- A stopped VPS is still billed, so for weekend-only play back up Pal/Saved, delete the server and restore the world next session.
How much RAM does a Palworld dedicated server VPS need?
Pocketpair publishes one requirements table for the whole server, not a per-player chart (docs v1.0.4, checked October 2026):
| Resource | Official requirement | What it means on a VPS |
|---|---|---|
| CPU | 4 cores or more (recommended) | Pick a plan with at least 4 vCPU |
| Memory | 16 GB; 32 GB or more for stable operation; 8 GB boots but crashes from running out of memory become more likely | 16 GB is the baseline, 8 GB is a known-risk floor |
| Network | UDP port 8211 (default, changeable) | One firewall rule; a VPS has no home router to forward |
| Storage | Fast SSD; low-performance storage may corrupt save data | NVMe is the right class of disk |
| OS | 64-bit Windows or 64-bit Linux (Ubuntu, AlmaLinux and others) | Ubuntu 24.04 LTS is the base of Pocketpair’s own Docker image |
8GB is also bootable, but increases the possibility of server crashes due to out of memory.
Pocketpair, Palworld Server Guide: Requirements
The English page says “larger than 32GB”; the Japanese original reads “32GB or more recommended for stable operation”, so a 32 GB server meets the recommendation. Disk needs are modest by comparison: the file listing of Pocketpair’s official v1.0.5 server image adds up to about 7.3 GB for the server package, before saves and backups.
Which plan matches each documented tier?
Here are Pocketpair’s three memory numbers mapped to HourlyVPS plans. The “fit” column is our reasoning from the docs, not a benchmark.
| Documented tier | Plan | vCPU / RAM | Fit |
|---|---|---|---|
| 8 GB: boots, higher crash risk | Quartz Q8 (quartz-8gb) | 4 shared / 8 GB | Short sessions for a small group, with the daily restart; expect more out-of-memory crashes. |
| 16 GB: the stated requirement | Chrono C16 (chrono-16gb) | 4 dedicated / 16 GB | The default pick: meets the RAM and core numbers on CPU time that is not shared. |
| 16 GB, lower price | Quartz Q16 (quartz-16gb) | 8 shared / 16 GB | Same RAM, more vCPU but shared; fine for casual worlds. |
| 32 GB or more: stable operation | Chrono C32 (chrono-32gb) | 8 dedicated / 32 GB | Large or long-running community worlds. |
Chrono C16
KVM · 25 Gbps port · Istanbul · initial credit $5
- vCPU
- 4 dedicated
- RAM
- 16 GB
- NVMe
- 200 GB
- Traffic
- Istanbul: 8 TB/month
- Per hour$0.13/hour
- Per day (24 h)$3.12/day
- Monthly cap$65.00/month
The docs do not scale RAM by player count. The settings they flag as adding load are about how big the world grows: BaseCampWorkerMaxNum (Pals per base, max 50), BaseCampMaxNumInGuild (bases per guild, max 10) and PalSpawnNumRate, per the configuration reference. If you raise those, size up rather than down.
What changed for dedicated servers in Palworld 1.0?
Palworld 1.0 was released on July 10, 2026, and the current server build is v1.0.5 (September 15, 2026), according to Pocketpair’s release changelog and the v1.0.5 patch notes. The first three points below are new in 1.0; the last three are older changes that 2024-era guides still miss:
- Performance flags are no longer the default advice. The 0.7.3 arguments table said
-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDSimprove performance on multi-threaded CPUs; the 1.0.4 table says leaving them unset may improve performance. Older guides, and even the samplecompose.yamlin Pocketpair’s Docker repository, still pass them. - New default difficulty. The 1.0 changelog says the default world settings for dedicated servers now closely match single-player Normal difficulty.
- Voice chat is new, and server-only. The 1.0 changelog adds in-game voice chat, available only when enabled in a dedicated server’s world settings (
bEnableVoiceChat, defaultFalse). - RCON is on its way out. Deprecated since the 0.5.0 docs, it is now scheduled to stop working in an upcoming update. Use the REST API instead (port 8212, off by default).
- Server-side mods are still Windows-only. The mods page says server-side mods currently work only on the Windows edition of the dedicated server.
- The community-server flag is
-publiclobby. Some tutorials still show-EpicApp=PalServer; every docs version Pocketpair still publishes, from 0.1.5.1 to 1.0.4, uses-publiclobby.
Tip: Start without the three performance flags, as the 1.0 docs suggest. To compare, enable the REST API and read serverfps and serverframetime with curl -s -u admin:YOUR_ADMIN_PASSWORD http://localhost:8212/v1/api/metrics, once with the flags and once without.
Private dedicated server or community server?
The server overview defines two types. A community server is the same dedicated server, registered in the in-game server list. Both are cross-play by default for Steam, Xbox/Microsoft Store PC, Mac and PS5.
| Dedicated (private) | Community | |
|---|---|---|
| How players join | Type IP address and port in the field below the server list | Pick it from the Community server list |
| Launch option | None | -publiclobby (see community server setup) |
| Xbox and PS5 players | The docs say a community server is required | Supported |
| Visible to strangers | No | Yes; set ServerPassword to keep it to friends |
| If auto-detection fails | Not applicable | -publicip= and -publicport= |
How to install a Palworld dedicated server on Ubuntu 24.04
Run these steps as a non-root sudo user over SSH. If this is a fresh server, connect to the VPS with an SSH key and work through the new-VPS security checklist first: key-only login, no root login, updates on.
1. Update the system and open the firewall
sudo apt update && sudo apt full-upgrade -y
Allow SSH before you enable the firewall, or you lock yourself out. Then allow the game port, as shown in Ubuntu’s ufw guide:
sudo ufw allow 22/tcp
sudo ufw allow 8211/udp
sudo ufw enable
sudo ufw status verbose
UDP 8211 is the only port in Pocketpair’s requirements, and the official Compose sample publishes only 8211/udp. Some third-party guides also open UDP 27015 or TCP 25575. The docs never list 27015, and 25575 is the deprecated RCON port, which should stay closed.
2. Install SteamCMD and the runtime libraries
Valve’s SteamCMD page recommends the distribution package. On Ubuntu it lives in the multiverse repository and is a 32-bit (i386) package:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd
The installer shows the Steam license and stops unless you select I AGREE. Next, install the packages that Pocketpair’s official Docker image adds on its Ubuntu 24.04 base. The restart job later in this guide uses curl:
sudo apt install curl libatomic1 libasound2t64 libpulse0 libx11-6
Debian 12: SteamCMD comes from the non-free component, and Valve’s wiki notes that add-apt-repository no longer works on Bookworm, so add non-free to your APT sources by hand. The audio library is named libasound2 there instead of libasound2t64.
3. Create a dedicated steam user
Valve warns against running SteamCMD as root. Create a steam user and switch to it:
sudo useradd -m -s /bin/bash steam
sudo -iu steam
4. Download the server with SteamCMD
As the steam user, download app 2394010 (Palworld Dedicated Server). It needs no Steam account or game purchase. The fixed install directory keeps every path in this guide predictable; Valve’s docs say to put +force_install_dir before the login.
/usr/games/steamcmd +force_install_dir /home/steam/palserver +login anonymous +app_update 2394010 validate +quit
5. Start it once to generate the folders
The docs note that the configuration directories only appear after the first start. Start the server, wait about a minute, then stop it with Ctrl+C:
cd /home/steam/palserver
./PalServer.sh -port=8211
Prefer Docker? Use Pocketpair’s official image
Pocketpair also publishes an official image, ghcr.io/pocketpairjp/palserver (tag v1.0.5.102999 as of October 2026), with a sample compose.yaml in its GitHub repository. The sample publishes only 8211/udp and keeps saves and settings in ./Saved; consider removing its three performance flags, per the 1.0 arguments table. To update, the README says to back up, then change the image tag to the new game version. Pocketpair’s Docker Desktop warning concerns Windows and macOS; on a Linux VPS, follow our guide to installing Docker Engine on a VPS.
Where is the Palworld server settings file?
On Linux the live settings file is /home/steam/palserver/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini. Still as the steam user, copy the default file into place and edit the copy, as the docs describe. Editing DefaultPalWorldSettings.ini itself changes nothing, and the folder is LinuxServer, not WindowsServer.
cp /home/steam/palserver/DefaultPalWorldSettings.ini /home/steam/palserver/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
nano /home/steam/palserver/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Every setting sits on one long line inside OptionSettings=(…). Change values in place and keep the commas and parentheses intact. Make changes while the server is stopped, then start it again. These are the keys most private servers change:
| Key | Default in v1.0.5 | What it does |
|---|---|---|
ServerName | "Default Palworld Server" | Name shown to players |
ServerPassword | empty | Password required to join |
AdminPassword | empty | Unlocks admin commands via /AdminPassword in game |
ServerPlayerMaxNum | 32 | Maximum players on the server |
RESTAPIEnabled / RESTAPIPort | False / 8212 | Local admin API (save, shutdown, metrics) |
RCONEnabled / RCONPort | False / 25575 | Deprecated; leave off |
bIsUseBackupSaveData | True | Rolling world backups; adds disk load |
CrossplayPlatforms | (Steam, | Platforms allowed to connect |
bEnableVoiceChat | False | In-game voice chat; new in 1.0, dedicated servers only |
BaseCampWorkerMaxNum | 15 | Pals per base (max 50); higher means more load |
Backups are on by default in the v1.0.5 settings file. The docs describe the retention as 5 saves at 30-second spacing, 6 at 10 minutes, 12 hourly and 7 daily, kept in a backup folder inside the save directory.
If the long line is hard to edit safely, Pocketpair’s Docker README shows a shorter file that lists only the keys it changes:
[/Script/Pal.PalGameWorldSettings]
OptionSettings=(ServerPassword="choose-a-password",DeathPenalty=None)
Run the Palworld server 24/7 with systemd
Type exit to return to your sudo user, then create the service file:
sudo nano /etc/systemd/system/palworld.service
[Unit]
Description=Palworld dedicated server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=steam
Group=steam
WorkingDirectory=/home/steam/palserver
ExecStartPre=-/usr/games/steamcmd +force_install_dir /home/steam/palserver +login anonymous +app_update 2394010 +quit
ExecStart=/home/steam/palserver/PalServer.sh -port=8211
Restart=on-failure
RestartSec=15
TimeoutStartSec=30min
[Install]
WantedBy=multi-user.target
ExecStartPreupdates the server on every start, so a restart after a game patch brings the server to the version your players’ clients have. The leading-lets the installed build start anyway if Steam cannot be reached.TimeoutStartSec=30mingives a large patch download time to finish; systemd’s default start timeout is 90 seconds.Restart=on-failurebrings the server back after a crash, including a kill by the kernel’s out-of-memory handler.- For a community server, append
-publiclobbyto theExecStartline.
Option meanings are in the systemd.service manual, and our systemd service guide covers restart policies and timers. Load and start the service, then follow its log:
sudo systemctl daemon-reload
sudo systemctl enable --now palworld.service
journalctl -u palworld.service -f
In Palworld, choose to join a multiplayer game and enter YOUR_SERVER_IP:8211 in the address field below the server list. systemctl status palworld.service shows the service’s current memory use, which is the number to watch after many hours of play.
Does a Palworld server leak memory?
Pocketpair has fixed dedicated-server memory leaks more than once, which tells you the problem is real but version-dependent. From the official patch notes:
| Version | Date | Official patch note |
|---|---|---|
| v0.3.10 | Oct 30, 2024 | “Fixed memory leak on servers” |
| v0.5.3 | Apr 9, 2025 | “Fixed a memory leak on dedicated servers” |
| v0.6.2 | Jul 10, 2025 | “Optimised the memory usage to reduce the likelihood of crashes when playing for a long time” |
| v1.0 | Jul 10, 2026 | “Fixed crashes and memory leaks occurring on PS5, Xbox, and dedicated server environments” |
The docs do not prescribe a restart schedule. Our reasoning: memory headroom (the 16 GB or 32 GB tiers) plus one restart a day at a quiet hour covers both the documented out-of-memory risk at 8 GB and any leak a future patch reintroduces. A restart starts a fresh process, so memory use returns to its starting level.
Add a daily restart timer
The restart job warns players and saves the world through the REST API first, because the docs do not say whether the server saves when it receives a stop signal. Set RESTAPIEnabled=True and an AdminPassword in PalWorldSettings.ini, restart the server, then store the password in a root-only file:
sudo install -m 600 /dev/null /etc/palworld-rest.env
sudo nano /etc/palworld-rest.env
PAL_ADMIN_PASSWORD=your-admin-password
Create /etc/systemd/system/palworld-restart.service:
[Unit]
Description=Save and restart the Palworld server
[Service]
Type=oneshot
EnvironmentFile=/etc/palworld-rest.env
ExecStartPre=-/usr/bin/curl -fsS -u admin:${PAL_ADMIN_PASSWORD} -H "Content-Type: application/json" -d '{"message":"Daily restart in 60 seconds"}' http://localhost:8212/v1/api/announce
ExecStartPre=/usr/bin/sleep 60
ExecStartPre=-/usr/bin/curl -fsS -u admin:${PAL_ADMIN_PASSWORD} -X POST http://localhost:8212/v1/api/save
ExecStart=/usr/bin/systemctl restart palworld.service
Then create /etc/systemd/system/palworld-restart.timer:
[Unit]
Description=Restart the Palworld server daily
[Timer]
OnCalendar=*-*-* 06:00:00
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now palworld-restart.timer
systemctl list-timers palworld-restart.timer
The REST API docs specify HTTP Basic auth and the base URL http://localhost:8212/v1/api, but do not name the user; server admins use admin with the AdminPassword. The job posts an in-game notice through /announce, waits 60 seconds and calls /save; the leading - lets the restart go ahead if a call fails. Because the main unit updates on start, the restart also installs any new patch. OnCalendar uses the server’s local time zone, which timedatectl shows; see the systemd.timer manual.
Warning: Pocketpair says the REST API and RCON are not designed to be exposed to the internet and should be used within the LAN. Never run ufw allow 8212. For remote admin, tunnel over SSH from your computer with ssh -L 8212:localhost:8212 you@YOUR_SERVER_IP.
What does a Palworld server cost: one weekend or always on?
A Palworld world only needs to exist while people play. Hourly billing lets you pay for a game night or a weekend, then delete the server. Billing is by the hour: every hour a server exists is charged at the plan’s hourly rate. The price tapes and cost tables on this site count every started hour as a full hour, so they show the most a duration can cost; the cost calculator charges a partial hour to the nearest cent, as the bill does. Every server is billed by the hour: the plan’s hourly rate is deducted from the server’s prepaid balance for every hour it exists, powered on or off, until you delete it.
| Duration | Hours on the meter | Cost $0.13 | Note |
|---|---|---|---|
| 4 hours | 4 | $0.52 | |
| 8 hours | 8 | $1.04 | |
| 1 day | 24 | $3.12 | |
| 2 days 4 hours | 52 | $6.76 | |
| 7 days | 168 | $21.84 | |
| 30 days | 720 | $65.00 | Capped at the monthly price |
The same sessions across the three documented RAM tiers. A “weekend” here runs from Friday 18:00 to Sunday 22:00, which is 52 hours:
| Session | Quartz Q8 (8 GB) | Chrono C16 (16 GB) | Chrono C32 (32 GB) |
|---|---|---|---|
| One 4-hour game night | $0.20 | $0.52 | $1.00 |
| One weekend (52 hours) | $2.60 | $6.76 | $13.00 |
| A full week | $8.40 | $21.84 | $42.00 |
| Always on, one month | $25.00 | $65.00 | $125.00 |
Stopped is not free: A stopped server is still billed, because its vCPU, memory, disk and IP addresses stay reserved for you; only deleting the server stops billing. For weekend-only play, back up the world and delete the server between sessions. Which providers bill stopped servers compares this rule across the market.
Renting by the day is the same hourly billing: a full day is 24 hours, so even a long Saturday on Chrono C16 costs no more than $3.12, and the daily VPS page shows multi-day rentals. A world your group visits most days can simply stay online: a server you leave on is a monthly VPS with an automatic cap, so Chrono C16 never costs more than $65.00 in a billing period (one month from your order date). To price your own schedule, put your hours into the VPS cost calculator; all plans are on the pricing page. For the same math on other games, see what a Minecraft server costs and the Valheim dedicated server guide; for VPS prices across 20 providers, see how much a VPS costs.
Which setup fits your group?
| How your group plays | Setup | Why |
|---|---|---|
| Game nights or weekends, then a break | Chrono C16 by the hour; back up and delete between sessions | A stopped server is still billed; a deleted one is not |
| Online most days | Chrono C16, left on | Charges stop at the monthly price for the rest of each billing period |
| A large community world that runs for weeks | Chrono C32, left on | Meets the 32 GB tier for stable operation; the monthly cap limits the bill |
| You need server-side mods or a control panel | A managed Palworld host | Server-side mods need the Windows server; a panel replaces SSH |
Back up the world, delete the server, restore next weekend
Pocketpair’s Docker README says that save files and configuration files are generated under Saved, which is Pal/Saved in a SteamCMD install. Archiving that one folder captures the world and PalWorldSettings.ini together.
- Stop the server and archive the folder into your home directory.
- Copy the archive to your own computer and check that it opens.
- Delete the server in the portal. The checklist before you delete a VPS covers what else to copy off first.
sudo systemctl stop palworld.service
sudo tar -czf ~/pal-saved.tar.gz -C /home/steam/palserver/Pal Saved
Run this one on your own computer, not on the server:
scp you@YOUR_SERVER_IP:pal-saved.tar.gz .
Next session, deploy a new server and repeat steps 1 to 4, the systemd unit and, if you use it, the restart timer. Use sudo systemctl enable palworld.service without --now so it does not start yet. Upload the archive with scp pal-saved.tar.gz you@NEW_SERVER_IP:, then restore it and start the server:
sudo tar -xzf ~/pal-saved.tar.gz -C /home/steam/palserver/Pal
sudo chown -R steam:steam /home/steam/palserver/Pal/Saved
sudo systemctl start palworld.service
Expect a new IPv4 address on a new server, so send your friends the new IP:8211. Restore once as a test before you rely on this routine. Pick the data center closest to most players: the guide to choosing a VPS location explains the latency trade-off, and HourlyVPS deploys in Istanbul today, with New York coming soon. Istanbul plans include the monthly traffic allowance listed for each plan, prorated for a server that exists for part of a billing period.
Palworld server troubleshooting matrix
| Symptom | Likely cause | Fix |
|---|---|---|
| Friends time out when joining | UDP 8211 not allowed, or a different -port | sudo ufw status must list 8211/; join with IP: |
| Settings changes are ignored | Edited DefaultPalWorldSettings., or the wrong folder | Edit Config/, then restart |
Log says “Failed to copy the file” for linux64/ | PalServer. copies that file into Pal/ and exits if it is missing | Add it from the Steamworks SDK Redist (commands below) |
| Players cannot join after a game patch | Server still on the old build | sudo systemctl restart palworld. runs the update first |
| Server dies after hours of play | Out of memory: below 16 GB, or many hours since the last restart | Check sudo journalctl -k | grep -i "out of memory"; move to 16 or 32 GB and keep the daily restart |
| Xbox or PS5 friends cannot join | Running as a private dedicated server | Add -publiclobby |
| Community server missing from the list | Public IP or port detection failed | Add -publicip= |
| Voice chat does nothing | bEnableVoiceChat is False by default | Set it to True in PalWorldSettings., then restart |
| Mods do not load | Linux server | Server-side mods need the Windows server, per the docs |
| Rubber-banding, low server FPS | CPU saturated | Check serverfps via REST /metrics; drop the pre-1.0 flags; consider dedicated vCPU |
If the steamclient.so error appears, run these as the steam user. They install Steamworks SDK Redist (app 1007) and place the library where PalServer.sh looks for it, which is what Pocketpair’s official image does at build time:
/usr/games/steamcmd +force_install_dir /home/steam/steamworks-sdk +login anonymous +app_update 1007 +quit
mkdir -p /home/steam/palserver/linux64
cp /home/steam/steamworks-sdk/linux64/steamclient.so /home/steam/palserver/linux64/
Deploy this setup
Host a Palworld world for the weekend
Chrono C16 · 4 dedicated vCPU · 16 GB RAM · 200 GB NVMe · Istanbul
- Per hour$0.13/hourFor this job
- Per day (24 h)$3.12/day
- Monthly cap$65.00/month
Starts with a $5 initial credit, which goes into the server’s balance and pays for its hours.
Billed by the hour, never more than $65.00 per billing period. Delete the server and billing stops.



