Coder Social home page Coder Social logo

thijsvanloef / palworld-server-docker Goto Github PK

View Code? Open in Web Editor NEW
2.4K 22.0 299.0 12.99 MB

A Docker Container to easily run a Palworld dedicated server.

Home Page: https://hub.docker.com/r/thijsvanloef/palworld-server-docker

License: MIT License

Dockerfile 11.55% Shell 76.83% JavaScript 9.34% CSS 2.28%
docker palworld palworld-dedicated-server dedicated-gameservers dedicated-server palworld-server-docker steamcmd

palworld-server-docker's Introduction

Palworld Dedicated Server Docker

Release Docker Pulls Docker Stars Image Size Discord

CodeFactor Release Linting Security

Docker Hub GHCR Artifact Hub

Chat with the community on Discord

Tip

Unsure how to get started? Check out this guide I wrote!

This is a Docker container to help you get started with hosting your own Palworld dedicated server.

This Docker container has been tested and will work on the following OS:

  • Linux (Ubuntu/Debian)
  • Windows 10,11
  • MacOS (including Apple Silicon M1/M2/M3).

This container has also been tested and will work on both x64 and ARM64 based CPU architecture.

Important

Looking to host a server for Xbox players? Follow this guide here!

Sponsors

Company About
Indifferent Broccoli

indifferent broccoli (:|)

Thank you to our sponsor indifferent broccoli. If you decide to rent a Palworld server, rather than host yourself, try indifferent broccoli's Palword server hosting 2-day free trial

Massive shoutout to the following individual sponsors

AshishT112203  stoprx  indifferentbroccoli  

Official Documentation

Documentation

Server Requirements

Resource Minimum Recommended
CPU 4 cores 4+ cores
RAM 16GB Recommend over 32GB for stable operation
Storage 8GB 20GB

How to use

Keep in mind that you'll need to change the environment variables.

Docker Compose

This repository includes an example docker-compose.yml file you can use to set up your server.

services:
   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop
      ports:
        - 8211:8211/udp
        - 27015:27015/udp
        # - 8212:8212/tcp  # Port for REST API if REST_API_ENABLED: true
      environment:
         PUID: 1000
         PGID: 1000
         PORT: 8211 # Optional but recommended
         PLAYERS: 16 # Optional but recommended
         SERVER_PASSWORD: "worldofpals" # Optional but recommended
         MULTITHREADING: true
         RCON_ENABLED: true
         RCON_PORT: 25575
         TZ: "UTC"
         ADMIN_PASSWORD: "adminPasswordHere"
         COMMUNITY: false  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
         SERVER_NAME: "palworld-server-docker by Thijs van Loef"
         SERVER_DESCRIPTION: "palworld-server-docker by Thijs van Loef"
         ALLOW_CONNECT_PLATFORM: "Steam" # Defaults to "Steam" if not set, set this to "Xbox" if you want to host a server for Xbox players. CROSSPLAY BETWEEN XBOX-STEAM IS NOT YET SUPPORTED
      volumes:
         - ./palworld:/palworld/

As an alternative, you can copy the .env.example file to a new file called .env file. Modify it to your needs, check out the environment variables section to check the correct values. Modify your docker-compose.yml to this:

services:
   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop
      ports:
        - 8211:8211/udp
        - 27015:27015/udp
        # - 8212:8212/tcp  # Port for REST API if REST_API_ENABLED: true
      env_file:
         -  .env
      volumes:
         - ./palworld:/palworld/

Docker Run

Change every <> to your own configuration

docker run -d \
    --name palworld-server \
    -p 8211:8211/udp \
    -p 27015:27015/udp \
    -v ./palworld:/palworld/ \
    -e PUID=1000 \
    -e PGID=1000 \
    -e PORT=8211 \
    -e PLAYERS=16 \
    -e MULTITHREADING=true \
    -e RCON_ENABLED=true \
    -e RCON_PORT=25575 \
    -e TZ=UTC \
    -e ADMIN_PASSWORD="adminPasswordHere" \
    -e SERVER_PASSWORD="worldofpals" \
    -e COMMUNITY=false \
    -e SERVER_NAME="palworld-server-docker by Thijs van Loef" \
    -e SERVER_DESCRIPTION="palworld-server-docker by Thijs van Loef" \
    -e ALLOW_CONNECT_PLATFORM="Steam" \
    --restart unless-stopped \
    --stop-timeout 30 \
    thijsvanloef/palworld-server-docker:latest

As an alternative, you can copy the .env.example file to a new file called .env file. Modify it to your needs, check out the environment variables section to check the correct values. Change your docker run command to this:

docker run -d \
    --name palworld-server \
    -p 8211:8211/udp \
    -p 27015:27015/udp \
    -v ./palworld:/palworld/ \
    --env-file .env \
    --restart unless-stopped \
    --stop-timeout 30 \
    thijsvanloef/palworld-server-docker:latest

Kubernetes

All files you will need to deploy this container to kubernetes are located in the k8s folder.

Follow the steps in the README.md here to deploy it.

Running without root

This is only for advanced users

It is possible to run this container and override the default user which is root in this image.

Because you are specifiying the user and group PUID and PGID are ignored.

If you want to find your UID: id -u If you want to find your GID: id -g

You must set user to NUMBERICAL_UID:NUMBERICAL_GID

Below we assume your UID is 1000 and your GID is 1001

  • In docker run add --user 1000:1001 \ above the last line.
  • In docker compose add user: 1000:1001 above ports.

If you wish to run it with a different UID/GID than your own you will need to change the ownership of the directory that is being bind: chown UID:GID palworld/ or by changing the permissions for all other: chmod o=rwx palworld/

Using helm chart

The official helm chart can be found in a seperate repository, palworld-server-chart

Environment variables

You can use the following values to change the settings of the server on boot. It is highly recommended you set the following environment values before starting the server:

  • PLAYERS
  • PORT
  • PUID
  • PGID
Variable Info Default Values Allowed Values Added in Version
TZ Timezone used for time stamping backup server UTC See TZ Identifiers 0.1.0
PLAYERS* Max amount of players that are able to join the server 16 1-32 0.1.0
PORT* UDP port that the server will expose 8211 1024-65535 0.1.0
PUID* The uid of the user the server should run as 1000 !0 0.6.0
PGID* The gid of the group the server should run as 1000 !0 0.6.0
MULTITHREADING** Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. false true/false 0.1.0
COMMUNITY Whether or not the server shows up in the community server browser (USE WITH SERVER_PASSWORD) false true/false 0.1.0
PUBLIC_IP You can manually specify the global IP address of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. x.x.x.x 0.1.0
PUBLIC_PORT You can manually specify the port number of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. 1024-65535 0.1.0
SERVER_NAME A name for your server "string" 0.1.0
SERVER_DESCRIPTION Your server Description "string" 0.1.0
SERVER_PASSWORD Secure your community server with a password "string" 0.1.0
ADMIN_PASSWORD Secure administration access in the server with a password "string" 0.4.0
UPDATE_ON_BOOT** Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) true true/false 0.3.0
RCON_ENABLED*** Enable RCON for the Palworld server true true/false 0.1.0
RCON_PORT RCON port to connect to 25575 1024-65535 0.1.0
REST_API_ENABLED Enable REST API for the palworld server false true/false 0.35.0
REST_API_PORT REST API port to connect to 8212 1024-65535 0.35.0
QUERY_PORT Query port used to communicate with Steam servers 27015 1024-65535 0.1.0
ALLOW_CONNECT_PLATFORM Specify if you are hosting a dedicated server for Steam or Xbox players Steam Steam/Xbox 0.38.0
BACKUP_CRON_EXPRESSION Setting affects frequency of automatic backups. 0 0 * * * Needs a Cron-Expression - See Configuring Automatic Backups with Cron 0.19.0
BACKUP_ENABLED Enables automatic backups true true/false 0.19.0
USE_BACKUP_SAVE_DATA Enables native automatic backups true true/false 0.35.0
DELETE_OLD_BACKUPS Delete backups after a certain number of days false true/false 0.19.0
OLD_BACKUP_DAYS How many days to keep backups 30 any positive integer 0.19.0
AUTO_UPDATE_CRON_EXPRESSION Setting affects frequency of automatic updates. 0 * * * * Needs a Cron-Expression - See Configuring Automatic Backups with Cron 0.20.0
AUTO_UPDATE_ENABLED Enables automatic updates false true/false 0.20.0
AUTO_UPDATE_WARN_MINUTES How long to wait to update the server, after the player were informed. (This will be ignored, if no Players are connected) 30 Integer 0.20.0
AUTO_REBOOT_CRON_EXPRESSION Setting affects frequency of automatic updates. 0 0 * * * Needs a Cron-Expression - See Configuring Automatic Backups with Cron 0.21.0
AUTO_REBOOT_ENABLED Enables automatic reboots false true/false 0.21.0
AUTO_REBOOT_WARN_MINUTES How long to wait to reboot the server, after the player were informed. 5 Integer 0.21.0
AUTO_REBOOT_EVEN_IF_PLAYERS_ONLINE Restart the Server even if there are players online. false true/false 0.21.0
TARGET_MANIFEST_ID Locks game version to corespond with Manifest ID from Steam Download Depot. See Manifest ID Table 0.27.0
INSTALL_BETA_INSIDER Installs the latest Beta version of the Palworld dedicated server false true/false 0.38.0
DISCORD_WEBHOOK_URL Discord webhook url found after creating a webhook on a discord server. https://discord.com/api/webhooks/<webhook_id> 0.22.0
DISCORD_SUPPRESS_NOTIFICATIONS Enables/Disables @silent messages for the server messages. false boolean 0.34.0
DISCORD_CONNECT_TIMEOUT Discord command initial connection timeout 30 !0 0.22.0
DISCORD_MAX_TIMEOUT Discord total hook timeout 30 !0 0.22.0
DISCORD_PRE_UPDATE_BOOT_MESSAGE Discord message sent when server begins updating Server is updating... "string" 0.31.0
DISCORD_PRE_UPDATE_BOOT_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_PRE_UPDATE_BOOT_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_POST_UPDATE_BOOT_MESSAGE Discord message sent when server completes updating Server update complete! "string" 0.31.0
DISCORD_POST_UPDATE_BOOT_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_POST_UPDATE_BOOT_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_PRE_START_MESSAGE Discord message sent when server begins to start Server has been started! "string" 0.31.0
DISCORD_PRE_START_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_PRE_START_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_PRE_SHUTDOWN_MESSAGE Discord message sent when server begins to shutdown Server is shutting down... "string" 0.31.0
DISCORD_PRE_SHUTDOWN_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_PRE_SHUTDOWN_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_POST_SHUTDOWN_MESSAGE Discord message sent when server has stopped Server is stopped! "string" 0.31.0
DISCORD_POST_SHUTDOWN_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_POST_SHUTDOWN_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_PLAYER_JOIN_MESSAGE Discord message sent when player joins the server player_name has joined Palworld! "string" 0.31.0
DISCORD_PLAYER_JOIN_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_PLAYER_JOIN_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_PLAYER_LEAVE_MESSAGE Discord message sent when player leaves the server player_name has left Palworld. "string" 0.31.0
DISCORD_PLAYER_LEAVE_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_PLAYER_LEAVE_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_PRE_BACKUP_MESSAGE Discord message when starting to create a backup Creating backup... "string" 0.31.0
DISCORD_PRE_BACKUP_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_PRE_BACKUP_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_POST_BACKUP_MESSAGE Discord message when a backup has been made Backup created at file_path "string" 0.31.0
DISCORD_POST_BACKUP_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_POST_BACKUP_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_PRE_BACKUP_DELETE_MESSAGE Discord message when starting to remove older backups Removing backups older than old_backup_days days "string" 0.31.0
DISCORD_PRE_BACKUP_DELETE_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_PRE_BACKUP_DELETE_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_POST_BACKUP_DELETE_MESSAGE Discord message when successfully removed older backups Removed backups older than old_backup_days days "string" 0.31.0
DISCORD_POST_BACKUP_DELETE_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_POST_BACKUP_DELETE_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISCORD_ERR_BACKUP_DELETE_MESSAGE Discord message when there has been an error removing older backups Unable to delete old backups, OLD_BACKUP_DAYS is not an integer. OLD_BACKUP_DAYS=old_backup_days "string" 0.31.0
DISCORD_ERR_BACKUP_DELETE_MESSAGE_ENABLED If the Discord message is enabled for this message true boolean 0.31.0
DISCORD_ERR_BACKUP_DELETE_MESSAGE_URL Discord Webhook URL for this message (if left empty will use DISCORD_WEBHOOK_URL) "string" 0.31.0
DISABLE_GENERATE_SETTINGS Whether to automatically generate the PalWorldSettings.ini false true/false 0.24.0
DISABLE_GENERATE_ENGINE Whether to automatically generate the Engine.ini true true/false 0.30.0
ENABLE_PLAYER_LOGGING Enables Logging and announcing when players join and leave true true/false 0.31.0
PLAYER_LOGGING_POLL_PERIOD Polling period (in seconds) to check for players who have joined or left 5 !0 0.31.0
USE_DEPOT_DOWNLOADER Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) false true/false 0.39.0

*highly recommended to set

** Make sure you know what you are doing when running this option enabled

*** Required for docker stop to save and gracefully close the server

ARM64-exclusive environment variables

ARM64 hosts can use the following variables to tweak their server setup. This includes known relevant Box64 configurations one can modify for better server stability/performance.

For the Box64 configurations, please see the their official documentation for more info.

Tip

Set ARM64_DEVICE to the most appropriate setting for your device. generic is expected to work on all devices but better stability can be found with specifying your device. For more specific device compatibility, create an issue on the base image repo.

