diff --git a/.github/workflows/docker-build-and-push-prod.yml b/.github/workflows/docker-build-and-push-prod.yml index 9025c76..04aa70b 100644 --- a/.github/workflows/docker-build-and-push-prod.yml +++ b/.github/workflows/docker-build-and-push-prod.yml @@ -58,12 +58,12 @@ jobs: ghcr.io/${{ secrets.DOCKERHUB_USERNAME }}/docker-palworld-dedicated-server:${{ steps.slug.outputs.GIT_SHORT_SHA7 }} ghcr.io/${{ secrets.DOCKERHUB_USERNAME }}/docker-palworld-dedicated-server:latest labels: ${{ steps.meta.outputs.labels }} - # - - # name: Docker Hub Description - # uses: peter-evans/dockerhub-description@v4 - # with: - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_TOKEN }} - # repository: peterevans/dockerhub-description - # readme-filepath: ./README.md - # enable-url-completion: true + - + name: Docker Hub Description + uses: peter-evans/dockerhub-description@v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + repository: peterevans/dockerhub-description + readme-filepath: ./README.md + enable-url-completion: true diff --git a/.gitignore b/.gitignore index 438c8d1..e3c9103 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .idea/ game -docker-compose.yml docker-compose-*.yml diff --git a/README.md b/README.md index 8171352..9c69906 100644 --- a/README.md +++ b/README.md @@ -23,12 +23,8 @@ ___ - [How to ask for support for this Docker image](#how-to-ask-for-support-for-this-docker-image) - [Requirements](#requirements) - [Minimum system requirements](#minimum-system-requirements) - - [Getting Started](#getting-started) - - [Environment Variables](#environment-variables) - - [Container-Settings](#container-settings) - - [TZ identifiers](#tz-identifiers) - - [Cron expression](#cron-expression) - - [Gameserver-Settings](#gameserver-settings) + - [Getting started](#getting-started) + - [Environment variables](#environment-variables) - [Docker-Compose examples](#docker-compose-examples) - [Gameserver with RCON-CLI-Tool](#gameserver-with-rcon-cli-tool) - [Run RCON commands](#run-rcon-commands) @@ -68,223 +64,28 @@ To run this Docker image, you need a basic understanding of Docker, Docker-Compo | RAM | 8GB RAM Base + 2GB per player | 12GB RAM Base + 2GB per player | | Storage | 30GB | 30GB+ | -## Getting Started +## Getting started -1. Create a `game` sub-directory on your Docker node in your game-server-directory (Example: `/srv/palworld`). Give it full permissions with `chmod 777 game` or use `chown -R 1000:1000 game/`. +1. Create a `game` sub-directory on your Docker-Node in your game-server-directory (Example: `/srv/palworld`). Give it full ownership with `chown -R 1000:1000 game/` or permissions with `chmod 777 game`. 2. Set up Port-Forwarding or NAT for the ports in the Docker-Compose file. 3. Pull the latest version of the image with `docker pull jammsen/palworld-dedicated-server:latest`. -4. Set up your own docker-compose.yml as per your requirements. Refer to the [Docker-Compose examples](#examples) section and the [Environment-Variables](#examples) section for more information. -5. Start the container via `docker-compose up -d && docker-compose logs -f`. Watch the log, if no errors occur you can close the logs with ctrl+c. -6. Happy gaming! - -## Environment Variables - -**Important:** In this section you will find a lot of environment variables to control your container-behavior and gameserver-settings. Due to the extensive control options, the settings are split into two parts for documentation: **Container-Settings** and **Gameserver-Settings**. - -## Container-Settings - -These settings control the behavior of the Docker container: - -> If you want to change the server settings via environment variables use the default value (`auto`) for the environment variable `SERVER_SETTINGS_MODE`, otherwise change it to `manual` and edit the config file directly. - -| Variable | Description | Default value | Allowed values | -| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| TZ | Timezone used for time stamping server backups | Europe/Berlin | See [TZ identifiers](#tz-identifiers) | -| ALWAYS_UPDATE_ON_START | Updates the server on startup | true | false/true | -| MULTITHREAD_ENABLED | Sets options for "Improved multi-threaded CPU performance" | true | false/true | -| COMMUNITY_SERVER | Set to enabled, the server will appear in the Community-Serverlist. | true | false/true | -| BACKUP_ENABLED | Backup function, creates backups in your `game` directory | true | false/true | -| BACKUP_CRON_EXPRESSION | Needs a Cron-Expression - See [Cron expression](#cron-expression) | 0 * * * * (meaning every hour) | Cron-Expression | -| BACKUP_RETENTION_POLICY | Set to enabled, will cleanup old backups | false | false/true | -| BACKUP_RETENTION_AMOUNT_TO_KEEP | Defines how many backups in numbers to keep | 30 | Integer | -| SERVER_SETTINGS_MODE | Determines whether settings can be modified via environment variables or via file, except `COMMUNITY_SERVER` and `MULTITHREAD_ENABLED`! | `auto` | `auto`: Settings are modified only by environment variables, manual edits will be ignored
`manual`: Settings are modified only by editing the file directly, environment variables are ignored | -| STEAMCMD_VALIDATE_FILES | Set to enabled SteamCMD will also validate the gameserver files, making sure nothing is corrupted and also overwrite any file changes of the source
See https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_an_App | true | false/true | - -### TZ identifiers - -The `TZ` setting affects logging output and the backup function. [TZ identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) are a format for defining a timezone near you. - -### Cron expression - -The `BACKUP_CRON_EXPRESSION` setting affects the backup function. In a Cron-Expression, you define an interval for when to run jobs. This image uses Supercronic for crons, see https://github.com/aptible/supercronic#crontab-format or https://crontab-generator.org - -## Gameserver-Settings - -This section lists all the settings currently adjustable via Docker environment variables, based on the **order** and **contents of the DefaultPalWorldSettings.ini**. - -Information sources and credits to the following websites: -* [Palworld Tech Guide](https://tech.palworldgame.com/optimize-game-balance) for the game server documentation -* [PalworldSettingGenerator](https://dysoncheng.github.io/PalWorldSettingGenerator/setting.html) for variable descriptions - -**Importtant:** Please note that all of this is subject to change. **The game is still in early access.** - -> To change a setting, you can set the environment variable to the value you want. If the environment variable is not set or is blank, the default value will be used. - - -| Variable | Game setting | Description | Default value | Allowed value | -| ----------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ------------- | -| NETSERVERMAXTICKRATE | NetServerMaxTickRate | Changes the TickRate of the server, be very careful with this setting! | 120 | 30-120 | -| DIFFICULTY | Difficulty | Choose one of the following:
`None`
`Normal`
`Difficult` | None | Enum | -| DAYTIME_SPEEDRATE | DayTimeSpeedRate | Day time speed - Smaller number means shorter days | 1.000000 | Float | -| NIGHTTIME_SPEEDRATE | NightTimeSpeedRate | Night time speed - Smaller number means shorter nights | 1.000000 | Float | -| EXP_RATE | ExpRate | EXP rate | 1.000000 | Float | -| PAL_CAPTURE_RATE | PalCaptureRate | Pal capture rate | 1.000000 | Float | -| PAL_SPAWN_NUM_RATE | PalSpawnNumRate | Pal appearance rate | 1.000000 | Float | -| PAL_DAMAGE_RATE_ATTACK | PalDamageRateAttack | Damage from pals multiplier | 1.000000 | Float | -| PAL_DAMAGE_RATE_DEFENSE | PalDamageRateDefense | Damage to pals multiplier | 1.000000 | Float | -| PLAYER_DAMAGE_RATE_ATTACK | PlayerDamageRateAttack | Damage from player multiplier | 1.000000 | Float | -| PLAYER_DAMAGE_RATE_DEFENSE | PlayerDamageRateDefense | Damage to player multiplier | 1.000000 | Float | -| PLAYER_STOMACH_DECREASE_RATE | PlayerStomachDecreaceRate | Player hunger depletion rate | 1.000000 | Float | -| PLAYER_STAMINA_DECREACE_RATE | PlayerStaminaDecreaceRate | Player stamina reduction rate | 1.000000 | Float | -| PLAYER_AUTO_HP_REGENE_RATE | PlayerAutoHPRegeneRate | Player auto HP regeneration rate | 1.000000 | Float | -| PLAYER_AUTO_HP_REGENE_RATE_IN_SLEEP | PlayerAutoHpRegeneRateInSleep | Player sleep HP regeneration rate | 1.000000 | Float | -| PAL_STOMACH_DECREACE_RATE | PalStomachDecreaceRate | Pal hunger depletion rate | 1.000000 | Float | -| PAL_STAMINA_DECREACE_RATE | PalStaminaDecreaceRate | Pal stamina reduction rate | 1.000000 | Float | -| PAL_AUTO_HP_REGENE_RATE | PalAutoHPRegeneRate | Pal auto HP regeneration rate | 1.000000 | Float | -| PAL_AUTO_HP_REGENE_RATE_IN_SLEEP | PalAutoHpRegeneRateInSleep | Pal sleep health regeneration rate (in Palbox) | 1.000000 | Float | -| BUILD_OBJECT_DAMAGE_RATE | BuildObjectDamageRate | Damage to structure multiplier | 1.000000 | Float | -| BUILD_OBJECT_DETERIORATION_DAMAGE_RATE | BuildObjectDeteriorationDamageRate | Structure deterioration rate | 1.000000 | Float | -| COLLECTION_DROP_RATE | CollectionDropRate | Gatherable items multiplier | 1.000000 | Float | -| COLLECTION_OBJECT_HP_RATE | CollectionObjectHpRate | Gatherable objects HP multiplier | 1.000000 | Float | -| COLLECTION_OBJECT_RESPAWN_SPEED_RATE | CollectionObjectRespawnSpeedRate | Gatherable objects respawn interval | 1.000000 | Float | -| ENEMY_DROP_ITEM_RATE | EnemyDropItemRate | Dropped Items Multiplier | 1.000000 | Float | -| DEATH_PENALTY | DeathPenalty | `None` : No lost
`Item` : Lost item without equipment
`ItemAndEquipment` : Lost item and equipment
`All`: Lost All item, equipment, pal(in inventory) | All | Enum | -| ENABLE_PLAYER_TO_PLAYER_DAMAGE | bEnablePlayerToPlayerDamage | Allows players to cause damage to players | false | Boolean | -| ENABLE_FRIENDLY_FIRE | bEnableFriendlyFire | Allow friendly fire | false | Boolean | -| ENABLE_INVADER_ENEMY | bEnableInvaderEnemy | Enable invaders | true | Boolean | -| ACTIVE_UNKO | bActiveUNKO | Enable UNKO | false | Boolean | -| ENABLE_AIM_ASSIST_PAD | bEnableAimAssistPad | Enable controller aim assist | true | Boolean | -| ENABLE_AIM_ASSIST_KEYBOARD | bEnableAimAssistKeyboard | Enable Keyboard aim assist | false | Boolean | -| DROP_ITEM_MAX_NUM | DropItemMaxNum | Maximum number of drops in the world | 3000 | Integer | -| DROP_ITEM_MAX_NUM_UNKO | DropItemMaxNum | Maximum number of UNKO drops in the world | 100 | Integer | -| BASE_CAMP_MAX_NUM | BaseCampMaxNum | Maximum number of base camps | 128 | Integer | -| BASE_CAMP_WORKER_MAXNUM | BaseCampWorkerMaxNum | Maximum number of workers | 15 | Integer | -| DROP_ITEM_ALIVE_MAX_HOURS | DropItemAliveMaxHours | Time it takes for items to despawn in hours | 1.000000 | Float | -| AUTO_RESET_GUILD_NO_ONLINE_PLAYERS | bAutoResetGuildNoOnlinePlayers | Automatically reset guild when no players are online | false | Bool | -| AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS | AutoResetGuildTimeNoOnlinePlayers | Time to automatically reset guild when no players are online | 72.000000 | Float | -| GUILD_PLAYER_MAX_NUM | GuildPlayerMaxNum | Max player of Guild | 20 | Integer | -| PAL_EGG_DEFAULT_HATCHING_TIME | PalEggDefaultHatchingTime | Time(h) to incubate massive egg | 72.000000 | Float | -| WORK_SPEED_RATE | WorkSpeedRate | Work speed multiplier | 1.000000 | Float | -| IS_MULTIPLAY | bIsMultiplay | Enable multiplayer | false | Boolean | -| IS_PVP | bIsPvP | Enable PVP | false | Boolean | -| CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP | bCanPickupOtherGuildDeathPenaltyDrop | Allow players from other guilds to pick up death penalty items | false | Boolean | -| ENABLE_NON_LOGIN_PENALTY | bEnableNonLoginPenalty | Enable non-login penalty | true | Boolean | -| ENABLE_FAST_TRAVEL | bEnableFastTravel | Enable fast travel | true | Boolean | -| IS_START_LOCATION_SELECT_BY_MAP | bIsStartLocationSelectByMap | Enable selecting of start location | true | Boolean | -| EXIST_PLAYER_AFTER_LOGOUT | bExistPlayerAfterLogout | Toggle for deleting players when they log off | false | Boolean | -| ENABLE_DEFENSE_OTHER_GUILD_PLAYER | bEnableDefenseOtherGuildPlayer | Allows defense against other guild players | false | Boolean | -| COOP_PLAYER_MAX_NUM | CoopPlayerMaxNum | Maximum number of players in a guild | 4 | Integer | -| MAX_PLAYERS | ServerPlayerMaxNum | Maximum number of people who can join the server | 32 | Integer | -| SERVER_NAME | ServerName | Server name | jammsen-docker-generated-###RANDOM### | Integer | -| SERVER_DESCRIPTION | ServerDescription | Server description | Palworld-Dedicated-Server running in Docker by jammsen | String | -| ADMIN_PASSWORD | server admin password | AdminPassword | adminPasswordHere | String | -| SERVER_PASSWORD | AdminPassword | Set the server password. | serverPasswordHere | String | -| PUBLIC_PORT | public port | Public port number | 8211 | Integer | -| PUBLIC_IP | public ip or FQDN | Public IP or FQDN | | String | -| RCON_ENABLED | RCONEnabled | Enable RCON - Use ADMIN_PASSWORD to login | false | Boolean | -| RCON_PORT | RCONPort | Port number for RCON | 25575 | Integer | -| REGION | Region | Area | | String | -| USEAUTH | bUseAuth | Use authentication | true | Boolean | -| BAN_LIST_URL | BanListURL | Which ban list to use | https://api.palworldgame.com/api/banlist.txt | String | +4. Download the [docker-compose.yml](docker-compose.yml) and [default.env](default.env). +5. Set up the `docker-compose.yml` and `default.env` to your liking. + 1. Refer to the [Environment-Variables](#environment-variables) section for more information. +6. Start the container via `docker-compose up -d && docker-compose logs -f`. + 1. Watch the log, if no errors occur you can close the logs with ctrl+c. +7. Now have fun and happy gaming! + +## Environment variables + +See [this file](README_ENV.md) for the documentation + ## Docker-Compose examples ### Gameserver with RCON-CLI-Tool -```yml -version: '3.9' -services: - palworld-dedicated-server: - #build: . - container_name: palworld-dedicated-server - image: jammsen/palworld-dedicated-server:latest - restart: unless-stopped - ports: - - target: 8211 # Gamerserver port inside of the container - published: 8211 # Gamerserver port on your host - protocol: udp - mode: host - - target: 25575 # RCON port inside of the container - published: 25575 # RCON port on your host - protocol: tcp - mode: host - environment: - - TZ=Europe/Berlin # Change this for logging and backup, see "Environment-Variables" - - ALWAYS_UPDATE_ON_START=true - - MULTITHREAD_ENABLED=true - - COMMUNITY_SERVER=true - - BACKUP_ENABLED=true - - BACKUP_CRON_EXPRESSION=0 * * * * - - BACKUP_RETENTION_POLICY=false - - BACKUP_RETENTION_AMOUNT_TO_KEEP=30 - - STEAMCMD_VALIDATE_FILES=true - - SERVER_SETTINGS_MODE=auto # Change this to manual if you want to edit the config yourself - - NETSERVERMAXTICKRATE=120 - - DIFFICULTY=None - - DAYTIME_SPEEDRATE=1.000000 - - NIGHTTIME_SPEEDRATE=1.000000 - - EXP_RATE=1.000000 - - PAL_CAPTURE_RATE=1.000000 - - PAL_SPAWN_NUM_RATE=1.000000 - - PAL_DAMAGE_RATE_ATTACK=1.000000 - - PAL_DAMAGE_RATE_DEFENSE=1.000000 - - PLAYER_DAMAGE_RATE_ATTACK=1.000000 - - PLAYER_DAMAGE_RATE_DEFENSE=1.000000 - - PLAYER_STOMACH_DECREASE_RATE=1.000000 - - PLAYER_STAMINA_DECREACE_RATE=1.000000 - - PLAYER_AUTO_HP_REGENE_RATE=1.000000 - - PLAYER_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000 - - PAL_STOMACH_DECREACE_RATE=1.000000 - - PAL_STAMINA_DECREACE_RATE=1.000000 - - PAL_AUTO_HP_REGENE_RATE=1.000000 - - PAL_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000 - - BUILD_OBJECT_DAMAGE_RATE=1.000000 - - BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=1.000000 - - COLLECTION_DROP_RATE=1.000000 - - COLLECTION_OBJECT_HP_RATE=1.000000 - - COLLECTION_OBJECT_RESPAWN_SPEED_RATE=1.000000 - - ENEMY_DROP_ITEM_RATE=1.000000 - - DEATH_PENALTY=All - - ENABLE_PLAYER_TO_PLAYER_DAMAGE=false - - ENABLE_FRIENDLY_FIRE=false - - ENABLE_INVADER_ENEMY=true - - ACTIVE_UNKO=false - - ENABLE_AIM_ASSIST_PAD=true - - ENABLE_AIM_ASSIST_KEYBOARD=false - - DROP_ITEM_MAX_NUM=3000 - - DROP_ITEM_MAX_NUM_UNKO=100 - - BASE_CAMP_MAX_NUM=128 - - BASE_CAMP_WORKER_MAXNUM=15 - - DROP_ITEM_ALIVE_MAX_HOURS=1.000000 - - AUTO_RESET_GUILD_NO_ONLINE_PLAYERS=false - - AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS=72.000000 - - GUILD_PLAYER_MAX_NUM=20 - - PAL_EGG_DEFAULT_HATCHING_TIME=72.000000 - - WORK_SPEED_RATE=1.000000 - - IS_MULTIPLAY=false - - IS_PVP=false - - CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP=false - - ENABLE_NON_LOGIN_PENALTY=true - - ENABLE_FAST_TRAVEL=true - - IS_START_LOCATION_SELECT_BY_MAP=true - - EXIST_PLAYER_AFTER_LOGOUT=false - - ENABLE_DEFENSE_OTHER_GUILD_PLAYER=false - - COOP_PLAYER_MAX_NUM=4 - - MAX_PLAYERS=32 - - SERVER_NAME=jammsen-docker-generated-###RANDOM### - - SERVER_DESCRIPTION=Palworld-Dedicated-Server running in Docker by jammsen - - ADMIN_PASSWORD=adminPasswordHere - - SERVER_PASSWORD=serverPasswordHere - - PUBLIC_PORT=8211 - - PUBLIC_IP= - - RCON_ENABLED=true - - RCON_PORT=25575 - - REGION= - - USEAUTH=true - - BAN_LIST_URL=https://api.palworldgame.com/api/banlist.txt - volumes: - - ./game:/palworld -``` +See [example docker-compose.yml](docker-compose.yml). #### Run RCON commands @@ -297,10 +98,7 @@ Welcome to Pal Server[v0.1.3.0] jammsen-docker-generated-20384 $:~/steamcmd$ rcon save Complete Save ``` -**Important:** -- All RCON-Commands can be research here: https://tech.palworldgame.com/server-commands - -Questions? See [What do the parameters in the entrypoint for RCON mean](#what-do-the-parameters-in-the-entrypoint-for-rcon-mean) +> **Important:** Please research the RCON-Commands on the official source: https://tech.palworldgame.com/server-commands ## FAQ diff --git a/README_ENV.md b/README_ENV.md new file mode 100644 index 0000000..ab27cdc --- /dev/null +++ b/README_ENV.md @@ -0,0 +1,114 @@ +## Environment Variables + +[Back to main](README.md#environment-variables) + +In this section you will find a lot of environment variables to control your container-behavior and gameserver-settings. Due to the extensive control options, the settings are split into two parts for documentation: **Container-Settings** and **Gameserver-Settings**. + +### Container-Settings + +These settings control the behavior of the Docker container: + +> **Important:** If you want to change the server settings via environment variables use the default value (`auto`) for the environment variable `SERVER_SETTINGS_MODE`, otherwise change it to `manual` and edit the config file directly. + +| Variable | Description | Default value | Allowed values | +| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| TZ | Timezone used for time stamping server backups | Europe/Berlin | See [TZ identifiers](#tz-identifiers) | +| ALWAYS_UPDATE_ON_START | Updates the server on startup | true | false/true | +| MULTITHREAD_ENABLED | Sets options for "Improved multi-threaded CPU performance" | true | false/true | +| COMMUNITY_SERVER | Set to enabled, the server will appear in the Community-Serverlist. | true | false/true | +| BACKUP_ENABLED | Backup function, creates backups in your `game` directory | true | false/true | +| BACKUP_CRON_EXPRESSION | Needs a Cron-Expression - See [Cron expression](#cron-expression) | 0 * * * * (meaning every hour) | Cron-Expression | +| BACKUP_RETENTION_POLICY | Set to enabled, will cleanup old backups | false | false/true | +| BACKUP_RETENTION_AMOUNT_TO_KEEP | Defines how many backups in numbers to keep | 30 | Integer | +| SERVER_SETTINGS_MODE | Determines whether settings can be modified via environment variables or via file, except `COMMUNITY_SERVER` and `MULTITHREAD_ENABLED`! | `auto` | `auto`: Settings are modified only by environment variables, manual edits will be ignored
`manual`: Settings are modified only by editing the file directly, environment variables are ignored | +| STEAMCMD_VALIDATE_FILES | Set to enabled SteamCMD will also validate the gameserver files, making sure nothing is corrupted and also overwrite any file changes of the source
See https://developer.valvesoftware.com/wiki/SteamCMD#Downloading_an_App | true | false/true | + +#### TZ identifiers + +The `TZ` setting affects logging output and the backup function. [TZ identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#Time_Zone_abbreviations) are a format for defining a timezone near you. + +#### Cron expression + +The `BACKUP_CRON_EXPRESSION` setting affects the backup function. In a Cron-Expression, you define an interval for when to run jobs. This image uses Supercronic for crons, see https://github.com/aptible/supercronic#crontab-format or https://crontab-generator.org + +### Gameserver-Settings + +This section lists all the settings currently adjustable via Docker environment variables, based on the **order** and **contents of the DefaultPalWorldSettings.ini**. + +Information sources and credits to the following websites: +* [Palworld Tech Guide](https://tech.palworldgame.com/optimize-game-balance) for the game server documentation +* [PalworldSettingGenerator](https://dysoncheng.github.io/PalWorldSettingGenerator/setting.html) for variable descriptions + +> **Important:** Please note that all of this is subject to change. **The game is still in early access.** +> +> To change a setting, you can set the environment variable to the value you want. If the environment variable is not set or is blank, the default value will be used. + + +| Variable | Game setting | Description | Default value | Allowed value | +| ----------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ------------- | +| NETSERVERMAXTICKRATE | NetServerMaxTickRate | Changes the TickRate of the server, be very careful with this setting! | 120 | 30-120 | +| DIFFICULTY | Difficulty | Choose one of the following:
`None`
`Normal`
`Difficult` | None | Enum | +| DAYTIME_SPEEDRATE | DayTimeSpeedRate | Day time speed - Smaller number means shorter days | 1.000000 | Float | +| NIGHTTIME_SPEEDRATE | NightTimeSpeedRate | Night time speed - Smaller number means shorter nights | 1.000000 | Float | +| EXP_RATE | ExpRate | EXP rate | 1.000000 | Float | +| PAL_CAPTURE_RATE | PalCaptureRate | Pal capture rate | 1.000000 | Float | +| PAL_SPAWN_NUM_RATE | PalSpawnNumRate | Pal appearance rate | 1.000000 | Float | +| PAL_DAMAGE_RATE_ATTACK | PalDamageRateAttack | Damage from pals multiplier | 1.000000 | Float | +| PAL_DAMAGE_RATE_DEFENSE | PalDamageRateDefense | Damage to pals multiplier | 1.000000 | Float | +| PLAYER_DAMAGE_RATE_ATTACK | PlayerDamageRateAttack | Damage from player multiplier | 1.000000 | Float | +| PLAYER_DAMAGE_RATE_DEFENSE | PlayerDamageRateDefense | Damage to player multiplier | 1.000000 | Float | +| PLAYER_STOMACH_DECREASE_RATE | PlayerStomachDecreaceRate | Player hunger depletion rate | 1.000000 | Float | +| PLAYER_STAMINA_DECREACE_RATE | PlayerStaminaDecreaceRate | Player stamina reduction rate | 1.000000 | Float | +| PLAYER_AUTO_HP_REGENE_RATE | PlayerAutoHPRegeneRate | Player auto HP regeneration rate | 1.000000 | Float | +| PLAYER_AUTO_HP_REGENE_RATE_IN_SLEEP | PlayerAutoHpRegeneRateInSleep | Player sleep HP regeneration rate | 1.000000 | Float | +| PAL_STOMACH_DECREACE_RATE | PalStomachDecreaceRate | Pal hunger depletion rate | 1.000000 | Float | +| PAL_STAMINA_DECREACE_RATE | PalStaminaDecreaceRate | Pal stamina reduction rate | 1.000000 | Float | +| PAL_AUTO_HP_REGENE_RATE | PalAutoHPRegeneRate | Pal auto HP regeneration rate | 1.000000 | Float | +| PAL_AUTO_HP_REGENE_RATE_IN_SLEEP | PalAutoHpRegeneRateInSleep | Pal sleep health regeneration rate (in Palbox) | 1.000000 | Float | +| BUILD_OBJECT_DAMAGE_RATE | BuildObjectDamageRate | Damage to structure multiplier | 1.000000 | Float | +| BUILD_OBJECT_DETERIORATION_DAMAGE_RATE | BuildObjectDeteriorationDamageRate | Structure deterioration rate | 1.000000 | Float | +| COLLECTION_DROP_RATE | CollectionDropRate | Gatherable items multiplier | 1.000000 | Float | +| COLLECTION_OBJECT_HP_RATE | CollectionObjectHpRate | Gatherable objects HP multiplier | 1.000000 | Float | +| COLLECTION_OBJECT_RESPAWN_SPEED_RATE | CollectionObjectRespawnSpeedRate | Gatherable objects respawn interval | 1.000000 | Float | +| ENEMY_DROP_ITEM_RATE | EnemyDropItemRate | Dropped Items Multiplier | 1.000000 | Float | +| DEATH_PENALTY | DeathPenalty | `None` : No lost
`Item` : Lost item without equipment
`ItemAndEquipment` : Lost item and equipment
`All`: Lost All item, equipment, pal(in inventory) | All | Enum | +| ENABLE_PLAYER_TO_PLAYER_DAMAGE | bEnablePlayerToPlayerDamage | Allows players to cause damage to players | false | Boolean | +| ENABLE_FRIENDLY_FIRE | bEnableFriendlyFire | Allow friendly fire | false | Boolean | +| ENABLE_INVADER_ENEMY | bEnableInvaderEnemy | Enable invaders | true | Boolean | +| ACTIVE_UNKO | bActiveUNKO | Enable UNKO | false | Boolean | +| ENABLE_AIM_ASSIST_PAD | bEnableAimAssistPad | Enable controller aim assist | true | Boolean | +| ENABLE_AIM_ASSIST_KEYBOARD | bEnableAimAssistKeyboard | Enable Keyboard aim assist | false | Boolean | +| DROP_ITEM_MAX_NUM | DropItemMaxNum | Maximum number of drops in the world | 3000 | Integer | +| DROP_ITEM_MAX_NUM_UNKO | DropItemMaxNum | Maximum number of UNKO drops in the world | 100 | Integer | +| BASE_CAMP_MAX_NUM | BaseCampMaxNum | Maximum number of base camps | 128 | Integer | +| BASE_CAMP_WORKER_MAXNUM | BaseCampWorkerMaxNum | Maximum number of workers | 15 | Integer | +| DROP_ITEM_ALIVE_MAX_HOURS | DropItemAliveMaxHours | Time it takes for items to despawn in hours | 1.000000 | Float | +| AUTO_RESET_GUILD_NO_ONLINE_PLAYERS | bAutoResetGuildNoOnlinePlayers | Automatically reset guild when no players are online | false | Bool | +| AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS | AutoResetGuildTimeNoOnlinePlayers | Time to automatically reset guild when no players are online | 72.000000 | Float | +| GUILD_PLAYER_MAX_NUM | GuildPlayerMaxNum | Max player of Guild | 20 | Integer | +| PAL_EGG_DEFAULT_HATCHING_TIME | PalEggDefaultHatchingTime | Time(h) to incubate massive egg | 72.000000 | Float | +| WORK_SPEED_RATE | WorkSpeedRate | Work speed multiplier | 1.000000 | Float | +| IS_MULTIPLAY | bIsMultiplay | Enable multiplayer | false | Boolean | +| IS_PVP | bIsPvP | Enable PVP | false | Boolean | +| CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP | bCanPickupOtherGuildDeathPenaltyDrop | Allow players from other guilds to pick up death penalty items | false | Boolean | +| ENABLE_NON_LOGIN_PENALTY | bEnableNonLoginPenalty | Enable non-login penalty | true | Boolean | +| ENABLE_FAST_TRAVEL | bEnableFastTravel | Enable fast travel | true | Boolean | +| IS_START_LOCATION_SELECT_BY_MAP | bIsStartLocationSelectByMap | Enable selecting of start location | true | Boolean | +| EXIST_PLAYER_AFTER_LOGOUT | bExistPlayerAfterLogout | Toggle for deleting players when they log off | false | Boolean | +| ENABLE_DEFENSE_OTHER_GUILD_PLAYER | bEnableDefenseOtherGuildPlayer | Allows defense against other guild players | false | Boolean | +| COOP_PLAYER_MAX_NUM | CoopPlayerMaxNum | Maximum number of players in a guild | 4 | Integer | +| MAX_PLAYERS | ServerPlayerMaxNum | Maximum number of people who can join the server | 32 | Integer | +| SERVER_NAME | ServerName | Server name | jammsen-docker-generated-###RANDOM### | Integer | +| SERVER_DESCRIPTION | ServerDescription | Server description | Palworld-Dedicated-Server running in Docker by jammsen | String | +| ADMIN_PASSWORD | server admin password | AdminPassword | adminPasswordHere | String | +| SERVER_PASSWORD | AdminPassword | Set the server password. | serverPasswordHere | String | +| PUBLIC_PORT | public port | Public port number | 8211 | Integer | +| PUBLIC_IP | public ip or FQDN | Public IP or FQDN | | String | +| RCON_ENABLED | RCONEnabled | Enable RCON - Use ADMIN_PASSWORD to login | false | Boolean | +| RCON_PORT | RCONPort | Port number for RCON | 25575 | Integer | +| REGION | Region | Area | | String | +| USEAUTH | bUseAuth | Use authentication | true | Boolean | +| BAN_LIST_URL | BanListURL | Which ban list to use | https://api.palworldgame.com/api/banlist.txt | String | + + +[Back to main](README.md#environment-variables) diff --git a/default.env b/default.env new file mode 100644 index 0000000..68af08f --- /dev/null +++ b/default.env @@ -0,0 +1,75 @@ +# Change this for logging and backup, see "Environment variables" in the README.md +TZ=Europe/Berlin +ALWAYS_UPDATE_ON_START=true +MULTITHREAD_ENABLED=true +COMMUNITY_SERVER=true +BACKUP_ENABLED=true +BACKUP_CRON_EXPRESSION=0 * * * * +BACKUP_RETENTION_POLICY=false +BACKUP_RETENTION_AMOUNT_TO_KEEP=30 +STEAMCMD_VALIDATE_FILES=true +# Change this to manual if you want to edit your configs yourself +SERVER_SETTINGS_MODE=auto +NETSERVERMAXTICKRATE=120 +DIFFICULTY=None +DAYTIME_SPEEDRATE=1.000000 +NIGHTTIME_SPEEDRATE=1.000000 +EXP_RATE=1.000000 +PAL_CAPTURE_RATE=1.000000 +PAL_SPAWN_NUM_RATE=1.000000 +PAL_DAMAGE_RATE_ATTACK=1.000000 +PAL_DAMAGE_RATE_DEFENSE=1.000000 +PLAYER_DAMAGE_RATE_ATTACK=1.000000 +PLAYER_DAMAGE_RATE_DEFENSE=1.000000 +PLAYER_STOMACH_DECREASE_RATE=1.000000 +PLAYER_STAMINA_DECREACE_RATE=1.000000 +PLAYER_AUTO_HP_REGENE_RATE=1.000000 +PLAYER_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000 +PAL_STOMACH_DECREACE_RATE=1.000000 +PAL_STAMINA_DECREACE_RATE=1.000000 +PAL_AUTO_HP_REGENE_RATE=1.000000 +PAL_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000 +BUILD_OBJECT_DAMAGE_RATE=1.000000 +BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=1.000000 +COLLECTION_DROP_RATE=1.000000 +COLLECTION_OBJECT_HP_RATE=1.000000 +COLLECTION_OBJECT_RESPAWN_SPEED_RATE=1.000000 +ENEMY_DROP_ITEM_RATE=1.000000 +DEATH_PENALTY=All +ENABLE_PLAYER_TO_PLAYER_DAMAGE=false +ENABLE_FRIENDLY_FIRE=false +ENABLE_INVADER_ENEMY=true +ACTIVE_UNKO=false +ENABLE_AIM_ASSIST_PAD=true +ENABLE_AIM_ASSIST_KEYBOARD=false +DROP_ITEM_MAX_NUM=3000 +DROP_ITEM_MAX_NUM_UNKO=100 +BASE_CAMP_MAX_NUM=128 +BASE_CAMP_WORKER_MAXNUM=15 +DROP_ITEM_ALIVE_MAX_HOURS=1.000000 +AUTO_RESET_GUILD_NO_ONLINE_PLAYERS=false +AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS=72.000000 +GUILD_PLAYER_MAX_NUM=20 +PAL_EGG_DEFAULT_HATCHING_TIME=72.000000 +WORK_SPEED_RATE=1.000000 +IS_MULTIPLAY=false +IS_PVP=false +CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP=false +ENABLE_NON_LOGIN_PENALTY=true +ENABLE_FAST_TRAVEL=true +IS_START_LOCATION_SELECT_BY_MAP=true +EXIST_PLAYER_AFTER_LOGOUT=false +ENABLE_DEFENSE_OTHER_GUILD_PLAYER=false +COOP_PLAYER_MAX_NUM=4 +MAX_PLAYERS=32 +SERVER_NAME=jammsen-docker-generated-###RANDOM### +SERVER_DESCRIPTION=Palworld-Dedicated-Server running in Docker by jammsen +ADMIN_PASSWORD=adminPasswordHere +SERVER_PASSWORD=serverPasswordHere +PUBLIC_PORT=8211 +PUBLIC_IP= +RCON_ENABLED=true +RCON_PORT=25575 +REGION= +USEAUTH=true +BAN_LIST_URL=https://api.palworldgame.com/api/banlist.txt diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..3bc6e1b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3.9' +services: + palworld-dedicated-server: + #build: . + container_name: palworld-dedicated-server + image: jammsen/palworld-dedicated-server:latest + restart: unless-stopped + ports: + - target: 8211 # Gamerserver port inside of the container + published: 8211 # Gamerserver port on your host + protocol: udp + 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 + volumes: + - ./game:/palworld \ No newline at end of file