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

"ark_AllowCaveBuildingPvE=True" command not written in GameUserSettings.ini #1055

Closed christian1211 closed 4 years ago

christian1211 commented 4 years ago

After I put "ark_AllowCaveBuildingPvE=True" in the instance config, it got ignored. I also tried it in arkmanager.cfg. After starting the instance, the command is still not written in GameUserSettings.ini.

klightspeed commented 4 years ago

arkmanager does not itself write anything to GameUserSettings.ini - it is the game server itself that updates that file either on startup or when e.g. the MOTD is updated.

Does AllowCaveBuildingPVE=True get added to the server option string (you can check either by looking at the arkmanager log file - /var/log/arktools/arkserver.log - or by getting the full commandline of the running server - ps -AF | grep 'ShooterGameServer')?

If it does get added, and all of the other options are written by the game to GameUserSettings.ini, then this would appear to be a game server bug, or perhaps the server isn't set to PvE.

If it does not get added to the server options, does arkmanager printconfig show it being defined?

christian1211 commented 4 years ago

Yes, it get added to the server option string in arkserver.log. There are some more settings which are not added to GameUserSettings.ini, like:

bDisableStructureDecayPvE
alwaysNotifyPlayerJoined

Both of them are also in server option string.

arkmanager printconfig shows all of them are defined.

So maybe it's working, even without written in GameUserSettings.ini? I need to check it ingame...

klightspeed commented 4 years ago

What are the permissions on GameUserSettings.ini?

christian1211 commented 4 years ago

-rw------- 1 steam steam 5,0K Jan 17 11:16 GameUserSettings.ini

Some settings are written, just not all of them.

klightspeed commented 4 years ago

If you manually put the setting into GameUserSettings.ini, is it kept?

christian1211 commented 4 years ago

Yes, it is kept.

From the ports, only RCON-Port is written in GameUserSettings.ini. Query- and Game-port ain't. This is correct? Or they also have to be in this file?

klightspeed commented 4 years ago

I can confirm that it looks like the game server no longer writes or updates all of the options specified in the option string in GameUserSettings.ini during startup. I would think that options specified on the commandline would still override options in GameUserSettings.ini

If you check on the server, do the settings appear to have applied?

christian1211 commented 4 years ago

No, for me the settings doesn't seem to have applied.

klightspeed commented 4 years ago

Do the AllowCaveBuildingPVE, bDisableStructureDecayPvE or alwaysNotifyPlayerJoined settings apply if you put them directly into GameUserSettings.ini?

In my testing, the Port and QueryPort settings do apply despite not being written to GameUserSettings.ini.

Invalid settings do not appear to be added to or removed from GameUserSettings.ini - e.g. I added SuperHyperFakeSettingCantExist=True to GameUserSettings.ini, and it was not removed by the game server. AllowCaveBuildingPvE was also not updated from the game server's command line. It is also not listed in ShowMyAdminManager, despite the string being present in both the executable and the localisation info file.

christian1211 commented 4 years ago

alwaysNotifyPlayerJoined and DisableStructureDecayPvE (without "b" at start) is active when I write it in GameUserSettings.ini manually. AllowCaveBuildingPVE I cannot test because I'm a new player and don't know where to find a cave but I guess it will be the same behavior.

For me, with Port and QueryPort it's the same like you. Seems to have applied, even without written in GameUserSettings.ini.

christian1211 commented 4 years ago

Any new information regarding the new release?

klightspeed commented 4 years ago

Testing with a couple of old ARK Server versions I had on other disks (241.5 from May 2016 and 258.35 from Jun 2017), those versions also did not write DisableStructureDecayPvE, AllowCaveBuildingPVE, or alwaysNotifyPlayerJoined to GameUserSettings.ini, so I suspect those options have never been supported in the server options string (or at least haven't been supported since 2016).

I have added arkGameUserSettingsIniFile and arkGameIniFile options, which specify paths to files to overwrite GameUserSettings.ini and Game.ini. I have also documented arkPreStart, which can be set to the path to a script to run when starting the game server.

christian1211 commented 4 years ago

So, if arkGameUserSettingsIniFile and arkGameIniFile is set, I would expect this behavior:

  1. arkmanager start @instance
  2. Shootergame/Binaries/Linux/GameUserSettings.ini and Shootergame/Binaries/Linux/Game.ini will be overwritten from the specified files from arkGameUserSettingsIniFile and arkGameIniFile
  3. options specified in server-start-string will overwrite options in Shootergame/Binaries/Linux/GameUserSettings.ini and Shootergame/Binaries/Linux/Game.ini
  4. server starts

is this correct?

klightspeed commented 4 years ago

Swap 3 and 4 - the server itself writes the options.

christian1211 commented 4 years ago

Thank you. I tried it and it's working. For now, we can only know what options are supported in server-options-string from testing them, right?

klightspeed commented 4 years ago

https://ark.gamepedia.com/Server_Configuration is a reasonably good resource, though if you find an error, go ahead and register on gamepedia and fix it (as I have with ?AllowCaveBuildingPVE=true.)

Yes, the only way to test if options are still supported is by testing them.

klightspeed commented 4 years ago

Testing here, the following options (as listed on the ARK Gamepedia server config page) are not written to GameUserSettings.ini from the options string:

AllowCaveBuildingPvE=True
ForceFlyerExplosives=True
bAppendItemSets=False
bAppendPreventIncreasingMinMaxItemSets=False
bRawSockets=True