Skip to content

Palworld Proton

Fight, farm, build and work alongside mysterious creatures called "Pals" in this completely new multiplayer, open world survival and crafting game!

egg-palworld-proton.json

updated

Ports

Add an allocation on the node for each port.

  • Game 8211
  • RCON (optional) 25575

Install

Installer image
ghcr.io/ptero-eggs/installers:debian
Steam app
2394010
Steam login
not required
Install script
80 lines

Image

  • Proton ghcr.io/ptero-eggs/steamcmd:proton

Panel features

  • steam_disk_space

    The Panel tells the user when SteamCMD does not have enough disk space.

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

12 variables

Startup command

./PalworldServerConfigParser; (while read cmd; do rcon -s -a "localhost:25575" -p "{{ADMIN_PASSWORD}}" "$cmd";done) < /dev/stdin & proton run /home/container/Pal/Binaries/Win64/PalServer-Win64-Shipping.exe -publiclobby -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -port=8211 -publicport=8211 -servername="A Pterodactyl hosted Palworld Server" -players=32 $(if [ -n "{{SERVER_PASSWORD}}" ]; then echo "-serverpassword=\"{{SERVER_PASSWORD}}\""; fi) -adminpassword="{{ADMIN_PASSWORD}}" -rcon

Dotted values come from the server settings. These values are examples.

  • Do not edit!

    SRCDS_APPIDUsers cannot see

    required|string|in:2394010

  • Auto update the server on start.

    AUTO_UPDATEUsers can edit

    required|boolean

  • MAX_PLAYERSUsers can edit

    required|numeric|between:1,32

  • SERVER_NAMEUsers can edit

    required|string|max:64

  • If specified, players must provide this password to join the server.

    SERVER_PASSWORDUsers can edit

    nullable|alpha_dash|between:1,30

  • If specified, players must provide this password (via the in-game chat or RCON) to gain access to administrator commands on the server.

    ADMIN_PASSWORDUsers can edit

    required|alpha_dash|between:1,30A value is required.

  • Set this to the server public ip address. Only needed if the allocation is a local ip, else the allocate ip will be used automatically

    PUBLIC_IPUsers can see

    nullable|string

  • Does not need to be allocated!

    RCON_PORTUsers can see

    required|numeric

  • Must Be ON

    RCON_ENABLEUsers cannot see

    required|string|in:True

  • The description of the server.

    SERVER_DESCRIPTIONUsers can edit

    nullable|string|max:128

  • WINDOWS_INSTALLUsers cannot see

    required|in:1

  • The platform players will be able to connect from

    ALLOW_CONNECT_PLATFORMUsers can edit

    required|string|in:Steam,Xbox

Wings

Stop command
shutdown 5
Running when the console shows
up and running.

Readme

Palworld

Steam Description

Fight, farm, build and work alongside mysterious creatures called "Pals" in this completely new multiplayer, open world survival and crafting game!

Authors / Contributors

Known Issues / FAQ

  1. How do I move my existing co-op world to the dedicated server? -> Co-op and dedicated servers use different player IDs, so copying the save over resets your character. Use the free Palworld Save Converter by Physgun - it runs entirely in your browser (nothing uploaded, works with 1.0 saves) and keeps your character, pals, guild, and bases intact.

  2. The server won't show up in the Community-Server tab. -> This is a known problem and the devs will hopefully fix that asap. Best choice is to connect by IP and Password.

  3. The server has a memory leak. -> This is also an issue that they are aware of. -> The bEnableInvaderEnemy option seems to have a huge impact on the current RAM usage. Disabling it might be choice. -> Tip: Schedule a server restart every 6h. You might adjust the value according to your system!

  4. The server does not show up in the steam server list. -> This is currently and might never be supported.

  5. The config file gets deleted / reset on server restart. -> Before editing the config file always make sure to fully stop the server first. Otherwise all changes wont be saved.

Recommended server settings

RAM

Due to at least one memory leak the server requires about 16-32GB RAM. Referring to the official documentation you can start the server with 8GB but you will run out of memory very quickly. The minimum should be 16GB but 32GB are fairly recommended for now.

CPU

