ServerSizer

Games Palworld

Palworld server requirements

Build 25247047, 2026-10-05. Native Linux server. Steam SteamDB

Requirements

Our benchmarkPocketpairWinterNodeContradicts itself
CPU7% of one core, idle4+ cores recommendedNo figure, lag spikes CPU-related
RAM0.8 GB idle, 1.4 GB peak16 GB, 32 GB+ recommended, 8 GB boots8 GB floor, 16 GB comfortable
Disk4.7 GB installFast SSD recommended
NetworkUDP 8211 and 27015UDP 8211, port forwarding
OSLinux, nativeWindows or Linux, 64-bit

RAM by players

Pocketpair docs
16 to 32 GB
WinterNode
6 to 8 GB
  • Recommended
  • Pocketpair docs: "16GB Recommended for larger than 32GB. 8GB is also bootable, but increases the possibility of server crashes due to out of memory."
  • WinterNode: "1-3 players: 6GB. 4-6: 8GB. 7-10: 12-16GB. 10-20: 16-24GB. 20+: 32GB."

Memory over time

0 GB1 GB2 GB1.4 GB0 h2 h4 h6 h8 h10 h12 h0 GB1 GB2 GB1.4 GB0 h4 h8 h12 h
  • In use
  • Peak, with cache
Raw data (CSV)

Pending

  • 24 hours idle
  • One player for 30 minutes
  • Three warm restarts
  • Backup disk use after 24 hours

Reported by others

  • WinterNode: "Palworld's server process gradually allocates more memory over time and never releases it." bEnableInvaderEnemy=False "roughly halves RAM consumption over a play session"; restart every 4 to 6 hours.

Ports

PortProtocolUseOur server
8211UDPGame traffic. Set with -port or PublicPort. Forward this one.Open
27015UDPSteam query. Open by default; not on Pocketpair's requirements page.Open
25575TCPRCON, only with RCONEnabled=True. Off by default. Keep off the internet.Off
8212TCPREST API, only with RESTAPIEnabled=True. Off by default. Keep local.Off

Forward UDP 8211. Keep RCON and the REST API closed to the internet.

Docker setup

5 steps
  1. Download

    Free anonymous download, Steam app 2394010, about 4.7 GB.

    docker run --rm -v /srv/games/palworld:/data steamcmd/steamcmd:latest \
      +@sSteamCmdForcePlatformType linux +force_install_dir /data \
      +login anonymous +app_info_update 1 +app_update 2394010 validate +quit
  2. Image

    Ubuntu 24.04 plus libcurl for the bundled crash reporter. Runs as the image's regular user, not root, so that user owns the files.

    mkdir -p palworld-image && cat > palworld-image/Dockerfile <<'EOF'
    FROM ubuntu:24.04
    RUN apt-get update && apt-get install -y --no-install-recommends \
        ca-certificates libcurl4t64 && rm -rf /var/lib/apt/lists/*
    USER ubuntu
    WORKDIR /palworld
    EOF
    docker build -t palworld_runtime palworld-image
    chown -R 1000:1000 /srv/games/palworld
  3. Run

    Exact bench command. Add -p 8211:8211/udp to publish the game port.

    docker run -d --name palworld --memory 14g \
      -v /srv/games/palworld:/palworld -w /palworld palworld_runtime \
      ./PalServer.sh -port=8211 -players=32
  4. Ready line

    Fresh world ready 4.4 seconds after container start.

    docker logs -f palworld | grep "Running Palworld dedicated server"
  5. Settings

    docker stop palworld
    cp /srv/games/palworld/DefaultPalWorldSettings.ini \
       /srv/games/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
    # edit ServerName, ServerPassword, AdminPassword and so on, then:
    docker start palworld

Settings

20 settings

File: Pal/Saved/Config/LinuxServer/PalWorldSettings.ini. Copy DefaultPalWorldSettings.ini into it first.

SettingWhat it does
ServerName="Default Palworld Server"Name players see.
ServerPassword=""Join password. Empty by default: open to anyone who reaches the port.
AdminPassword=""For admin commands, RCON and the REST API. Set before enabling either.
ServerPlayerMaxNum=32Maximum players.
PublicPort=8211Port advertised for community servers. Match -port.
AutoSaveSpan=30.000000Seconds between autosaves.
bIsUseBackupSaveData=TrueWorld backups. On by default. Save folder with backups: 134 KB after 30 minutes, fresh world.
bEnableInvaderEnemy=TrueBase raids. Some hosts suggest off to cut memory growth; not yet tested.
RCONEnabled=FalseRemote console. Port set by RCONPort=25575.
RESTAPIEnabled=FalseHTTP admin API. Port set by RESTAPIPort=8212.
bIsPvP=FalsePlayer versus player combat.
DeathPenalty=ItemWhat players drop on death.
ExpRate=1.000000Experience multiplier.
PalCaptureRate=1.000000Capture rate multiplier.
BaseCampMaxNum=128Maximum bases on the server.
BaseCampWorkerMaxNum=15Maximum working Pals per base.
GuildPlayerMaxNum=20Maximum players per guild.
CoopPlayerMaxNum=4Players in co-op mode.
bShowPlayerList=FalsePlayer list in the menu.
LogFormatType=TextLog format: Text or JSON.

Troubleshooting

5 problems
crashpad_handler: libcurl.so.4: cannot open shared object file
Bundled crash reporter needs libcurl; the server runs without it. Install libcurl4t64 (Ubuntu 24.04) or libcurl4 (older releases).
Settings file changes ignored
Edit Pal/Saved/Config/LinuxServer/PalWorldSettings.ini, not DefaultPalWorldSettings.ini; if empty, copy the defaults in first. Stop the server before editing, or it may write the file back.
[S_API FAIL] Tried to access Steam interface ... before SteamAPI_Init succeeded
Harmless on a dedicated server. Startup continues normally.
Memory grows until the server crashes
Hosts call it a memory leak. Room above 8 GB, backups on, scheduled restarts (hosts: every 4 to 6 hours on well-equipped servers).
No connections from outside the network
Forward UDP 8211 (or the -port value). RCON and the REST API need no forwarding.

Method

build 25247047
ServerPalworld dedicated server, Steam build 25247047, game version v1.0.5.102999, downloaded 2026-10-05.
ImageMinimal ubuntu:24.04 image with ca-certificates and libcurl4t64, run as a regular user (uid 1000).
MachineAMD Ryzen 9 5950X, Proxmox VE 9, each game server in Docker inside a dedicated LXC container. 14 GB memory limit, no swap.
Command./PalServer.sh -port=8211 -players=32

Changes from defaults

  • Start command unchanged: Pocketpair's plain script, default port and player count.
  • World settings at defaults. PalWorldSettings.ini created empty, so DefaultPalWorldSettings.ini values apply.
  • No -publiclobby: not listed as a community server.

Full method

Sources