[GH-ISSUE #2777] ARK Survival Evolved - ./arkserver modupdate #2001

Open
opened 2026-02-27 03:00:16 +03:00 by kerem · 29 comments
Owner

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

  • Distro: Debian 10
  • Game: ARK Survival Evolved
  • Command: modupdate (maybe?)
  • LinuxGSM version: to be determined

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

for i in "${WORKSHOP[@]}"
do
  Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh +login anonymous +workshop_download_item ${GAMEID} ${i} validate +quit
done

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

ERROR! Download item 1380777369 failed (Request has been canceled).Redirecting stderr to '/home/ark/Steam/logs/stderr.txt'
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 * **Distro:** Debian 10 * **Game:** ARK Survival Evolved * **Command:** modupdate (maybe?) * **LinuxGSM version:** to be determined ## 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 ``` for i in "${WORKSHOP[@]}" do Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh +login anonymous +workshop_download_item ${GAMEID} ${i} validate +quit done ``` 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 ``` ERROR! Download item 1380777369 failed (Request has been canceled).Redirecting stderr to '/home/ark/Steam/logs/stderr.txt' ```
Author
Owner

@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

<!-- gh-comment-id:602937334 --> @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
Author
Owner

@ToeiRei commented on GitHub (Mar 24, 2020):

The problem is -automanagedmods fails with mods bigger than 1 GB as stuff times out. Best example is the steampunk mod.

<!-- gh-comment-id:603068618 --> @ToeiRei commented on GitHub (Mar 24, 2020): The problem is `-automanagedmods` fails with mods bigger than 1 GB as stuff times out. Best example is the steampunk mod.
Author
Owner

@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

<!-- gh-comment-id:603108122 --> @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
Author
Owner

@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.

Steam Workshop: ARK: Survival Evolved. MOD ID: 679529026

https://i.imgur.com/hoO1UkW.png
hissssss Snap twang Clang Never mind that steady Whirr of what may be gears.

Introduced to your ears are sounds from another time. Somet

<!-- gh-comment-id:603108947 --> @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. <blockquote><img src="/favicon.ico" width="48" align="right"><div><strong><a href="https://steamcommunity.com/sharedfiles/filedetails/?id=679529026">Steam Workshop :: Ark Steampunk Mod</a></strong></div><div>Steam Workshop: ARK: Survival Evolved. MOD ID: 679529026 https://i.imgur.com/hoO1UkW.png hissssss Snap twang Clang Never mind that steady Whirr of what may be gears. Introduced to your ears are sounds from another time. Somet</div></blockquote>
Author
Owner

@dgibbs64 commented on GitHub (Mar 24, 2020):

wow bad times that u can remember a mod id

<!-- gh-comment-id:603109335 --> @dgibbs64 commented on GitHub (Mar 24, 2020): wow bad times that u can remember a mod id
Author
Owner

@ToeiRei commented on GitHub (Mar 24, 2020):

basically a manual 'workshop_download' will time out as follows:

Connecting anonymously to Steam Public...Loaded client id: 2154548373600770782
Listening for IPv4 broadcast on: 27036
Logged in OK
Waiting for user info...OK
Downloading item 679529026 ...Failed to set thread priority: per-thread setup failed
Failed to set thread priority: per-thread setup failed
Failed to set thread priority: per-thread setup failed
Failed to set thread priority: per-thread setup failed
Failed to set thread priority: per-thread setup failed
Failed to set thread priority: per-thread setup failed
Failed to set thread priority: per-thread setup failed
ERROR! Timeout downloading item 679529026depotreconstruct.cpp (1348) : Assertion Failed: m_nOutstandingWorkItems == 0
CWorkThreadPool::~CWorkThreadPool: work complete queue not empty, 3 items discarded.
completionportmanager_posix.cpp (358) : Assertion Failed: Async I/O on closed handle 45
Redirecting stderr to '/home/ark/Steam/logs/stderr.txt'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...Failed to init SDL priority manager: SDL not found
Failed to set thread priority: per-thread setup failed
Failed to set thread priority: per-thread setup failed
OK.

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.

<!-- gh-comment-id:603113162 --> @ToeiRei commented on GitHub (Mar 24, 2020): basically a manual 'workshop_download' will time out as follows: ``` Connecting anonymously to Steam Public...Loaded client id: 2154548373600770782 Listening for IPv4 broadcast on: 27036 Logged in OK Waiting for user info...OK Downloading item 679529026 ...Failed to set thread priority: per-thread setup failed Failed to set thread priority: per-thread setup failed Failed to set thread priority: per-thread setup failed Failed to set thread priority: per-thread setup failed Failed to set thread priority: per-thread setup failed Failed to set thread priority: per-thread setup failed Failed to set thread priority: per-thread setup failed ERROR! Timeout downloading item 679529026depotreconstruct.cpp (1348) : Assertion Failed: m_nOutstandingWorkItems == 0 CWorkThreadPool::~CWorkThreadPool: work complete queue not empty, 3 items discarded. completionportmanager_posix.cpp (358) : Assertion Failed: Async I/O on closed handle 45 Redirecting stderr to '/home/ark/Steam/logs/stderr.txt' [ 0%] Checking for available updates... [----] Verifying installation... Steam Console Client (c) Valve Corporation -- type 'quit' to exit -- Loading Steam API...Failed to init SDL priority manager: SDL not found Failed to set thread priority: per-thread setup failed Failed to set thread priority: per-thread setup failed OK. ``` 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.
Author
Owner

@ToeiRei commented on GitHub (Mar 26, 2020):

However, steamcmd may choose one of 3 locations to download the mods

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.

<!-- gh-comment-id:604617509 --> @ToeiRei commented on GitHub (Mar 26, 2020): > However, steamcmd may choose one of 3 locations to download the mods 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.
Author
Owner

@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)

