Once you have compiled your bsp and have set up your custom gameplay rules through a companion txt file, you have everything you need to upload your custom map.
To upload, open the game, click Steam Workshop -> Publish Map. This will show a form you need to fill out in order to upload your map as pictured above. Click Browse next to the File box and find the map on your computer's file system.
If your map is valid, it will automatically fill out a title which can be edited. It is also recommended you fill out a description which explains a little bit more about your map. You are also required to provide a screenshot of your map so that users browsing the Workshop can see what your map actually looks like.
The list of tags is generated based on your map's .txt file and cannot be modified.
Once everything is set, click Publish File. This will commence the upload to Steam. Once your file has finished uploading it will show you your file in Workshop using the Steam overlay. If you have not already done so, you will also be prompted to accept the Workshop terms of service before your file is made public.
Could not find companion control point setup file (*.txt file). In order for the game to detect which modes are supported by your map you will need a .txt file which has some basic setup information for the capture points. Consult a map making guide for more information.
Map text file could not be parsed and is invalid. A .txt file was found but it contains errors. Please find and fix these errors before trying to upload to Workshop again.
Map text file found, but it contains no gamemodes. Your .txt file was valid but it did not contain any gamemodes supported by Workshop.
Publishing Your Add-on
If you wish to publish your custom add-on (such as a weapon skin or a sound pack), then the file must be made in a VPK first.
Folder Structure Before creating a VPK, make sure you have an appropriate folder structure for your add-on. It is recommended that you work from inside the "custom" folder under the insurgency2/insurgency folder. If a "custom" folder does not exist, create one.
Under custom, create another folder for your addon such as "my-first-addon". This will be the name given to your VPK later. Under this folder you can then add content that will be loaded by the game before the base content.
VPK.exe First ensure that you have the Insurgency SDK installed from the DLC section under Insurgency's properties as this will download the executable necessary for creating your VPK file. Once downloaded, drag the folder under the "custom" folder over VPK.exe, this will generate a VPK file (as pictured below).
Your add-on is now ready to be uploaded.
Uploading your add-on is very similar to the process of uploading a map, as described in the previous section. You can get to the add-on publisher by clicking on Steam Workshop from the main-menu, the "Publish Add-on".
You will be presented with this form. As with maps, you can select the file as you would, enter a description and attach a screenshot. The major difference here is that you have tags to select rather than them being generated by the game. Select any tags that apply to your add-on from the list.
Updating a File
If you wish to update a file you have already uploaded, you can do this from the Steam Workshop menu in the game. Under the "My Files" sub-heading, click the file you wish to update then go to "Update File".
You will be presented with a form that is very similar to the one that was used to upload it in the first place. The difference is that you will also have the option of any change notes which will be displayed to users browsing the file in the Steam Workshop.
Server Custom Map Support
With the recent update, you are now able to host Workshop maps on your dedicated server. Unlike using the traditional Source engine way of hosting custom maps servers, the maps are downloaded by clients through Workshop rather than consuming your own bandwidth. Maps are also kept up-to-date automatically.
Command Line Arguments
In order to enable your server for Workshop support, specify +sv_workshop_enabled 1 on your server's command line. This will look for any subscriptions placed inside the subscribed_file_ids.txt and subscribed_collection_ids.txt files.
You can also specify +sv_workshop_mapcycle_random 1 on the command line to randomise the order of the generated map cycle file. The generated map cycle will be placed in mapcycle_workshop.txt in the "insurgency" folder.
If you wish your server to be discoverable through the "Custom Servers" matchmaking option, also specify "+sv_playlist custom". The only thing enforced by this playlist are the maximum player counts (16, 24 or 32) and there being no password.
Subscribing to Files
Any individual files you want to be downloaded need to be placed inside subscribed_file_ids.txt under the insurgency folder, if it does not exist you will need to create it. Place the ID of each file on a new line.
To find a file ID, navigate to the file you want to have on your server and check the number after the "id=" part of the URL (as above), this is the ID you will want in your subscribed_file_ids.txt file.
If you are wishing to add a collection of files to your server then you will need to apply the same technique but place the IDs inside a file called subscribed_collection_ids.txt - you may need a Web API key in order for this to work (see below).
Obtaining a Web API key
To get information about collections on Workshop, you need to have a Steam Community Web API key. If you already have one for another Workshop-enabled game such as Counter-Strike: Global Offensive then you can use the same key.
If not, you can get one here. Do not share this key with anyone. This key can be placed on the command line using the argument "-authkey" followed by a space and your Web API key, it can also be placed in a file within the insurgency folder call webapi_authkey.txt.