Variable Info Default Values Allowed Values Added in Version
BOX64_DYNAREC_STRONGMEM [Box64 config] Enable/Disable simulation of Strong Memory model 1 0, 1, 2, 3 0.23.0
BOX64_DYNAREC_BIGBLOCK [Box64 config] Enables/Disables Box64's Dynarec building BigBlock. 1 0, 1, 2, 3 0.23.0
BOX64_DYNAREC_SAFEFLAGS [Box64 config] Handling of flags on CALL/RET opcodes 1 0, 1, 2 0.23.0
BOX64_DYNAREC_FASTROUND [Box64 config] Enable/Disable generation of precise x86 rounding 1 0, 1 0.23.0
BOX64_DYNAREC_FASTNAN [Box64 config] Enable/Disable generation of -NAN 1 0, 1 0.23.0
BOX64_DYNAREC_X87DOUBLE [Box64 config] Force the use of Double for x87 emulation 0 0, 1 0.23.0
ARM64_DEVICE Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. generic generic, m1, rpi5, adlink 0.39.0

Game Ports

Port Info
8211 Game Port (UDP)
8212 REST API Port (TCP)
27015 Query Port (UDP)
25575 RCON Port (TCP)

Using RCON

RCON is enabled by default for the palworld-server-docker image. Opening the RCON CLI is quite easy:

docker exec -it palworld-server rcon-cli "<command> <value>"

For example, you can broadcast a message to everyone in the server with the following command:

docker exec -it palworld-server rcon-cli "Broadcast Hello everyone"

This will open a CLI that uses RCON to write commands to the Palworld Server.

List of server commands

Command Info
Shutdown {Seconds} {MessageText} The server is shut down after the number of Seconds
DoExit Force stop the server.
Broadcast Send message to all player in the server
KickPlayer {SteamID} Kick player from the server..
BanPlayer {SteamID} BAN player from the server.
TeleportToPlayer {SteamID} Teleport to current location of target player.
TeleportToMe {SteamID} Target player teleport to your current location
ShowPlayers Show information on all connected players.
Info Show server information.
Save Save the world data.
UnBanPlayer {SteamID} Unban player {SteamID} from the server.

For a full list of commands go to: https://tech.palworldgame.com/settings-and-operation/commands

Using REST API

REST API is not enabled by default. If used, please set REST_API_ENABLED to true.

docker-compose.override.yml

services:
  palworld:
    environment:
      REST_API_ENABLED: true

The palworld-server-docker image provides rcon-cli as well as rest-cli.

$ docker exec -it palworld-server rest-cli
Usage: rest-cli <api> [options]
api:
  announce <json> ... announce message.
  ban <json>      ... ban player.
  info            ... show server informations.
  kick <json>     ... kick player.
  metrics         ... show server metrics.
  players         ... show online players.
  save            ... save the world.
  settings        ... show server settings.
  shutdown <json> ... shutdown server.
  stop            ... force stop server.
  unban <json>    ... unban player.
options:
  '{...}'         ... json.
  -               ... json from stdin.
  -h, --help      ... help.

For example, you can broadcast a message to everyone in the server with the following command:

CLI parameter style:

docker exec -i palworld-server rest-cli announce "Broadcast Hello everyone"

JSON parameter style:

docker exec -i palworld-server rest-cli announce '{"message":"Broadcast Hello everyone"}'

JSON pipe style:

echo '{"message":"Broadcast Hello everyone"}' | docker exec -i palworld-server rest-cli announce -

rest-cli allows you to call REST APIs directly without exposing ports outside the container.

List of REST APIs

API Info
info Get the server information.
players Get player list.
settings Get the server settings.
metrics Get the server metrics.
announce Announce message.
kick {SteamID} Kick player.
ban {SteamID} Ban player.
unban {SteamID} Unban player.
save Save the world.
shutdown {Seconds} {MessageText} Shutdown the server
stop Force stop the server.

For an official documents go to: https://tech.palworldgame.com/category/rest-api

Creating a backup

To create a backup of the game's save at the current point in time, use the command:

docker exec palworld-server backup

This will create a backup at /palworld/backups/

The server will run a save before the backup if rcon is enabled.

Restore from a backup

To restore from a backup, use the command:

docker exec -it palworld-server restore

The RCON_ENABLED environment variable must be set to true to use this command.

Important

If docker restart is not set to policy always or unless-stopped then the server will shutdown and will need to be manually restarted.

The example docker run command and docker compose file in How to Use already uses the needed policy

Manually restore from a backup

Locate the backup you want to restore in /palworld/backups/ and decompress it. Need to stop the server before task.

docker compose down

Delete the old saved data folder located at palworld/Pal/Saved/SaveGames/0/<old_hash_value>.

Copy the contents of the newly decompressed saved data folder Saved/SaveGames/0/<new_hash_value> to palworld/Pal/Saved/SaveGames/0/<new_hash_value>.

Replace the DedicatedServerName inside palworld/Pal/Saved/Config/LinuxServer/GameUserSettings.ini with the new folder name.

DedicatedServerName=<new_hash_value>  # Replace it with your folder name.

Restart the game. (If you are using Docker Compose)

docker compose up -d

Configuring Automatic Backups with Cron

The server is automatically backed up everynight at midnight according to the timezone set with TZ

Set BACKUP_ENABLED enable or disable automatic backups (Default is enabled)

BACKUP_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs.

Tip

This image uses Supercronic for crons see supercronic or Crontab Generator.

Set BACKUP_CRON_EXPRESSION to change the default schedule. Example Usage: If BACKUP_CRON_EXPRESSION to 0 2 * * *, the backup script will run every day at 2:00 AM.

Configuring Automatic Updates with Cron

To be able to use automatic Updates with this Server the following environment variables have to be set to true:

  • RCON_ENABLED
  • UPDATE_ON_BOOT

Important

If docker restart is not set to policy always or unless-stopped then the server will shutdown and will need to be manually restarted.

The example docker run command and docker compose file in How to Use already use the needed policy

Set AUTO_UPDATE_ENABLED enable or disable automatic updates (Default is disabled)

AUTO_UPDATE_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs.

Tip

This image uses Supercronic for crons see supercronic or Crontab Generator.

Set AUTO_UPDATE_CRON_EXPRESSION to change the default schedule.

Configuring Automatic Reboots with Cron

To be able to use automatic reboots with this server RCON_ENABLED enabled.

Important

If docker restart is not set to policy always or unless-stopped then the server will shutdown and will need to be manually restarted.

The example docker run command and docker compose file in How to Use already use the needed policy

Set AUTO_REBOOT_ENABLED enable or disable automatic reboots (Default is disabled)

AUTO_REBOOT_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs.

Tip

This image uses Supercronic for crons see supercronic or Crontab Generator.

Set AUTO_REBOOT_CRON_EXPRESSION to change the set the schedule, default is everynight at midnight according to the timezone set with TZ

Editing Server Settings

With Environment Variables

Important

These Environment Variables/Settings are subject to change since the game is still in beta. Check out the official webpage for the supported parameters.

Converting server settings to environment variables follow the same principles (with some exceptions):

  • all capital letters
  • split words by inserting an underscore
  • remove the single letter if the setting starts with one (like 'b')

For example:

  • Difficulty -> DIFFICULTY
  • PalSpawnNumRate -> PAL_SPAWN_NUM_RATE
  • bIsPvP -> IS_PVP
Variable Description Default Value Allowed Value
DIFFICULTY Game Difficulty None None,Normal,Difficult
DAYTIME_SPEEDRATE Day time speed - Larger number means shorter days 1.000000 Float
NIGHTTIME_SPEEDRATE Night time speed - Larger number means shorter nights 1.000000 Float
EXP_RATE EXP earn rate 1.000000 Float
PAL_CAPTURE_RATE Pal capture rate 1.000000 Float
PAL_SPAWN_NUM_RATE Pal appearance rate 1.000000 Float
PAL_DAMAGE_RATE_ATTACK Damage from pals multipiler 1.000000 Float
PAL_DAMAGE_RATE_DEFENSE Damage to pals multipiler 1.000000 Float
PLAYER_DAMAGE_RATE_ATTACK Damage from player multipiler 1.000000 Float
PLAYER_DAMAGE_RATE_DEFENSE Damage to player multipiler 1.000000 Float
PLAYER_STOMACH_DECREASE_RATE Player hunger depletion rate 1.000000 Float
PLAYER_STAMINA_DECREASE_RATE Player stamina reduction rate 1.000000 Float
PLAYER_AUTO_HP_REGEN_RATE Player auto HP regeneration rate 1.000000 Float
PLAYER_AUTO_HP_REGEN_RATE_IN_SLEEP Player sleep HP regeneration rate 1.000000 Float
PAL_STOMACH_DECREASE_RATE Pal hunger depletion rate 1.000000 Float
PAL_STAMINA_DECREASE_RATE Pal stamina reduction rate 1.000000 Float
PAL_AUTO_HP_REGEN_RATE Pal auto HP regeneration rate 1.000000 Float
PAL_AUTO_HP_REGEN_RATE_IN_SLEEP Pal sleep health regeneration rate (in Palbox) 1.000000 Float
BUILD_OBJECT_DAMAGE_RATE Damage to structure multipiler 1.000000 Float
BUILD_OBJECT_DETERIORATION_DAMAGE_RATE Structure determination rate 1.000000 Float
COLLECTION_DROP_RATE Getherable items multipiler 1.000000 Float
COLLECTION_OBJECT_HP_RATE Getherable objects HP multipiler 1.000000 Float
COLLECTION_OBJECT_RESPAWN_SPEED_RATE Getherable objects respawn interval - The smaller the number, the faster the regeneration 1.000000 Float
ENEMY_DROP_ITEM_RATE Dropped Items Multipiler 1.000000 Float
DEATH_PENALTY Death Penalty
None: No death penalty
Item: Drops items other than equipment
ItemAndEquipment: Drops all items
All: Drops all PALs and all items.
All None,Item,ItemAndEquipment,All
ENABLE_PLAYER_TO_PLAYER_DAMAGE Allows players to cause damage to players False Boolean
ENABLE_FRIENDLY_FIRE Allow friendly fire False Boolean
ENABLE_INVADER_ENEMY Enable invaders True Boolean
ACTIVE_UNKO Enable UNKO (?) False Boolean
ENABLE_AIM_ASSIST_PAD Enable controller aim assist True Boolean
ENABLE_AIM_ASSIST_KEYBOARD Enable Keyboard aim assist False Boolean
DROP_ITEM_MAX_NUM Maximum number of drops in the world 3000 Integer
DROP_ITEM_MAX_NUM_UNKO Maximum number of UNKO drops in the world 100 Integer
BASE_CAMP_MAX_NUM Maximum number of base camps 128 Integer
BASE_CAMP_WORKER_MAX_NUM Maximum number of workers 15 Integer
DROP_ITEM_ALIVE_MAX_HOURS Time it takes for items to despawn in hours 1.000000 Float
AUTO_RESET_GUILD_NO_ONLINE_PLAYERS Automatically reset guild when no players are online False Bool
AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS Time to automatically reset guild when no players are online 72.000000 Float
GUILD_PLAYER_MAX_NUM Max player of Guild 20 Integer
BASE_CAMP_MAX_NUM_IN_GUILD Max bases of Guild 4 Integer
PAL_EGG_DEFAULT_HATCHING_TIME Time(h) to incubate massive egg 72.000000 Float
WORK_SPEED_RATE Work speed muliplier 1.000000 Float
AUTO_SAVE_SPAN Time between autosaves (minutes) 30.000000 Float
IS_MULTIPLAY Enable multiplayer False Boolean
IS_PVP Enable PVP False Boolean
CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP Allow players from other guilds to pick up death penalty items False Boolean
ENABLE_NON_LOGIN_PENALTY Enable non-login penalty True Boolean
ENABLE_FAST_TRAVEL Enable fast travel True Boolean
IS_START_LOCATION_SELECT_BY_MAP Enable selecting of start location True Boolean
EXIST_PLAYER_AFTER_LOGOUT Toggle for deleting players when they log off False Boolean
ENABLE_DEFENSE_OTHER_GUILD_PLAYER Allows defense against other guild players False Boolean
INVISIBLE_OTHER_GUILD_BASE_CAMP_AREA_FX unknown False Boolean
COOP_PLAYER_MAX_NUM Maximum number of players in a guild 4 Integer
REGION Region String
USEAUTH Use authentication True Boolean
BAN_LIST_URL Which ban list to use https://api.palworldgame.com/api/banlist.txt string
SHOW_PLAYER_LIST Enable show player list True Boolean

Manually

When the server starts, a PalWorldSettings.ini file will be created in the following location: <mount_folder>/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini

Please keep in mind that the ENV variables will always overwrite the changes made to PalWorldSettings.ini.

Important

Changes can only be made to PalWorldSettings.ini while the server is off.

Any changes made while the server is live will be overwritten when the server stops.

For a more detailed list of server settings go to: Palworld Wiki

For more detailed server settings explanations go to: shockbyte

Using discord webhooks

  1. Generate a webhook url for your discord server in your discord's server settings.

  2. Set the environment variable with the unique token at the end of the discord webhook url example: https://discord.com/api/webhooks/1234567890/abcde

send discord messages with docker run:

-e DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/1234567890/abcde" \
-e DISCORD_PRE_UPDATE_BOOT_MESSAGE="Server is updating..." \

send discord messages with docker compose:

- DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/1234567890/abcde
- DISCORD_PRE_UPDATE_BOOT_MESSAGE=Server is updating...

Locking Specific Game Version

Warning

Downgrading to a lower game version is possible, but it is unknown what impact it will have on existing saves.

Please do so at your own risk!

If TARGET_MANIFEST_ID environment variable is set, will lock server version to specific manifest. The manifest corresponds to the release date/update versions. Manifests can be found using SteamCMD or websites like SteamDB.

Version To Manifest ID Table