<!-- gh-comment-id:612608693 --> @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)
Author
Owner

@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.

steamcmd +login anonymous +force_install_dir "serverfiles" +app_update "376030" +workshop_download_item 679529026 validate +quit
<!-- gh-comment-id:612673260 --> @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. ``` steamcmd +login anonymous +force_install_dir "serverfiles" +app_update "376030" +workshop_download_item 679529026 validate +quit ```
Author
Owner

@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_update to download the mod instead it is called like +workshop_download_item 376030 679529026

related sources to this problem

I'm playing around with SotF and a helpful player commented in another thread that in order to update SotF you have to manually copy over files from a client machine to update the mod on the server. I've been running a regular Ark server and updating it with SteamCMD since the game came out. I'm wondering if there is a way to use SteamCMD and kick off a script to update the mod as well?
<!-- gh-comment-id:612678325 --> @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_update` to download the mod instead it is called like `+workshop_download_item 376030 679529026` related sources to this problem - https://steamcommunity.com/discussions/forum/1/215439774859993377/ - https://steamcommunity.com/app/346110/discussions/10/530649887212662565/?ctp=2#c1640917625015373138 - https://github.com/FezVrasta/ark-server-tools/commit/5c5cd58e341466dd621f8082d54ce0cc258e344c <blockquote><img src="https://steamcommunity-a.akamaihd.net/public/shared/images/responsive/share_steam_logo.png" width="48" align="right"><div><strong><a href="https://steamcommunity.com/discussions/forum/1/215439774859993377/">SteamCMD and Download Timeouts :: Help and Tips</a></strong></div></blockquote> <blockquote><img src="https://steamcdn-a.akamaihd.net/steam/apps/346110/header_alt_assets_11.jpg?t=1586408303" width="48" align="right"><div><strong><a href="https://steamcommunity.com/app/346110/discussions/10/530649887212662565/?ctp=2#c1640917625015373138">Can SteamCMD be used to update mods? :: ARK: Survival Evolved Server Hosting & Advertisement</a></strong></div><div>I'm playing around with SotF and a helpful player commented in another thread that in order to update SotF you have to manually copy over files from a client machine to update the mod on the server. I've been running a regular Ark server and updating it with SteamCMD since the game came out. I'm wondering if there is a way to use SteamCMD and kick off a script to update the mod as well?</div></blockquote>
Author
Owner

@dgibbs64 commented on GitHub (Apr 12, 2020):

@HeapUnderfl0w do you think it also comes down to how fast it can download as well?

<!-- gh-comment-id:612679717 --> @dgibbs64 commented on GitHub (Apr 12, 2020): @HeapUnderfl0w do you think it also comes down to how fast it can download as well?
Author
Owner

@dgibbs64 commented on GitHub (Apr 12, 2020):

related https://github.com/ValveSoftware/steam-for-linux/issues/6321

<!-- gh-comment-id:612680377 --> @dgibbs64 commented on GitHub (Apr 12, 2020): related https://github.com/ValveSoftware/steam-for-linux/issues/6321
Author
Owner

@HeapUnderfl0w commented on GitHub (Apr 12, 2020):

@HeapUnderfl0w do you think it also comes down to how fast it can download as well?

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

<!-- gh-comment-id:612680905 --> @HeapUnderfl0w commented on GitHub (Apr 12, 2020): > @HeapUnderfl0w do you think it also comes down to how fast it can download as well? 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
Author
Owner

@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

GitHub
SteamCMD Commands List. Contribute to dgibbs64/SteamCMD-Commands-List development by creating an account on GitHub.
<!-- gh-comment-id:612681626 --> @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 <blockquote><img src="https://avatars1.githubusercontent.com/u/4478206?s=400&v=4" width="48" align="right"><div><img src="https://github.githubassets.com/favicons/favicon.svg" height="14"> GitHub</div><div><strong><a href="https://github.com/dgibbs64/SteamCMD-Commands-List">dgibbs64/SteamCMD-Commands-List</a></strong></div><div>SteamCMD Commands List. Contribute to dgibbs64/SteamCMD-Commands-List development by creating an account on GitHub.</div></blockquote>
Author
Owner

@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

  1. DepotDownloadProgressTimeout maybe its timing out because it doesnt meet a progress deadline?
  2. @nClientCMUDPPingTimeoutUseGoodEnoughMS whatever this means (tho 120, which seems to be the default, seems a bit low)
<!-- gh-comment-id:612682007 --> @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 1. `DepotDownloadProgressTimeout` maybe its timing out because it doesnt meet a progress deadline? 2. `@nClientCMUDPPingTimeoutUseGoodEnoughMS` whatever this means (tho 120, which seems to be the default, seems a bit low)
Author
Owner

@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...

<!-- gh-comment-id:612682421 --> @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...
Author
Owner

@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

<!-- gh-comment-id:612686201 --> @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
Author
Owner

@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...

<!-- gh-comment-id:612804484 --> @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...
Author
Owner

@HeapUnderfl0w commented on GitHub (Apr 13, 2020):

I was even thinking of replacing steamcmd with my own

is that even possible? i would think steam wouldnt allow 3rd party scmd clients.

I tried the timeouts without big success.

if wanted i can also investigate a bit with mods i know fail, and see if tweaking different options does any different.

<!-- gh-comment-id:612815188 --> @HeapUnderfl0w commented on GitHub (Apr 13, 2020): > I was even thinking of replacing steamcmd with my own is that even possible? i would think steam wouldnt allow 3rd party scmd clients. > I tried the timeouts without big success. if wanted i can also investigate a bit with mods i know fail, and see if tweaking different options does any different.
Author
Owner

@ToeiRei commented on GitHub (Apr 13, 2020):

@HeapUnderfl0w Sadly I came to the same conclusion about 3rd party.

if wanted i can also investigate a bit with mods i know fail, and see if tweaking different options does any different.

Feel free to experiment as maybe LGSM could benefit from that

<!-- gh-comment-id:612844054 --> @ToeiRei commented on GitHub (Apr 13, 2020): @HeapUnderfl0w Sadly I came to the same conclusion about 3rd party. > if wanted i can also investigate a bit with mods i know fail, and see if tweaking different options does any different. Feel free to experiment as maybe LGSM could benefit from that
Author
Owner

@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.

<!-- gh-comment-id:619863989 --> @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.
Author
Owner

@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

  1. If workshop update checking is available - integrate it into update that will check for both game server and workshop updates before taking action.

  2. 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.

<!-- gh-comment-id:665628246 --> @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 1. If workshop update checking _is_ available - integrate it into update that will check for both game server and workshop updates before taking action. 2. 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.
Author
Owner

@ToeiRei commented on GitHub (Oct 24, 2020):

For those suffering the same problems we had, here's my current version of the script:

#!/bin/bash
CWD=`pwd`
GAMEID=346110

WORKSHOP=(
        "849985437"
        "895711211"
        "731604991"
        "821530042"
        "847495728"
        "679529026"
        "655261420"
        "932816570"
        "1890796153"
        "1380777369"
        "1639458270"
        "1890796153"
        "2007400172"
        "2007461356"
        "2007447056"
        "2007441758"
        "2007430597"
        "2007418454"
        "2007411835"
)

cd /home/ark/serverfiles

for i in "${WORKSHOP[@]}"
do

  while [[ $result != *"Success"* ]]
    do
      result=$(Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh +login anonymous +workshop_download_item ${GAMEID} ${i} validate +quit)
      if [[ $result == *"ERROR"* ]]; then
        echo "Error downloading mod ${i}."
      else
        echo "Mod ${i} successfully downloaded."
      fi
    done

    result="ERROR"

done

cd ${CWD}

I use the same command and binary as ark itself. Not the prettiest thing, but it works.

<!-- gh-comment-id:715917734 --> @ToeiRei commented on GitHub (Oct 24, 2020): For those suffering the same problems we had, here's my current version of the script: ```bash #!/bin/bash CWD=`pwd` GAMEID=346110 WORKSHOP=( "849985437" "895711211" "731604991" "821530042" "847495728" "679529026" "655261420" "932816570" "1890796153" "1380777369" "1639458270" "1890796153" "2007400172" "2007461356" "2007447056" "2007441758" "2007430597" "2007418454" "2007411835" ) cd /home/ark/serverfiles for i in "${WORKSHOP[@]}" do while [[ $result != *"Success"* ]] do result=$(Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh +login anonymous +workshop_download_item ${GAMEID} ${i} validate +quit) if [[ $result == *"ERROR"* ]]; then echo "Error downloading mod ${i}." else echo "Mod ${i} successfully downloaded." fi done result="ERROR" done cd ${CWD} ``` I use the same command and binary as ark itself. Not the prettiest thing, but it works.
Author
Owner

