An in-depth tutorial on how to get started with a Palworld Dedicated Server running on Debian 12 / Ubuntu 23.10
Note
For a Palworld Modding Guide, Check Here
Note
This is based on the Tutorial by A1RM4X, I have tweaked and changed it to suit my purposes a bit more See here
Important
This is a work in progress, please standby for more updates!
Caution
- This script is based on Debian 12 and Ubuntu 23.10, it might work with other distros it might not
I chose Hetzner, you can use This Referral Link if you decide to use Hetzner!
I am running:
- 4 VCores
- 8GB Ram
- 40GB SSD
This is around 15 euros for me on Hetzner and it runs perfectly fine for my 32-slot server, you may opt for less.
apt update && apt dist-upgrade
On Debian, install SteamCMD with all the dependencies:
apt install software-properties-common && apt-add-repository non-free && dpkg --add-architecture i386 && apt update && apt install steamcmd
On Ubuntu, install SteamCMD with all the dependencies:
apt install software-properties-common && apt-add-repository main universe restricted multiverse && dpkg --add-architecture i386 && apt update && apt install steamcmd
Install sudo and create a new user steam:
apt install sudo && useradd -m steam && passwd steam
Log in as steam:
sudo -u steam -s
Go to the steam home folder:
cd /home/steam
Install the Palworld dedicated server via SteamCMD:
/usr/games/steamcmd +login anonymous +app_update 2394010 validate +quit
Fix server log errors by creating symlinks:
cd ~/.steam && ln -s steam/steamcmd/linux32 sdk32 && ln -s steam/steamcmd/linux64 sdk64
Launch the server, this first run will create the settings files that we need:
cd ~/.steam/steam/steamapps/common/PalServer && ./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
Copy the server settings file in the right directory then edit the settings using nano:
cp DefaultPalWorldSettings.ini Pal/Saved/Config/LinuxServer/PalWorldSettings.ini && nano Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Make sure all the commands below are executed as root.
Create the maintenance script, make it executable and give it the right user permissions:
wget https://raw.githubusercontent.com/A1RM4X/HowTo-Palworld/main/palworld-maintenance.sh -P /home/steam/ && chmod +x /home/steam/palworld-maintenance.sh && chown steam:steam /home/steam/palworld-maintenance.sh
Create the backup folder and give it the right permissions:
mkdir -p /home/steam/Palworld_backups && chown steam:steam /home/steam/Palworld_backups
Download the Palworld service file: Credit A1RM4X for the service file.
wget https://raw.githubusercontent.com/A1RM4X/HowTo-Palworld/main/palworld.service -P /etc/systemd/system/
Enable and start the service file:
systemctl enable palworld.service && systemctl daemon-reload && systemctl start palworld.service
First, install it sudo apt get install ufw
Now allow the correct ports
ufw allow 22 && ufw allow 8211
Note
- 22 is SSH port
- 8211 is Palworld Dedicated Server Port
Caution
- YOU MUST ENABLE PORT 22 IF YOU ARE CONNECTING VIA SSH, IF YOU DO NOT YOU WILL DISCONNECT AND NOT BE ABLE TO LOG IN AGAIN
Now enable it
ufw enable
Note
- This is only needed if you want a custom domain for your server
- EG. play.paltopia.online:8211 instead of 123.4.5.6:8211
- Get a domain, I recommend using NameCheap
- Connect the domain to Cloudflare, GUIDE
- Add an A record and point it towards your server IP GUIDE
Note
- For the A record, the Host will be the subdomain, for example, a Host of "play" will mean that "play.yourdomain.yourtld" will point to the IP address
- If you don't want a subdomain at the start, just type "@" in the Host field. this way "yourdomain.yourtld" will point to the IP.
- If you do not understand what I just said, the GUIDE will explain it better. When connecting in-game, use the domain name and then append ":8211" at the end. EG. play.paltopia.net:8211
This is based on the Tutorial by A1RM4X, I have tweaked and changed it to suit my purposes a bit more See here