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:
@@ -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_
|
||||
@@ -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"
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user