Intel / AMD processor with at least 4 cores.

Storage

As of January 19th 2024 the server requires about 5GB of storage capacity. This might extend with further content/updates.

Server Ports

Port Default
Game 8211
RCON (optional) 25575

The RCON port does not need to be allocated.

Updating

  1. Update your egg
  2. Update the startup of all already made servers to the one that now comes with the egg
  3. Then hit reinstall because the parser application has to be downloaded
  4. Because the Palworld devs forgot with the v0.1.5.0 to add the new bShowPlayerList key to the config you will need to add it yourself. This maybe fixt in the future. Its default value is False

Example of the end of the config: bUseAuth=True,bShowPlayerList=False,BanListURL="https://api.palworldgame.com/api/banlist.txt")

Variable Parsing

The parser application that is currently being shipped is capable of editing all variables that are present in the Palworld configuration file as of February 1, 2024.

However, only the most basic and necessary variables are present in the egg. Those who need more variables will have to add them themselves.

See a list of what key matches with what variable Here

Variables that do not exist will automatically be skipped parsing so you do not have to worry about it emptying your config file

Proton

There is a special egg that uses proton instad of the native linux version what shipes with winmm.dll and RE-UE4SS so for they who want to run mods then that is possible.

Keep in mind this eggs console output is broken (thanks proton / wine) so you will only see the parser output. The RCON console does still work.

Config

The config is found at the following path: Pal/Saved/Config/LinuxServer/PalWorldSettings.ini or if you are running the proton egg Pal/Saved/Config/WindowsServer/PalWorldSettings.ini

Changes

  1. SteamCMD + Other fixes

    · yesBad · edbf925

  2. Add steamcmd based eggs

    · Daniel Barton · 60ef9fb

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 80 lines bash in ghcr.io/ptero-eggs/installers:debian Show
#!/bin/bash
# steamcmd Base Installation Script
#
# Server Files: /mnt/server
# Image to install with is 'ghcr.io/ptero-eggs/installers:debian'


# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.
#apt -y update
#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates

## just in case someone removed the defaults.
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
    echo -e "steam user is not set.\n"
    echo -e "Using anonymous user.\n"
    STEAM_USER=anonymous
    STEAM_PASS=""
    STEAM_AUTH=""
else
    echo -e "user set to ${STEAM_USER}"
fi

## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/steamcmd

# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server

## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s "-beta ${SRCDS_BETAID}" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s "-betapassword ${SRCDS_BETAPASS}" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6

## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so

## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so

## add below your custom commands if needed
## copy template config file
echo "Copy template config file into config folder!"

if [ -f "/mnt/server/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini" ]; then
    echo "Config file already exitis, backing up and overwriting with a new one"
    mv /mnt/server/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini /mnt/server/Pal/Saved/Config/WindowsServer/PalWorldSettings_$(date +"%Y%m%d%H%M%S").ini
    cp /mnt/server/DefaultPalWorldSettings.ini /mnt/server/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini
else 
    echo "Creating new config file"
    mkdir -p /mnt/server/Pal/Saved/Config/WindowsServer
    cp /mnt/server/DefaultPalWorldSettings.ini /mnt/server/Pal/Saved/Config/WindowsServer/PalWorldSettings.ini
fi

cd /mnt/server
# Download self made replace tool
echo "Downloading config parser aplication"
curl -sSL -o PalworldServerConfigParser https://github.com/pelican-eggs/Palworld-Config-Parser-Tool/releases/latest/download/PalworldServerConfigParser-linux-amd64
chmod +x PalworldServerConfigParser

cd /tmp
curl -sSL -o /mnt/server/Pal/Binaries/Win64/winmm.dll https://raw.githubusercontent.com/ptero-eggs/game-eggs/main/palworld/winmm.dll

LATEST_JSON=$(curl --silent "https://api.github.com/repos/UE4SS-RE/RE-UE4SS/releases/latest")
MATCH="UE4SS_"
DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
echo ${DOWNLOAD_URL}
curl -sSL -o ue4ss.zip ${DOWNLOAD_URL}
unzip -o ue4ss.zip -d /mnt/server/Pal/Binaries/Win64

## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"