@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

#!/bin/bash
CWD=`pwd`
GAMEID=346110

WORKSHOP=( $(cat Game.ini | grep ModIDS | awk -F'=' '{print $2}') )

cd /home/ark/serverfiles

for i in "${WORKSHOP[@]}"
do

  while [[ $result != *"Success"* ]]
    do
      result=$(Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh +login anonymous +workshop_download_item ${GAMEID} ${i} validate +quit)
      if [[ $result == *"ERROR"* ]]; then
        echo "Error downloading mod ${i}."
      else
        echo "Mod ${i} successfully downloaded."
      fi
    done

    result="ERROR"

done

cd ${CWD}
<!-- gh-comment-id:786262007 --> @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 ``` #!/bin/bash CWD=`pwd` GAMEID=346110 WORKSHOP=( $(cat Game.ini | grep ModIDS | awk -F'=' '{print $2}') ) cd /home/ark/serverfiles for i in "${WORKSHOP[@]}" do while [[ $result != *"Success"* ]] do result=$(Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh +login anonymous +workshop_download_item ${GAMEID} ${i} validate +quit) if [[ $result == *"ERROR"* ]]; then echo "Error downloading mod ${i}." else echo "Mod ${i} successfully downloaded." fi done result="ERROR" done cd ${CWD} ```
Author
Owner

@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.

<!-- gh-comment-id:880522688 --> @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.
Author
Owner

@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.

<!-- gh-comment-id:880531679 --> @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.
Author
Owner

@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".

<!-- gh-comment-id:880533460 --> @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".
Author
Owner

@ToeiRei commented on GitHub (Jul 15, 2021):

Mind sharing your toolbox as we could come up with some improved version?

<!-- gh-comment-id:880535734 --> @ToeiRei commented on GitHub (Jul 15, 2021): Mind sharing your toolbox as we could come up with some improved version?
Author
Owner

@HeapUnderfl0w commented on GitHub (Jul 15, 2021):

Its just a collection of scripts to administer different game servers, nothing really what will help here i think

<!-- gh-comment-id:880556866 --> @HeapUnderfl0w commented on GitHub (Jul 15, 2021): Its just a collection of scripts to administer different ~~game~~ servers, nothing really what will help here i think
Sign in to join this conversation.
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
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#2001
No description provided.