Closed Twinki14 closed 9 months ago
Trying that now!
Trying that now!
Any update on if this works?
@xHyperElectric Have not been able to get it working sadly, but I haven't had the time to work on it much.
Hey @thijsvanloef @Twinki14,
I've now been trying all kinds of different versions of the argument for around 2.5hours.
I cannot get it to work. :(
Some of the arguments ive tried:
STARTCOMMAND="${STARTCOMMAND} -ini:Pal:[/Script/Pal.PalGameWorldSettings]:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:PalWorldSettings:[/Script/Pal.PalGameWorldSettings]:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:PalGameWorldSettings:[/Script/Pal.PalGameWorldSettings]:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:Pal.PalGameWorldSettings:[/Script/Pal.PalGameWorldSettings]:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:PalWorldSettings:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:PalGameWorldSettings:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings:RCONEnabled=True"
STARTCOMMAND="${STARTCOMMAND} -ini:Pal:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:Game:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:Engine:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:GameUserSettings:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:RuntimeOptions:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:GameplayTags:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:palworld:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini://Pal/Saved/Config/LinuxServer/PalWorldSettings.ini:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini://PalWorldSettings:[/Script/Pal.PalGameWorldSettings]:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini:ServerName=TEST_TEST"
STARTCOMMAND="${STARTCOMMAND} -ini:/palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings:ServerName=TEST_TEST"
Hey @thijsvanloef @Twinki14,
I've now been trying all kinds of different versions of the argument for around 2.5hours.
I cannot get it to work. :(
Since the OptionSettings
is a full object, try this
-ini:PalGameWorldSettings:[/Script/Pal.PalGameWorldSettings]:OptionSettings=(Difficulty=None,DayTimeSpeedRate=2.0,NightTimeSpeedRate=1.5,ExpRate=0.5,PalCaptureRate=1.2,PalSpawnNumRate=0.8,...)
Right..that would make sense. :D
I'll have a look again tomorrow after work
Hey, IT WORKS....kind of..
I can get it to work with one parameter but as soon as a add a second one or ALL (which made sense to me because thats basically the file via CLI) it will not work anymore.
Currently I've only tried using the RCONEnabled parameter. Next I wanna try to connect to my local server to see if other params are even set.
Here are some things i tried:
# using the default palworldsettings file
# does not work??
#PARAMS='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=True,RCONPort=25575,Region="",bUseAuth=True,BanListURL="https://api.palworldgame.com/api/banlist.txt"'
# works, i can run rcon-cli info
#PARAMS='RCONEnabled=True'
# works
#PARAMS='ServerPlayerMaxNum=1'
# rcon-cli info does not work anymore
#PARAMS='ServerName=Hello World,RCONEnabled=True'
# rcon-cli info does not work anymore
#PARAMS='ServerName="Hello World",RCONEnabled=True'
# rcon-cli info does not work anymore
#PARAMS='ServerName=\"Hello World\",RCONEnabled=True'
# thought it might be the ServerName but doesnt work either
#PARAMS='ServerPlayerMaxNum=1,RCONEnabled=True'
# this works but the ServerName is still "Default Palworld Server"
#STARTCOMMAND="${STARTCOMMAND} -ini:PalWorldSettings:[/Script/Pal.PalGameWorldSettings]:OptionSettings='(ServerName=\"Hello World\")'"
#STARTCOMMAND="${STARTCOMMAND} -ini:PalWorldSettings:[/Script/Pal.PalGameWorldSettings]:OptionSettings='(RCONEnabled=True)'"
edit: ive set ServerPlayerMaxNum=1
and its being applied. It seems that only one param can be set. Now that we have a discord maybe we can have a chat/call later on :)
Hey, IT WORKS....kind of..
Might be a limitation with UE, interesting 🤔
I think for now the best thing to do would be to only support ini file editing & the few things we can pass via args, I thought perhaps this would offer us something solid and easy
OR we look into tools such as https://github.com/bitnami/ini-file / https://github.com/dbohdan/initool, feeding & reading environment variables into such a tool would be fairly simple, but providing default values would be harder (Assuming that if we set ANYTHING in the ini file, all defaults get overriden)
Another option would be to prefill the ini file with environment variable placeholders and use envsubst to set those.
You could set a default there.
-ini:PalGameWorldSettings:[/Script/Pal.PalGameWorldSettings]:OptionSettings=(Difficulty=${DIFFICULTY:-None},....
This came up in https://github.com/thijsvanloef/palworld-server-docker/issues/40#issuecomment-1902791711
Since Palworld uses UE, instead of modifying the
PalWorldSettings.ini
directly, we should be able to pass in arguments in the start scriptThis would offer a FAR better alternative than modifying
PalWorldSettings.ini
directly, and would only really require a new environment variable and documentation, such asINI_ARGS
orARGS