Skip to content

Valheim 1.0 and the Deep North are live. Start a 10-player world. Friends on PS5, Switch 2, Xbox and PC join with one code. Host Valheim

How to set up a Palworld dedicated server

Self-host a Palworld dedicated server on Windows, Linux, or Docker with SteamCMD app 2394010. Configure PalWorldSettings.ini, open its UDP game port, verify whether it bound the optional 27015 query port, and keep it running after reboots.

A Palworld dedicated server is SteamCMD app 2394010. You can run it on 64-bit Windows, 64-bit Linux, or Pocketpair's official Docker image. The process is the same on every platform: download the server, boot it once, configure the generated files, open the UDP ports the process actually binds, and arrange for the process to restart after a reboot.

Check the machine first

Pocketpair's published requirements are a starting point, not a guarantee for a busy world:

ResourceRequirement
CPU4 cores or more
RAM8GB can boot, 16GB recommended, 32GB or more for a large server
Storage30–50GB free on a fast SSD
NetworkA public route to the UDP game port, 8211 by default
OS64-bit Windows or Linux

The operating system, Docker, backups, and anything else on the machine need memory too. An 8GB computer does not leave all 8GB available to Palworld. Read the full Palworld RAM sizing guide before putting a large world on a small home PC.

If the hardware is already below those targets, a managed Palworld server avoids buying a dedicated PC just to reach the minimum.

Set up on Windows

Install SteamCMD

Download SteamCMD, extract it to a permanent folder such as C:\steamcmd, and run it once so it can update itself.

Download PalServer

Open Command Prompt in the SteamCMD folder and install the server into a path without spaces.

steamcmd.exe +force_install_dir C:\palworld-server +login anonymous +app_update 2394010 validate +quit

Start it once

Boot the server from its install folder. -publiclobby publishes it to Community Servers; -players=32 sets the ceiling, which you can lower later.

cd /d C:\palworld-server
PalServer.exe -port=8211 -players=32 -publiclobby

Stop and configure it

After the world finishes loading, press CTRL+C and edit C:\palworld-server\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini. The first boot creates the Saved tree.

Open Windows Firewall

Run PowerShell as Administrator and allow the game port. Add the query rule only if Get-NetUDPEndpoint shows that this server build bound UDP 27015.

New-NetFirewallRule -DisplayName "Palworld game" -Direction Inbound -Protocol UDP -LocalPort 8211 -Action Allow
Get-NetUDPEndpoint -LocalPort 8211,27015
 
# Optional: only when 27015 appears in the listener output
New-NetFirewallRule -DisplayName "Palworld query" -Direction Inbound -Protocol UDP -LocalPort 27015 -Action Allow

Windows updates and Palworld patches still need attention. If you do not want to maintain SteamCMD and startup tasks, Palworld hosting with automatic updates removes that work.

Set up on Linux

Create a dedicated user and keep the install outside a personal home directory. The commands below assume SteamCMD is already installed and available as steamcmd.

Create an install directory

sudo useradd --system --create-home --shell /usr/sbin/nologin palworld
sudo mkdir -p /opt/palworld
sudo chown palworld:palworld /opt/palworld

Download the server

sudo -u palworld steamcmd +force_install_dir /opt/palworld +login anonymous +app_update 2394010 validate +quit

Start it once

cd /opt/palworld
sudo -u palworld ./PalServer.sh -port=8211 -players=32 -publiclobby

Stop and configure it

After startup completes, press CTRL+C. Edit /opt/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini as the palworld user.

Allow the UDP ports

For UFW, allow the game port. Run ss -lunp after startup and add the 27015 rule only if the Palworld process also listens there.

sudo ufw allow 8211/udp
 
# Optional: only when Palworld bound this query port
sudo ufw allow 27015/udp

If the machine uses firewalld, nftables, a cloud security group, or a provider firewall, create equivalent inbound UDP rules there as well.

The server is not reachable until every firewall in front of it agrees. Check the host, router, VPS control panel, and cloud security group separately.

Set up with Docker

Pocketpair publishes an official Palworld dedicated-server image and a sample Compose file. Start from that sample so the image tag and helper script match, then make these changes:

compose.yaml (relevant fields)
services:
    palworld-server:
        restart: unless-stopped
        command:
            - -port=8211
            - -players=32
            - -publiclobby
        ports:
            - "8211:8211/udp"
        volumes:
            - ./Saved:/pal/Package/Pal/Saved

Run docker compose up -d, then follow startup with docker compose logs -f. Configuration appears on the host at ./Saved/Config/LinuxServer/PalWorldSettings.ini; worlds and backups remain under the same ./Saved volume. Add a 27015:27015/udp mapping only when your container command or image configuration enables and binds that query port.

Pocketpair does not recommend Docker Desktop on Windows or macOS for this server. Its slower storage path can cause malfunctions or save corruption. Use the native Windows install or a Linux Docker host, and verify that the Saved volume survives before inviting players.

Containers remove dependency setup, not networking, updates, or backups. Run Palworld on managed infrastructure if maintaining the image tag and persistent volume is the part you want to skip.

Configure PalWorldSettings.ini

The live file is inside the generated Saved directory:

PlatformConfiguration file
WindowsPal/Saved/Config/WindowsServer/PalWorldSettings.ini
LinuxPal/Saved/Config/LinuxServer/PalWorldSettings.ini
Official Docker imageHost: ./Saved/Config/LinuxServer/PalWorldSettings.ini

DefaultPalWorldSettings.ini in the install root is only a template. Changes there do not affect the running server. Boot once, stop cleanly, copy the template's contents into the live file if it is empty, and edit the single OptionSettings=(...) line.

For a public crossplay server, check at least these values:

