feat(palworld) add rcon sidecar to palworld, docs, and 100 percent config converage. (#17761)

**Description**
- Add a sidecar rcon to palworld.
- docs and notes
- about 100% config coverage for the ini file.

⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [X] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [X] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [X] ⚖️ My code follows the style guidelines of this project
- [X] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [ ] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [X] ⬆️ I increased versions for any altered app according to semantic
versioning

**➕ App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._
This commit is contained in:
Xstar97TheNoob
2024-02-01 17:25:06 +01:00
committed by GitHub
parent b76ebb6d0f
commit 6da87d2829
6 changed files with 566 additions and 200 deletions
+1 -1
View File
@@ -34,4 +34,4 @@ sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/palworld
- https://ghcr.io/ich777/steamcmd
type: application
version: 0.1.1
version: 0.1.2
@@ -0,0 +1,76 @@
---
title: PalWorld Installation Notes
---
::: note
All app configuration defined in the GUI will take precedence over ANY manual configuration changed via the ini file.
:::
## Default Values
| KEY | VALUE |
|---------------------------------------|------------------------|
| Difficulty | None |
| DayTimeSpeedRate | 1.000000 |
| NightTimeSpeedRate | 1.000000 |
| ExpRate | 1.000000 |
| PalCaptureRate | 1.000000 |
| PalSpawnNumRate | 1.000000 |
| PalDamageRateAttack | 1.000000 |
| PalDamageRateDefense | 1.000000 |
| PlayerDamageRateAttack | 1.000000 |
| PlayerDamageRateDefense | 1.000000 |
| PlayerStomachDecreaceRate | 1.000000 |
| PlayerStaminaDecreaceRate | 1.000000 |
| PlayerAutoHPRegeneRate | 1.000000 |
| PlayerAutoHpRegeneRateInSleep | 1.000000 |
| PalStomachDecreaceRate | 1.000000 |
| PalStaminaDecreaceRate | 1.000000 |
| PalAutoHPRegeneRate | 1.000000 |
| PalAutoHpRegeneRateInSleep | 1.000000 |
| BuildObjectDamageRate | 1.000000 |
| BuildObjectDeteriorationDamageRate | 1.000000 |
| CollectionDropRate | 1.000000 |
| CollectionObjectHpRate | 1.000000 |
| CollectionObjectRespawnSpeedRate | 1.000000 |
| EnemyDropItemRate | 1.000000 |
| DeathPenalty | All |
| bEnablePlayerToPlayerDamage | False |
| bEnableFriendlyFire | False |
| bEnableInvaderEnemy | True |
| bActiveUNKO | False |
| bEnableAimAssistPad | True |
| bEnableAimAssistKeyboard | False |
| DropItemMaxNum | 3000 |
| DropItemMaxNum_UNKO | 100 |
| BaseCampMaxNum | 128 |
| BaseCampWorkerMaxNum | 15 |
| DropItemAliveMaxHours | 1.000000 |
| bAutoResetGuildNoOnlinePlayers | False |
| AutoResetGuildTimeNoOnlinePlayers | 72.000000 |
| GuildPlayerMaxNum | 20 |
| PalEggDefaultHatchingTime | 72.000000 |
| WorkSpeedRate | 1.000000 |
| bIsMultiplay | False |
| bIsPvP | False |
| bCanPickupOtherGuildDeathPenaltyDrop | False |
| bEnableNonLoginPenalty | True |
| bEnableFastTravel | True |
| bIsStartLocationSelectByMap | True |
| bExistPlayerAfterLogout | False |
| bEnableDefenseOtherGuildPlayer | False |
| CoopPlayerMaxNum | 4 |
| ServerPlayerMaxNum | 32 |
| ServerName | "Default Palworld Server" |
| ServerDescription | "" |
| AdminPassword | "" |
| ServerPassword | "" |
| PublicPort | 8211 |
| PublicIP | "" |
| RCONEnabled | False |
| RCONPort | 25575 |
| Region | "" |
| bUseAuth | True |
| BanListURL | "https://api.palworldgame.com/api/banlist.txt" |
@@ -0,0 +1,38 @@
---
title: PalWorld RCON Notes
---
Shell into the app from the web gui or use heavyscript and select the RCON container; the following commands can be used.
::: note
To use the same commands while in game;
type in chat:
/AdminPassword PASSWORD
then run the commands in chat
ex: /Info
:::
## RCON Commands
| Command | Description |
|--------------------------------------|-----------------------------------------------------------------------------------------------------------|
| /Shutdown {Seconds} {MessageText} | Gracefully shuts down server with an optional timer and/or message to notify players in your server. |
| /DoExit | Forcefully shuts down the server immediately. It is not recommended to use this option |
| /Broadcast {MessageText} | Broadcasts a message to all players in the server. |
| /KickPlayer {PlayerUID or SteamID} | Kicks player from the server. Useful for getting a player's attention with moderation. |
| /BanPlayer {PlayerUID or SteamID} | Bans player from the server. The Player will not be able to rejoin the server until they are unbanned. |
| /ShowPlayers | Shows information on all connected players. |
| /Info | Shows server information. |
| /Save | Save the world data to disk. |
## In-Game Only Commands
| Command | Description |
|--------------------------------------|-----------------------------------------------------------------------------------------------------------|
| /TeleportToPlayer {PlayerUID or SteamID} | Immediately teleport to the target player. |
| /TeleportToMe {PlayerUID or SteamID} | Immediately teleports target player to you. |
@@ -0,0 +1,19 @@
---
title: Input Validation
---
**`floats`**
Accepted formats are:
- `1.0000`
- `10.0000`
- `100.0000`
- `1000.0000`
- etc
Regex used to match this: `^\d{1,}\.[0-9]{6}$`
You can try live [here](https://regex101.com/r/BTJv6n/1)
---
_If you find a field that you think it needs validation, please open an issue on github_
+269 -132
View File
@@ -72,7 +72,7 @@ questions:
label: Use Auth
schema:
type: boolean
private: true
default: true
- variable: admin_password
label: Admin Server Password
description: Optionally set a password for the admin (this field accepts no spaces)
@@ -87,16 +87,180 @@ questions:
type: string
private: true
default: ""
- variable: difficulty
label: Server Difficulty
- variable: auto_reset_guild_time_no_online_players
label: Auto Reset Guid Time No Online Players
schema:
type: string
default: "None"
default: "72.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: ban_list_url
label: Ban List Url
schema:
type: string
default: "https://api.palworldgame.com/api/banlist.txt"
- variable: base_camp_max
label: Base Camp Max
schema:
type: int
default: 128
min: 1
- variable: base_camp_worker_max
label: Base Camp Worker Max
schema:
type: int
default: 15
min: 1
- variable: build_object_damage_rate
label: Build Object Damage Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: build_object_deterioration_damage_rate
label: Build Object Deterioration Damage Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: can_pickup_other_guild_death_penalty_drop
label: Can Pickup Other Guild Death Penalty Drop
schema:
type: boolean
default: false
- variable: collection_drop_rate
label: Collection Drop Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: collection_object_hp_rate
label: Collection Object HP Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: collection_object_respawn_speed_rate
label: Collection Object Respawn Speed Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: day_time_speed_rate
label: Day Time Speed Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: death_penalty
label: Server Death Penalty
schema:
type: string
default: "ALL"
- variable: difficulty
label: Server Difficulty
schema:
type: string
default: "None"
- variable: drop_item_alive_max_hours
label: Drop Item Alive Max Hours
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: drop_item_max
label: Drop Item Max
schema:
type: int
default: 3000
min: 1
- variable: drop_item_max_unko
label: Drop Item Max Unko
schema:
type: int
default: 100
min: 1
- variable: enable_aim_assist_kb
label: Enable Aim Assist KeyBoard
schema:
type: boolean
default: false
- variable: enable_aim_assist_pad
label: Enable Aim Assist Pad
schema:
type: boolean
default: false
- variable: enable_defense_other_guild_player
label: Enable Defense Other Guild Player
schema:
type: boolean
default: true
- variable: enable_fast_travel
label: Enable Fast Travel
schema:
type: boolean
default: true
- variable: enable_friendly_fire
label: Enable Friendly Fire
schema:
type: boolean
default: false
- variable: enable_invader_enemy
label: Enable Invader Enemy
schema:
type: boolean
default: true
- variable: active_unko
label: Active Unko
schema:
type: boolean
default: false
- variable: enable_non_login_penalty
label: Enable Non Login Penalty
schema:
type: boolean
default: true
- variable: enable_pvp_damage
label: Enable PVP Damage
schema:
type: boolean
default: false
- variable: exist_players_after_logout
label: Exist Players After LogOut
schema:
type: boolean
default: false
- variable: enemy_drop_item_rate
label: Enemy Drop Item Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: exp_rate
label: Experience Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: guild_auto_reset_no_online_players
label: Guild Auto Reset No Online Players
schema:
type: boolean
default: false
- variable: is_multiplay
label: Is Multiplay
schema:
type: boolean
default: false
- variable: is_pvp
label: Is PVP
schema:
type: boolean
default: false
- variable: is_start_location_select_by_map
label: Is Start Location Select By Map
schema:
type: boolean
default: true
- variable: max_players
label: Max Players
schema:
@@ -114,151 +278,125 @@ questions:
type: int
default: 20
min: 1
- variable: drop_item_max
label: Drop Item Max
- variable: name
label: Server Name
description: The name of your server.
schema:
type: int
default: 3000
min: 1
- variable: drop_item_max_unko
label: Drop Item Max Unko
type: string
default: "TrueCharts Palworld Server"
- variable: night_time_speed_rate
label: Night Time Speed Rate
schema:
type: int
default: 100
min: 1
- variable: base_camp_max
label: Base Camp Max
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_auto_hp_regene_rate
label: Pal Auto HP Regene Rate
schema:
type: int
default: 128
min: 1
- variable: base_camp_worker_max
label: Base Camp Worker Max
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_auto_hp_regene_rate_in_sleep
label: Pal Auto HP Regene Rate in Sleep
schema:
type: int
default: 15
min: 1
- variable: enable_pvp_damage
label: Enable PVP Damage
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_capture_rate
label: Pal Capture Rate
schema:
type: boolean
default: false
- variable: enable_friendly_fire
label: Enable Friendly Fire
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_damage_rate_attack
label: Pal Damage Rate Attack
schema:
type: boolean
default: false
- variable: enable_invader_enemy
label: Enable Invader Enemy
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_damage_rate_defense
label: Pal Damage Rate Defense
schema:
type: boolean
default: true
- variable: enable_defense_other_guild_player
label: Enable Defense Other Guild Player
schema:
type: boolean
default: true
- variable: enable_non_login_penalty
label: Enable Non Login Penalty
schema:
type: boolean
default: true
- variable: enable_aim_assist_pad
label: Enable Aim Assist Pad
schema:
type: boolean
default: false
- variable: enable_aim_assist_kb
label: Enable Aim Assist KeyBoard
schema:
type: boolean
default: false
- variable: enable_fast_travel
label: Enable Fast Travel
schema:
type: boolean
default: true
- variable: is_multiplay
label: Is Multiplay
schema:
type: boolean
default: false
- variable: is_pvp
label: Is PVP
schema:
type: boolean
default: false
- variable: is_start_location_select_by_map
label: Is Start Location Select By Map
schema:
type: boolean
default: true
- variable: active_unko
label: Active Unko
schema:
type: boolean
default: false
- variable: guild_auto_reset_no_online_players
label: Guild Auto Reset No Online Players
schema:
type: boolean
default: false
- variable: auto_reset_guild_time_no_online_players
label: Auto Reset Guid Time No Online Players
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_egg_default_hatching_time
label: Pal Egg Default Hatching Time
schema:
type: string
default: "72.000000"
- variable: can_pickup_other_guild_death_penalty_drop
label: Can Pickup Other Guild Death Penalty Drop
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_spawn_num_rate
label: Pal Spawn Number Rate
schema:
type: boolean
default: false
- variable: exist_players_after_logout
label: Exist Players After LogOut
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_stamina_decreace_rate
label: Pal Stamina Decreace Rate
schema:
type: boolean
default: false
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: pal_stomach_decreace_rate
label: Pal Stomach Decreace Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: player_auto_hp_regene_rate
label: Player Auto HP Regene Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: player_auto_hp_regene_rate_in_sleep
label: Player Auto HP Regene Rate in Sleep
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: player_damage_rate_attack
label: Player Damage Rate Attack
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: player_damage_rate_defense
label: Player Damage Rate Defense
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: player_stamina_decreace_rate
label: Player Stamina Decreace Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: player_stomach_decreace_rate
label: Player Stomach Decreace Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: region
label: Region
schema:
type: string
default: ""
- variable: work_speed_rate
label: Work Speed Rate
schema:
type: string
default: "1.000000"
valid_chars: '^\d{1,}\.[0-9]{6}$'
- variable: update_public_ip
label: Update Public IP
description: Will check if the Public IP is still valid.
schema:
type: boolean
default: false
- variable: ban_list_url
label: Ban List Url
schema:
type: string
default: "https://api.palworldgame.com/api/banlist.txt"
- variable: params
label: Game Params
schema:
type: list
default:
- EpicApp=PalServer
required: true
items:
- variable: param
label: Param
schema:
type: string
required: true
default: ""
- variable: params_extra
label: Game Params Extra
schema:
type: list
default:
- -useperfthreads
- -NoAsyncLoadingThread
- -UseMultithreadForDS
required: true
items:
- variable: extra_param
label: Extra Param
schema:
type: string
required: true
default: ""
- variable: backup
label: Backup Configuration
schema:
@@ -348,7 +486,6 @@ questions:
attrs:
# Include{persistenceBasic}
# Include{persistenceList}
# Include{ingressList}
# Include{securityContextRoot}
- variable: runAsUser
label: "runAsUser"
+163 -67
View File
@@ -2,6 +2,10 @@ image:
repository: ghcr.io/ich777/steamcmd
pullPolicy: IfNotPresent
tag: palworld@sha256:c7ed87dfb13890f340d663ca0a97acb6a8b83a40ab81a9c94c8675cee03af325
rconImage:
repository: outdead/rcon
pullPolicy: IfNotPresent
tag: latest@sha256:8bf03935771ae6b44449eb8e74e1f4d249ead591e9c1e4e43539d33be1a3ac67
securityContext:
container:
@@ -33,35 +37,62 @@ palworld:
name: "TrueCharts Palworld Server"
description: "A Palworld Server running in Kubernetes"
use_auth: true
admin_password: ""
password: ""
difficulty: "None"
death_penalty: "ALL"
max_players: 32
max_players_coop: 4
max_players_guild: 20
drop_item_max: 3000
drop_item_max_unko: 100
admin_password: ""
auto_reset_guild_time_no_online_players: "72.000000"
ban_list_url: "https://api.palworldgame.com/api/banlist.txt"
base_camp_max: 128
base_camp_worker_max: 15
enable_pvp_damage: false
build_object_damage_rate: "1.000000"
build_object_deterioration_damage_rate: "1.000000"
can_pickup_other_guild_death_penalty_drop: false
collection_drop_rate: "1.000000"
collection_object_hp_rate: "1.000000"
collection_object_respawn_speed_rate: "1.000000"
day_time_speed_rate: "1.000000"
death_penalty: "ALL"
difficulty: "None"
drop_item_alive_max_hours: "1.000000"
drop_item_max: 3000
drop_item_max_unko: 100
enable_aim_assist_kb: false
enable_aim_assist_pad: false
enable_defense_other_guild_player: true
enable_fast_travel: true
enable_friendly_fire: false
enable_invader_enemy: true
enable_defense_other_guild_player: true
active_unko: false
enable_non_login_penalty: true
enable_aim_assist_pad: false
enable_aim_assist_kb: false
enable_fast_travel: true
enable_pvp_damage: false
exist_players_after_logout: true
enemy_drop_item_rate: "1.000000"
exp_rate: "1.000000"
guild_auto_reset_no_online_players: false
is_multiplay: false
is_pvp: false
is_start_location_select_by_map: true
active_unko: false
guild_auto_reset_no_online_players: false
auto_reset_guild_time_no_online_players: "72.000000"
can_pickup_other_guild_death_penalty_drop: false
exist_players_after_logout: true
max_players: 32
max_players_coop: 4
max_players_guild: 20
night_time_speed_rate: "1.000000"
pal_auto_hp_regene_rate: "1.000000"
pal_auto_hp_regene_rate_in_sleep: "1.000000"
pal_capture_rate: "1.000000"
pal_damage_rate_attack: "1.000000"
pal_damage_rate_defense: "1.000000"
pal_egg_default_hatching_time: "72.000000"
pal_spawn_num_rate: "1.000000"
pal_stamina_decreace_rate: "1.000000"
pal_stomach_decreace_rate: "1.000000"
player_auto_hp_regene_rate: "1.000000"
player_auto_hp_regene_rate_in_sleep: "1.000000"
player_damage_rate_attack: "1.000000"
player_damage_rate_defense: "1.000000"
player_stamina_decreace_rate: "1.000000"
player_stomach_decreace_rate: "1.000000"
region: ""
work_speed_rate: "1.000000"
update_public_ip: false
ban_list_url: "https://api.palworldgame.com/api/banlist.txt"
params:
- EpicApp=PalServer
params_extra:
@@ -88,70 +119,109 @@ workload:
- |
config={{ .Values.persistence.serverfiles.targetSelector.main.main.mountPath }}/Pal/Saved/Config/LinuxServer
cfgFile=${config}/PalWorldSettings.ini
dfCfgFile={{ .Values.persistence.serverfiles.targetSelector.main.main.mountPath }}/DefaultPalWorldSettings.ini
mkdir -p ${config}
if [ ! -f ${cfgFile} ]; then
echo "Config file not found, fetching..."
# Fetch the config file if it doesn't exist, just like the container does
wget -qO ${cfgFile} https://github.com/ich777/docker-steamcmd-server/raw/palworld/config/PalWorldSettings.ini
if [ ! -f "${cfgFile}" ]; then
if [ -f "${dfCfgFile}" ]; then
echo "Default config file found, copying as cfgFile..."
cp "${dfCfgFile}" "${cfgFile}"
else
echo "Config file not found, fetching..."
# Fetch the config file if it doesn't exist, just like the container does
wget -qO "${cfgFile}" https://github.com/ich777/docker-steamcmd-server/raw/palworld/config/PalWorldSettings.ini
fi
fi
set_ini_value() {
local key="${1}"
local value="${2}"
local key="${1}"
local value="${2}"
local quote_flag="${3:-}"
# Check if the value contains spaces or special characters
if echo "$value" | grep -q '[[:space:]]\|[^\w.-]'; then
# Add quotes around the value
value="\"$value\""
fi
# Check if the key exists
if ! grep -q "${key}=" "${cfgFile}"; then
echo "Key '${key}' does not exist in '${cfgFile}'. Skipping..."
return
fi
echo "Setting ${key}..."
sed -i "s|\(${key}=\)[^,]*|\1${value}|g" "${cfgFile}"
echo "Set to $(grep -Po "(?<=${key}=)[^,]*" "${cfgFile}")"
if [ "$quote_flag" = "-q" ]; then
# Add quotes around the value
value="\"$value\""
fi
echo "Setting ${key}..."
sed -i "s|\(${key}=\)[^,]*|\1${value}|g" "${cfgFile}"
echo "Set to $(grep -Po "(?<=${key}=)[^,]*" "${cfgFile}")"
}
set_ini_value "RCONEnabled" "True"
set_ini_value "RCONPort" "{{ .Values.service.rcon.ports.rcon.port }}"
set_ini_value "PublicPort" "{{ .Values.service.main.ports.main.port }}"
echo "the following options are updating...."
set_ini_value "ServerName" "{{ .Values.palworld.game.name }}"
set_ini_value "ServerDescription" "{{ .Values.palworld.game.description }}"
set_ini_value "Difficulty" "{{ .Values.palworld.game.difficulty }}"
set_ini_value "DeathPenalty" "{{ .Values.palworld.game.death_penalty }}"
set_ini_value "RCONEnabled" "True" -q
set_ini_value "RCONPort" "{{ .Values.service.rcon.ports.rcon.port }}" -q
set_ini_value "PublicPort" "{{ .Values.service.main.ports.main.port }}" -q
set_ini_value "ServerPlayerMaxNum" "{{ .Values.palworld.game.max_players }}"
set_ini_value "CoopPlayerMaxNum" "{{ .Values.palworld.game.max_players_coop }}"
set_ini_value "GuildPlayerMaxNum" "{{ .Values.palworld.game.max_players_guild }}"
set_ini_value "ServerPassword" "{{ .Values.palworld.game.password }}" -q
set_ini_value "AdminPassword" "{{ .Values.palworld.game.admin_password }}" -q
set_ini_value "DropItemMaxNum" "{{ .Values.palworld.game.max_players_guild }}"
set_ini_value "DropItemMaxNum_UNKO" "{{ .Values.palworld.game.drop_item_max_unko }}"
set_ini_value "ServerName" "{{ .Values.palworld.game.name }}" -q
set_ini_value "ServerDescription" "{{ .Values.palworld.game.description }}" -q
set_ini_value "Difficulty" "{{ .Values.palworld.game.difficulty }}" -q
set_ini_value "DeathPenalty" "{{ .Values.palworld.game.death_penalty }}" -q
set_ini_value "Region" "{{ .Values.palworld.game.region }}" -q
set_ini_value "AutoResetGuildTimeNoOnlinePlayers" "{{ .Values.palworld.game.auto_reset_guild_time_no_online_players }}"
set_ini_value "BaseCampMaxNum" "{{ .Values.palworld.game.base_camp_max }}"
set_ini_value "BaseCampWorkerMaxNum" "{{ .Values.palworld.game.base_camp_worker_max }}"
set_ini_value "bUseAuth" "{{ .Values.palworld.game.use_auth }}"
set_ini_value "bEnablePlayerToPlayerDamage" "{{ .Values.palworld.game.enable_pvp_damage }}"
set_ini_value "bEnableFriendlyFire" "{{ .Values.palworld.game.enable_friendly_fire }}"
set_ini_value "bEnableInvaderEnemy" "{{ .Values.palworld.game.enable_invader_enemy }}"
set_ini_value "bEnableAimAssistPad" "{{ .Values.palworld.game.enable_aim_assist_pad }}"
set_ini_value "bEnableAimAssistKeyboard" "{{ .Values.palworld.game.enable_aim_assist_kb }}"
set_ini_value "bEnableNonLoginPenalty" "{{ .Values.palworld.game.enable_non_login_penalty }}"
set_ini_value "bEnableFastTravel" "{{ .Values.palworld.game.enable_fast_travel }}"
set_ini_value "bEnableDefenseOtherGuildPlayer" "{{ .Values.palworld.game.enable_defense_other_guild_player }}"
set_ini_value "bIsMultiplay" "{{ .Values.palworld.game.is_multiplay }}"
set_ini_value "bIsStartLocationSelectByMap" "{{ .Values.palworld.game.is_start_location_select_by_map }}"
set_ini_value "bIsPvP" "{{ .Values.palworld.game.is_pvp }}"
set_ini_value "bExistPlayerAfterLogout" "{{ .Values.palworld.game.exist_players_after_logout }}"
set_ini_value "bActiveUNKO" "{{ .Values.palworld.game.active_unko }}"
set_ini_value "bAutoResetGuildNoOnlinePlayers" "{{ .Values.palworld.game.guild_auto_reset_no_online_players }}"
set_ini_value "AutoResetGuildTimeNoOnlinePlayers" "{{ .Values.palworld.game.auto_reset_guild_time_no_online_players }}"
set_ini_value "bCanPickupOtherGuildDeathPenaltyDrop" "{{ .Values.palworld.game.can_pickup_other_guild_death_penalty_drop }}"
set_ini_value "ServerPassword" "{{ .Values.palworld.game.password }}"
set_ini_value "AdminPassword" "{{ .Values.palworld.game.admin_password }}"
set_ini_value "BanListURL" "{{ .Values.palworld.game.ban_list_url }}"
set_ini_value "BanListURL" "{{ .Values.palworld.game.ban_list_url }}" -q
set_ini_value "BuildObjectDamageRate" "{{ .Values.palworld.game.build_object_damage_rate }}"
set_ini_value "BuildObjectDeteriorationDamageRate" "{{ .Values.palworld.game.build_object_deterioration_damage_rate }}"
set_ini_value "bCanPickupOtherGuildDeathPenaltyDrop" "{{ .Values.palworld.game.can_pickup_other_guild_death_penalty_drop }}" -q
set_ini_value "bUseAuth" "{{ .Values.palworld.game.use_auth }}" -q
set_ini_value "bEnablePlayerToPlayerDamage" "{{ .Values.palworld.game.enable_pvp_damage }}" -q
set_ini_value "bEnableFriendlyFire" "{{ .Values.palworld.game.enable_friendly_fire }}" -q
set_ini_value "bEnableInvaderEnemy" "{{ .Values.palworld.game.enable_invader_enemy }}" -q
set_ini_value "bEnableAimAssistPad" "{{ .Values.palworld.game.enable_aim_assist_pad }}" -q
set_ini_value "bEnableAimAssistKeyboard" "{{ .Values.palworld.game.enable_aim_assist_kb }}" -q
set_ini_value "bEnableNonLoginPenalty" "{{ .Values.palworld.game.enable_non_login_penalty }}" -q
set_ini_value "bEnableFastTravel" "{{ .Values.palworld.game.enable_fast_travel }}" -q
set_ini_value "bEnableDefenseOtherGuildPlayer" "{{ .Values.palworld.game.enable_defense_other_guild_player }}" -q
set_ini_value "bIsMultiplay" "{{ .Values.palworld.game.is_multiplay }}" -q
set_ini_value "bIsStartLocationSelectByMap" "{{ .Values.palworld.game.is_start_location_select_by_map }}" -q
set_ini_value "bIsPvP" "{{ .Values.palworld.game.is_pvp }}" -q
set_ini_value "bExistPlayerAfterLogout" "{{ .Values.palworld.game.exist_players_after_logout }}" -q
set_ini_value "bActiveUNKO" "{{ .Values.palworld.game.active_unko }}" -q
set_ini_value "bAutoResetGuildNoOnlinePlayers" "{{ .Values.palworld.game.guild_auto_reset_no_online_players }}" -q
set_ini_value "CollectionDropRate" "{{ .Values.palworld.game.collection_drop_rate }}"
set_ini_value "CollectionObjectHpRate" "{{ .Values.palworld.game.collection_object_hp_rate }}"
set_ini_value "CollectionObjectRespawnSpeedRate" "{{ .Values.palworld.game.collection_object_respawn_speed_rate }}"
set_ini_value "CoopPlayerMaxNum" "{{ .Values.palworld.game.max_players_coop }}"
set_ini_value "DayTimeSpeedRate" "{{ .Values.palworld.game.day_time_speed_rate }}"
set_ini_value "DropItemMaxNum" "{{ .Values.palworld.game.drop_item_max }}"
set_ini_value "DropItemMaxNum_UNKO" "{{ .Values.palworld.game.drop_item_max_unko }}"
set_ini_value "DropItemAliveMaxHours" "{{ .Values.palworld.game.drop_item_alive_max_hours }}"
set_ini_value "EnemyDropItemRate" "{{ .Values.palworld.game.enemy_drop_item_rate }}"
set_ini_value "GuildPlayerMaxNum" "{{ .Values.palworld.game.max_players_guild }}"
set_ini_value "NightTimeSpeedRate" "{{ .Values.palworld.game.night_time_speed_rate }}"
set_ini_value "PalCaptureRate" "{{ .Values.palworld.game.pal_capture_rate }}"
set_ini_value "PalEggDefaultHatchingTime" "{{ .Values.palworld.game.pal_egg_default_hatching_time }}"
set_ini_value "PalSpawnNumRate" "{{ .Values.palworld.game.pal_spawn_num_rate }}"
set_ini_value "PalDamageRateAttack" "{{ .Values.palworld.game.pal_damage_rate_attack }}"
set_ini_value "PalDamageRateDefense" "{{ .Values.palworld.game.pal_damage_rate_defense }}"
set_ini_value "PlayerDamageRateAttack" "{{ .Values.palworld.game.player_damage_rate_attack }}"
set_ini_value "PlayerDamageRateDefense" "{{ .Values.palworld.game.player_damage_rate_defense }}"
set_ini_value "PlayerStomachDecreaceRate" "{{ .Values.palworld.game.player_stomach_decreace_rate }}"
set_ini_value "PlayerStaminaDecreaceRate" "{{ .Values.palworld.game.player_stamina_decreace_rate }}"
set_ini_value "PlayerAutoHPRegeneRate" "{{ .Values.palworld.game.player_auto_hp_regene_rate }}"
set_ini_value "PlayerAutoHpRegeneRateInSleep" "{{ .Values.palworld.game.player_auto_hp_regene_rate_in_sleep }}"
set_ini_value "PalStomachDecreaceRate" "{{ .Values.palworld.game.pal_stomach_decreace_rate }}"
set_ini_value "PalStaminaDecreaceRate" "{{ .Values.palworld.game.pal_stamina_decreace_rate }}"
set_ini_value "PalAutoHPRegeneRate" "{{ .Values.palworld.game.pal_auto_hp_regene_rate }}"
set_ini_value "PalAutoHpRegeneRateInSleep" "{{ .Values.palworld.game.pal_auto_hp_regene_rate_in_sleep }}"
set_ini_value "ServerPlayerMaxNum" "{{ .Values.palworld.game.max_players }}"
set_ini_value "WorkSpeedRate" "{{ .Values.palworld.game.work_speed_rate }}"
set_ini_value "ExpRate" "{{ .Values.palworld.game.exp_rate }}"
echo "Done!"
containers:
main:
probes:
@@ -182,6 +252,32 @@ workload:
BACKUP: "{{ .Values.palworld.backup.enabled }}"
BACKUP_INTERVAL: "{{ .Values.palworld.backup.interval }}"
BACKUP_TO_KEEP: "{{ .Values.palworld.backup.to_keep }}"
rcon:
enabled: true
type: Deployment
strategy: RollingUpdate
replicas: 1
podSpec:
containers:
rcon:
primary: true
enabled: true
imageSelector: rconImage
tty: true
stdin: true
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
args:
- ./rcon
- -a
- '{{ printf "%v-rcon:%v" (include "tc.v1.common.lib.chart.names.fullname" $) .Values.service.rcon.ports.rcon.port }}'
- -p
- "{{ .Values.palworld.game.admin_password }}"
persistence:
steamcmd: