Jump to content
jumbobreakfast

Downloading workshop content to server using steamcmd?

Recommended Posts

Has there been a recent update to SteamCMD which only lets you download mods to a different folder than the Steam install directory?

 

I know about a year ago, if you had the bat file pointing mod installs to any random directory (i.e. E:\Games\ArmA3\A3Files\Test), it would still install to the Steam directory (i.e. E:\Apps\Steam). Later on, they updated it so this stopped happening and it would install the mods to your specified directory. When this happened I changed the bat file to specify my Steam install directory to which it installed the mods despite it saying 'install content to a directory other than the Steam install directory'. However, recently this has stopped working for me and I've had to update the bat file to install mods to a non-Steam install directory.

 

The issue here is I now have duplicate data in the Steam and Test directories. In the Steam install directory, if I were to create a SymLink 'Steamapps' folder pointing to the Test folder, would this work?

 

Old bat file

Spoiler

"steamcmd.exe" +login ****** ****** +set_steam_guard_code ####  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 450814997" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 497660133" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 497661914" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 541888371" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 583496184" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 583544987" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 843425103" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 843577117" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 843593391" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 843632231" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 677642222" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 743099837" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 836147398" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 893585895" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 570118882" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 1200127537" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 893339590" validate +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 893346105" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 893349825" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 893328083" validate +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 876519903" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 366425329" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 933717907" validate +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 366423278" validate  +force_install_dir E:\Apps\Steam +"workshop_download_item 107410 1114015070" validate +quit

 

New bat file

Spoiler

"steamcmd.exe" +login ****** ****** +set_steam_guard_code ####  +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 450814997" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 497660133" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 497661914" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 541888371" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 583496184" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 583544987" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 843425103" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 843577117" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 843593391" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 843632231" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 677642222" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 743099837" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 836147398" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 893585895" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 570118882" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 1200127537" validate  +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 893339590" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 893346105" validate  +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 893349825" validate  +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 893328083" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 876519903" validate  +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 366425329" validate  +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 933717907" validate +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 366423278" validate  +force_install_dir E:\Games\ArmA3\A3Files\Test +"workshop_download_item 107410 1114015070" validate +quit

 

Share this post


Link to post
Share on other sites

If anyone is still interested in downloading collections, I have a small script (which is for linux, but should be adaptable to windows)

Here is the interesting stuff:

 

if [ -n "$WSCOLLECTIONID" ]; then
 mapfile -t WS_IDS < <(curl -s https://steamcommunity.com/sharedfiles/filedetails/?id="${WSCOLLECTIONID}" | grep "https://steamcommunity.com/sharedfiles/filedetails/?id=" | grep -Eoi '<a [^>]+>' | tail -n +2 | grep -Eo 'href="[^\"]+"' | awk -F'"' '{ print $2 }'|awk -F'=' '{ print $2 }')
fi

for workshop_item in "${WS_IDS[@]}"; do
    modname="$(curl -s https://steamcommunity.com/sharedfiles/filedetails/?id="${workshop_item}" | grep "<title>" | sed -e 's/<[^>]*>//g' | cut -d ' ' -f 4-)"
    modname_clean=$(echo "$modname" | dos2unix)
    counter=1
    printf "Downloading %s \n" "$modname_clean"
    until steamcmd +login "${STEAMUSER}" "${STEAMPASS_decrypted}" +workshop_download_item 107410 "${workshop_item}" validate +quit; do
        printf "Error Downloading %s. Will try again \n" "$modname_clean"
        counter++
        if ((counter > 4)); then
            exit 1
        fi
    done
    if [ ! -L "${home}/mods/@${modname_clean}" ]; then
        ln -s "${home}/.steam/steamapps/workshop/content/107410/${workshop_item}/" "${home}/mods/@${modname_clean}"
    fi
done

 

 

Source:

https://github.com/michaelsstuff/Arma3-stuff/tree/22fde3f14590d0d52a2fb198334d250af20ebd34/mod-sync

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×