Docker container to easily provision and manage Palworld Dedicated Server
See the codeThis Docker image includes a Palworld Dedicated Server based on Linux and Docker.
[!TIP] Do you want to chat with the community?
[!WARNING] Heads-up — RCON has been removed. This image no longer uses RCON for any container tooling. All server management (player detection, backups, restarts, CLI) now runs via the Palworld REST API.
RCON_ENABLEDnow defaults tofalse— this only controls the game server INI setting, not container functionality.- Make sure
RESTAPI_ENABLED=trueis set in yourdefault.env.- See the Changelog for the full migration guide and renamed environment variables.
[!CAUTION] Public Service Announcement — Custom Script Feature
After many community requests, this image now supports running a custom script before the server starts. This feature is entirely opt-in and is controlled by the
CUSTOM_SCRIPT_ENABLEDenvironment variable, which defaults tofalse.This image will never ship with a custom script of any kind.
If you come across a Docker image that appears to be this one but includes a bundled custom script, please be careful — it is not this image and I have no affiliation with it.
This feature was added at the request of the community. While I am glad to offer the option, I will not be providing support for it, and I refuse to accept any liability for any harm, data loss, corruption, or security issues that may result from its use. Please use it at your own discretion. — Public Service Announcement.
BaseCampWorkerMaxNum setting, why didn't this update the server?If you need support for this Docker image:
Please avoid:
To run this Docker image, you need a basic understanding of Docker, Docker-Compose, Linux, and Networking (Port-Forwarding/NAT).
| Resource | 1-8 players | 8-12+ players |
|---|---|---|
| CPU | 4 CPU-Cores @ High GHz | 6-8 CPU Cores @ High GHz |
| RAM | 8GB RAM Base + 2GB per player | 12GB RAM Base + 2GB per player |
| Storage | 30GB | 30GB+ |
You can find the changelog here
This 2 persons helped a lot along to way and made me and this project better! So if you do not like my version of the Docker image or looking for other features, feel free to check out the following 2 images:
game sub-directory on your Docker-Node in your game-server-directory
/srv/palworld, /opt/palworld or /home/username/palworld)docker pull jammsen/palworld-dedicated-server:latestcompose.yml and default.env to your liking
docker-compose up -d && docker-compose logs -f
See the environment variables documentation
services:
palworld-dedicated-server:
container_name: palworld-dedicated-server
image: jammsen/palworld-dedicated-server:latest
restart: unless-stopped
logging:
driver: "local"
options:
max-size: "10m"
max-file: "3"
ports:
- target: 8211 # Gamerserver port inside of the container
published: 8211 # Gamerserver port on your host
protocol: udp
mode: host
- target: 8212 # Gameserver API port inside of the container
published: 8212 # Gameserver API port on your host
protocol: tcp
mode: host
- target: 25575 # RCON port inside of the container
published: 25575 # RCON port on your host
protocol: tcp
mode: host
env_file:
- ./default.env
environment:
# Read-only view of the companion's data dir - settings-overrides.env
# written by the web panel is applied from there at boot
COMPANION_DATA_DIR: /companion-data
volumes:
- ./game:/palworld
- ./companion:/companion-data:ro
# Companion sidecar: web operation panel + Discord status card & bot.
# Disabled by default - it idles until you enable PANEL_ENABLED and/or
# DISCORD_STATUS_ENABLED in default.env (ALL companion variables live there,
# in the "Companion-sidecar-settings" section).
# Docs: https://github.com/jammsen/docker-palworld-companion
companion:
container_name: palworld-companion
# develop tag during the testing grace period - switches to latest with
# the companion's first stable release
image: jammsen/palworld-companion:develop
restart: unless-stopped
depends_on:
- palworld-dedicated-server
ports:
# (Needs: PANEL_ENABLED=true)
# Warning! DO NOT expose this port to the internet, use a reverse proxy or VPN/LAN only
- target: 8213 # Web panel port inside of the container
published: 8213 # Web panel port on your host
protocol: tcp
mode: host
env_file:
- ./default.env
environment:
RESTAPI_HOST: palworld-dedicated-server
COMPANION_DATA_DIR: /data
volumes:
- ./game:/palworld:ro
- ./companion:/data
[!NOTE] Please research the REST API commands on the official source: https://docs.palworldgame.com/category/rest-api
You can use docker exec palworld-dedicated-server restapicli <command> right on your terminal/shell.
Day-to-day server and player management — announcements, moderation, quick lookups, saving and shutdown.
$ docker exec palworld-dedicated-server restapicli announce "Hello players!"
> Announced: Hello players!
$ docker exec palworld-dedicated-server restapicli ban steam_76000000000000123 "You are banned."
> Banned: steam_76000000000000123
$ docker exec palworld-dedicated-server restapicli banlist
> Ban list (2 entries):
steam_76000000000000123
steam_76000000000000456
$ docker exec palworld-dedicated-server restapicli info
> Server info: {"version": "v0.7.3.90464", "servername": "...", ...}
$ docker exec palworld-dedicated-server restapicli kick steam_76000000000000123 "Goodbye!"
> Kicked: steam_76000000000000123
$ docker exec palworld-dedicated-server restapicli players
> Players: {"players": [...]}
$ docker exec palworld-dedicated-server restapicli save
> Saving world...
> World saved.
$ docker exec palworld-dedicated-server restapicli shutdown 60 "Server restarting soon"
> Shutting down server in 60s...
> Shutdown issued.
$ docker exec palworld-dedicated-server restapicli unban steam_76000000000000123
> Unbanned: steam_76000000000000123
Read-only raw JSON dumps of server state — from a quick metrics overview up to a full world actor snapshot.
$ docker exec palworld-dedicated-server restapicli metrics
> Metrics: {"currentplayernum": 1, "serverfps": 120, ...}
$ docker exec palworld-dedicated-server restapicli settings
> Settings: {"Difficulty": "None", "DayTimeSpeedRate": 1.0, ...}
$ docker exec palworld-dedicated-server restapicli gamedata
> Game data: {"Time": "2026-07-13 21:26:54", "FPS": 118.77, "InGameTime": "14:03", "ActorData": [...]}
# Warning: snapshot of ALL world actors - output can be huge, pipe it to jq or a file
# Note: Needs GAMEDATA_API_ENABLED=true, which starts the server with the
# -enable-gamedata-api launch option. See the example output below and the
# official endpoint documentation:
# https://docs.palworldgame.com/api/rest-api/game-data
gamedata output (shortened, needs GAMEDATA_API_ENABLED=true){
"Time": "2026-07-13 21:26:54",
"FPS": 118.77287292480469,
"AverageFPS": 118.79257965087891,
"InGameTime": "14:03",
"InGameDays": 4,
"ActorData": [
{
"Type": "Character",
"InstanceID": "4DCC09FB000000000000000000000000 : 0487098280F5417DB596B73ED985A5BC",
"UnitType": "Player",
"NickName": "jammsen123",
"TrainerInstanceID": "",
"TrainerNickName": "",
"TrainerClass": "",
"userid": "steam_XXXXXXXXXXXXXX123",
"ip": "1.2.3.4",
"level": 2,
"HP": 1,
"MaxHP": 500,
"GuildID": "06362322142040BFBBC718C816B49E6D",
"GuildName": "Unnamed Guild",
"Class": "BP_Player_Female_C",
"Action": "",
"AI_Action": "",
"LocationX": -357583.59375,
"LocationY": 268633.40625,
"LocationZ": 7951.2998046875,
"RotationX": 0,
"RotationY": 0,
"RotationZ": 68.5,
"Stage": "None",
"IsActive": "true"
},
{
"Type": "Character",
"InstanceID": "00000000000000000000000000000000 : 0CCB7376B14641599BB08EA339FED55E",
"UnitType": "NPC",
"NickName": "Scouting Party Survivor",
"level": 22,
"HP": 1211,
"MaxHP": 1211,
"Class": "BP_NPC_Female_Soldier_C",
"Action": "BP_Action_NPC_GroundSit",
"AI_Action": "BP_AIAction_NPC_Relax_GroundSit",
...
},
{
"Type": "Character",
"InstanceID": "00000000000000000000000000000000 : 8B1215C3C7D546AB83D4E647BC1AA421",
"UnitType": "WildPal",
"NickName": "Lamball",
"level": 2,
"HP": 585,
"MaxHP": 585,
"Class": "BP_SheepBall_C",
"AI_Action": "BP_AIAction_WildLife",
...
},
...
]
}
[!WARNING] If
RESTAPI_ENABLEDis set tofalse, the backup manager will not announce backup start/success/failure in-game and will not trigger a world save before creating a backup. This means that the backup will be created from the last auto-save of the server. This can lead to data-loss and/or savegame corruption.Recommendation: Please make sure that
RESTAPI_ENABLED=trueis set before using the backup manager.
[!WARNING] Please use in the following part always the
--user steamoption or your files will be written as root
Usage: docker exec --user steam palworld-dedicated-server backup [command] [arguments]
| Command | Argument | Required/Optional | Default Value | Values | Description |
|---|---|---|---|---|---|
| create | N/A | N/A | N/A | N/A | Creates a backup. |
| list | <number_to_list> | Optional | N/A | Positive numbers | Lists all backups. If <number_to_list> is specified, only the mostrecent <number_to_list> backups are listed. |
| clean | <number_to_keep> | Optional | BACKUP_RETENTION_AMOUNT_TO_KEEP | Positive numbers | Cleans up backups. If <number_to_list> is specified, cleans and keepsthe most recent <number_to_keep> backups.If not, default to BACKUP_RETENTION_AMOUNT_TO_KEEP var |
Examples:
$ docker exec --user steam palworld-dedicated-server backup create
>>> Backup 'saved-20240203_032855.tar.gz' created successfully
$ docker exec --user steam palworld-dedicated-server backup list
>>> Listing 2 backup file(s)!
2024-02-03 03:28:55 | saved-20240203_032855.tar.gz
2024-02-03 03:28:00 | saved-20240203_032800.tar.gz
$ docker exec --user steam palworld-dedicated-server backup clean 3
>>> 1 backup(s) cleaned, keeping 2 backup(s).
$ docker exec --user steam palworld-dedicated-server backup list 1
>>> Listing 1 out of 2 backup file(s).
2024-02-03 03:30:00 | saved-20240203_033000.tar.gz
To enable webhook integrations, you need to set the following environment variables in the default.env:
WEBHOOK_ENABLED=true
WEBHOOK_URL="https://your.webhook.url"
After enabling the server should send messages in a Discord-Compatible way to your webhook url.
You can find more details about these variables in the webhook settings in ENV_VARS.md.
The web operation panel (dashboard, player moderation, settings editor with persistence, one-click restart) and the Discord live status card (one message, edited in place with live server stats and an event log) live in their own repo and run as an optional sidecar container next to this image:
jammsen/docker-palworld-companion - image:
jammsen/palworld-companion:develop(until the first stable release)
The companion is part of the compose example and disabled by default - it starts alongside the gameserver and idles until you enable a feature. Your server directory looks like this:
.
├── companion # companion data dir (created on first start)
├── compose.yml # both services
├── default.env # ALL variables for both services, in one file
└── game # game data dir
Enabling it is done entirely in default.env, in the Companion-sidecar-settings section: set PANEL_ENABLED=true plus a PANEL_PASSWORD for the web panel, and/or DISCORD_STATUS_ENABLED=true for the Discord card - then docker compose up -d again. RESTAPI_ENABLED=true and ADMIN_PASSWORD (already in the file) are required - the companion talks to this image through the REST API and two shared volume mounts.
Full documentation:
Security warning: The panel speaks plain HTTP - do NOT publish port 8213 to the internet. Use it LAN/VPN-only or put a TLS reverse proxy (Caddy, Traefik, nginx) in front.
A Helm chart to deploy this container can be found at palworld-helm.
Yes just change the value from
ALLOW_CONNECT_PLATFORMfrom Steam to Xbox. See here for more documentation: https://tech.palworldgame.com/getting-started/for-xbox-dedicated-server
You can run this `docker exec -ti palworld-dedicated-server bash' or you could navigate to the "Stacks" tab in Portainer, select your stack, and click on the container name. Then click on the "Exec console" button.
You can run this
docker exec -ti palworld-dedicated-server cat /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.iniand it will show you the config inside the container.
Errors like
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.are safe to ignore.
You can try to insert in your docker-compose file this parameter
platform: linux/amd64at the palworld service. This isn't a special fix for Apple silicon, but to run on other than x86 hosts. The support for arm exists only by enforcing x86 emulation, if that isn't to host already. Rosetta is doing the translation/emulation.
BaseCampWorkerMaxNum setting, why didn't this update the server?This is a confirmed bug. Changing
BaseCampWorkerMaxNumin thePalWorldSettings.inihas no effect on the server. There are tools out there to help with this, like this one: https://github.com/legoduded/palworld-worldoptions
[!WARNING] Adding
WorldOption.savwill breakPalWorldSetting.ini. So any new changes to the settings (either on the file or via ENV VARS), you will have to create a newWorldOption.savand update it every time for those changes to have an effect.
If
SERVER_NAMEcontains###RANDOM###(the default), it is replaced with a random 6-character token so your server does not collide with every other unconfigured server in the browser list. The token is generated once and persisted inserver-name.tokenin your game volume - your server keeps its name across restarts and container re-creation. Delete that file to roll a new token on the next start, or set a realSERVER_NAMEto opt out entirely.
Issues there is a Feature Request issue-type.132 followers · starred Jan 2024
348 followers · starred Jan 2024
28 followers · starred Jan 2024
Docker container to easily provision and manage Palworld Dedicated Server
See the codeThis Docker image includes a Palworld Dedicated Server based on Linux and Docker.
[!TIP] Do you want to chat with the community?
[!WARNING] Heads-up — RCON has been removed. This image no longer uses RCON for any container tooling. All server management (player detection, backups, restarts, CLI) now runs via the Palworld REST API.
RCON_ENABLEDnow defaults tofalse— this only controls the game server INI setting, not container functionality.- Make sure
RESTAPI_ENABLED=trueis set in yourdefault.env.- See the Changelog for the full migration guide and renamed environment variables.
[!CAUTION] Public Service Announcement — Custom Script Feature
After many community requests, this image now supports running a custom script before the server starts. This feature is entirely opt-in and is controlled by the
CUSTOM_SCRIPT_ENABLEDenvironment variable, which defaults tofalse.This image will never ship with a custom script of any kind.
If you come across a Docker image that appears to be this one but includes a bundled custom script, please be careful — it is not this image and I have no affiliation with it.
This feature was added at the request of the community. While I am glad to offer the option, I will not be providing support for it, and I refuse to accept any liability for any harm, data loss, corruption, or security issues that may result from its use. Please use it at your own discretion. — Public Service Announcement.
BaseCampWorkerMaxNum setting, why didn't this update the server?If you need support for this Docker image:
Please avoid:
To run this Docker image, you need a basic understanding of Docker, Docker-Compose, Linux, and Networking (Port-Forwarding/NAT).
| Resource | 1-8 players | 8-12+ players |
|---|---|---|
| CPU | 4 CPU-Cores @ High GHz | 6-8 CPU Cores @ High GHz |
| RAM | 8GB RAM Base + 2GB per player | 12GB RAM Base + 2GB per player |
| Storage | 30GB | 30GB+ |
You can find the changelog here
This 2 persons helped a lot along to way and made me and this project better! So if you do not like my version of the Docker image or looking for other features, feel free to check out the following 2 images:
game sub-directory on your Docker-Node in your game-server-directory
/srv/palworld, /opt/palworld or /home/username/palworld)docker pull jammsen/palworld-dedicated-server:latestcompose.yml and default.env to your liking
docker-compose up -d && docker-compose logs -f
See the environment variables documentation
services:
palworld-dedicated-server:
container_name: palworld-dedicated-server
image: jammsen/palworld-dedicated-server:latest
restart: unless-stopped
logging:
driver: "local"
options:
max-size: "10m"
max-file: "3"
ports:
- target: 8211 # Gamerserver port inside of the container
published: 8211 # Gamerserver port on your host
protocol: udp
mode: host
- target: 8212 # Gameserver API port inside of the container
published: 8212 # Gameserver API port on your host
protocol: tcp
mode: host
- target: 25575 # RCON port inside of the container
published: 25575 # RCON port on your host
protocol: tcp
mode: host
env_file:
- ./default.env
environment:
# Read-only view of the companion's data dir - settings-overrides.env
# written by the web panel is applied from there at boot
COMPANION_DATA_DIR: /companion-data
volumes:
- ./game:/palworld
- ./companion:/companion-data:ro
# Companion sidecar: web operation panel + Discord status card & bot.
# Disabled by default - it idles until you enable PANEL_ENABLED and/or
# DISCORD_STATUS_ENABLED in default.env (ALL companion variables live there,
# in the "Companion-sidecar-settings" section).
# Docs: https://github.com/jammsen/docker-palworld-companion
companion:
container_name: palworld-companion
# develop tag during the testing grace period - switches to latest with
# the companion's first stable release
image: jammsen/palworld-companion:develop
restart: unless-stopped
depends_on:
- palworld-dedicated-server
ports:
# (Needs: PANEL_ENABLED=true)
# Warning! DO NOT expose this port to the internet, use a reverse proxy or VPN/LAN only
- target: 8213 # Web panel port inside of the container
published: 8213 # Web panel port on your host
protocol: tcp
mode: host
env_file:
- ./default.env
environment:
RESTAPI_HOST: palworld-dedicated-server
COMPANION_DATA_DIR: /data
volumes:
- ./game:/palworld:ro
- ./companion:/data
[!NOTE] Please research the REST API commands on the official source: https://docs.palworldgame.com/category/rest-api
You can use docker exec palworld-dedicated-server restapicli <command> right on your terminal/shell.
Day-to-day server and player management — announcements, moderation, quick lookups, saving and shutdown.
$ docker exec palworld-dedicated-server restapicli announce "Hello players!"
> Announced: Hello players!
$ docker exec palworld-dedicated-server restapicli ban steam_76000000000000123 "You are banned."
> Banned: steam_76000000000000123
$ docker exec palworld-dedicated-server restapicli banlist
> Ban list (2 entries):
steam_76000000000000123
steam_76000000000000456
$ docker exec palworld-dedicated-server restapicli info
> Server info: {"version": "v0.7.3.90464", "servername": "...", ...}
$ docker exec palworld-dedicated-server restapicli kick steam_76000000000000123 "Goodbye!"
> Kicked: steam_76000000000000123
$ docker exec palworld-dedicated-server restapicli players
> Players: {"players": [...]}
$ docker exec palworld-dedicated-server restapicli save
> Saving world...
> World saved.
$ docker exec palworld-dedicated-server restapicli shutdown 60 "Server restarting soon"
> Shutting down server in 60s...
> Shutdown issued.
$ docker exec palworld-dedicated-server restapicli unban steam_76000000000000123
> Unbanned: steam_76000000000000123
Read-only raw JSON dumps of server state — from a quick metrics overview up to a full world actor snapshot.
$ docker exec palworld-dedicated-server restapicli metrics
> Metrics: {"currentplayernum": 1, "serverfps": 120, ...}
$ docker exec palworld-dedicated-server restapicli settings
> Settings: {"Difficulty": "None", "DayTimeSpeedRate": 1.0, ...}
$ docker exec palworld-dedicated-server restapicli gamedata
> Game data: {"Time": "2026-07-13 21:26:54", "FPS": 118.77, "InGameTime": "14:03", "ActorData": [...]}
# Warning: snapshot of ALL world actors - output can be huge, pipe it to jq or a file
# Note: Needs GAMEDATA_API_ENABLED=true, which starts the server with the
# -enable-gamedata-api launch option. See the example output below and the
# official endpoint documentation:
# https://docs.palworldgame.com/api/rest-api/game-data
gamedata output (shortened, needs GAMEDATA_API_ENABLED=true){
"Time": "2026-07-13 21:26:54",
"FPS": 118.77287292480469,
"AverageFPS": 118.79257965087891,
"InGameTime": "14:03",
"InGameDays": 4,
"ActorData": [
{
"Type": "Character",
"InstanceID": "4DCC09FB000000000000000000000000 : 0487098280F5417DB596B73ED985A5BC",
"UnitType": "Player",
"NickName": "jammsen123",
"TrainerInstanceID": "",
"TrainerNickName": "",
"TrainerClass": "",
"userid": "steam_XXXXXXXXXXXXXX123",
"ip": "1.2.3.4",
"level": 2,
"HP": 1,
"MaxHP": 500,
"GuildID": "06362322142040BFBBC718C816B49E6D",
"GuildName": "Unnamed Guild",
"Class": "BP_Player_Female_C",
"Action": "",
"AI_Action": "",
"LocationX": -357583.59375,
"LocationY": 268633.40625,
"LocationZ": 7951.2998046875,
"RotationX": 0,
"RotationY": 0,
"RotationZ": 68.5,
"Stage": "None",
"IsActive": "true"
},
{
"Type": "Character",
"InstanceID": "00000000000000000000000000000000 : 0CCB7376B14641599BB08EA339FED55E",
"UnitType": "NPC",
"NickName": "Scouting Party Survivor",
"level": 22,
"HP": 1211,
"MaxHP": 1211,
"Class": "BP_NPC_Female_Soldier_C",
"Action": "BP_Action_NPC_GroundSit",
"AI_Action": "BP_AIAction_NPC_Relax_GroundSit",
...
},
{
"Type": "Character",
"InstanceID": "00000000000000000000000000000000 : 8B1215C3C7D546AB83D4E647BC1AA421",
"UnitType": "WildPal",
"NickName": "Lamball",
"level": 2,
"HP": 585,
"MaxHP": 585,
"Class": "BP_SheepBall_C",
"AI_Action": "BP_AIAction_WildLife",
...
},
...
]
}
[!WARNING] If
RESTAPI_ENABLEDis set tofalse, the backup manager will not announce backup start/success/failure in-game and will not trigger a world save before creating a backup. This means that the backup will be created from the last auto-save of the server. This can lead to data-loss and/or savegame corruption.Recommendation: Please make sure that
RESTAPI_ENABLED=trueis set before using the backup manager.
[!WARNING] Please use in the following part always the
--user steamoption or your files will be written as root
Usage: docker exec --user steam palworld-dedicated-server backup [command] [arguments]
| Command | Argument | Required/Optional | Default Value | Values | Description |
|---|---|---|---|---|---|
| create | N/A | N/A | N/A | N/A | Creates a backup. |
| list | <number_to_list> | Optional | N/A | Positive numbers | Lists all backups. If <number_to_list> is specified, only the mostrecent <number_to_list> backups are listed. |
| clean | <number_to_keep> | Optional | BACKUP_RETENTION_AMOUNT_TO_KEEP | Positive numbers | Cleans up backups. If <number_to_list> is specified, cleans and keepsthe most recent <number_to_keep> backups.If not, default to BACKUP_RETENTION_AMOUNT_TO_KEEP var |
Examples:
$ docker exec --user steam palworld-dedicated-server backup create
>>> Backup 'saved-20240203_032855.tar.gz' created successfully
$ docker exec --user steam palworld-dedicated-server backup list
>>> Listing 2 backup file(s)!
2024-02-03 03:28:55 | saved-20240203_032855.tar.gz
2024-02-03 03:28:00 | saved-20240203_032800.tar.gz
$ docker exec --user steam palworld-dedicated-server backup clean 3
>>> 1 backup(s) cleaned, keeping 2 backup(s).
$ docker exec --user steam palworld-dedicated-server backup list 1
>>> Listing 1 out of 2 backup file(s).
2024-02-03 03:30:00 | saved-20240203_033000.tar.gz
To enable webhook integrations, you need to set the following environment variables in the default.env:
WEBHOOK_ENABLED=true
WEBHOOK_URL="https://your.webhook.url"
After enabling the server should send messages in a Discord-Compatible way to your webhook url.
You can find more details about these variables in the webhook settings in ENV_VARS.md.
The web operation panel (dashboard, player moderation, settings editor with persistence, one-click restart) and the Discord live status card (one message, edited in place with live server stats and an event log) live in their own repo and run as an optional sidecar container next to this image:
jammsen/docker-palworld-companion - image:
jammsen/palworld-companion:develop(until the first stable release)
The companion is part of the compose example and disabled by default - it starts alongside the gameserver and idles until you enable a feature. Your server directory looks like this:
.
├── companion # companion data dir (created on first start)
├── compose.yml # both services
├── default.env # ALL variables for both services, in one file
└── game # game data dir
Enabling it is done entirely in default.env, in the Companion-sidecar-settings section: set PANEL_ENABLED=true plus a PANEL_PASSWORD for the web panel, and/or DISCORD_STATUS_ENABLED=true for the Discord card - then docker compose up -d again. RESTAPI_ENABLED=true and ADMIN_PASSWORD (already in the file) are required - the companion talks to this image through the REST API and two shared volume mounts.
Full documentation:
Security warning: The panel speaks plain HTTP - do NOT publish port 8213 to the internet. Use it LAN/VPN-only or put a TLS reverse proxy (Caddy, Traefik, nginx) in front.
A Helm chart to deploy this container can be found at palworld-helm.
Yes just change the value from
ALLOW_CONNECT_PLATFORMfrom Steam to Xbox. See here for more documentation: https://tech.palworldgame.com/getting-started/for-xbox-dedicated-server
You can run this `docker exec -ti palworld-dedicated-server bash' or you could navigate to the "Stacks" tab in Portainer, select your stack, and click on the container name. Then click on the "Exec console" button.
You can run this
docker exec -ti palworld-dedicated-server cat /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.iniand it will show you the config inside the container.
Errors like
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.are safe to ignore.
You can try to insert in your docker-compose file this parameter
platform: linux/amd64at the palworld service. This isn't a special fix for Apple silicon, but to run on other than x86 hosts. The support for arm exists only by enforcing x86 emulation, if that isn't to host already. Rosetta is doing the translation/emulation.
BaseCampWorkerMaxNum setting, why didn't this update the server?This is a confirmed bug. Changing
BaseCampWorkerMaxNumin thePalWorldSettings.inihas no effect on the server. There are tools out there to help with this, like this one: https://github.com/legoduded/palworld-worldoptions
[!WARNING] Adding
WorldOption.savwill breakPalWorldSetting.ini. So any new changes to the settings (either on the file or via ENV VARS), you will have to create a newWorldOption.savand update it every time for those changes to have an effect.
If
SERVER_NAMEcontains###RANDOM###(the default), it is replaced with a random 6-character token so your server does not collide with every other unconfigured server in the browser list. The token is generated once and persisted inserver-name.tokenin your game volume - your server keeps its name across restarts and container re-creation. Delete that file to roll a new token on the next start, or set a realSERVER_NAMEto opt out entirely.
Issues there is a Feature Request issue-type.132 followers · starred Jan 2024
348 followers · starred Jan 2024
28 followers · starred Jan 2024