While there is a GUI tool to build scripts, brew data, and upload mods and maps to the Killing Floor 2 Steam workshop, the command-line tool that it invokes to upload to workshop can be invoked directly. This makes it possible to automate updating with a batch file or other script.
This guide applies to the Community Workshop for maps and mods, not the Curated Workshop where art assets and other items can be uploaded for consideration for inclusion in the game.
The newest version of the Steam Workshop uses directory trees as items, not single files. Workshop items do not need to be zipped or archived into single files any more, but they do need to be arranged correctly in a directory tree.
The name of the command line uploader is WorkshopUserTool.exe. It takes a single parameter: the name of a configuration file that is used to define the upload. It is installed as part of the Killing Floor 2 - SDK tool in Steam to the ...\SteamApps\common\killingfloor2\Binaries directory (the game and editor executables are in Win64 subdirectory of that path). It uses the base Killing Floor 2 user directory as its working directory (something like "C:\Users\<username>\Documents\My Games\KillingFloor2", depending on your version of windows). Wherever WorkshopUserTool.exe is on disk, it will only look in that directory for the configuration file it uses to define the upload. Here is an example of its format:
$Description "Another test of workshop."
$Title "Workshop Test"
$PackageDirectory "C:\Users\NameHere\Documents\My Games\KillingFloor2\TestMapUpload"
Those lines must be in that exact order in the file. The quotes are also necessary. The Description and Title lines are the title and description the item will be listed under on Steam Workshop. The PreviewFile is the picture that will be displayed for the item. The full path to the file must be given. The Tags line is a space-separated list of tags to associate with the item in the Workshop. MicroTxItem needs to be "false" to indicate this is not for the curated workshop. The PackageDirectory setting is the directory to be uploaded as the Workshop item. It's best to keep this as a subdirectory of ...My Games\KillingFloor2, since that's where the files will be coming from.
The contents of PackageDirectory will be installed to the user's KillingFloor2\KFGame\Published directory, and the content directory under it is BrewedPC, so usually the PackageDirectory will contain the directory BrewedPC with other directories like Maps, Packages, etc. Note that a limitation of Unreal Engine 3 is that all packages and maps must have distinct names even if they are in separate directories, so keep that in mind.
An example directory tree that was used to upload the Workshop Test map was:
The workshop uploader tool is run with the name of the configuration file on the command line. The configuration file above was named wsinfo_testmap.txt, so the workshop test map was uploaded by running:
As a heads up you can use the Tags field by doing any of the following:
That would include all the current tags for Maps and Mods. Separate the tags by a single space.