π Welcome to the ultimate Palworld Server Setup! π This GitHub repository is your go-to toolkit π οΈ for launching a Palworld server in a snap using Docker! Choose from preset worlds like 'casual' ποΈ, 'normal' π, or 'hard' π, or dive deep into customization with flexible settings π§.
With the recent bug on save corruption, we highly recommend you backup your save files! Click here to see how to integrate auto backups.
- Docker
- Docker Compose
The server can be configured either through environment variables or by passing arguments directly to the Docker container. The available presets are: They were configured based on this article
casual
normal
hard
Below is a list of available environment variables to customize your server:
SERVER_NAME
: The name of your server.SERVER_DESCRIPTION
: A short description of your server.PUBLIC_IP
: Set the public IP of the server.PUBLIC_PORT
: The public port for connections.PORT
: The internal port of the game server.ADMIN_PASSWORD
: The password for admin access.SERVER_PASSWORD
: The password required to join the server.REGION
: Define the serverβs region.USE_AUTH
: Enable authentication (true
orfalse
).WEBHOOK_URL
: Discord webhook URL for server notifications.
MULTITHREADING
: Enable multithreading (true
orfalse
).RCON_ENABLED
: Enable remote console (true
orfalse
).RCON_PORT
: Port for RCON access.RESTAPI_ENABLED
: Enable REST API (true
orfalse
).RESTAPI_PORT
: Port for the REST API.MAX_BUILDING_LIMIT_NUM
: Maximum number of buildings allowed.
AUTO_UPDATE
: Enable automatic server updates (true
orfalse
).AUTO_UPDATE_SCHEDULE
: Cron job format defining update checks (default:0 3 * * *
for 3 AM daily updates).
EXP_RATE
: Modify experience rate multiplier.PAL_CAPTURE_RATE
: Adjust the Pal capture success rate.DAY_TIME_SPEED_RATE
: Adjust how fast daytime progresses.NIGHT_TIME_SPEED_RATE
: Adjust how fast nighttime progresses.DEATH_PENALTY
: Define what happens on player death.ENABLE_FAST_TRAVEL
: Allow fast travel (true
orfalse
).ENABLE_INVADER_ENEMY
: Enable invader enemies (true
orfalse
).HARDCORE
: Enable hardcore mode (true
orfalse
).PAL_LOST
: Determine if Pals are lost upon death (true
orfalse
).ITEM_WEIGHT_RATE
: Adjust item weight multiplier.PAL_DAMAGE_RATE_ATTACK
: Modify Pal attack damage.PAL_DAMAGE_RATE_DEFENSE
: Modify Pal defense rate.PLAYER_DAMAGE_RATE_ATTACK
: Modify player attack damage.PLAYER_DAMAGE_RATE_DEFENSE
: Modify player defense rate.WORK_SPEED_RATE
: Adjust work speed multiplier.AUTO_SAVE_SPAN
: Set the frequency of autosaves (in minutes).
GUILD_PLAYER_MAX_NUM
: Maximum number of players per guild.BASE_CAMP_MAX_NUM_IN_GUILD
: Maximum number of camps per guild.ALLOW_CONNECT_PLATFORM
: Restrict platform connections (Steam
,Epic
, etc.).SHOW_PLAYER_LIST
: Display the online player list (true
orfalse
).CHAT_POST_LIMIT_PER_MINUTE
: Limit chat messages per minute.EXIST_PLAYER_AFTER_LOGOUT
: Keep players visible after logout (true
orfalse
).ENABLE_DEFENSE_OTHER_GUILD_PLAYER
: Enable defense against other guilds (true
orfalse
).
To see a full list of supported configuration options, see the Environment Configuration Options page.
To run the server with Docker Compose, create a docker-compose.yml
file with the following content:
version: "3.8"
services:
palworld:
image: mbround18/palworld-docker:latest
environment:
PRESET: "casual" # Options: casual, normal, hard
MULTITHREADING: true # Enables multithreading
PUBLIC_IP: "0.0.0.0"
PUBLIC_PORT: "8211"
SERVER_NAME: "My Palworld Server"
EXP_RATE: "1.5"
WEBHOOK_URL: "https://discord.com/api/webhooks/..."
AUTO_UPDATE: "true"
AUTO_UPDATE_SCHEDULE: "0 3 * * *"
ports:
- "8211:8211" # Default game port
- "27015:27015" # Steam query port
volumes:
- "./data:/home/steam/palworld"
To start the server with your chosen configuration, run:
docker-compose up
This command builds the Docker image if necessary and starts the server. The PRESET
environment variable determines the server's configuration preset. You can also override any specific setting by adding it to the environment
section of the docker-compose.yml
file.
If AUTO_UPDATE
is enabled, the server will automatically check for updates at the scheduled time (AUTO_UPDATE_SCHEDULE
). If an update is found, the server will:
- Stop the running instance.
- Download and apply the update.
- Restart the server.
If WEBHOOK_URL
is set, the server will send notifications for:
- Server Start & Stop events.
- Player Join & Leave messages.
- Server Updates.
To update the server settings after initial setup, modify the docker-compose.yml
file as needed and restart the server:
docker-compose down
docker-compose up
This ensures that your server configuration remains up to date.
Contributions to this project are welcome! Please submit a pull request or open an issue for any bugs, features, or improvements.