PalWorldSettings.ini (excerpt)
OptionSettings=(ServerName="A unique server name",ServerPlayerMaxNum=32,CrossplayPlatforms=(Steam,Xbox,PS5,Mac))

Always stop the server before editing. Palworld can overwrite changes made while it is running. Use the Palworld settings generator or read the complete configuration guide instead of rebuilding the long line by hand.

If hand-editing one long INI line is slowing the setup down, berrybyte's settings editor exposes the common controls in the dashboard.

Publish it for Xbox and PlayStation

Steam players can connect to public-ip:8211. Xbox and PS5 players cannot paste that address; they search Community Servers for the exact ServerName.

Use these launch flags on Windows, Linux, or in Compose:

FlagPurpose
-port=8211Sets the UDP game port
-players=32Sets the maximum concurrent players
-publiclobbyLists the server in Community Servers
-publicip=x.x.x.xOverrides public-IP detection when it is wrong
-publicport=8211Overrides the advertised port; it does not change the listening port

Keep CrossplayPlatforms=(Steam,Xbox,PS5,Mac) in the INI file. Give the community list a minute after each restart. Routers without hairpin NAT may prevent you from joining your own public listing from inside the same network; test the LAN address locally and ask someone outside the network to test the public listing.

Open the game port and verify the query port

Give the server a fixed LAN address or DHCP reservation, then forward the ports the process actually bound:

PortProtocolPurpose
8211UDPDefault player game traffic; required unless changed with -port
27015UDPOptional query/browser port used by some deployments; forward only when bound

Palworld's current official launch example exposes the game port without a separate query argument, and berrybyte's Palworld egg also allocates one UDP game port. Older guides commonly list 27015. Check with Get-NetUDPEndpoint on Windows, ss -lunp on Linux, or docker compose ps for a container instead of opening it by assumption.

The host firewall, router, VPS firewall, and cloud security group are separate layers. Opening one does not open the others. Do not expose RCON or the REST API to the public internet just because their ports appear in the config.

Check for CGNAT

Port forwarding cannot work when your ISP controls another NAT layer upstream. Compare the WAN/Internet address shown by your router with the public IPv4 address reported by an external IP checker. If they differ, or the router WAN address is in 100.64.0.0/10, your connection is probably behind CGNAT.

Private WAN addresses in 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16 also show that the router does not directly own a public IPv4 address. Ask the ISP for a public IPv4 address, use a tunnel or VPN that explicitly supports inbound UDP port forwarding, move the server to a VPS, or use Palworld hosting with public ports already assigned. A normal consumer VPN does not automatically solve inbound UDP.

Run it after logout and reboot

Linux with systemd

Create /etc/systemd/system/palworld.service:

palworld.service
[Unit]
Description=Palworld dedicated server
Wants=network-online.target
After=network-online.target
 
[Service]
Type=simple
User=palworld
WorkingDirectory=/opt/palworld
ExecStart=/opt/palworld/PalServer.sh -port=8211 -players=32 -publiclobby
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=120
 
[Install]
WantedBy=multi-user.target

Then run:

sudo systemctl daemon-reload
sudo systemctl enable --now palworld
sudo journalctl -u palworld -f

Use systemctl stop palworld before SteamCMD updates or config edits.

Windows with Task Scheduler

Create a StartServer.bat containing the cd and PalServer.exe command from the Windows section. In Task Scheduler, create a task that:

  • runs whether or not the user is logged in,
  • triggers At startup,
  • starts cmd.exe with /c "C:\palworld-server\StartServer.bat" as its arguments,
  • restarts after failure, and
  • allows enough shutdown time for Palworld to save the world.

Task Scheduler is appropriate for a batch file; sc.exe create is not, because PalServer.exe is not a native Windows Service executable.

Docker

The Compose restart: unless-stopped policy restarts the container after a failure and when the Docker daemon starts. Enable Docker itself at boot, and stop cleanly with docker compose down before changing the image tag.

Order a managed Palworld server

If SteamCMD, CGNAT, firewall rules, and service supervision are more work than you want, choose a berrybyte Palworld plan. Plans are available for 4, 8, 16, or 32 players; the 8-player tier fits most groups. Checkout installs the server, assigns reachable ports, enables crossplay and community listing, and opens the dashboard once setup finishes.

Next steps

Frequently asked questions

How do I set up a Palworld dedicated server?

Install SteamCMD, download app 2394010, start PalServer.exe on Windows or PalServer.sh on Linux, and edit PalWorldSettings.ini after the first boot. Forward the UDP game port, 8211 by default. Forward UDP 27015 only if your deployment actually binds it for queries. Add -publiclobby for Community Servers.

What ports does a Palworld dedicated server use?

UDP 8211 is the default game port and must be reachable. Some deployments also bind UDP 27015 for server queries, but Palworld's current official launch command and berrybyte's egg do not require a separate query port. Check the process's listeners and forward only the ports it actually uses.

Where is PalWorldSettings.ini?

From the PalServer install folder, Windows uses Pal/Saved/Config/WindowsServer/PalWorldSettings.ini and Linux uses Pal/Saved/Config/LinuxServer/PalWorldSettings.ini. The official Docker image exposes the LinuxServer path under the host's ./Saved volume.

Why does port forwarding not work for my Palworld server?

Your ISP may put your connection behind carrier-grade NAT (CGNAT), so your router does not own the public IPv4 address. A forwarding rule on your router cannot cross the ISP's upstream NAT. Ask for a public IPv4 address, use a service that supports inbound UDP, rent a VPS, or use managed hosting.

How can Xbox or PS5 players find a self-hosted Palworld server?

Start the server with -publiclobby, give it a unique ServerName, and keep Xbox and PS5 in CrossplayPlatforms. Console players cannot paste an IP address; they search Community Servers by name.

Start a game
server with friends

Join the Discord