mirror of
https://github.com/GameServerManagers/LinuxGSM.git
synced 2026-04-24 21:56:01 +03:00
[GH-ISSUE #2777] ARK Survival Evolved - ./arkserver modupdate #2001
Labels
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/LinuxGSM#2001
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ToeiRei on GitHub (Mar 22, 2020).
Original GitHub issue: https://github.com/GameServerManagers/LinuxGSM/issues/2777
User Story
As a server admin, I want to work around steamcmds shortcomings so that mods are installed properly.
Basic info
Further Information
As lgsm is mostly shell script, I would suggest doing some parsing of the Game.ini file like
cat Game.ini | grep ModIDS | awk -F'=' '{print $2}'and run those through a loop like
That way we could update mods in a more failsafe way - or even install missing ones present in the config.
besides that, steamcmd should have exit codes as seen on https://github.com/GameServerManagers/LinuxGSM/issues/719#issuecomment-330470766 so we could at least catch some problems there or even retry on problems like
@dgibbs64 commented on GitHub (Mar 24, 2020):
Fixes are currently ongoing to get ark mods to autoinstall using
-automanagedmods. Currently, the auto update is working. However, steamcmd may choose one of 3 locations to download the mods because 🤷♂. I am testing yet another update to auto select this directory. So this change should not be required. Please wait for update v20.1.5@ToeiRei commented on GitHub (Mar 24, 2020):
The problem is
-automanagedmodsfails with mods bigger than 1 GB as stuff times out. Best example is the steampunk mod.@dgibbs64 commented on GitHub (Mar 24, 2020):
that is good to know can I have the link to that mod so I can investigate. thanks
@ToeiRei commented on GitHub (Mar 24, 2020):
That mod is
https://steamcommunity.com/sharedfiles/filedetails/?id=679529026
I even know the ID from the top of my head due to the headache with updating.
@dgibbs64 commented on GitHub (Mar 24, 2020):
wow bad times that u can remember a mod id
@ToeiRei commented on GitHub (Mar 24, 2020):
basically a manual 'workshop_download' will time out as follows:
so you usually add a 'validate' and retry to infinity and beyond until you end up with eventually finishing the download of the mod.
in the end a simple server 'restart & update' leaves the server unjoinable due to the mod actually not being updated. This is why we need a somehow solid workaround as this happens with every mod bigger than 1 GB.
@ToeiRei commented on GitHub (Mar 26, 2020):
Using the command the ARK Server aka ShooterGame uses (start the game, use ps axf | cat) makes it clear for you on how to use steamcmd. I used my loop from above to get the mods working on a couple of servers by now and the location has always been the same on everyone of them in a reproduceable fashion.
@HeapUnderfl0w commented on GitHub (Apr 12, 2020):
I actually have a similar issue here #2764 and was proposing a hook system so a user can solve it themselves (which would also mean its the users responsibility to see that mods land in the correct directory)
@dgibbs64 commented on GitHub (Apr 12, 2020):
So possible solution is to use the validate command to download the workshop items as validate is required.
@HeapUnderfl0w commented on GitHub (Apr 12, 2020):
yes and no.
yes, this would (as far as i am aware) continue the download in progress and continue downloading that specific mod
no, as mods that are larger sizes will take more calls to download fully
there are for example mods that are ~3gb in size, which need validation 3 to 5 times before being completely downloaded.
it is largely dependent on mod size how many times steamcmd will time out before completely downloading a mod.
also it is not needed to pass
+app_updateto download the mod instead it is called like+workshop_download_item 376030 679529026related sources to this problem
github.com/FezVrasta/ark-server-tools@5c5cd58e34@dgibbs64 commented on GitHub (Apr 12, 2020):
@HeapUnderfl0w do you think it also comes down to how fast it can download as well?
@dgibbs64 commented on GitHub (Apr 12, 2020):
related https://github.com/ValveSoftware/steam-for-linux/issues/6321
@HeapUnderfl0w commented on GitHub (Apr 12, 2020):
i would assume yes. i remember reading something about a specific tcp package timing out being the culprit for the errors (dont quote me on that tho). that would mean that you have a time, not a size limit.
TL;DR yes, its time, not size afaik
@dgibbs64 commented on GitHub (Apr 12, 2020):
Interesting. There are a few options for steamcmd that have a timeout. Stab in the dark but one of them might help https://github.com/dgibbs64/SteamCMD-Commands-List/blob/master/steamcmd_commands.txt
@HeapUnderfl0w commented on GitHub (Apr 12, 2020):
well imho from the list there the only 2 containing timeouts that could maybe help, would be these 2
DepotDownloadProgressTimeoutmaybe its timing out because it doesnt meet a progress deadline?@nClientCMUDPPingTimeoutUseGoodEnoughMSwhatever this means (tho 120, which seems to be the default, seems a bit low)@ToeiRei commented on GitHub (Apr 12, 2020):
I tried the timeouts without big success.
On the other hand, I could extend my script to get the mods from the ark config.
With some work we could even check against a collection of mods...
@dgibbs64 commented on GitHub (Apr 12, 2020):
I am doing a bunch of research into steamcmd currently and I am going to figure out the best way to support workshop items across all game servers moving forward
@ToeiRei commented on GitHub (Apr 13, 2020):
I am suffering from steamcmd shortcomings since more than a year while still haven't found a clean solution. To be honest, I was even thinking of replacing steamcmd with my own as running a loop hoping for a good exit code is a little bit bold.
That's why I went the external scripting way as I didn't want to modify lgsm directly. Upstream compatibility...
@HeapUnderfl0w commented on GitHub (Apr 13, 2020):
is that even possible? i would think steam wouldnt allow 3rd party scmd clients.
if wanted i can also investigate a bit with mods i know fail, and see if tweaking different options does any different.
@ToeiRei commented on GitHub (Apr 13, 2020):
@HeapUnderfl0w Sadly I came to the same conclusion about 3rd party.
Feel free to experiment as maybe LGSM could benefit from that
@ToeiRei commented on GitHub (Apr 27, 2020):
As steamcmd.sh exit codes are anything but reliable, I switched to $(steamcmd.sh....) searching its output for 'Success.' as this doesn't show up on errors.
Not the most portable way, to be honest - but way better than hoping for valve to fix steamcmd.
@dgibbs64 commented on GitHub (Jul 29, 2020):
I latest update to LinuxGSM can so error checking on steamcmd. So if it fails LinxuGSM will either force steamcmd to try again or for specific errors like full disk then it will quit. This should help this issue move forward.
I think it will make sense to integrate updating steam workshop stuff into update and validate. The only issue with this is that I don't know if there is a method for checking for workshop updates.
So possible solutions
If workshop update checking is available - integrate it into update that will check for both game server and workshop updates before taking action.
if no workshop update checking is available - integrate it into update with no checking. Update will only update workshop when new gameserver update available. However, workshop updates can also be done via force-update and validate which would then mean a daily restart would be recommended to keep workshop items updated.
@ToeiRei commented on GitHub (Oct 24, 2020):
For those suffering the same problems we had, here's my current version of the script:
I use the same command and binary as ark itself. Not the prettiest thing, but it works.
@ToeiRei commented on GitHub (Feb 25, 2021):
Got another mod here to be added to the list of troublemakers. In the meanwhile I refined my script to work around it and read the mods from the game.ini
@HeapUnderfl0w commented on GitHub (Jul 15, 2021):
I havent touched Ark in quite a while, so i also didnt really look into the steamcmd docs any more than nessesary... but your solution seems like the most sensible workaround at the moment. From what i have glanced from steamcmd itself, there is really no way to increase the timeout as almost all other games have either small enough mods (<500MB with all assets), or they have an internal downloader (which circumvents the steamcmd problem). Due to this steam also is notoriously resitant to changing it i assume.
@ToeiRei commented on GitHub (Jul 15, 2021):
@HeapUnderfl0w I just had to come up with this solution due to the ignorance on the steam side. I run this script as a part of my nightly maintenance cycle just in case something did update.
@HeapUnderfl0w commented on GitHub (Jul 15, 2021):
yea i assume that is the best way forward for now. ima actually pilfer that script and add it to my toolbox of "random fixes".
@ToeiRei commented on GitHub (Jul 15, 2021):
Mind sharing your toolbox as we could come up with some improved version?
@HeapUnderfl0w commented on GitHub (Jul 15, 2021):
Its just a collection of scripts to administer different
gameservers, nothing really what will help here i think