thmhoag / arkserver

Docker image for a dedicated ARK Server with ArkManager.
MIT License
121 stars 43 forks source link

GameUserSettings.ini from /ark/config is not well linked #9

Closed caporalesimone closed 4 years ago

caporalesimone commented 4 years ago

Image Setup Details

Description of Issue

GameUserSettings.ini located in volume ark at /ark/config/GameUserSettings.ini is first symbolic linked by run.sh but then is overwritten by arkmanager at startup

The only solution seems to use env variables.

How can i set an env variable for this?

[MessageOfTheDay]
Duration=30
Message="Blah"
thmhoag commented 4 years ago

Hey @caporalesimone, looking into this one. Could you provide your docker run statement or your docker-compose.yml and an example of a GameUserSettings.ini that you would be using, just so I can make sure to accurately reproduce the issue?

caporalesimone commented 4 years ago

Hi, i prefer to use podman instead of docker but i don't think is the problem.

This is my actual run

podman run -it --name ark --env-file ./env.list -v steam:/home/steam -v ark:/ark -p 27015:27015 -p 27015:27015/udp -p 7778:7778 -p 7778:7778/udp -p 7777:7777 -p 7777:7777/udp thmhoag/arkserver

and this is the restart command

podman start -ai ark

env.list:

`am_arkflag_crossplay=True am_arkflag_NoBattlEye=True

am_serverMap=TheIsland am_arkwarnminutes=15

am_ark_SessionName=Terraria Team am_ark_ServerAdminPassword=####### am_ark_MaxPlayers=70 am_ark_MaxPlayers=70 am_ark_QueryPort=27015 am_ark_Port=7778 am_ark_RCONPort=32330 am_ark_ServerCrosshair=True am_ark_ServerPassword= am_ark_RCONEnabled=True am_ark_RCONServerGameLogBuffer=600.000000 am_ark_alwaysNotifyPlayerJoined=True am_ark_alwaysNotifyPlayerLeft=True am_ark_allowThirdPersonPlayer=True am_ark_globalVoiceChat=True am_ark_AutoSavePeriodMinutes=5.0 am_ark_ShowMapPlayerLocation=True am_ark_serverPVE=True am_ark_DisableStructureDecayPvE=True am_ark_DisableDinoDecayPvE=True am_ark_AllowFlyerCarryPvE=True am_ark_bAllowPlatformSaddleMultiFloors=True am_ark_AllowCaveBuildingPvE=True am_ark_StructureDamageMultiplier=2.0 am_ark_PerPlatformMaxStructuresMultiplier=2.0 am_ark_ResourcesRespawnPeriodMultiplier=0.2 am_ark_DinoCharacterFoodDrainMultiplier=0.001 am_ark_DinoCharacterStaminaDrainMultiplier=0.1 am_ark_TribeNameChangeCooldown=1 am_ark_ItemStackSizeMultiplier=10 am_ark_MaxTamedDinos=20000 am_ark_TheMaxStructuresInRange=30000.000000 am_ark_OxygenSwimSpeedStatMultiplier=2.000000 am_ark_PlatformSaddleBuildAreaBoundsMultiplier=1.000000 am_ark_KickIdlePlayersPeriod=3600.000000 am_ark_AllowHitMarkers=True am_ark_StructurePreventResourceRadiusMultiplier=1.0 am_ark_AlwaysAllowStructurePickup=True am_ark_StructurePickupTimeAfterPlacement=90.0 am_ark_StructurePickupHoldDuration=0.5 am_ark_AllowIntegratedSPlusStructures=True am_ark_NightTimeSpeedScale=1.5 am_ark_DayTimeSpeedScale=0.5 am_ark_PlayerDamageMultiplier=1.5 am_ark_PlayerResistanceMultiplier=0.7 am_ark_XPMultiplier=1.75 am_ark_TamingSpeedMultiplier=2.0 am_ark_HarvestAmountMultiplier=3.5 am_ark_HarvestHealthMultiplier=3.0 am_ark_PlayerCharacterWaterDrainMultiplier=0.001 am_ark_PlayerCharacterFoodDrainMultiplier=0.001 am_ark_PlayerCharacterStaminaDrainMultiplier=0.1`

