• Announcements

    • Jervant

      Bohemia Store Steam Redeem   06/24/17

      We started experiencing problems with the Steam redeem from our Store on Friday June 23rd.   For anyone that got affected by this, please go to your store account, after you select the product you purchased, you should see your steam key with a link to a how to article to activate it manually through Steam.   We apologize for the inconvenience.
jumbobreakfast

Downloading workshop content to server using steamcmd?

47 posts in this topic

I use Firedaemon to start and stop servers and I use the Firedaemon pre-service feature to validate/update files before the server launches using steamcmd. Recently I wanted to try a COOP scenario from the steam workshop which required several workshop mods and I assumed that there would be a  way to get the server to download the workshop scenario so that if an update came out, the server could be restarted and it would automatically download the workshop content updates.

 

So, does anyone know how to do this? I've tried playing with the commands listed here: https://github.com/dgibbs64/SteamCMD-Commands-List/blob/master/steamcmdcommands.txt

 

And so far, the most promising result I had was using "workshop_download_item  107410 453577279" where 107410 is the AppID for Arma 3 on steam and 453577279 is the workshop content ID of some random arma 3 mod/addon. (the content ID is the number at the end of the workshop mod URL). Unfortunately it didn't seem to download anything but it does update the following files:

 

..steamcmdfolder..\steamapps\workshop\appworkshop_107410.acf

and I see erorrs in

..steamcmdfolder..\logs\content_log.txt

which look like this:

2016-02-09 18:58:14] Warning! Deleted corrupt manifest file "..\SteamCMD\..\depotcache\107410_33xxxxxxxx267.manifest".

 

I know that for the game Insurgency, you can easily install workshop content to the server by creating a text file called subscribed_file_ids.txt in the server folder and just add the workshop content IDs to it. Is there a way to do this in Arma 3 or am I wasting my time?

 

 

 

Share this post


Link to post
Share on other sites

Steamcmd for workshop content does work, just abit of a pain to setup.
 

To download via steamcmd you need to use a steam account that owns Arma3
Also don't forget about steam guard code aswell etc

Share this post


Link to post
Share on other sites

Thanks guys.

@austin, great, looks like a possible workaround

 

@torndeco Thanks for the advice, I'll give that a go and post here if I get a result. I think I do have an account with a license (bought back when we needed to have a license on the server too)

Share this post


Link to post
Share on other sites

So that worked great, when I used the account that we used to use for the licensed Headless Client it downloaded automatically. The only problem now is that it asks you to press a key at the end even though I am using +quit

 

That's no good for us since we'd like it to be as easy as our other arma servers where firedaemon runs steamcmd first to validate/update and then starts the server. Anyway, I'll give it another go over the weekend when I have time.

 

These are the command paramters I am using, we rate limit because it chokes our server bandwidth otherwise:

steamcmd +login user password +@nCSClientRateLimitKbps 50000 +force_install_dir ".......\SteamApps\common\Arma 3 Server 3" +app_update "233780" +workshop_download_item 107410 453577279 validate +quit

I reckon it might be possible to use the -authkey xxxxxxxxxxxxxxx method if you don't have a spare steam account with an arma 3 license (but I think with the new steam restrictions that you need to have at least €5 in the account to get an authkey for the account)

Share this post


Link to post
Share on other sites

Hey guys, 
 
i had the same problem. I checked my logs and the file workshop_log.txt in the log folder give me some usefully information! 
 
Content of workshop_log.txt:

[2016-02-18 23:22:45] Loading workshop items for 0 installed apps for user [U:1:93849768]:
[2016-02-18 23:22:46] Loading workshop items for 0 installed apps for user [U:1:93849768]:
[2016-02-18 23:22:47] [AppID 107410] Loaded workshop items in "D:\steamcmd\steamapps\workshop" (1 installed, 1 needed)
[2016-02-18 23:22:47] [AppID 107410] Starting Workshop download job
[2016-02-18 23:22:47] [AppID 107410] Download item 450814997 result : OK
[2016-02-18 23:22:47] [AppID 107410] Finished Workshop download job : No Error

 
Arma Update Command:

%STEAMPATH%\steamcmd.exe +login %STEAMLOGIN% %STEAMPW% +force_install_dir %A3serverPath% +"workshop_download_item 107410 450814997" validate +quit

 
I seems so, that steamcmd doesn't use force_install_dir and pull the downloaded mod to the following directory D:\steamcmd\steamapps\workshop. Can you confirm that behavior?
 
