KOTOR 2: How do I upload a mod? (PC Steam only)

### DOWNLOAD STEAMCMD.EXE ###

Mods can be uploaded to the Steam Workshop using the steamcmd.exe command line tool.

Information on the tool and a link to download it can be found here:
https://developer.valvesoftware.com/wiki/SteamCMD

### PREPARE FOR UPLOAD ###

To prepare a mod for upload, put the mod files in a folder that mirrors the folder structure of KOTOR2.  For example, if your mod has a file file1.utc in \override, and a file file2.mod in \modules, move those files into a folder structure that looks like the following:
c:\UploadFolder\override\file1.utc
c:\UploadFolder\modules\file2.mod

### CREATE VDF FILE ###

Create a vdf file that contains the information about your mod.  This file will be used by steamcmd.exe to upload your mod.  In the example below, we have a vdf file called testworkshopitem.vdf, which uploads our c:\UploadFolder directory:

"workshopitem"
{
    "appid"                "208580"
    "contentfolder"        "c:\\UploadFolder"
    "previewfile"        "testimage.png"
    "visibility"        "0"
    "title"                "Test Mod"
    "description"        "A Mod to test Steam Workshop"
    "changenote"        "Version 1.0.0"
}

Notes:
appid: should be 208580.
contentfolder: The path to the folder containing your mod.  Can be either absolute, or relative to steamcmd.exe.
previewfile: It must be under 1MB in size.  Suggested formats include JPG, PNG or GIF.
visibility: Set to 1 to make it visible to the public.  This can also be changed on the Steamworks page after it has been uploaded.

### UPLOAD MOD ###

Once the VDF has been created, steamcmd.exe can be run with the “workshop_build_item <build config filename.vdf>” file parameter. For example:

steamcmd.exe +login mySteamLoginName mySteamPassword +workshop_build_item testworkshopitem.vdf +quit

If the command is successful, a publishedfileid entry will be added to the VDF, and will contain the ID of the workshop item.  Subsequent calls with steamcmd.exe for the same VDF will result in an update rather than creation of a new item as long as that publishedfileid entry exists.

Have more questions? Submit a request

Comments