Version Manifest ID
0.1.3.0 1354752814336157338
0.1.4.0 4190579964382773830
0.1.4.1 6370735655629434989
0.1.5.0 3750364703337203431
0.1.5.1 2815085007637542021
0.2.0.6 1677469329840659324
0.2.1.0 8977386334474359538

Reporting Issues/Feature Requests

Issues/Feature requests can be submitted by using this link.

Known Issues

Known issues are listed in the documentation

palworld-server-docker's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

palworld-server-docker's Issues

Running Error

sh: 1: ./PalServer.sh: not found
STARTING SERVER��Executing usermod...
usermod: no changes
/home/steam/steamcmd/steamcmd.sh: line 38: /home/steam/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
STARTING INSTALL/UPDATE./PalServer.sh -port=8211 -players=16 -publicip=121.222.82.122 -publicport=8211 -servername=REDACTED -serverpassword=REDACTED -adminpassword=REDACTED
sh: 1: ./PalServer.sh: not found
STARTING SERVER��Executing usermod...
usermod: no changes
/home/steam/steamcmd/steamcmd.sh: line 38: /home/steam/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
STARTING INSTALL/UPDATE./PalServer.sh -port=8211 -players=16 -publicip=121.222.82.122 -publicport=8211 -servername=REDACTED -serverpassword=REDACTED -adminpassword=REDACTED
sh: 1: ./PalServer.sh: not found
STARTING SERVER��Executing usermod...
usermod: no changes
/home/steam/steamcmd/steamcmd.sh: line 38: /home/steam/steamcmd/linux32/steamcmd: cannot execute binary file: Exec format error
STARTING INSTALL/UPDATE./PalServer.sh -port=8211 -players=16 -publicip=121.222.82.122 -publicport=8211 -servername=REDACTED -serverpassword=REDACTED -adminpassword=REDACTED
sh: 1: ./PalServer.sh: not found
STARTING SERVER****

read up i/o timeout

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

Steps to reproduce the behavior:

  1. $ docker compose up -d palworld

and you'll get this output:

[+] Running 1/1
 ✘ palworld Error                                                                                                             20.0s Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.1.3:53: read udp 192.168.1.124:50202->192.168.1.3:53: i/o timeout

Expected behavior

The container comes up

Screenshots

N/A

Desktop (please complete the following information):

Linux home-server 5.10.0-27-cloud-amd64 #1 SMP Debian 5.10.205-2 (2023-12-31) x86_64 GNU/Linux

docker-compose.yml contents

version: "3.7"

services:
  palworld:
    image: thijsvanloef/palworld-server-docker
    container_name: palworld
    ports:
      - 8211:8211/udp
      - 27015:27015/udp
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - PORT=8211
      - PLAYERS=16
      - MULTITHREADING=TRUE
      - COMMUNITY=false  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
      # Enable the environment variables below if you have COMMUNITY=true
      - SERVER_PASSWORD=${SECRET_PALWORLD_SERVER_PASSWORD}
      - SERVER_NAME="Friends"
      - ADMIN_PASSWORD=${SECRET_PALWORLD_ADMIN_PASSWORD}
    volumes:
        - ${SERVER_CONFIG_BASE}/palworld:/palworld/
    restart: unless-stopped

(i have some environment variables set)


## Container/Host Logs

N/A

## Additional context

N/A

Cannot start server if volume is on noexec mount

Describe the bug

When the server attempts to start on a linux host where the supplied volume is on a noexec mounted filesystem, the server does not start.