I hope this will help you! Sorry for my broken English, if you prefer it, you can talk in German to me ;)
 
Greetings Staynex

Share this post


Link to post
Share on other sites

BIS where is the documentation on how to add or connect workshop mod to server ?

Also how are we going to deal with mod keys ?

There sould be something done to allow server look for keys inside mod folders

1 person likes this

Share this post


Link to post
Share on other sites

Not sure if you got my question correctly, i'm asking BIS how to integrate server to workshop. 

Share this post


Link to post
Share on other sites

Hey guys, 

 

i had the same problem. I checked my logs and the file workshop_log.txt in the log folder give me some usefully information! 

 

Content of workshop_log.txt:

[2016-02-18 23:22:45] Loading workshop items for 0 installed apps for user [U:1:93849768]:
[2016-02-18 23:22:46] Loading workshop items for 0 installed apps for user [U:1:93849768]:
[2016-02-18 23:22:47] [AppID 107410] Loaded workshop items in "D:\steamcmd\steamapps\workshop" (1 installed, 1 needed)
[2016-02-18 23:22:47] [AppID 107410] Starting Workshop download job
[2016-02-18 23:22:47] [AppID 107410] Download item 450814997 result : OK
[2016-02-18 23:22:47] [AppID 107410] Finished Workshop download job : No Error

 

Arma Update Command:

%STEAMPATH%\steamcmd.exe +login %STEAMLOGIN% %STEAMPW% +force_install_dir %A3serverPath% +"workshop_download_item 107410 450814997" validate +quit

 

I seems so, that steamcmd doesn't use force_install_dir and pull the downloaded mod to the following directory D:\steamcmd\steamapps\workshop. Can you confirm that behavior?

 

I hope this will help you! Sorry for my broken English, if you prefer it, you can talk in German to me ;)

 

Greetings Staynex

 

This is good and all, but what do you do to get around the moving and renaming of the mod folders from their workshop IDs to their actual things?  Do you just create symlinks to your server's mod folder from the download folder so that everything automatically gets placed in there?

Share this post


Link to post
Share on other sites

To download via steamcmd you need to use a steam account that owns Arma3

 

Does this really have to be the case?

I run a dedicated server that a bunch of mates play on, not open to the public (Yet!)

 

I would like to use the workshop mods, however I don't want to have to pay for the full game just to use the dedicated server files with the workshop content so it stays up to date?

 

Does anyone know if this will be changing in the future?

 

Thanks,

 

Bogor

1 person likes this

Share this post


Link to post
Share on other sites

has anyone figured out how to get a workshop collection downloaded to a dedicated server?

 

I can do 1 workshop item at a time but I would like to be able to update a whole collection on my dedicated box.

I do not have steam client installed, its strictly a windows 2008 server to host servers.

 

 

Share this post


Link to post
Share on other sites

Arma 3 tools/publisher and the workshop lack windows server support. No wonder everyone uses their own program or btsync / a3sync for mods.

Share this post


Link to post
Share on other sites

I ended up making like 20 bat files to download them all. Now I have to make it so once downloaded it will x copy the folder to a destination and rename it.  would be nice to have a program or script for Windows to plunk in all workshop ids  and just download them

Share this post


Link to post
Share on other sites
46 minutes ago, tinboye said:

I ended up making like 20 bat files to download them all. Now I have to make it so once downloaded it will x copy the folder to a destination and rename it.  would be nice to have a program or script for Windows to plunk in all workshop ids  and just download them

well if you want to download anything off steam you'll need steamCMD for starters, I assume you already have that. you could extend the batch script to move the folders automatically after being downloaded

Share this post


Link to post
Share on other sites
On 03/12/2016 at 0:35 AM, Bogor said:

Does this really have to be the case?

I run a dedicated server that a bunch of mates play on, not open to the public (Yet!)

 

I would like to use the workshop mods, however I don't want to have to pay for the full game just to use the dedicated server files with the workshop content so it stays up to date?

 

Does anyone know if this will be changing in the future?

 

Thanks,

 

Bogor

 

2nd this.

Share this post


Link to post
Share on other sites

