arkmanager / ark-server-tools

Set of server tools used to manage ARK: Survival Evolved servers on Linux
MIT License
684 stars 144 forks source link

Adding/Removing Dinos from PGArk via cfg (solved) #1091

Open CorsairF4U opened 4 years ago

CorsairF4U commented 4 years ago

I have successfully setup my PGArk server in my cluster and it's running fine but I want to change the dino loadout for the map via the pgark.cfg file in /etc/arkmanager/instances but I can't get the syntax correct for arkmanager to utilize it. I have tried the setup below with no prefix and with ark and arkopt and arkflag_ but it always gives me an error ... Running command 'start' for instance 'pgark' /etc/arkmanager/instances/pgark.cfg: line 70: syntax error near unexpected token (' /etc/arkmanager/instances/pgark.cfg: line 70:ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntries_InlandWater_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Alpha_Leedsichthys_Character_BP_C")),(NPCsToSpawnStrings=("Leedsichthys_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Alpha_Leedsichthys_Character_BP_C"),(NPCClassString="Leedsichthys_Character_BP_C") ) )'

Thinking due to Linux dislike of spaces I added a \ to each space so it could parse the file normally and it had the same error.

Any suggestions to try?

klightspeed commented 4 years ago

That option belongs in Game.ini, not on the command-line. Try putting it into /etc/arkmanager/instances/pgark.Game.ini

[/Script/ShooterGame.ShooterGameMode]
ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntries_InlandWater_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Alpha_Leedsichthys_Character_BP_C")),(NPCsToSpawnStrings=("Leedsichthys_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Alpha_Leedsichthys_Character_BP_C"),(NPCClassString="Leedsichthys_Character_BP_C") ) )
CorsairF4U commented 4 years ago

Thanks! I'll give it a try.

CorsairF4U commented 4 years ago

This is what I ended up with. Leeds still spawned and Griffin did not, if I have the file formatted right I'll work on the context of the commands I just wanted to make sure I have the right format for ark-server-tools to read/use the setup. Thanks for taking a look. For this map there are two files pgark.cfg pgark.Game.ini

$cat pgark.Game.ini [/Script/ShooterGame.ShooterGameMode]

Remove Leeds

ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntries_InlandWater_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Alpha_Leedsichthys_Character_BP_C")),(NPCsToSpawnStrings=("Leedsichthys_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Alpha_Leedsichthys_Character_BP_C"),(NPCClassString="Leedsichthys_Character_BP_C") ) )

ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntries_TheDeepwater_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Alpha_Leedsichthys_Character_BP_C")),(NPCsToSpawnStrings=("Leedsichthys_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Alpha_Leedsichthys_Character_BP_C"),(NPCClassString="Leedsichthys_Character_BP_C") ) )

ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntries_TheOcean_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Alpha_Leedsichthys_Character_BP_C")),(NPCsToSpawnStrings=("Leedsichthys_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Alpha_Leedsichthys_Character_BP_C"),(NPCClassString="Leedsichthys_Character_BP_C") ) )

ConfigSubtractNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntriesBeach_PGM_C",NPCSpawnEntries=( (NPCsToSpawnStrings=("Alpha_Leedsichthys_Character_BP_C")),(NPCsToSpawnStrings=("Leedsichthys_Character_BP_C")) ), NPCSpawnLimits=( (NPCClassString="Alpha_Leedsichthys_Character_BP_C"),(NPCClassString="Leedsichthys_Character_BP_C") ) )

Add Griffin

ConfigAddNPCSpawnEntriesContainer=(NPCSpawnEntriesContainerClassString="DinoSpawnEntriesSnowMountain_PGM_C",NPCSpawnEntries=( (AnEntryName="GriffinSpawner",EntryWeight=1000.0,NPCsToSpawnStrings=("Griffin_Character_BP_C"))), NPCSpawnLimits=( (NPCClassString="Griffin_Character_BP_C",MaxPercentageOfDesiredNumToAllow=0.10) ) )

klightspeed commented 4 years ago

If the contents of /path/to/ark/ShooterGame/Saved/Config/LinuxServer/Game.ini are properly being set from /etc/arkmanager/instances/pgark.Game.ini, and Game.ini isn't being cleared by the server when it starts, then the settings should theoretically work.

CorsairF4U commented 4 years ago

Ok Thanks I'll double check. Update Put the contents of ...ShooterGame/Saved/Config/LinuxServer/Game.ini into /etc/arkmanager/instances/pgark.Game.ini (plus the changes for this one server) but it's still only seeing the primary ...ShooterGame/Saved/Config/LinuxServer/Game.ini config.

Is there a line I can add to the pgark.cfg file to force it to use the pgark.Game.ini file?

Edit 2 Nevermind I did not see the arkGameIniFile option until now, running server again it should work this time.

CorsairF4U commented 4 years ago

Is this the correct syntax and placement to repoint the game.ini file?

config environment

arkserverroot="/home/steam/ARK" # path of your ARK server files (default ~/ARK) arkbackupdir="/home/steam/ARK-Backups/PGARK" arkGameIniFile="/etc/arkmanager/instances/pgark.Game.ini"

I've tried several setups it's not seeing the pgark.Game.ini file

klightspeed commented 4 years ago

arkmanager copies /etc/arkmanager/instances/pgark.Game.ini to /home/steam/ARK/ShooterGame/Saved/Config/LinuxServer/Game.ini - the ARK server has no option to specify a different Game.ini path.

Are you sharing the same directory for multiple instances, each with their own instance.Game.ini file?

CorsairF4U commented 4 years ago

yes it's a cluster and they all share the Game.ini file in /ARK/ShooterGame/Saved/Config/LinuxServer/ It seems I need to have a rethink on how this is setup as the LinuxServer dir where Game.ini lives is owned by root so steam can't overwrite the file which was an issue in the beginning. Thanks for the clarification! I'll have to decide how to set this up then.