To Reproduce

  1. Create a GCP VM instance with the: thijsvanloef/palworld-server-docker container image
  2. Set environment variables to the defaults provided in the readme
  3. Add a volume mount. (i'm mounting /home/palworld on the host to /palworld for simplicity)
  4. Start the instance

Expected behavior

The server starts 😄

Env

  • OS: Google Container Optimized OS

docker-compose.yml contents

not using compose

Container/Host Logs

*****CHECKING FOR EXISTING CONFIG*****
*****GENERATING CONFIG*****
timeout: failed to run command './PalServer.sh': Permission denied
cp: cannot create regular file '/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini': No such file or directory
RCON_ENABLED=true
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
RCON_PORT=25575
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
*****STARTING SERVER*****
./PalServer.sh -port=8211 -players=16 -adminpassword=xxx -queryport=27015
sh: 1: ./PalServer.sh: Permission denied

Additional context

The volume mounts and installs fine, and all permissions look correct. If I go in and manually create the Saved/Config/LinuxServer path, the settings file does get made, but the sh: 1: ./PalServer.sh: Permission denied error persists.

user@palworld /home $ ls -la
total 20
(...)
drwxrwxrwx  7 chronos chronos 4096 Jan 24 17:50 palworld

user@palworld /home/palworld $ ls -la
total 44160
drwxrwxrwx 7 chronos chronos     4096 Jan 24 17:40 .
drwxr-xr-x 5 root    root        4096 Jan 24 17:32 ..
-rwxr-xr-x 1 chronos chronos     1974 Jan 24 17:35 DefaultPalWorldSettings.ini
drwxr-xr-x 6 chronos chronos     4096 Jan 24 17:39 Engine
-rwxr-xr-x 1 chronos chronos      654 Jan 24 17:35 Manifest_DebugFiles_Linux.txt
-rwxr-xr-x 1 chronos chronos     3027 Jan 24 17:35 Manifest_NonUFSFiles_Linux.txt
-rwxr-xr-x 1 chronos chronos  7506646 Jan 24 17:35 Manifest_UFSFiles_Linux.txt
drwxr-xr-x 5 chronos chronos     4096 Jan 24 17:39 Pal
-rwxr-xr-x 1 chronos chronos      252 Jan 24 17:35 PalServer.sh
drwxr-xr-x 2 chronos chronos     4096 Jan 24 17:34 backups
drwxr-xr-x 2 chronos chronos     4096 Jan 24 17:39 linux64
drwxr-xr-x 4 chronos chronos     4096 Jan 24 17:40 steamapps
-rwxr-xr-x 1 chronos chronos 37665020 Jan 24 17:35 steamclient.so

In COS, most mounts are "noexec", and I suspect that is the culprit here. If an interpreter can be used to start the server, I believe this will work: bash ./PalServer.sh.

I have manually created and stuck the volume on a non-noexec mount and I can start it successfully. However, this isn't easily sustainable as one needs to reconfigure the instance after every boot.

./PalServer.sh Not Found

Describe the bug
After following all the steps in your readme, I got the docker container up and running. However, it is looping over and over again on this error and then restarting. I'm not sure why

2024-01-20 15:36:04 palworld-server | *****STARTING SERVER*****2024-01-20T23:37:05.363723114Z *****STARTING INSTALL/UPDATE*****tid(14) burning pthread_key_t == 0 so we never use it 2024-01-20 15:37:05 palworld-server | Redirecting stderr to '/root/Steam/logs/stderr.txt' 2024-01-20 15:37:05 palworld-server | Logging directory: '/root/Steam/logs' 2024-01-20 15:37:05 palworld-server | [ 0%] Checking for available updates... 2024-01-20 15:37:05 palworld-server | [----] Verifying installation... 2024-01-20 15:37:05 palworld-server | Steam Console Client (c) Valve Corporation - version 1705108307 2024-01-20 15:37:05 palworld-server | -- type 'quit' to exit -- 2024-01-20 15:37:05 palworld-server | Loading Steam API...OK 2024-01-20 15:37:05 palworld-server | 2024-01-20 15:37:08 palworld-server | Connecting anonymously to Steam Public...OK 2024-01-20 15:37:08 palworld-server | Waiting for client config...OK 2024-01-20 15:37:13 palworld-server | Waiting for user info...OK 2024-01-20 15:37:13 palworld-server | Update state (0x3) reconfiguring, progress: 0.00 (0 / 0) 2024-01-20 15:37:13 palworld-server | Update state (0x3) reconfiguring, progress: 0.00 (0 / 0) 2024-01-20 15:37:13 palworld-server | Error! App '2394010' state is 0x202 after update job. 2024-01-20 15:37:13 palworld-server | ./PalServer.sh -port=8211 -players=16 2024-01-20 15:37:13 palworld-server | sh: 1: ./PalServer.sh: not found

Docker is running on the latest version of Debian 11

`docker-compose` example should include version

Describe the bug

The docker-compose.yml example does not work out of the box.

It needs a version designated at the top.

ex:

version: "3.7"

To Reproduce

% docker-compose up -d
ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services: 'palworld'

Expected behavior

Stack should stand up.

Screenshots

N/A

Desktop (please complete the following information):

Not necessary.

docker-compose.yml contents

Using the default.

Container/Host Logs

N/A

Additional context

N/A

Add any other context about the problem here.

Game settings via command-line arguments

This came up in #40 (comment)

Since Palworld uses UE, instead of modifying the PalWorldSettings.ini directly, we should be able to pass in arguments in the start script

This would offer a FAR better alternative than modifying PalWorldSettings.ini directly, and would only really require a new environment variable and documentation, such as INI_ARGS or ARGS

chrome_DIrmpoSWKK

SteamAPI Initialization Issue During Server Startup

Hi there,

I'm encountering an issue during server startup where the SteamAPI fails to initialize before accessing Steam interfaces. The specific errors in the log are:

STARTING INSTALL/UPDATEtid(13) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/root/Steam/logs/stderr.txt'
Logging directory: '/root/Steam/logs'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...STARTING INSTALL/UPDATEtid(12) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/root/Steam/logs/stderr.txt'
Logging directory: '/root/Steam/logs'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
Update state (0x5) verifying install, progress: 3.89 (183811515 / 4729403737)
Update state (0x5) verifying install, progress: 11.78 (557110360 / 4729403737)
Update state (0x5) verifying install, progress: 19.76 (934597720 / 4729403737)
Update state (0x5) verifying install, progress: 27.68 (1308946124 / 4729403737)
Update state (0x5) verifying install, progress: 35.54 (1680807758 / 4729403737)
Update state (0x5) verifying install, progress: 43.23 (2044514465 / 4729403737)
Update state (0x5) verifying install, progress: 51.11 (2417006988 / 4729403737)
Update state (0x5) verifying install, progress: 59.08 (2794106774 / 4729403737)
Update state (0x5) verifying install, progress: 67.11 (3174075366 / 4729403737)
Update state (0x5) verifying install, progress: 75.02 (3548194126 / 4729403737)
Update state (0x5) verifying install, progress: 82.97 (3924164491 / 4729403737)
Update state (0x5) verifying install, progress: 90.92 (4300113788 / 4729403737)
Update state (0x5) verifying install, progress: 98.76 (4670725069 / 4729403737)
Success! App '2394010' fully installed.
./PalServer.sh -port=8211 -players=16
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
STARTING SERVERShutdown handler: initalize.
Increasing per-process limit of core file size to infinity.

  • Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
    CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
    Setting breakpad minidump AppID = 2394010
    [S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
    [S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
    [S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
    [S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

It seems that the server needs to wait for successful SteamAPI initialization before accessing Steam interfaces. I've attempted some adjustments, but the issue persists.

Any assistance in resolving this matter would be greatly appreciated.

port modify doesn't work?

Describe the bug

Hi Thijs, thanks for your docker. I have a question about the port change.

Modify docker-compose.yml ->

......
       ports:
-        - 8211:8211/udp
+        - 8888:8211/udp
         - 27015:27015/udp
       environment:
          - PUID=1000
          - PGID=1000
-         - PORT=8211 # Optional but recommended
+         - PORT=8888 # Optional but recommended
          - PLAYERS=16 # Optional but recommended
......

But it doesn't work if I connect with the port in the game. Am I setting wrong?

To Reproduce

Steps to reproduce the behavior:

After modify I run
docker compose up -d

Expected behavior

Connect the game with the url :8888

Cannot connect to server

Describe the bug

I can't connect to the server. Locally or remotely.

To Reproduce

Use the given docker-compose
I have a clean palworld container and volume (using docker system prune -a)
I have ufw inactive

Expected behavior

I should be able to connect

Desktop (please complete the following information):

  • Debian 12
  • R7 1700
  • 32GB RAM
  • Docker version 20.10.24+dfsg1, build 297e128

docker-compose.yml contents

services:
   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      ports:
        - 8211:8211/tcp
        - 8211:8211/udp
        - 27015:27015/udp
      environment:
         - PUID=1000
         - PGID=1000
         - PORT=8211 # Optional but recommended
         - PLAYERS=16 # Optional but recommended
         - MULTITHREADING=true
         - RCON_ENABLED=false
         #- RCON_PORT=25575
         #- ADMIN_PASSWORD="adminPasswordHere"
         - COMMUNITY=false  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
         # Enable the environment variables below if you have COMMUNITY=true
         # - SERVER_PASSWORD="worldofpals"
         # - SERVER_NAME="World of Pals"
      volumes:
         - /mnt/ssd/palworld:/palworld/

Container/Host Logs

Attaching to palworld-server
palworld-server | *****EXECUTING USERMOD*****
palworld-server | usermod: no changes
palworld-server | *****STARTING INSTALL/UPDATE*****
palworld-server | tid(22) burning pthread_key_t == 0 so we never use it
palworld-server | Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
palworld-server | Logging directory: '/home/steam/Steam/logs'
palworld-server | [  0%] Checking for available updates...
palworld-server | [----] Verifying installation...
palworld-server | [  0%] Downloading update...
palworld-server | [  0%] Checking for available updates...
palworld-server | [----] Download complete.
palworld-server | [----] Extracting package...
palworld-server | [----] Extracting package...
palworld-server | [----] Extracting package...
palworld-server | [----] Extracting package...
palworld-server | [----] Installing update...
palworld-server | [----] Installing update...
palworld-server | [----] Installing update...
palworld-server | [----] Installing update...
palworld-server | [----] Installing update...
palworld-server | [----] Installing update...
palworld-server | [----] Installing update...
palworld-server | [----] Installing update...
palworld-server | [----] Cleaning up...
palworld-server | [----] Update complete, launching Steamcmd...
palworld-server | tid(34) burning pthread_key_t == 0 so we never use it
palworld-server | Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
palworld-server | Logging directory: '/home/steam/Steam/logs'
palworld-server | [  0%] Checking for available updates...
palworld-server | [----] Verifying installation...
palworld-server | Steam Console Client (c) Valve Corporation - version 1705108307
palworld-server | -- type 'quit' to exit --
palworld-server | Loading Steam API...OK
palworld-server | 
palworld-server | Connecting anonymously to Steam Public...OK
palworld-server | Waiting for client config...OK
palworld-server | Waiting for user info...OK
palworld-server |  Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
palworld-server |  Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
palworld-server |  Update state (0x61) downloading, progress: 1.02 (48234496 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 3.81 (180412994 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 8.25 (390014426 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 18.92 (895023037 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 25.90 (1224946307 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 36.19 (1711783108 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 50.62 (2394072707 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 60.94 (2882277322 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 65.73 (3108715499 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 67.08 (3172443402 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 68.25 (3227665188 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 69.22 (3273614944 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 70.39 (3328853204 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 71.73 (3392272567 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 72.90 (3447860448 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 74.26 (3512245081 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 75.74 (3581894092 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 77.00 (3641632532 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 78.22 (3699415954 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 79.44 (3757150787 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 80.68 (3815750609 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 82.22 (3888598267 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 83.49 (3948567618 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 84.72 (4006822579 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 86.07 (4070630781 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 87.46 (4136427368 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 88.71 (4195574287 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 90.10 (4261024516 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 91.47 (4326106183 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 92.80 (4388858861 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 94.18 (4453991792 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 95.44 (4513907539 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 96.70 (4573370361 / 4729437191)
palworld-server |  Update state (0x61) downloading, progress: 98.01 (4635228011 / 4729437191)
palworld-server |  Update state (0x81) verifying update, progress: 1.10 (51844912 / 4729437191)
palworld-server |  Update state (0x81) verifying update, progress: 18.91 (894485310 / 4729437191)
palworld-server |  Update state (0x81) verifying update, progress: 37.34 (1765954367 / 4729437191)
palworld-server |  Update state (0x81) verifying update, progress: 55.52 (2625861427 / 4729437191)
palworld-server |  Update state (0x81) verifying update, progress: 73.76 (3488350837 / 4729437191)
palworld-server |  Update state (0x81) verifying update, progress: 91.91 (4346953063 / 4729437191)
palworld-server | Success! App '2394010' fully installed.
palworld-server | *****CHECKING FOR EXISTING CONFIG*****
palworld-server | *****GENERATING CONFIG*****
palworld-server | [S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
palworld-server | CAppInfoCacheReadFromDiskThread took 3 milliseconds to initialize
palworld-server | Setting breakpad minidump AppID = 2394010
palworld-server | [S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
palworld-server | [S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
palworld-server | [S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
palworld-server | [S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
palworld-server | RCON_ENABLED=false
palworld-server | RCON_PORT=25575
palworld-server | *****STARTING SERVER*****
palworld-server | ./PalServer.sh -port=8211 -players=16 -queryport=27015 -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
palworld-server | [S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
palworld-server | Shutdown handler: initalize.
palworld-server | Increasing per-process limit of core file size to infinity.
palworld-server | - Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
palworld-server | CAppInfoCacheReadFromDiskThread took 5 milliseconds to initialize
palworld-server | Setting breakpad minidump AppID = 2394010
palworld-server | [S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
palworld-server | [S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
palworld-server | [S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
palworld-server | [S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

Additional context

I have tried other containers but have only had the same issue

Can we have option to stop the server if last player disconnected

Is your feature request related to a problem? Please describe.
Pets may die during the time where nobody is looking for them (some people have to work :D)
On other steamcmd servers it was possible to set a flag to stop the server after the last player disconnected, I believe it was satisfactory, but don't hurt me if I'm wrong.

Describe the solution you'd like
We need an ENV variable that do the feature for us.

Describe alternatives you've considered
n.a.

Additional context
all said, at least I hope so :D

Why does the steam API get an error?

STARTING SERVER
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.

  • Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
    CAppInfoCacheReadFromDiskThread took 11 milliseconds to initialize
    Setting breakpad minidump AppID = 2394010
    [S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
    [S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
    [S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
    [S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

docker-compose.yml

version: '3.1'
services:
palworld:
image: thijsvanloef/palworld-server-docker:latest
restart: unless-stopped
container_name: palworld-server
ports:
- 8211:8211/udp
- 27015:27015/udp
environment:
- PUID=1000
- PGID=1000
- PORT=8211
- PLAYERS=4
- MULTITHREADING=true
- COMMUNITY=true
- SERVER_PASSWORD="pwd"
- SERVER_NAME="lg-test"
- ADMIN_PASSWORD="pwd"
volumes:
- ./palworld:/palworld/
restarter:
image: docker:cli
volumes: ["/var/run/docker.sock:/var/run/docker.sock"]
command: ["/bin/sh", "-c", "while true; do sleep 86400; docker restart palworld; done"]
restart: unless-stopped

Stopping does not appear to be graceful

When I use docker stop palworld to stop the container, it doesn't seem to gracefully shutdown the server. Instead, it waits until the end of the timeout and just kills it. The default is 10 seconds, I've tried 30 and 60 and they all just go until the end and kill it.

In the container I've tried sending it 15 and 9 via kill, but they don't seem to be particularly graceful either.

There does appear to be an rcon / admin command /Shutdown {Seconds} {MessageText} (source, so maybe that could be incorporated somehow?

I'll do more research and see what I can figure out, but maybe someone has better ideas?

Adding rcon-cli to the image

Hi there!

Love the docker image, been using it in my local homelab cluster to run palworld without any problems for my friends and I. Palworld, by default, offers you to enable rcon. I'd love to see the rcon-cli being added in the near future.

Synology issues

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

I use like this.

docker run -d
--name palworld-eklipc
-p 8211:8211/udp
-p 27015:27015/udp
-v /volume1/docker/palworld:/palworld/
-e PLAYERS=16
-e PORT=8211
-e PUID=1000
-e PGID=1000
-e COMMUNITY=false
thijsvanloef/palworld-server-docker

When I run it, I need to restart the dsm.

And that's why I removed reboot all the time because otherwise the dsm will let me dumb.

Desktop (please complete the following information):

  • OS: Synology 7.1
  • Browser firefox
  • Version latest

docker-compose.yml contents

Container/Host Logs

WARNING: Error loading config file: .dockercfg: $HOME is not defined
1dea44f8d29e0c518a84720ecf069151e4836f41460506cd36e8b7878a598db8

Additional context

Starting a second server but same machine?

Do you know how I would start a second server in another container but on the same machine? I know how to compose it and set it up in another container but how would the networking work with the public IP address?

Questions about using RCON

When using Broadcast among RCON's functions, only one word is transmitted. Can it be sent as a sentence?

As an example, if I use
docker exec -it palworld-server rcon-cli Broadcast "Hello world"
only Hello is transmitted.

Also, I wonder if support is available for Korean.

Debug logs?

Is your feature request related to a problem? Please describe.
Got it running locally, and attempting to run it on Railway.app. Seems it just can't connect, and wondering if there's a way to turn on debug logging

Describe the solution you'd like
An environment variable for: LOG_LEVEL=debug,warn,error

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

cron job to backup save files

considering how unstable the game is, automatic backups every hour or so (keeping the last X backups) would be helpful if someone needs to roll back to recover after a bug or crash.

Invalid argument error

Describe the bug

./PalServer.sh -port=8211 -players=16
setrlimit() failed with error 22 (Invalid argument)

  • Max per-process value allowed is 0 (we wanted infinity).
    [S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
    STARTING SERVERShutdown handler: initalize.

To Reproduce
Steps to reproduce the behavior:
environment:
- PORT=8211
- PLAYERS=16
- MULTITHREADING=false
- COMMUNITY=false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
# Enable the environment variables below if you have COMMUNITY=true
# - SERVER_PASSWORD="worldofpals"
# - SERVER_NAME="World of Pals"
# - ADMIN_PASSWORD="someAdminPassword"
- UPDATE_ON_BOOT=true

Expected behavior
Server starts correctly

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

a way to change generall game world settings

i would love a way to settings for the gameworld ( PalWorldSettings )

currently have no idea how to find the file used to configure this

wouuld love to to fo example set item drop on death to off /or set a hasher penalty

Server not appearing in community server list

Describe the bug

Server not appearing on community server list after setup.

To Reproduce

Steps to reproduce the behavior:

  • forward ports 8211 and 27015 in router
  • create directory and user
sudo mkdir -p /opt/docker/palworld/palworld/
sudo adduser --system --group --no-create-home --home /opt/docker/palworld/ palworld
  • add /opt/docker/palworld/palworld.yaml and /opt/docker/palworld/palworld.env files
  • set ownership and permissions
sudo chown -R palworld:palworld /opt/docker/palworld/
sudo chmod -R 755 /opt/docker/palworld/
  • run container
docker compose --file /opt/docker/palworld/palworld.yaml up -d

Expected behavior

I should be able to go into game and find my server on the list of community servers.

Desktop (please complete the following information):

  • Kernel: Linux 5.4.203 x86_64 GNU/Linux
  • OS: Debian 10

docker-compose.yml contents

services:
  palworld:
    image: thijsvanloef/palworld-server-docker:latest
    restart: unless-stopped
    container_name: palworld
    ports:
      - 8211:8211/udp
      - 27015:27015/udp
    env_file:
      - /opt/docker/palworld/palworld.env
    volumes:
      - /opt/docker/palworld/palworld/:/palworld/

docker .env file contents

PUID=${id -u palworld}
PGID=${id -g palworld}
PORT=8211
PLAYERS=31
MULTITHREADING=false
RCON_ENABLED=true
RCON_PORT=25575
ADMIN_PASSWORD="multi-word-password"
COMMUNITY=true
SERVER_PASSWORD="password"
SERVER_NAME="Server name"
PUBLIC_IP=<external ip address>
PUBLIC_PORT=8211
QUERY_PORT=27015

Container/Host Logs

Output for docker logs palworld:

*****EXECUTING USERMOD*****
*****STARTING INSTALL/UPDATE*****
tid(27) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
/tmp/dumps is not owned by us - delete and recreate
Unable to delete /tmp/dumps. Continuing anyway.
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x61) downloading, progress: 0.49 (23068672 / 4729437191)
 Update state (0x61) downloading, progress: 1.32 (62330672 / 4729437191)
 Update state (0x61) downloading, progress: 1.63 (76929186 / 4729437191)
 Update state (0x61) downloading, progress: 3.22 (152426658 / 4729437191)
 Update state (0x61) downloading, progress: 4.91 (232118719 / 4729437191)
 Update state (0x61) downloading, progress: 7.62 (360301169 / 4729437191)
 Update state (0x61) downloading, progress: 12.22 (577771859 / 4729437191)
 Update state (0x61) downloading, progress: 17.18 (812455845 / 4729437191)
 Update state (0x61) downloading, progress: 23.41 (1107107630 / 4729437191)
 Update state (0x61) downloading, progress: 26.27 (1242373934 / 4729437191)
 Update state (0x61) downloading, progress: 30.13 (1425008904 / 4729437191)
 Update state (0x61) downloading, progress: 35.14 (1661776343 / 4729437191)
 Update state (0x61) downloading, progress: 39.79 (1881847492 / 4729437191)
 Update state (0x61) downloading, progress: 43.22 (2044183914 / 4729437191)
 Update state (0x61) downloading, progress: 46.06 (2178238336 / 4729437191)
 Update state (0x61) downloading, progress: 48.47 (2292288436 / 4729437191)
 Update state (0x61) downloading, progress: 51.79 (2449239029 / 4729437191)
 Update state (0x61) downloading, progress: 57.98 (2742253689 / 4729437191)
 Update state (0x61) downloading, progress: 63.32 (2994755793 / 4729437191)
 Update state (0x61) downloading, progress: 66.30 (3135499360 / 4729437191)
 Update state (0x61) downloading, progress: 68.35 (3232591375 / 4729437191)
 Update state (0x61) downloading, progress: 69.44 (3284049068 / 4729437191)
 Update state (0x61) downloading, progress: 70.66 (3341892300 / 4729437191)
 Update state (0x61) downloading, progress: 71.69 (3390499189 / 4729437191)
 Update state (0x61) downloading, progress: 72.77 (3441581896 / 4729437191)
 Update state (0x61) downloading, progress: 73.92 (3495845822 / 4729437191)
 Update state (0x61) downloading, progress: 74.87 (3540948031 / 4729437191)
 Update state (0x61) downloading, progress: 75.94 (3591618890 / 4729437191)
 Update state (0x61) downloading, progress: 77.02 (3642472421 / 4729437191)
 Update state (0x61) downloading, progress: 78.15 (3696216377 / 4729437191)
 Update state (0x61) downloading, progress: 79.13 (3742556959 / 4729437191)
 Update state (0x61) downloading, progress: 80.24 (3794973528 / 4729437191)
 Update state (0x61) downloading, progress: 81.36 (3847664764 / 4729437191)
 Update state (0x61) downloading, progress: 82.42 (3898064912 / 4729437191)
 Update state (0x61) downloading, progress: 83.57 (3952437321 / 4729437191)
 Update state (0x61) downloading, progress: 84.65 (4003312862 / 4729437191)
 Update state (0x61) downloading, progress: 85.81 (4058179099 / 4729437191)
 Update state (0x61) downloading, progress: 86.96 (4112828441 / 4729437191)
 Update state (0x61) downloading, progress: 88.09 (4166302328 / 4729437191)
 Update state (0x61) downloading, progress: 89.18 (4217823172 / 4729437191)
 Update state (0x61) downloading, progress: 90.32 (4271556444 / 4729437191)
 Update state (0x61) downloading, progress: 91.35 (4320482316 / 4729437191)
 Update state (0x61) downloading, progress: 92.71 (4384771606 / 4729437191)
 Update state (0x61) downloading, progress: 93.81 (4436887591 / 4729437191)
 Update state (0x61) downloading, progress: 95.06 (4495870601 / 4729437191)
 Update state (0x61) downloading, progress: 96.28 (4553362098 / 4729437191)
 Update state (0x61) downloading, progress: 97.49 (4610626051 / 4729437191)
 Update state (0x61) downloading, progress: 98.56 (4661330382 / 4729437191)
 Update state (0x61) downloading, progress: 99.93 (4726342110 / 4729437191)
 Update state (0x81) verifying update, progress: 2.57 (121678087 / 4729437191)
 Update state (0x81) verifying update, progress: 7.18 (339781895 / 4729437191)
 Update state (0x81) verifying update, progress: 13.44 (635487038 / 4729437191)
 Update state (0x81) verifying update, progress: 21.68 (1025557310 / 4729437191)
 Update state (0x81) verifying update, progress: 28.91 (1367407147 / 4729437191)
 Update state (0x81) verifying update, progress: 35.06 (1658161510 / 4729437191)
 Update state (0x81) verifying update, progress: 42.21 (1996262823 / 4729437191)
 Update state (0x81) verifying update, progress: 50.13 (2370849785 / 4729437191)
 Update state (0x81) verifying update, progress: 58.62 (2772437417 / 4729437191)
 Update state (0x81) verifying update, progress: 65.34 (3090108787 / 4729437191)
 Update state (0x81) verifying update, progress: 72.09 (3409315277 / 4729437191)
 Update state (0x81) verifying update, progress: 80.15 (3790469217 / 4729437191)
 Update state (0x81) verifying update, progress: 85.70 (4053026241 / 4729437191)
 Update state (0x81) verifying update, progress: 92.85 (4391229127 / 4729437191)
 Update state (0x81) verifying update, progress: 99.24 (4693413797 / 4729437191)
Success! App '2394010' fully installed.
*****CHECKING FOR EXISTING CONFIG*****
*****GENERATING CONFIG*****
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
CAppInfoCacheReadFromDiskThread took 8 milliseconds to initialize
Setting breakpad minidump AppID = 2394010
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
RCON_ENABLED=true
RCON_PORT=25575
*****STARTING SERVER*****
./PalServer.sh -port=8211 -players=31 EpicApp=PalServer -publicip=<external ip address> -publicport=8211 -servername=Server name -serverpassword=password -adminpassword=multi-word-password -queryport=27015
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
Shutdown handler: initalize.
Increasing per-process limit of core file size to infinity.
- Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
CAppInfoCacheReadFromDiskThread took 3 milliseconds to initialize
Setting breakpad minidump AppID = 2394010
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.

Contents of /home/steam/Steam/logs/stderr.txt

01/24 00:05:21 Init: Installing breakpad exception handler for appid(steam)/version(1705108307)/tid(27)
CAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
Steam Service Error: Failed to get Steam Service Start function
Shutting down: stopping app stats write job

Output of rcon-cli Info command:

Weird. This response is for another request.
Welcome to Pal Server[v0.1.2.0] Server

Additional context

I feel like there is something I must be missing but I just can't figure out what's going on. But I'm not finding any information on any of the log outputs that would fix my issue. Sorry if I'm just missing something simple, it just feels like I'm not doing anything special with the container and it should be working.

May I have ARM 64 version?

I tried your docker image but not work. It shows that exec format error. I guess my Linux is ARM64. So, May I get the ARM version for this docker image? Thank you very much.

Server config cant modify

I setup the server without community enable
But now i set the environnement variables in the compose, and the server name doesnt change, nor the options
I dont understand why
Even when i set the PalWorldSettings.ini, and restart the server, it doesnt take the news parameters

image: thijsvanloef/palworld-test Proteted on Docker HUB

Describe the bug

Hi amigo,

Thx for your work.

I have a question.

Recently, you changed the tag of your Docker image from thijsvanloef/palworld-server-docker to thijsvanloef/palworld-test in your Docker Compose file. The thijsvanloef/palworld-test image is protected, It cannot be used in comparison to thijsvanloef/palworld-server-docker.

I would like to know if you are in the process of modifying it, or if this is an error during testing.

or maybe I made a mistake.

Server working but not showing up in Community servers

Describe the bug
Set the community server env variable to true, the server doesn't show up in the community servers list, the port forwarding is correct, and direct connecting with ip:ports works if the password is removed, but the server doesn't show up in either the server browser or the Recent server list, I know there are problems right now with the server search, but it doesnt show up even looking here: https://www.battlemetrics.com/servers/palworld?sort=score

Anyone knows whats wrong, I'm self hosting it on my home server with a dynamic ip, sadly the game doesn't let you connect using an url, so I'd like to make this work so I don't have to tell all my friend my new ip every time it refreshes.

Cannot use RCON

I deleted and reinstalled the docker container to use RCON, but it didn't work if I type "docker exec -it palworld-server rcon-cli".

Error Message:
OCI runtime exec failed: exec failed: unable to start container process: exec: "rcon-cli": executable file not found in $PATH: unknown

Daily/weekly restart

since there's guaranteed to be memory leaks in their server client, can we get a ENV values to manage restarts (daily, weekly, what time of day, etc). longer term if they provide more logging from the server binary, being able to skip the restart if players are connected would be cool.

Fix argument option name in "start.sh"

Firstly, thank you for making the repository available.

I had problems setting the PUBLIC_PORT. From what I analyzed, on line 16 of the "start.sh" file:

STARTCOMMAND="${STARTCOMMAND} -publiport=${PUBLIC_PORT}"

Shouldn't the argument passed be "publicport" ?

Permission issues running on Kubernetes

Describe the bug

Server fails to install on first run due to not being able to write to filesystem.

To Reproduce

Deploy as a Kubernetes pod.

Expected behavior

Server should start up

Container/Host Logs

*****EXECUTING USERMOD*****
usermod: no changes
*****STARTING INSTALL/UPDATE*****
tid(22) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
tid(34) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
 Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
 Update state (0x61) downloading, progress: 0.00 (0 / 4729437191)
 Update state (0x61) downloading, progress: 2.29 (108384492 / 4729437191)
 Update state (0x61) downloading, progress: 5.08 (240183440 / 4729437191)
 Update state (0x61) downloading, progress: 7.53 (356275404 / 4729437191)
 Update state (0x61) downloading, progress: 10.33 (488396193 / 4729437191)
 Update state (0x61) downloading, progress: 13.65 (645404772 / 4729437191)
 Update state (0x61) downloading, progress: 16.69 (789113983 / 4729437191)
 Update state (0x61) downloading, progress: 19.91 (941427815 / 4729437191)
 Update state (0x61) downloading, progress: 23.01 (1088228455 / 4729437191)
 Update state (0x61) downloading, progress: 25.20 (1192037479 / 4729437191)
 Update state (0x61) downloading, progress: 28.26 (1336745774 / 4729437191)
 Update state (0x61) downloading, progress: 31.01 (1466769198 / 4729437191)
 Update state (0x61) downloading, progress: 33.36 (1577918254 / 4729437191)
 Update state (0x61) downloading, progress: 35.65 (1685921582 / 4729437191)
 Update state (0x61) downloading, progress: 37.91 (1792890379 / 4729437191)
 Update state (0x61) downloading, progress: 42.31 (2001059761 / 4729437191)
 Update state (0x61) downloading, progress: 45.43 (2148528266 / 4729437191)
 Update state (0x61) downloading, progress: 49.56 (2343701569 / 4729437191)
 Update state (0x61) downloading, progress: 53.25 (2518296590 / 4729437191)
 Update state (0x61) downloading, progress: 54.59 (2581742088 / 4729437191)
 Update state (0x61) downloading, progress: 56.48 (2671303466 / 4729437191)
 Update state (0x61) downloading, progress: 58.29 (2756745623 / 4729437191)
 Update state (0x61) downloading, progress: 59.18 (2798660769 / 4729437191)
 Update state (0x61) downloading, progress: 60.01 (2838316974 / 4729437191)
 Update state (0x61) downloading, progress: 60.83 (2876766893 / 4729437191)
 Update state (0x61) downloading, progress: 61.67 (2916641276 / 4729437191)
 Update state (0x61) downloading, progress: 62.51 (2956178020 / 4729437191)
 Update state (0x61) downloading, progress: 63.32 (2994558115 / 4729437191)
 Update state (0x61) downloading, progress: 64.14 (3033355343 / 4729437191)
 Update state (0x61) downloading, progress: 64.96 (3072152523 / 4729437191)
 Update state (0x61) downloading, progress: 65.78 (3110949827 / 4729437191)
 Update state (0x61) downloading, progress: 66.73 (3155752426 / 4729437191)
 Update state (0x61) downloading, progress: 67.60 (3197093791 / 4729437191)
 Update state (0x61) downloading, progress: 68.54 (3241786714 / 4729437191)
 Update state (0x61) downloading, progress: 71.54 (3383365205 / 4729437191)
 Update state (0x61) downloading, progress: 72.70 (3438325885 / 4729437191)
 Update state (0x61) downloading, progress: 73.57 (3479237786 / 4729437191)
 Update state (0x61) downloading, progress: 74.42 (3519568991 / 4729437191)
 Update state (0x61) downloading, progress: 75.20 (3556387982 / 4729437191)
 Update state (0x61) downloading, progress: 76.03 (3596019915 / 4729437191)
 Update state (0x61) downloading, progress: 76.87 (3635544908 / 4729437191)
 Update state (0x61) downloading, progress: 77.70 (3674593429 / 4729437191)
 Update state (0x61) downloading, progress: 78.55 (3714843306 / 4729437191)
 Update state (0x61) downloading, progress: 79.41 (3755557556 / 4729437191)
 Update state (0x61) downloading, progress: 80.26 (3795973631 / 4729437191)
 Update state (0x61) downloading, progress: 81.06 (3833827171 / 4729437191)
 Update state (0x61) downloading, progress: 82.77 (3914522763 / 4729437191)
 Update state (0x61) downloading, progress: 84.77 (4009050568 / 4729437191)
 Update state (0x61) downloading, progress: 85.67 (4051763547 / 4729437191)
 Update state (0x61) downloading, progress: 86.87 (4108626675 / 4729437191)
 Update state (0x61) downloading, progress: 88.38 (4179800951 / 4729437191)
 Update state (0x61) downloading, progress: 89.70 (4242228934 / 4729437191)
 Update state (0x61) downloading, progress: 90.49 (4279676948 / 4729437191)
 Update state (0x61) downloading, progress: 91.37 (4321390114 / 4729437191)
 Update state (0x61) downloading, progress: 92.29 (4365025289 / 4729437191)
 Update state (0x61) downloading, progress: 93.08 (4402274263 / 4729437191)
 Update state (0x61) downloading, progress: 94.69 (4478527717 / 4729437191)
 Update state (0x61) downloading, progress: 95.85 (4533057867 / 4729437191)
 Update state (0x61) downloading, progress: 96.67 (4571856172 / 4729437191)
 Update state (0x61) downloading, progress: 97.56 (4613836491 / 4729437191)
 Update state (0x61) downloading, progress: 98.50 (4658458797 / 4729437191)
 Update state (0x61) downloading, progress: 99.30 (4696480581 / 4729437191)
 Update state (0x81) verifying update, progress: 4.97 (234924295 / 4729437191)
 Update state (0x81) verifying update, progress: 16.21 (766559038 / 4729437191)
 Update state (0x81) verifying update, progress: 26.92 (1273021246 / 4729437191)
 Update state (0x81) verifying update, progress: 33.01 (1561113806 / 4729437191)
 Update state (0x81) verifying update, progress: 40.64 (1922095267 / 4729437191)
 Update state (0x81) verifying update, progress: 51.30 (2426012147 / 4729437191)
 Update state (0x81) verifying update, progress: 64.44 (3047759124 / 4729437191)
 Update state (0x81) verifying update, progress: 77.44 (3662563600 / 4729437191)
 Update state (0x81) verifying update, progress: 90.23 (4267261630 / 4729437191)
Success! App '2394010' fully installed.
*****CHECKING FOR EXISTING CONFIG*****
*****GENERATING CONFIG*****
timeout: failed to run command './PalServer.sh': Permission denied
cp: cannot stat '/palworld/DefaultPalWorldSettings.ini': No such file or directory
RCON_ENABLED=true
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
RCON_PORT=25575
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
*****STARTING SERVER*****
./PalServer.sh -port=8211 -players=16 -servername=****** -serverpassword=****** -adminpassword=*******
sh: 1: ./PalServer.sh: Permission denied

Additional context

My deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: palworld
  name: palworld
  namespace: game-servers
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 5
  selector:
    matchLabels:
      app: palworld
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: palworld
    spec:
      containers:
      - env:
        - name: ServerIP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        envFrom:
        - configMapRef:
            name: palworld-config-cm
        image: thijsvanloef/palworld-server-docker:v0.10
        imagePullPolicy: IfNotPresent
        name: palworld
        ports:
        - containerPort: 25575
          name: palworld-rcon
          protocol: TCP
        - containerPort: 8211
          name: palworld-game
          protocol: UDP
        - containerPort: 27015
          name: palworld-query
          protocol: UDP
        volumeMounts:
        - mountPath: /palworld/
          name: palworld-data
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      volumes:
      - name: palworld-data
        persistentVolumeClaim:
          claimName: palworld-pvc

Workaround is to add a initContainer:

      initContainers:
      - name: permissions-update
        image: busybox:1.35.0
        imagePullPolicy: IfNotPresent
        command: ["/bin/sh", "-c", "chown -R 1000:1000 /palworld; chmod -R 770 /palworld"]
        volumeMounts:
          - mountPath: /palworld
            name: palworld-data
      - name: permissions-check
        image: busybox:1.35.0
        imagePullPolicy: IfNotPresent
        command: ["/bin/sh", "-c", "ls -ahl /palworld"]
        volumeMounts:
          - mountPath: /palworld
            name: palworld-data

Add any other context about the problem here.

Add healthcheck

Is your feature request related to a problem? Please describe.
Adding some kind of command line or network health check to the container so that orchestration services can detect when the container is unhealthy.

Describe the solution you'd like
Include a shell script to check status of the container, eg a new script in scripts/healthcheck.sh like:

output=$(ps aux | grep palworld)
if [[ /* output says palworld is running */]]; then
  exit 0
fi

exit 1

Describe alternatives you've considered
none!

Additional context

Where is the data?

Is it possible to move the content of my local server to this one?
The server is working and states are saved, but my docker volume folder is still empty?!
So i dont know where i should move the data

Add ENV Variable to Enable RCON and set RCON port

It would be awesome if there was an option to enable RCON and set the RCON port.

Describe the solution you'd like
An ENV Variable option to enable RCON and set its port. i.e. ENABLE_RCON = true and RCON_PORT = 25575. RCON can be set in "Pal/Saved/Config/LinuxServer/PalWorldSettings.ini" with these values from the .ini: "RCONEnabled=False, RCONPort=25575".

I got dlmopen steamservice.so failed when start up

"dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory"

image
This is my compose.yml
services:
palworld:
image: thijsvanloef/palworld-server-docker
restart: unless-stopped
container_name: palworld-server
ports:
- 8211:8211/udp
- 27015:27015/udp
environment:
- PORT=8211
- PUID=1000
- PGID=1000
- PLAYERS=16
- MULTITHREADING=TRUE
- COMMUNITY=false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
# Enable the environment variables below if you have COMMUNITY=true
- SERVER_NAME="shi3108"
# - ADMIN_PASSWORD="someAdminPassword"
volumes:
- /volume1/palworld-data:/palworld/

[Docs] Add disclaimer about Xbox and Steam Player

At the moment of writing, Xbox players (so Xbox consoles and Xbox game pass pc) cannot play with steam players and therefore the custom server is available only for steam players.
I am so sad to discover this as i was making a custom server for my friends ;(

I will add a huge disclaimer in the readme and the wiki like so:

Important

At the moment, Xbox game pass players aren't able to join community server! You can only create private server by code

If you like the disclaimer, i can contribute with a PR!
source:
Can you play with Game Pass on PC and Steam?

The server crash after some minutes of gaming session

Describe the bug

After some minutes of gaming (sometimes 5 minutes, sometimes 1 hour) the game lags for all players (we are 1-4 people at the same time).

To Reproduce

Play for some minutes

Expected behavior

A clear and concise description of what you expected to happen.

Desktop (please complete the following information):

  • OS: Windows 11
  • CPU: ryzen 5
  • Memory: 32GB

docker-compose.yml contents

services:
   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      ports:
        - 8211:8211/udp
        - 27015:27015/udp
      environment:
         - PUID=25000
         - PGID=25000
         - PORT=8211 # Optional but recommended
         - PLAYERS=16 # Optional but recommended
         - MULTITHREADING=false
         - COMMUNITY=false  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
         # Enable the environment variables below if you have COMMUNITY=true
         #- SERVER_PASSWORD="Samugay"
         - SERVER_NAME="Samuele"
         - ADMIN_PASSWORD="pcmasterping"
         - MULTITHREADING=true
      mem_reservation: "5000M"
      volumes:
         - ./palworld:/palworld/

Container/Host Logs

LogPakFile: Display: Found Pak file ../../../Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak attempting to mount.
2024-01-24 09:56:25 LogPakFile: Display: Mounting pak file ../../../Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak.
2024-01-24 09:56:25 LogPakFile: Display: Mounted Pak file '../../../Engine/Programs/CrashReportClient/Content/Paks/CrashReportClient.pak', mount point: '../../../Engine/'
2024-01-24 09:56:25 LogICUInternationalization: ICU TimeZone Detection - Raw Offset: +0:00, Platform Override: ''
2024-01-24 09:56:25 LogInit: Build: ++UE5+Release-5.1-CL-0
2024-01-24 09:56:25 LogInit: Engine Version: 5.1.1-0+++UE5+Release-5.1
2024-01-24 09:56:25 LogInit: Compatible Engine Version: 5.1.0-0+++UE5+Release-5.1
2024-01-24 09:56:25 LogInit: Net CL: 0
2024-01-24 09:56:25 LogInit: OS: Debian GNU/Linux 11 (bullseye) (5.15.133.1-microsoft-standard-WSL2), CPU: AMD Ryzen 5 4500U with Radeon Graphics, GPU: UnknownVendor
2024-01-24 09:56:25 LogInit: Compiled (64-bit): Dec 31 2023 20:12:22
2024-01-24 09:56:25 LogInit: Compiled with Clang: 13.0.1 (https://github.com/llvm/llvm-project 75e33f71c2dae584b13a7d1186ae0a038ba98838)
2024-01-24 09:56:25 LogInit: Build Configuration: Shipping
2024-01-24 09:56:25 LogInit: Branch Name: ++UE5+Release-5.1
2024-01-24 09:56:25 LogInit: Command Line: -Abslog="/palworld/Pal/Saved/Logs/Pal-CRC.log" -Unattended -ImplicitSend "/palworld/Pal/Saved/Crashes/crashinfo-Pal-pid-64-123E13D2A56B4A3DA1334968B21AF7A0/" -unattended
2024-01-24 09:56:25 LogInit: Base Directory: /palworld/Engine/Binaries/Linux/
2024-01-24 09:56:25 LogInit: Allocator: Mimalloc
2024-01-24 09:56:25 LogInit: Installed Engine Build: 1
2024-01-24 09:56:25 LogInit: Presizing for max 100000 objects, including 0 objects not considered by GC, pre-allocating 0 bytes for permanent pool.
2024-01-24 09:56:25 LogInit: Object subsystem initialized
2024-01-24 09:56:25 [2024.01.24-08.56.25:384][ 0]LogConfig: Applying CVar settings from Section [ConsoleVariables] File [Engine]
2024-01-24 09:56:25 [2024.01.24-08.56.25:386][ 0]LogInit: Unix hardware info:
2024-01-24 09:56:25 [2024.01.24-08.56.25:386][ 0]LogInit: - we are the first instance of this executable
2024-01-24 09:56:25 [2024.01.24-08.56.25:390][ 0]LogInit: - this process' id (pid) is 355, parent process' id (ppid) is 64
2024-01-24 09:56:25 [2024.01.24-08.56.25:390][ 0]LogInit: - we are not running under debugger
2024-01-24 09:56:25 [2024.01.24-08.56.25:391][ 0]LogInit: - machine network name is '974127c60607'
2024-01-24 09:56:25 [2024.01.24-08.56.25:416][ 0]LogInit: - user name is 'steam' (steam)
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - we're logged in locally
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - we're running with rendering
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - CPU: AuthenticAMD 'AMD Ryzen 5 4500U with Radeon Graphics' (signature: 0x860F01)
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - Number of physical cores available for the process: 4
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - Number of logical cores available for the process: 4
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - Cache line size: 64
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - GPU Brand Info: UnknownVendor
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - Memory allocator used: Mimalloc
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - This binary is optimized with LTO: no, PGO: no, instrumented for PGO data collection: no
2024-01-24 09:56:25 [2024.01.24-08.56.25:417][ 0]LogInit: - This is an internal build.
2024-01-24 09:56:25 [2024.01.24-08.56.25:418][ 0]LogCore: Skipped benchmarking clocks because the engine is running in a standalone program mode - CLOCK_MONOTONIC will be used.
2024-01-24 09:56:25 [2024.01.24-08.56.25:418][ 0]LogInit: Unix-specific commandline switches:
2024-01-24 09:56:25 [2024.01.24-08.56.25:418][ 0]LogInit: -ansimalloc - use malloc()/free() from libc (useful for tools like valgrind and electric fence)
2024-01-24 09:56:25 [2024.01.24-08.56.25:419][ 0]LogInit: -jemalloc - use jemalloc for all memory allocation
2024-01-24 09:56:25 [2024.01.24-08.56.25:419][ 0]LogInit: -binnedmalloc - use binned malloc for all memory allocation
2024-01-24 09:56:25 [2024.01.24-08.56.25:419][ 0]LogInit: -filemapcachesize=NUMBER - set the size for case-sensitive file mapping cache
2024-01-24 09:56:25 [2024.01.24-08.56.25:419][ 0]LogInit: -useksm - uses kernel same-page mapping (KSM) for mapped memory (OFF)
2024-01-24 09:56:25 [2024.01.24-08.56.25:419][ 0]LogInit: -ksmmergeall - marks all mmap'd memory pages suitable for KSM (OFF)
2024-01-24 09:56:25 [2024.01.24-08.56.25:419][ 0]LogInit: -preloadmodulesymbols - Loads the main module symbols file into memory (OFF)
2024-01-24 09:56:27 [2024.01.24-08.56.25:419][ 0]LogInit: -sigdfl=SIGNAL - Allows a specific signal to be set to its default handler rather then ignoring the signal
2024-01-24 09:56:27 [2024.01.24-08.56.25:419][ 0]LogInit: -crashhandlerstacksize - Allows setting crash handler stack sizes (204800)
2024-01-24 09:56:27 [2024.01.24-08.56.25:419][ 0]LogInit: -noexclusivelockonwrite - disables marking files created by the engine as exclusive locked while the engine has them opened
2024-01-24 09:56:27 [2024.01.24-08.56.25:419][ 0]LogInit: -httpproxy=ADDRESS:PORT - redirects HTTP requests to a proxy (only supported if compiled with libcurl)
2024-01-24 09:56:27 [2024.01.24-08.56.25:419][ 0]LogInit: -reuseconn - allow libcurl to reuse HTTP connections (only matters if compiled with libcurl)
2024-01-24 09:56:27 [2024.01.24-08.56.25:419][ 0]LogInit: -virtmemkb=NUMBER - sets process virtual memory (address space) limit (overrides VirtualMemoryLimitInKB value from .ini)
2024-01-24 09:56:27 [2024.01.24-08.56.25:421][ 0]LogInit: - Physical RAM available (not considering process quota): 6 GB (5930 MB, 6073144 KB, 6218899456 bytes)
2024-01-24 09:56:27 [2024.01.24-08.56.25:421][ 0]LogInit: - VirtualMemoryAllocator pools will grow at scale 1.4
2024-01-24 09:56:27 [2024.01.24-08.56.25:421][ 0]LogInit: - MemoryRangeDecommit() will be a no-op (re-run with -vmapoolevict to change)
2024-01-24 09:56:27 [2024.01.24-08.56.25:421][ 0]LogInit: - PageSize 4096
2024-01-24 09:56:27 [2024.01.24-08.56.25:421][ 0]LogInit: - BinnedPageSize 65536
2024-01-24 09:56:27 [2024.01.24-08.56.25:625][ 0]LogUObjectArray: 419 objects as part of root set at end of initial load.
2024-01-24 09:56:27 [2024.01.24-08.56.25:625][ 0]LogUObjectAllocator: 89064 out of 0 bytes used by permanent object pool.
2024-01-24 09:56:27 [2024.01.24-08.56.25:625][ 0]LogUObjectArray: CloseDisregardForGC: 0/0 objects in disregard for GC pool
2024-01-24 09:56:27 [2024.01.24-08.56.25:661][ 0]LogPaths: Warning: No paths for game localization data were specifed in the game configuration.
2024-01-24 09:56:27 [2024.01.24-08.56.25:663][ 0]LogInit: Using OS detected language (en-US-POSIX).
2024-01-24 09:56:27 [2024.01.24-08.56.25:663][ 0]LogInit: Using OS detected locale (en-US-POSIX).
2024-01-24 09:56:27 [2024.01.24-08.56.25:663][ 0]LogInit: Warning: No paths for engine localization data were specifed in the engine configuration.
2024-01-24 09:56:27 [2024.01.24-08.56.25:670][ 0]LogTextLocalizationManager: No localization for 'en-US-POSIX' exists, so 'en' will be used for the language.
2024-01-24 09:56:27 [2024.01.24-08.56.25:670][ 0]LogTextLocalizationManager: No localization for 'en-US-POSIX' exists, so 'en' will be used for the locale.
2024-01-24 09:56:27 [2024.01.24-08.56.25:700][ 0]LogInit: Using OS detected language (en-US-POSIX).
2024-01-24 09:56:27 [2024.01.24-08.56.25:700][ 0]LogInit: Using OS detected locale (en-US-POSIX).
2024-01-24 09:56:27 [2024.01.24-08.56.25:700][ 0]LogTextLocalizationManager: No localization for 'en-US-POSIX' exists, so 'en' will be used for the language.
2024-01-24 09:56:27 [2024.01.24-08.56.25:700][ 0]LogTextLocalizationManager: No localization for 'en-US-POSIX' exists, so 'en' will be used for the locale.
2024-01-24 09:56:27 [2024.01.24-08.56.25:753][ 0]LogPackageLocalizationCache: Processed 2 localized package path(s) for 1 prioritized culture(s) in 0.017788 seconds
2024-01-24 09:56:27 [2024.01.24-08.56.25:763][ 0]CrashReportCoreLog: CrashReportClientVersion=1.0
2024-01-24 09:56:27 [2024.01.24-08.56.25:763][ 0]CrashReportCoreLog: CrashReportReceiver disabled
2024-01-24 09:56:27 [2024.01.24-08.56.25:763][ 0]CrashReportCoreLog: DataRouterUrl: https://o1291919.ingest.sentry.io/api/6513339/unreal/4a1a3921f51f4975b4cf8dd19022cb20/
2024-01-24 09:56:27 [2024.01.24-08.56.25:822][ 0]CrashReportCoreLog: Initial state = Unknown UploadState value
2024-01-24 09:56:27 [2024.01.24-08.56.25:822][ 0]CrashReportCoreLog: Initial state = Unknown UploadState value
2024-01-24 09:56:27 [2024.01.24-08.56.25:843][ 0]LogCrashDebugHelper: DepotName: //UE5/Release-5.1
2024-01-24 09:56:27 [2024.01.24-08.56.25:843][ 0]LogCrashDebugHelper: BuiltFromCL: 0
2024-01-24 09:56:27 [2024.01.24-08.56.25:844][ 0]LogCrashDebugHelper: EngineVersion: 5.1.1-0+++UE5+Release-5.1
2024-01-24 09:56:27 [2024.01.24-08.56.25:846][ 0]LogCrashDebugHelper: BuildVersion: ++UE5+Release-5.1-CL-0
2024-01-24 09:56:27 [2024.01.24-08.56.27:054][ 0]CrashReportCoreLog: Got 3 pending files to upload from 'crashinfo-Pal-pid-64-123E13D2A56B4A3DA1334968B21AF7A0'
2024-01-24 09:56:27 [2024.01.24-08.56.27:063][ 0]CrashReportCoreLog: State change from Ready to SendingFiles
2024-01-24 09:56:27 [2024.01.24-08.56.27:063][ 0]CrashReportCoreLog: CompressAndSendData have 3 pending files
2024-01-24 09:56:29 [2024.01.24-08.56.27:063][ 0]CrashReportCoreLog: CompressAndSendData compressing 5803 bytes ('/palworld/Pal/Saved/Crashes/crashinfo-Pal-pid-64-123E13D2A56B4A3DA1334968B21AF7A0/CrashContext.runtime-xml')
2024-01-24 09:56:29 [2024.01.24-08.56.27:067][ 0]CrashReportCoreLog: CompressAndSendData compressing 152 bytes ('/palworld/Pal/Saved/Crashes/crashinfo-Pal-pid-64-123E13D2A56B4A3DA1334968B21AF7A0/CrashReportClient.ini')
2024-01-24 09:56:29 [2024.01.24-08.56.27:071][ 0]CrashReportCoreLog: CompressAndSendData compressing 349 bytes ('/palworld/Pal/Saved/Crashes/crashinfo-Pal-pid-64-123E13D2A56B4A3DA1334968B21AF7A0/Diagnostics.txt')
2024-01-24 09:56:29 [2024.01.24-08.56.27:590][ 0]LogInit: Using libcurl 7.83.1
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: - built for Linux
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: - supports SSL with OpenSSL/1.1.1n
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: - supports HTTP deflate (compression) using libz 1.2.12
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: - other features:
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: CURL_VERSION_SSL
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: CURL_VERSION_LIBZ
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: CURL_VERSION_IPV6
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: CURL_VERSION_ASYNCHDNS
2024-01-24 09:56:29 [2024.01.24-08.56.27:593][ 0]LogInit: CURL_VERSION_LARGEFILE
2024-01-24 09:56:29 [2024.01.24-08.56.27:673][ 0]LogInit: CurlRequestOptions (configurable via config and command line):
2024-01-24 09:56:29 [2024.01.24-08.56.27:677][ 0]LogInit: - bVerifyPeer = false - Libcurl will NOT verify peer certificate
2024-01-24 09:56:29 [2024.01.24-08.56.27:677][ 0]LogInit: - bUseHttpProxy = false - Libcurl will NOT use HTTP proxy
2024-01-24 09:56:29 [2024.01.24-08.56.27:677][ 0]LogInit: - bDontReuseConnections = false - Libcurl will reuse connections
2024-01-24 09:56:29 [2024.01.24-08.56.27:677][ 0]LogInit: - MaxHostConnections = 16 - Libcurl will limit the number of connections to a host
2024-01-24 09:56:29 [2024.01.24-08.56.27:677][ 0]LogInit: - LocalHostAddr = Default
2024-01-24 09:56:29 [2024.01.24-08.56.27:677][ 0]LogInit: - BufferSize = 65536
2024-01-24 09:56:29 [2024.01.24-08.56.27:845][ 0]CrashReportCoreLog: Sending HTTP request: https://o1291919.ingest.sentry.io/api/6513339/unreal/4a1a3921f51f4975b4cf8dd19022cb20/?AppID=CrashReporter&AppVersion=5.1.1-0%2B%2B%2BUE5%2BRelease-5.1&AppEnvironment=Release&UploadType=crashreports&UserID=-000061a8%7C%7C
2024-01-24 09:56:29 [2024.01.24-08.56.28:553][ 0]CrashReportCoreLog: OnProcessRequestComplete(), State=SendingFiles bSucceeded=1
2024-01-24 09:56:29 [2024.01.24-08.56.28:553][ 0]CrashReportCoreLog: State change from SendingFiles to SendingFiles
2024-01-24 09:56:29 [2024.01.24-08.56.28:553][ 0]CrashReportCoreLog: All uploads done
2024-01-24 09:56:29 [2024.01.24-08.56.28:553][ 0]CrashReportCoreLog: State change from SendingFiles to Finished
2024-01-24 09:56:29 [2024.01.24-08.56.29:043][ 0]CrashReportCoreLog: Final state (Receiver) = Finished
2024-01-24 09:56:29 [2024.01.24-08.56.29:050][ 0]CrashReportCoreLog: Final state (Receiver) = Unknown UploadState value
2024-01-24 09:56:29 [2024.01.24-08.56.29:056][ 0]LogCore: Engine exit requested (reason: CrashReportClientApp RequestExit)
2024-01-24 09:56:29 [2024.01.24-08.56.29:058][ 0]LogExit: Preparing to exit.
2024-01-24 09:56:29 [2024.01.24-08.56.29:170][ 0]LogExit: Object subsystem successfully closed.
2024-01-24 09:56:29 [2024.01.24-08.56.29:212][ 0]LogModuleManager: Shutting down and abandoning module HTTP (12)
2024-01-24 09:56:29 [2024.01.24-08.56.29:299][ 0]LogModuleManager: Shutting down and abandoning module SSL (11)
2024-01-24 09:56:29 [2024.01.24-08.56.29:305][ 0]LogModuleManager: Shutting down and abandoning module CrashDebugHelper (8)
2024-01-24 09:56:29 [2024.01.24-08.56.29:305][ 0]LogModuleManager: Shutting down and abandoning module CoreUObject (6)
2024-01-24 09:56:29 [2024.01.24-08.56.29:305][ 0]LogModuleManager: Shutting down and abandoning module PakFile (4)
2024-01-24 09:56:29 [2024.01.24-08.56.29:312][ 0]LogModuleManager: Shutting down and abandoning module RSA (3)
2024-01-24 09:56:29 [2024.01.24-08.56.29:327][ 0]LogExit: Exiting.
2024-01-24 09:56:29 dlmopen steamservice.so failed: steamservice.so: cannot open shared object file: No such file or directory
2024-01-24 09:56:29 Engine crash handling finished; re-raising signal 0 for the default handler. Good bye.

Additional context

I configured properly the router and firewall.

RCON doesnt work | cli: auth: rcon: dial tcp 127.21.0.2:25575: connect: connection refused

Describe the bug

The new update should support RCON. But it doesnt.

Im using https://github.com/gorcon/rcon-cli to connect to the Palworld RCON. Everytime, doesnt matter if i try the localhost IP, the normla IP or the Docker IP, all resolve to Connection Refused.

To Reproduce

  1. Get RCON Client: https://github.com/gorcon/rcon-cli
  2. Run client on localhost where Server runs
  3. Enter Server IP and Port (in this case 25575)
  4. Get Connection Refused Error

Expected behavior

It should connect but refuses.

Screenshots

image

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • Linux Kali amd64

docker-compose.yml contents

   palworld:
      image: thijsvanloef/palworld-server-docker
      restart: always
      container_name: palworld-server
      ports:
        - 8211:8211/udp
        - 27015:27015/udp
      environment:
         - PORT=8211
         - PLAYERS=10
         - MULTITHREADING=true
         - ENABLE_RCON=true
         - RCON_PORT=25575
         - COMMUNITY=false  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
         - SERVER_PASSWORD=""
         - SERVER_NAME="Furkans Palworld"
         - ADMIN_PASSWORD="XXXXXXX!?"
      volumes:
         - /home/furkan/Palworld-Docker-Server:/palworld/

Container/Host Logs

Success! App '2394010' fully installed.

*****CHECKING FOR EXISTING CONFIG*****

RCON_ENABLED=true

RCON_PORT=25575

*****STARTING SERVER*****

./PalServer.sh -port=8211 -players=10 -servername="Furkans Palworld" -serverpassword="" -adminpassword="XXXXXX!?" -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS

It is also important to mention that i was able to successfully log in as Admin when i was in Palworld with my Admin Password.
Am i missing something?

services.palworld.environment array items[7,11] must be unique

Describe the bug

When I run the docker-compose.yml file, I get this error: validating /home/admin/docker/palworld/docker-compose.yml: services.palworld.environment array items[7,11] must be unique

Screenshots

Capture d'écran 2024-01-22 223350

Desktop (please complete the following information):

  • OS: Debian12
  • Docker Compose Version: 2.21.0

docker-compose.yml contents

   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      ports:
        - 49154:49154/udp
        - 27015:27015/udp
      environment:
         - PUID=1000
         - PGID=1000
         - PORT=49154 # Optional but recommended
         - PLAYERS=16 # Optional but recommended
         - MULTITHREADING=false
         - ENABLE_RCON=true
         - RCON_PORT=25575
         - ADMIN_PASSWORD="adminpassword"
         - COMMUNITY=true  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
         # Enable the environment variables below if you have COMMUNITY=true
         - SERVER_PASSWORD="test"
         - SERVER_NAME="test"
         - ADMIN_PASSWORD="adminpassword"
      volumes:
         - ./palworld:/palworld/
   rcon:
      image: outdead/rcon:latest
      entrypoint: ['/rcon', '-a', 'palworld:25575', '-p', 'adminpassword']
      profiles: ['rcon']

cant use old saved data

root@VM-0-16-ubuntu:/home/ubuntu/palworld-server-docker/palworld/Pal/Saved/SaveGames/0# pwd
/home/ubuntu/palworld-server-docker/palworld/Pal/Saved/SaveGames/0
root@VM-0-16-ubuntu:/home/ubuntu/palworld-server-docker/palworld/Pal/Saved/SaveGames/0# ls
6A5B1DE2340E4AE889CEDF02AB841D4B BF04C2E8C73A43B2AE22E3E52875BB9B

here i got two saved files 6A5B1DE2340E4AE889CEDF02AB841D4B is new,BF04C2E8C73A43B2AE22E3E52875BB9B is older one

i ran docker-compose up -d with palworld exist and only BF04C2E8C73A43B2AE22E3E52875BB9B in SaveGames

after container running ,it created new dir 6A5B1DE2340E4AE889CEDF02AB841D4B, whatever i delete this and restart the container this dir 6A5B1DE2340E4AE889CEDF02AB841D4B will be created again and not use BF04C2E8C73A43B2AE22E3E52875BB9B.

any idea of memory

during the server running,the used memory went from 4g to 15g and more and idea to release the memory instead of restart the container?

*****STARTING SERVER*****sh: 1: cannot open 3: No such file

This has been a real pain given how I can't properly find the relationship between this docker container and the username of steam that is implied to be required since the USER and HOMEDIR were not set by me.

I'm getting this loop of not being able to find the script:

Error Only
100
Limit
2024-01-21 17:02:47
 Executing usermod...
2024-01-21 17:02:47
 usermod: no changes
2024-01-21 17:02:47
 *****STARTING INSTALL/UPDATE*****tid(22) burning pthread_key_t == 0 so we never use it
2024-01-21 17:02:47
 Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
2024-01-21 17:02:47
 Logging directory: '/home/steam/Steam/logs'
2024-01-21 17:02:47
 [  0%] Checking for available updates...
2024-01-21 17:02:48
 [----] Verifying installation...
2024-01-21 17:02:48
 [  0%] Downloading update...
2024-01-21 17:02:48
 [  0%] Checking for available updates...
2024-01-21 17:02:48
 [----] Download complete.
2024-01-21 17:02:48
 [----] Extracting package...
2024-01-21 17:02:50
 [----] Extracting package...
2024-01-21 17:02:51
 [----] Extracting package...
2024-01-21 17:02:52
 [----] Extracting package...
2024-01-21 17:02:52
 [----] Installing update...
2024-01-21 17:02:52
 [----] Installing update...
2024-01-21 17:02:52
 [----] Installing update...
2024-01-21 17:02:52
 [----] Installing update...
2024-01-21 17:02:53
 [----] Installing update...
2024-01-21 17:02:53
 [----] Installing update...
2024-01-21 17:02:53
 [----] Installing update...
2024-01-21 17:02:53
 [----] Installing update...
2024-01-21 17:02:54
 [----] Cleaning up...
2024-01-21 17:02:54
 [----] Update complete, launching Steamcmd...
2024-01-21 17:02:54
 tid(34) burning pthread_key_t == 0 so we never use it
2024-01-21 17:02:54
 Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
2024-01-21 17:02:54
 Logging directory: '/home/steam/Steam/logs'
2024-01-21 17:02:54
 [  0%] Checking for available updates...
2024-01-21 17:02:55
 [----] Verifying installation...
2024-01-21 17:02:55
 Steam Console Client (c) Valve Corporation - version 1705108307
2024-01-21 17:02:55
 -- type 'quit' to exit --
2024-01-21 17:02:55
 Loading Steam API...OK
2024-01-21 17:02:55
 
2024-01-21 17:02:56
 Connecting anonymously to Steam Public...OK
2024-01-21 17:02:57
 Waiting for client config...OK
2024-01-21 17:03:00
 Waiting for user info...OK
2024-01-21 17:03:00
  Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
2024-01-21 17:03:02
  Update state (0x5) verifying install, progress: 0.94 (44504880 / 4729437191)
2024-01-21 17:03:04
  Update state (0x5) verifying install, progress: 9.78 (462465287 / 4729437191)
2024-01-21 17:03:06
  Update state (0x5) verifying install, progress: 18.76 (887145278 / 4729437191)
2024-01-21 17:03:08
  Update state (0x5) verifying install, progress: 27.63 (1306589723 / 4729437191)
2024-01-21 17:03:10
  Update state (0x5) verifying install, progress: 36.53 (1727472978 / 4729437191)
2024-01-21 17:03:12
  Update state (0x5) verifying install, progress: 45.55 (2154460461 / 4729437191)
2024-01-21 17:03:14
  Update state (0x5) verifying install, progress: 54.28 (2567110726 / 4729437191)
2024-01-21 17:03:16
  Update state (0x5) verifying install, progress: 63.14 (2986183773 / 4729437191)
2024-01-21 17:03:18
  Update state (0x5) verifying install, progress: 71.86 (3398743995 / 4729437191)
2024-01-21 17:03:20
  Update state (0x5) verifying install, progress: 80.83 (3822998547 / 4729437191)
2024-01-21 17:03:22
  Update state (0x5) verifying install, progress: 89.52 (4233704855 / 4729437191)
2024-01-21 17:03:24
  Update state (0x5) verifying install, progress: 98.17 (4643082149 / 4729437191)
2024-01-21 17:03:24
 Success! App '2394010' fully installed.
2024-01-21 17:03:25
 ./PalServer.sh -port=8211 -players=16 EpicApp=PalServer -servername=[NAME] -serverpassword=[PASSWORD]-adminpassword=[PASSWORD] -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
2024-01-21 17:03:25
 *****STARTING SERVER*****sh: 1: cannot open 3: No such file
2024-01-21 17:03:25
 Executing usermod...
2024-01-21 17:03:25
 usermod: no changes
2024-01-21 17:03:25
 *****STARTING INSTALL/UPDATE*****tid(22) burning pthread_key_t == 0 so we never use it
2024-01-21 17:03:25
 Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
2024-01-21 17:03:25
 Logging directory: '/home/steam/Steam/logs'
2024-01-21 17:03:25
 [  0%] Checking for available updates...
2024-01-21 17:03:26
 [----] Verifying installation...
2024-01-21 17:03:26
 Steam Console Client (c) Valve Corporation - version 1705108307
2024-01-21 17:03:26
 -- type 'quit' to exit --
2024-01-21 17:03:26
 Loading Steam API...OK
2024-01-21 17:03:26
 
2024-01-21 17:03:27
 Connecting anonymously to Steam Public...OK
2024-01-21 17:03:28
 Waiting for client config...OK
2024-01-21 17:03:28
 Waiting for user info...OK
2024-01-21 17:03:28
  Update state (0x5) verifying install, progress: 0.09 (4194304 / 4729437191)
2024-01-21 17:03:30
  Update state (0x5) verifying install, progress: 6.56 (310438546 / 4729437191)
2024-01-21 17:03:32
  Update state (0x5) verifying install, progress: 15.45 (730662135 / 4729437191)
2024-01-21 17:03:34
  Update state (0x5) verifying install, progress: 24.34 (1151147822 / 4729437191)
2024-01-21 17:03:36
  Update state (0x5) verifying install, progress: 33.28 (1573723950 / 4729437191)
2024-01-21 17:03:38
  Update state (0x5) verifying install, progress: 42.17 (1994519736 / 4729437191)
2024-01-21 17:03:40
  Update state (0x5) verifying install, progress: 51.17 (2419930242 / 4729437191)
2024-01-21 17:03:42
  Update state (0x5) verifying install, progress: 60.09 (2841881988 / 4729437191)
2024-01-21 17:03:44
  Update state (0x5) verifying install, progress: 69.00 (3263142388 / 4729437191)
2024-01-21 17:03:46
  Update state (0x5) verifying install, progress: 77.99 (3688506940 / 4729437191)
2024-01-21 17:03:48
  Update state (0x5) verifying install, progress: 86.89 (4109541236 / 4729437191)
2024-01-21 17:03:50
  Update state (0x5) verifying install, progress: 95.80 (4530794658 / 4729437191)
2024-01-21 17:03:50
 Success! App '2394010' fully installed.
2024-01-21 17:03:51
 ./PalServer.sh -port=8211 -players=16 EpicApp=PalServer -servername=[NAME] -serverpassword=[PASSWORD]-adminpassword=[PASSWORD] -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS
2024-01-21 17:03:51
 *****STARTING SERVER*****sh: 1: cannot open 3: No such file
2024-01-21 17:03:51
 Executing usermod...
2024-01-21 17:03:51
 usermod: no changes
2024-01-21 17:03:51
 *****STARTING INSTALL/UPDATE*****tid(23) burning pthread_key_t == 0 so we never use it
2024-01-21 17:03:51
 Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
2024-01-21 17:03:51
 Logging directory: '/home/steam/Steam/logs'
2024-01-21 17:03:51
 [  0%] Checking for available updates...
2024-01-21 17:03:52
 [----] Verifying installation...
2024-01-21 17:03:52
 Steam Console Client (c) Valve Corporation - version 1705108307
2024-01-21 17:03:52
 -- type 'quit' to exit --
2024-01-21 17:03:52
 Loading Steam API...OK
2024-01-21 17:03:52
 
2024-01-21 17:03:54
 Connecting anonymously to Steam Public...OK
2024-01-21 17:03:54
 Waiting for client config...OK
2024-01-21 17:03:54
 Waiting for user info...OK
2024-01-21 17:03:55
  Update state (0x5) verifying install, progress: 0.09 (4194304 / 4729437191)
2024-01-21 17:03:57
  Update state (0x5) verifying install, progress: 8.58 (405743146 / 4729437191)
2024-01-21 17:03:59
  Update state (0x5) verifying install, progress: 17.47 (826082551 / 4729437191)
2024-01-21 17:04:01
  Update state (0x5) verifying install, progress: 26.36 (1246568238 / 4729437191)
2024-01-21 17:04:03

The path has full write permissions at /home/steam/Steam/steamapps/common/PalServer
The server works when I do

sudo su - steam
/home/steam/Steam/steamapps/common/PalServer/PalServer.sh -port=8211 -players=16 EpicApp=PalServer -servername=[NAME] -serverpassword=[PASSWORD]-adminpassword=[PASSWORD] -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS

I do not know how this container interacts with the steam user account as the PUID is 1000 (root) and there is no reference of anything else needing to be set to USE the username steam. The only other information I can give is steamcmd doesn't run when I'm root. Is that how this container works and I need to figure that part out?

I even removed the volume and recreated it without a bind and the issue still persists. As well as inside of a fresh container where I saw the Palworld files inside /var/lib/docker/volumes/Palworld/_data/

Any help would be greatly appreciated.

My docker-compose

docker run --name PalWorld -d \
    --name palworld-server \
    -p 8211:8211/udp \
    -p 27015:27015/udp \
    -v /home/steam/Steam/steamapps/common/PalServer:/palworld/ \
    -e PLAYERS=16 \
    -e PORT=8211 \
    -e PUID=1000 \
    -e PGID=1000 \
    -e COMMUNITY=true \
	-e SERVER_NAME="[NAME]" \
	-e SERVER_PASSWORD="[PASSWORD]" \
	-e MULTITHREADING=true \
	-e ADMIN_PASSWORD="[PASSWORD]" \
	-e UPDATE_ON_BOOT=true \
    --restart unless-stopped \
    thijsvanloef/palworld-server-docker

Kubernetes | Palworld infinite Waiting for user info

I'm making version for kubernetes based on docker-compose file with deployment, service and PVC.
But for some reason main palworld container stuck on infinite Waiting for user info...
And in 1 of 50 tries it write this:

Loading Steam API...OK

Connecting anonymously to Steam Public...
OK
Waiting for client config...
steamcmd has been disconnected from steam with result 3 (No Connection)

ERROR! Timed out waiting for AppInfo update.
OK
Waiting for user info...
FAILED (Timed out)
OK
>>> Starting the gameserver
Checking if config exists
No config found, generating one
cp: cannot stat '/palworld/DefaultPalWorldSettings.ini': No such file or directory
Setting rcon-enabled to true
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
Setting public ip to **masked_ip**
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
Setting public port to 8211
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
Setting server name to kubernetes-server-1
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
Setting server description to Palworld-Test-Server running in kubernetes by https://t.me/SevenSilentStar
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
sed: -e expression #1, char 101: unknown option to `s'
Setting server password to 12345
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
Setting server admin password to 12345
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
Setting max-players to 32
sed: can't read /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini: No such file or directory
/servermanager.sh: line 81: ./PalServer.sh: No such file or directory
>>> Doing a fresh install of the gameserver
time="2024-01-23T22:42:13Z" level=info msg="read crontab: cronlist"
tid(17) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
[  0%] Downloading update...
[  0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
tid(32) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...OK

Here my manifests.
Service:

apiVersion: v1
kind: Service
metadata:
  name: palworld-service
spec:
  selector:
    app: palworld
  ports:
    - name: palworld-server
      protocol: UDP
      port: 8211
      targetPort: 8211
    - name: rcon
      protocol: TCP
      port: 25575
      targetPort: 25575
  type: LoadBalancer

Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: palworld-deployment
spec:
  strategy:
    type: Recreate
  replicas: 1
  selector:
    matchLabels:
      app: palworld
  template:
    metadata:
      labels:
        app: palworld
    spec:
      securityContext:
        fsGroup: 1000
      containers:
      - name: rcon
        resources:
          limits:
            cpu: 100m
            memory: 256Mi
          requests:
            cpu: 100m
            memory: 256Mi
        image: outdead/rcon:latest
        command: ["/rcon", "-a", "192.168.88.91:25575", "-p", "12345"]
        volumeMounts:
        - name: palworld-data
          mountPath: /palworld
      - name: palworld-container
        resources:
          limits:
            cpu: 4
            memory: 16Gi
          requests:
            cpu: 4
            memory: 16Gi
        image: %private_registry%/docker-palworld-dedicated-server:651bee7028e624d9ff759513d8b4aea14a99ac89
        ports:
        - containerPort: 8211
          protocol: UDP
        - containerPort: 25575
          protocol: TCP
        env:
        - name: TIMEZONE
          value: "Europe/Berlin"
        - name: DEBIAN_FRONTEND
          value: "noninteractive"
        - name: PUID
          value: "0"
        - name: PGID
          value: "0"
        - name: ALWAYS_UPDATE_ON_START
          value: "true"
        - name: MAX_PLAYERS
          value: "32"
        - name: MULTITHREAD_ENABLED
          value: "true"
        - name: COMMUNITY_SERVER
          value: "true"
        - name: RCON_ENABLED
          value: "true"
        - name: PUBLIC_IP
          value: "**masked_ip**"
        - name: PUBLIC_PORT
          value: "8211"
        - name: SERVER_NAME
          value: "kubernetes-server-1"
        - name: SERVER_DESCRIPTION
          value: "Palworld-Test-Server running in kubernetes by https://t.me/SevenSilentStar"
        - name: SERVER_PASSWORD
          value: "12345"
        - name: ADMIN_PASSWORD
          value: "12345"
        - name: BACKUP_ENABLED
          value: "true"
        - name: BACKUP_CRON_EXPRESSION
          value: "0 * * * *"
        volumeMounts:
        - name: palworld-data
          mountPath: /palworld
      imagePullSecrets:
        - name: gitlab-pull-secret
      volumes:
      - name: palworld-data
        persistentVolumeClaim:
          claimName: palworld-pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: palworld-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi

Also, some logs could be useful for troubleshooting:

~/Steam/logs$ cat stderr.txt
01/23 22:49:54 Init: Installing breakpad exception handler for appid(steam)/version(1705108307)/tid(32)

User steam does not exist

Describe the bug
When creating the docker container for the first time, when it runs usermod, the user and group do not exist

Screenshots
2024-01-21 14:21:16.248397+00:00Executing usermod...
2024-01-21 14:21:16.253073+00:00usermod: user 'steam' does not exist
2024-01-21 14:21:16.255149+00:00groupmod: group 'steam' does not exist
2024-01-21 14:21:16.257785+00:00chown: invalid user: 'steam:steam'
2024-01-21 14:21:16.259683+00:00su: user steam does not exist or the user entry does not contain all the required fields

Desktop (please complete the following information):

  • OS: TrueNas
  • Version: 0.8.0

Error Thread failed to initilize

Hi I'm having error:

palworld-server | *****EXECUTING USERMOD*****
palworld-server | usermod: no changes
palworld-server | *****STARTING INSTALL/UPDATE*****
palworld-server | tid(23) burning pthread_key_t == 0 so we never use it
palworld-server | Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
palworld-server | Logging directory: '/home/steam/Steam/logs'
palworld-server | src/tier0/threadtools.cpp (4213) : Probably deadlock or failure waiting for thread to initialize.
palworld-server | [  0%] Checking for available updates...
palworld-server | Thread failed to initialize
palworld-server | src/tier0/threadtools.cpp (4213) : Probably deadlock or failure waiting for thread to initialize.
palworld-server | Thread failed to initialize

This is on a Synology NAS, x86 intel CPU (old tho) and I'm using the provided docker compose yml.

It's working on my win11 machine. Anyone know what's the problem?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.