I just made a bunch of bat files and in each 1 i would just change the ID# which matched what workshop ID i wanted.

"steamcmd.exe" +login user password +set_steam_guard_code ####  +force_install_dir c:\does\not\matter +"workshop_download_item 107410 463939057" validate +quit

the force install path does not matter, it will always install the workshop item under SteamCmd\steamapps\workshop\content\107410\

 

in this case the workshop item is 463939057 so it would be a folder called 463939057 under 107410

the mod being @a2op  so i would just copy folder 463939057 to my server folder and rename it to @A2OP

Share this post


Link to post
Share on other sites

So i created a bat file to rename the workshop app and move it to where i wanted. goes something like so.

 

@echo off

set "_836147398=@Taunus_A3"
set "_workshoppath=path.to.content"
set "_serverpath=path.to.server"

Echo Copying %_836147398%
xcopy "%_workshoppath%\836147398" "%_serverpath%\%_836147398%" /s/h/e/k/f/c/i
exit

i have all my workshop mods like this within the 1 bat file, then i can run the bat and copy all content over in 1 shot.

 

my issue now is figuring out how to run 1 bat file to download ALL workshop items in 1 shot. instead of seperate bat file per workshop item.

 

Share this post


Link to post
Share on other sites
On 07/02/2017 at 3:38 PM, tinboye said:

So i created a bat file to rename the workshop app and move it to where i wanted. goes something like so.

 


@echo off

set "_836147398=@Taunus_A3"
set "_workshoppath=path.to.content"
set "_serverpath=path.to.server"

Echo Copying %_836147398%
xcopy "%_workshoppath%\836147398" "%_serverpath%\%_836147398%" /s/h/e/k/f/c/i
exit

i have all my workshop mods like this within the 1 bat file, then i can run the bat and copy all content over in 1 shot.

 

my issue now is figuring out how to run 1 bat file to download ALL workshop items in 1 shot. instead of seperate bat file per workshop item.

 

 

I'm looking to start an Arma server with a friend and I have a separate account for it including an extra game copy. Forgive my ignorance, why can't you combine all the individual bat content into one large bat? I'm a total newb when it comes to SteamCMD/Powershell!

Share this post


Link to post
Share on other sites

something like so

Spoiler

@echo off
::
::NO BACKSLASH AFTER PATHS!!
::::::::::::::::::::::::::::
::::::::::::::::::::::::::::
::
set "_836147398=@modname"
::
set "_workshoppath=workshop.path"
::
set "_serverpath=server.path"
::
set "_steamcmdpath=steamcmd.path"
::
set "_gamepath=game.path"
::
set "_username=steamusername"
::
set "_password=steampassword"
::
set "_steamguard=####"
::
set "_steamgameid=steam.game.store.ID#"
::
set "_workshopid=workshop.ID#"
::
::
"%_steamcmdpath%\steamcmd.exe" +login %_username% %_password% +set_steam_guard_code %_steamguard% 

+force_install_dir %_gamepath% +"workshop_download_item %_steamgameid% %_workshopid%" validate +quit
::
TIMEOUT /T 3 /NOBREAK
::
Echo Copying %_836147398%
xcopy "%_workshoppath%\_steamgameid\%_workshopid%" "%_serverpath%\%_836147398%" /s/h/e/k/f/c/i
::
ECHO FILES FINISHED COPYING......
TIMEOUT /T 10 /NOBREAK
exit

 

 

Share this post


Link to post
Share on other sites
On 11/02/2016 at 1:02 AM, austin_medic said:

Probably isn't meant to be used that way. The game isn't particularly good at doing things on its own, it prefers you to do it all manually most likely 

.

Steam Workshop Downloader is a good workaround.

 
Quote

The game that this item belongs too does not allow downloading of its items...BUMMER!

 

Share this post


Link to post
Share on other sites

yes when a game requires a licence the workshop downloader does not work.

 

this method from the batch works just fine for me. But i am actually just going to have the first part, and then use symbolic links to the workshop folder. That way when I update a mod, i do not have to worry about copying it back over to the server folder.

Share this post


Link to post
Share on other sites

I have a client install on my dedi server box. I bought it long before we had dedicated server software. The client is subscribed to all the mods and in the mods tab of the launcher, i have it copy the mod to the root of the server install. job done. Well, after you copy the keys over, that is. :)

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