With this setup all is working as expected because params are all passed in command line.

if i shorten the env.list in this way:

am_arkflag_crossplay=True am_arkflag_NoBattlEye=True am_serverMap=TheIsland am_arkwarnminutes=15 am_ark_SessionName=Terraria Team am_ark_ServerAdminPassword=####### am_ark_MaxPlayers=70 am_ark_MaxPlayers=70 am_ark_QueryPort=27015 am_ark_Port=7778 am_ark_RCONPort=32330 am_ark_ServerCrosshair=True am_ark_ServerPassword= am_ark_RCONEnabled=True

and i put all other settings in GameUserSettings.ini in /ark/config (removing am_ark_ prefix) i don't have any effect of those variables.

As run.sh do, i expect should be a symbolic link in /ark/server/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini but instead there is a real file that is quiet different from che /ark/config.

` steam@ee4dba28afca:/ark/server/ShooterGame/Saved/Config/LinuxServer$ ls -la

total 40 drwxr-xr-x 2 steam steam 4096 Jun 21 20:30 . drwxr-xr-x 4 steam steam 4096 Jun 20 00:20 .. -rw------- 1 steam steam 1 Jun 21 20:29 Compat.ini -rw------- 1 steam steam 1 Jun 21 20:29 DeviceProfiles.ini -rw------- 1 steam steam 1 Jun 21 20:29 Engine.ini lrwxrwxrwx 1 steam steam 20 Jun 21 20:28 Game.ini -> /ark/config/Game.ini -rw------- 1 steam steam 5922 Jun 21 20:32 GameUserSettings.ini -rw------- 1 steam steam 1 Jun 21 20:29 Input.ini -rw------- 1 steam steam 1 Jun 21 20:29 Scalability.ini -rw------- 1 steam steam 1 Jun 21 20:29 Lightmass.ini `

i think that somehow arkmanager substitute symlink with an other GameUserSettings.ini

Game.ini is correcly symlinked and works as expected

Tnx Simone

thmhoag commented 4 years ago

Hey @caporalesimone, completely agree about podman, just want to make sure I'm getting as close as I can to reproducing the exact issue.

For this one in particular, could you add the following environment variables to your container and see if it resolves the issue for you:

If the above values to resolve the issue I'll make a change to have those set as the default.

caporalesimone commented 4 years ago

@thmhoag i did what you asked but does not change. I don't see any setting that i wrote in /ark/GameUserSettings.ini

env.list was:

` am_arkflag_crossplay=True am_arkflag_NoBattlEye=True

am_serverMap=TheIsland am_arkwarnminutes=15 am_arkGameUserSettingsIniFile=/ark/config/GameUserSettings.ini am_arkGameIniFile=/ark/config/Game.ini

am_ark_SessionName=Terraria Team am_ark_ServerAdminPassword=###### am_ark_MaxPlayers=70 am_ark_QueryPort=27015 am_ark_Port=7778 am_ark_RCONPort=32330 am_ark_ServerCrosshair=True am_ark_ServerPassword= am_ark_RCONEnabled=True am_ark_RCONServerGameLogBuffer=600.000000 `

thmhoag commented 4 years ago

Hey @caporalesimone, was your file located at /ark/GameUserSettings.ini or /ark/config/GameUserSettings.ini?

The image will generally expect it to be in /ark/config/GameUserSettings.ini.

caporalesimone commented 4 years ago

Sorry my mistake while writing previous message. It was in correct path /ark/config/GameUserSettings.ini

thmhoag commented 4 years ago

Hey @caporalesimone, sorry for the delay here. I've attempted to reproduce this with my own servers but I am seeing the file get linked properly. Based on your original podman command, it looks like you're using a named volume for the /ark mount? If so, how did you end up getting the GameUserSettings.ini into the named volume?

I used docker cp, but that's about the only other thing that I can think of that might be different between our setups at this point.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.