Steamworks Documentation
ISteamUGC Interface
Functions to create, consume, and interact with the Steam Workshop.

Member Functions

Member functions for ISteamUGC are called through the global accessor function SteamUGC().

AddAppDependency

SteamAPICall_t AddAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe item.
nAppIDAppId_tThe required app/dlc.

Adds a dependency between the given item and the appid. This list of dependencies can be retrieved by calling GetAppDependencies. This is a soft-dependency that is displayed on the web. It is up to the application to determine whether the item can actually be used or not.

Returns: SteamAPICall_t to be used with a AddAppDependencyResult_t call result.

See Also: RemoveAppDependency

AddDependency

SteamAPICall_t AddDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID );
NameTypeDescription
nParentPublishedFileIDPublishedFileId_tThe workshop item to add a dependency to.
nChildPublishedFileIDPublishedFileId_tThe dependency to add to the parent.

Adds a workshop item as a dependency to the specified item. If the nParentPublishedFileID item is of type k_EWorkshopFileTypeCollection, then the nChildPublishedFileID is simply added to that collection. Otherwise, the dependency is a soft one that is displayed on the web and can be retrieved via the ISteamUGC API using a combination of the m_unNumChildren member variable of the SteamUGCDetails_t struct and GetQueryUGCChildren.

Returns: SteamAPICall_t to be used with a AddUGCDependencyResult_t call result.


See Also: RemoveDependency

AddExcludedTag

bool AddExcludedTag( UGCQueryHandle_t handle, const char *pTagName );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
pTagNameconst char *The tag must NOT be attached to the UGC to receive it.

Adds a excluded tag to a pending UGC Query. This will only return UGC without the specified tag.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid, if the UGC query handle is from CreateQueryUGCDetailsRequest, or pTagName was NULL.

See Also: AddRequiredTag, SetMatchAnyTag, SetItemTags

AddItemKeyValueTag

bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pchKeyconst char *The key to set on the item.
pchValueconst char *A value to map to the key.

Adds a key-value tag pair to an item. Keys can map to multiple different values (1-to-many relationship).

Key names are restricted to alpha-numeric characters and the '_' character.

Both keys and values cannot exceed 255 characters in length.

Key-value tags are searchable by exact match only.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid, if pchKey or pchValue invalid because they are NULL or have exceeded the maximum length, or if you are trying to add more than 100 key-value tags in a single update.

See Also: RemoveItemKeyValueTags, SetReturnKeyValueTags, GetQueryUGCNumKeyValueTags, GetQueryUGCKeyValueTag

AddItemPreviewFile

bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pszPreviewFileconst char *Absolute path to the local image.
typeEItemPreviewTypeThe type of this preview.

Adds an additional preview file for the item.

Then the format of the image should be one that both the web and the application (if necessary) can render and must be under 1MB. Suggested formats include JPG, PNG and GIF.

NOTE: Using k_EItemPreviewType_YouTubeVideo or k_EItemPreviewType_Sketchfab are not currently supported with this API. For YouTube videos, you should use AddItemPreviewVideo.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

See Also: GetQueryUGCNumAdditionalPreviews, GetQueryUGCAdditionalPreview, SetReturnAdditionalPreviews, UpdateItemPreviewFile, AddItemPreviewVideo, RemoveItemPreview

AddItemPreviewVideo

bool AddItemPreviewVideo( UGCUpdateHandle_t handle, const char *pszVideoID );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pszVideoIDconst char *The YouTube video ID to add. (e.g. "jHgZh4GV9G0")

Adds an additional video preview from YouTube for the item.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

See Also: GetQueryUGCNumAdditionalPreviews, GetQueryUGCAdditionalPreview, SetReturnAdditionalPreviews, UpdateItemPreviewVideo, AddItemPreviewFile, RemoveItemPreview

AddItemToFavorites

SteamAPICall_t AddItemToFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID );
NameTypeDescription
nAppIdAppId_tThe app ID that this item belongs to.
nPublishedFileIDPublishedFileId_tThe workshop item to add to the user's favorites list.

Adds a workshop item to the user's favorites list.

Returns: SteamAPICall_t to be used with a UserFavoriteItemsListChanged_t call result.


See Also: RemoveItemFromFavorites

AddRequiredKeyValueTag

bool AddRequiredKeyValueTag( UGCQueryHandle_t handle, const char *pKey, const char *pValue );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
pKeyconst char *The key-value key that must be attached to the UGC to receive it.
pValueconst char *The key-value value associated with pKey that must be attached to the UGC to receive it.

Adds a required key-value tag to a pending UGC Query. This will only return workshop items that have a key = pKey and a value = pValue.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid or if pKey or pValue are NULL.

AddRequiredTag

bool AddRequiredTag( UGCQueryHandle_t handle, const char *pTagName );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
pTagNameconst char *The tag must be attached to the UGC to receive it.

Adds a required tag to a pending UGC Query. This will only return UGC with the specified tag.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid, if the UGC query handle is from CreateQueryUGCDetailsRequest, or pTagName was NULL.

See Also: AddExcludedTag, SetMatchAnyTag, SetItemTags

AddRequiredTagGroup

bool AddRequiredTagGroup( UGCQueryHandle_t handle, const SteamParamStringArray_t *pTags );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
pTagsconst SteamParamStringArray_t *A set of tags where at least one of the tags must attach to the UGC.

Adds the requirement that the returned items from the pending UGC Query have at least one of the tags in the given set (logical "or"). For each tag group that is added, at least one tag from each group is required to be on the matching items.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid, if the UGC query handle is from CreateQueryUGCDetailsRequest, or pTagName was NULL.

See Also: AddRequiredTag, AddExcludedTag

BInitWorkshopForGameServer

bool BInitWorkshopForGameServer( DepotId_t unWorkshopDepotID, const char *pszFolder );
NameTypeDescription
unWorkshopDepotIDDepotId_tThe depot ID of the game server.
pszFolderconst char *The absolute path to store the workshop content.

Lets game servers set a specific workshop folder before issuing any UGC commands.

This is helpful if you want to support multiple game servers running out of the same install folder.

Returns: bool
true upon success; otherwise, false if the calling user is not a game server or if the workshop is currently updating its content.

CreateItem

SteamAPICall_t CreateItem( AppId_t nConsumerAppId, EWorkshopFileType eFileType );
NameTypeDescription
nConsumerAppIdAppId_tThe App ID that will be using this item.
eFileTypeEWorkshopFileTypeThe type of UGC to create.

Creates a new workshop item with no content attached yet.

Returns: SteamAPICall_t to be used with a CreateItemResult_t call result.


See Also: Creating a Workshop Item

CreateQueryAllUGCRequest

UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage );
NameTypeDescription
eQueryTypeEUGCQueryUsed to specify the sorting and filtering for this call.
eMatchingeMatchingUGCTypeFileTypeEUGCMatchingUGCTypeUsed to specify the type of UGC queried for.
nCreatorAppIDAppId_tThis should contain the App ID of the app where the item was created. This may be different than nConsumerAppID if your item creation tool is a separate App ID.
nConsumerAppIDAppId_tThis should contain the App ID for the current game or application. Do not pass the App ID of the workshop item creation tool if that is a separate App ID!
unPageuint32The page number of the results to receive. This should start at 1 on the first call.

Query for all matching UGC. You can use this to list all of the available UGC for your app.

This will return up to 50 results as declared by kNumUGCResultsPerPage. You can make subsequent calls to this function, increasing the unPage each time to get the next set of results.

NOTE: Either nConsumerAppID or nCreatorAppID must have a valid AppID!

NOTE: You must release the handle returned by this function by calling ReleaseQueryUGCRequest when you are done with it!

To query for the UGC associated with a single user you can use CreateQueryUserUGCRequest instead.

Returns: UGCQueryHandle_t
Returns a new UGCQueryHandle_t upon success, and k_UGCQueryHandleInvalid in the following situations:
  • Either nCreatorAppID or nConsumerAppID is not set to the currently running app.
  • unPage was less than 1.
  • An internal error occurred.

This handle can be used to further customize the query before sending it out with SendQueryUGCRequest.

See Also: ISteamUtils::GetAppID

CreateQueryUGCDetailsRequest

UGCQueryHandle_t CreateQueryUGCDetailsRequest( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs );
NameTypeDescription
pvecPublishedFileIDPublishedFileId_t *The list of workshop items to get the details for.
unNumPublishedFileIDsuint32The number of items in pvecPublishedFileID.

Query for the details of specific UGC items. There is currently a 1,000 limit for the number of items you can request, but this may be lifted in the future.

Note: this API is normally used to retrieve metadata about UGC for display purposes, so it is a good practice to keep the list of items small to match your UI. Subscribed items should have enough information to be used, available through:

NOTE: Either nConsumerAppID or nCreatorAppID must have a valid AppID!

NOTE: You must release the handle returned by this function by calling ReleaseQueryUGCRequest when you are done with it!

To query all the UGC for your app you can use CreateQueryAllUGCRequest instead.

Returns: UGCQueryHandle_t
Returns a new UGCQueryHandle_t upon success, and k_UGCQueryHandleInvalid in the following situations:
  • unNumPublishedFileIDs is less than 1.
  • An internal error occurred.

This handle can be used to further customize the query before sending it out with SendQueryUGCRequest.

CreateQueryUserUGCRequest

UGCQueryHandle_t CreateQueryUserUGCRequest( AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage );
NameTypeDescription
unAccountIDAccountID_tThe Account ID to query the UGC for. You can use CSteamID.GetAccountID to get the Account ID from a Steam ID.
eListTypeEUserUGCListUsed to specify the type of list to get.
If the currently logged in user is different than the user specified in unAccountID, then some options are not allowed. (k_EUserUGCList_VotedOn, k_EUserUGCList_VotedUp, k_EUserUGCList_VotedDown, k_EUserUGCList_WillVoteLater, k_EUserUGCList_Subscribed)
eMatchingUGCTypeEUGCMatchingUGCTypeUsed to specify the type of UGC queried for.
eSortOrderEUserUGCListSortOrderUsed to specify the order that the list will be sorted in.
nCreatorAppIDAppId_tThis should contain the App ID of the app where the item was created. This may be different than nConsumerAppID if your item creation tool is a separate App ID.
nConsumerAppIDAppId_tThis should contain the App ID for the current game or application. Do not pass the App ID of the workshop item creation tool if that is a separate App ID!
unPageuint32The page number of the results to receive. This should start at 1 on the first call.

Query UGC associated with a user. You can use this to list the UGC the user is subscribed to amongst other things.

This will return up to 50 results as declared by kNumUGCResultsPerPage. You can make subsequent calls to this function, increasing the unPage each time to get the next set of results.

NOTE: Either nConsumerAppID or nCreatorAppID must have a valid AppID!

NOTE: You must release the handle returned by this function by calling ReleaseQueryUGCRequest when you are done with it!

To query all the UGC for your app you can use CreateQueryAllUGCRequest instead.

Returns: UGCQueryHandle_t
Returns a new UGCQueryHandle_t upon success, and k_UGCQueryHandleInvalid in the following situations:
  • Either nCreatorAppID or nConsumerAppID is not set to the currently running app.
  • unPage was less than 1.
  • The given eListType is not supported for users other than the one requesting the details.
  • An internal error occurred.

This handle can be used to further customize the query before sending it out with SendQueryUGCRequest.

See Also: ISteamUtils::GetAppID

DeleteItem

SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe item to delete.

Deletes the item without prompting the user.

Returns: SteamAPICall_t to be used with a DeleteItemResult_t call result.

DownloadItem

bool DownloadItem( PublishedFileId_t nPublishedFileID, bool bHighPriority );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item to download.
bHighPriorityboolStart the download in high priority mode, pausing any existing in-progress Steam downloads and immediately begin downloading this workshop item.

Download or update a workshop item.

If the return value is true then register and wait for the Callback DownloadItemResult_t before calling GetItemInstallInfo or accessing the workshop item on disk.

If the user is not subscribed to the item (e.g. a Game Server using anonymous login), the workshop item will be downloaded and cached temporarily.

If the workshop item has an item state of k_EItemStateNeedsUpdate, then this function can be called to initiate the update. Do not access the workshop item on disk until the Callback DownloadItemResult_t is called.

The DownloadItemResult_t callback contains the app ID associated with the workshop item. It should be compared against the running app ID as the handler will be called for all item downloads regardless of the running application.

Returns: bool
Triggers a DownloadItemResult_t callback.
true if the download was successfully started; otherwise, false if nPublishedFileID is invalid or the user is not logged on.

GetAppDependencies

bool GetAppDependencies( PublishedFileId_t nPublishedFileID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item to get app dependencies for.

Get the app dependencies associated with the given PublishedFileId_t. These are "soft" dependencies that are shown on the web. It is up to the application to determine whether an item can be used or not.

Returns: SteamAPICall_t to be used with a GetAppDependenciesResult_t call result.

See Also: AddAppDependency, RemoveAppDependency

GetItemDownloadInfo

bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item to get the download info for.
punBytesDownloadeduint64 *Returns the current bytes downloaded.
punBytesTotaluint64 *Returns the total bytes. This is only valid after the download has started.

Get info about a pending download of a workshop item that has k_EItemStateNeedsUpdate set.

Returns: bool
true if the download information was available; otherwise, false.

GetItemInstallInfo

bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, char *pchFolder, uint32 cchFolderSize, uint32 *punTimeStamp );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item to get the install info for.
punSizeOnDiskuint64 *Returns the size of the workshop item in bytes.
pchFolderchar *Returns the absolute path to the folder containing the content by copying it.
cchFolderSizeuint32The size of pchFolder in bytes.
punTimeStampuint32 *Returns the time when the workshop item was last updated.

Gets info about currently installed content on the disc for workshop items that have k_EItemStateInstalled set.

Calling this sets the "used" flag on the workshop item for the current player and adds it to their k_EUserUGCList_UsedOrPlayed list.

If k_EItemStateLegacyItem is set then pchFolder contains the path to the legacy file itself, not a folder.

Returns: bool
true if the workshop item is already installed.
false in the following cases:
  • cchFolderSize is 0.
  • The workshop item has no content.
  • The workshop item is not installed.

GetItemState

uint32 GetItemState( PublishedFileId_t nPublishedFileID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item to get the state for.

Gets the current state of a workshop item on this client.

Returns: uint32
Returns the item state. Should be used with the EItemState flags to determine the state of the workshop item.

Example:
uint32 unItemState = GetItemState( 280762427 ); if ( unItemState & k_EItemStateDownloading ) { // indicates the item is currently downloading to the client } else if ( ( unItemState & k_EItemStateInstalled ) && ( unItemState & k_EItemStateNeedsUpdate ) ) { // indicates the item is installed but needs to be updated }

GetItemUpdateProgress

EItemUpdateStatus GetItemUpdateProgress( UGCUpdateHandle_t handle, uint64 *punBytesProcessed, uint64*punBytesTotal );
NameTypeDescription
handleUGCUpdateHandle_tThe update handle to get the progress for.
punBytesProcesseduint64 *Returns the current number of bytes uploaded.
punBytesTotaluint64 *Returns the total number of bytes that will be uploaded.

Gets the progress of an item update.

Returns: EItemUpdateStatus
The current status.

See Also: SubmitItemUpdate

GetNumSubscribedItems

uint32 GetNumSubscribedItems();
Gets the total number of items the current user is subscribed to for the game or application.

Returns: uint32
Returns 0 if called from a game server.

GetQueryUGCAdditionalPreview

bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char *pchURLOrVideoID, uint32 cchURLSize, char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
previewIndexuint32The index of the additional preview to get the details of.
pchURLOrVideoIDchar *Returns a URL or Video ID by copying it into this string.
cchURLSizeuint32The size of pchURLOrVideoID in bytes.
pchOriginalFileNamechar *Returns the original file name. May be set to NULL to not receive this.
cchOriginalFileNameSizeuint32The size of pchOriginalFileName in bytes.
pPreviewTypeEItemPreviewType *The type of preview that was returned.

Retrieve the details of an additional preview associated with an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Before calling this you should call GetQueryUGCNumAdditionalPreviews to get number of additional previews.

Returns: bool
true upon success, indicates that pchURLOrVideoID and pPreviewType have been filled out.
Otherwise, false if the UGC query handle is invalid, the index is out of bounds, or previewIndex is out of bounds.

GetQueryUGCChildren

bool GetQueryUGCChildren( UGCQueryHandle_t handle, uint32 index, PublishedFileId_t*pvecPublishedFileID, uint32 cMaxEntries );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
pvecPublishedFileIDPublishedFileId_t *Returns the UGC children by setting this array.
cMaxEntriesuint32The length of pvecPublishedFileID.

Retrieve the ids of any child items of an individual workshop item after receiving a querying UGC call result. These items can either be a part of a collection or some other dependency (see AddDependency).

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

You should create pvecPublishedFileID with m_unNumChildren provided in SteamUGCDetails_t after getting the UGC details with GetQueryUGCResult.

Returns: bool
true upon success, indicates that pvecPublishedFileID has been filled out.
Otherwise, false if the UGC query handle is invalid or the index is out of bounds.

GetQueryUGCNumTags

uint32 GetQueryUGCNumTags( UGCQueryHandle_t handle, uint32 index );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.

Available in SDK v1.51.

Retrieve the number of tags for an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

You can then call GetQueryUGCTag to get the tag name or GetQueryUGCTagDisplayName to get the localized tag string (if any).

Returns: uint32
The number of key-value tags associated with the specified workshop item.
Returns 0 if the UGC query handle is invalid or the index is out of bounds.

GetQueryUGCTag

bool GetQueryUGCTag( UGCQueryHandle_t handle, uint32 index, uint32 tagIndex, char *pchValue, uint32 cchValueSize );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
tagIndexuint32The index of the tag.
pchValuechar *Returns the value by copying it into this string.
cchValueSizeuint32The size of pchValue in bytes (allocate at least 64 bytes).

Available in SDK v1.51.

Retrieve the "nth" tag associated with an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Before calling this you should call GetQueryUGCNumTags to get number of tags.

GetQueryUGCTagDisplayName

bool GetQueryUGCTagDisplayName( UGCQueryHandle_t handle, uint32 index, uint32 tagIndex, char *pchValue, uint32 cchValueSize );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
tagIndexuint32The index of the tag.
pchValuechar *Returns the value by copying it into this string.
cchValueSizeuint32The size of pchValue in bytes (allocate at least 256 bytes).

Available in SDK v1.51.

Retrieve the "nth" display string (usually localized) for a tag, which is associated with an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Before calling this you should call GetQueryUGCNumTags to get number of tags.

GetQueryUGCKeyValueTag

bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char *pchKey, uint32 cchKeySize, char *pchValue, uint32 cchValueSize );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
keyValueTagIndexuint32The index of the tag to get the details of.
pchKeychar *Returns the key by copying it into this string.
cchKeySizeuint32The size of pchKey in bytes.
pchValuechar *Returns the value by copying it into this string.
cchValueSizeuint32The size of pchValue in bytes.

Retrieve the details of a key-value tag associated with an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Before calling this you should call GetQueryUGCNumKeyValueTags to get number of tags.

Returns: bool
true upon success, indicates that pchKey and pchValue have been filled out.
Otherwise, false if the UGC query handle is invalid, the index is out of bounds, or keyValueTagIndex is out of bounds.

GetQueryUGCContentDescriptors

uint32 GetQueryUGCContentDescriptors( UGCQueryHandle_t handle, uint32 index, EUGCContentDescriptorID *pvecDescriptors, uint32 cMaxEntries );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
pvecDescriptorsEUGCContentDescriptorIDAn array of EUGCContentDescriptorID to fill in.
cMaxEntriesuint32Size of the pvecDescriptors array

Retrieve an array of EUGCContentDescriptorID set on the item.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Returns: uint32
Returns the number of EUGCContentDescriptorID set on the item.

See Also: AddContentDescriptor, RemoveContentDescriptor

GetQueryUGCMetadata

bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, char *pchMetadata, uint32 cchMetadatasize );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
pchMetadatachar *Returns the url by copying it into this string.
cchMetadatasizeuint32The size of pchMetadata in bytes.

Retrieve the developer set metadata of an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Returns: bool
true upon success, indicates that pchMetadata has been filled out.
Otherwise, false if the UGC query handle is invalid or the index is out of bounds.

See Also: SetItemMetadata

GetQueryUGCNumAdditionalPreviews

uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.

Retrieve the number of additional previews of an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

You can then call GetQueryUGCAdditionalPreview to get the details of each additional preview.

Returns: uint32
The number of additional previews associated with the specified workshop item.
Returns 0 if the UGC query handle is invalid or the index is out of bounds.

GetQueryUGCNumKeyValueTags

uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.

Retrieve the number of key-value tags of an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

You can then call GetQueryUGCKeyValueTag to get the details of each tag.

Returns: uint32
The number of key-value tags associated with the specified workshop item.
Returns 0 if the UGC query handle is invalid or the index is out of bounds.

GetQueryUGCPreviewURL

bool GetQueryUGCPreviewURL( UGCQueryHandle_t handle, uint32 index, char *pchURL, uint32 cchURLSize );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
pchURLchar *Returns the Metadata by copying it into this string.
cchURLSizeuint32The size of pchURL in bytes.

Retrieve the URL to the preview image of an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

You can use this URL to download and display the preview image instead of having to download it using the m_hPreviewFile in the ISteamUGC::SteamUGCDetails_t struct.

Returns: bool
true upon success, indicates that pchURL has been filled out.
Otherwise, false if the UGC query handle is invalid or the index is out of bounds.

GetQueryUGCResult

bool GetQueryUGCResult( UGCQueryHandle_t handle, uint32 index, SteamUGCDetails_t *pDetails );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
pDetailsSteamUGCDetails_t *Returns the the UGC details.

Retrieve the details of an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Returns: bool
true upon success, indicates that pDetails has been filled out.
Otherwise, false if the UGC query handle is invalid or the index is out of bounds.

GetQueryUGCStatistic

bool GetQueryUGCStatistic( UGCQueryHandle_t handle, uint32 index, EItemStatistic eStatType, uint64 *pStatValue );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item to get the details of.
eStatTypeEItemStatisticThe statistic to retrieve.
pStatValueuint64 *Returns the value associated with the specified statistic.

Retrieve various statistics of an individual workshop item after receiving a querying UGC call result.

You should call this in a loop to get the details of all the workshop items returned.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Returns: bool
true upon success, indicates that pStatValue has been filled out.
Otherwise, false if the UGC query handle is invalid, the index is out of bounds, or eStatType was invalid.

GetNumSupportedGameVersions

uint32 GetNumSupportedGameVersions( UGCQueryHandle_t handle, uint32 index );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item from the query.

Items can have multiple versions, which support can be valid for a range of Steam beta branches.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Returns: uint32
The number of versions available for this item.

See Also: GetSupportedGameVersionData, SetRequiredGameVersions

GetSupportedGameVersionData

bool GetSupportedGameVersionData( UGCQueryHandle_t handle, uint32 index, uint32 versionIndex, STEAM_OUT_STRING_COUNT( cchGameBranchSize ) char *pchGameBranchMin, STEAM_OUT_STRING_COUNT( cchGameBranchSize ) char *pchGameBranchMax, uint32 cchGameBranchSize )
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to get the results from.
indexuint32The index of the item.
versionIndexuint32The index of the item version.
pchGameBranchMinchar *String buffer to populate with the minimum Steam (beta) branch this version of the item supports
pchGameBranchMaxchar *String buffer to populate with the maximum Steam (beta) branch version this version of the item supports
cchGameBranchSizeuint32Size of the pchGameBranchMin or pchGameBranchMax buffers.

Use this function to retrieve what Steam (beta) branches this item version is valid for. If the minimum branch is an empty string, then it is valid for all versions up to the maximum branch. If the maximum branch is an empty string, then the this item version is valid for every branch published after the minimum branch. If both strings are empty, then this item version is valid for all Steam branches. The version that is downloaded by the Steam client is dictated by what versions are valid for the item and what Steam (beta) branch the user has opted into.

NOTE: This must only be called with the handle obtained from a successful SteamUGCQueryCompleted_t call result.

Returns: bool
Return true if the item version at the given index version exists, false otherwise.

See Also: GetNumSupportedGameVersions, SetRequiredGameVersions

GetSubscribedItems

uint32 GetSubscribedItems( PublishedFileId_t*pvecPublishedFileID, uint32 cMaxEntries );
NameTypeDescription
pvecPublishedFileIDPublishedFileId_t *The array where the item ids will be copied into.
cMaxEntriesuint32The maximum number of items to return. This should typically be the same as GetNumSubscribedItems and the same size as pvecPublishedFileID.

Gets a list of all of the items the current user is subscribed to for the current game.

You create an array with the size provided by GetNumSubscribedItems before calling this.

Returns: uint32
The number of subscribed workshop items that were populated into pvecPublishedFileID.
Returns 0 if called from a game server.

GetUserItemVote

SteamAPICall_t GetUserItemVote( PublishedFileId_t nPublishedFileID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item ID to get the user's vote.

Gets the user's vote status on a workshop item.

Returns: SteamAPICall_t to be used with a GetUserItemVoteResult_t call result.


See Also: SetUserItemVote

ReleaseQueryUGCRequest

bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to release.

Releases a UGC query handle when you are done with it to free up memory.

Returns: bool
Always returns true.

RemoveAppDependency

SteamAPICall_t RemoveAppDependency( PublishedFileId_t nPublishedFileID, AppId_t nAppID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe item.
nAppIDAppId_tThe app/dlc.

Removes the dependency between the given item and the appid. This list of dependencies can be retrieved by calling GetAppDependencies.

Returns: SteamAPICall_t to be used with a RemoveAppDependencyResult_t call result.

See Also: AddAppDependency

RemoveDependency

SteamAPICall_t RemoveDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID );
NameTypeDescription
nParentPublishedFileIDPublishedFileId_tThe workshop item to remove a dependency from.
nChildPublishedFileIDPublishedFileId_tThe dependency to remove from the parent.

Removes a workshop item as a dependency from the specified item.

Returns: SteamAPICall_t to be used with a RemoveUGCDependencyResult_t call result.


See Also: AddDependency

RemoveItemFromFavorites

SteamAPICall_t RemoveItemFromFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID );
NameTypeDescription
nAppIdAppId_tThe app ID that this item belongs to.
nPublishedFileIDPublishedFileId_tThe workshop item to remove from the user's favorites list.

Removes a workshop item from the user's favorites list.

Returns: SteamAPICall_t to be used with a UserFavoriteItemsListChanged_t call result.


See Also: AddItemToFavorites

RemoveItemKeyValueTags

bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pchKeyconst char *The key to remove from the item.

Removes an existing key-value tag from an item.

You can only call this up to 100 times per item update. If you need to remove more tags than that you'll need to make subsequent item updates.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid or if you are trying to remove more than 100 key-value tags in a single update.

See Also: AddItemKeyValueTag

RemoveItemPreview

bool RemoveItemPreview( UGCUpdateHandle_t handle, uint32 index );
NameTypeDescription
handleUGCUpdateHandle_t
indexuint32

Returns: bool

AddContentDescriptor

bool AddContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid );
NameTypeDescription
handleUGCUpdateHandle_t
descidEUGCContentDescriptorID

Sets the given EUGCContentDescriptorID on the item.

Returns: bool

See Also: GetQueryUGCContentDescriptors, RemoveContentDescriptor

RemoveContentDescriptor

bool RemoveContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid );
NameTypeDescription
handleUGCUpdateHandle_t
descidEUGCContentDescriptorID

Removes the given EUGCContentDescriptorID from the item.

Returns: bool

See Also: GetQueryUGCContentDescriptors, AddContentDescriptor

SetRequiredGameVersions

bool SetRequiredGameVersions( UGCUpdateHandle_t handle, const char *pszGameBranchMin, const char *pszGameBranchMax );
NameTypeDescription
handleUGCUpdateHandle_t
pszGameBranchMinconst char *
pszGameBranchMax const char *

Sets what Steam (beta) branches this item is valid for. An empty string for either pszGameBranchMin or pszGameBranchMax means that it will match any version on that end of the range. This will only be applied if the actual content has been changed. Users will download the version of the item that is valid for the Steam (beta) branch they have opted into.

Returns: bool

See Also: GetNumSupportedGameVersions, GetSupportedGameVersionData

RequestUGCDetails

SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds );
NameTypeDescription
nPublishedFileIDPublishedFileId_tDeprecated!
unMaxAgeSecondsuint32Deprecated!

DEPRECATED! Use CreateQueryUGCDetailsRequest instead!

Returns: SteamAPICall_t to be used with a SteamUGCRequestUGCDetailsResult_t call result.

SendQueryUGCRequest

SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query request handle to send.

Send a UGC query to Steam.

This must be called with a handle obtained from CreateQueryUserUGCRequest, CreateQueryAllUGCRequest, or CreateQueryUGCDetailsRequest to actually send the request to Steam. Before calling this you should use one or more of the following APIs to customize your query:
AddRequiredTag, AddExcludedTag, SetReturnOnlyIDs, SetReturnKeyValueTags, SetReturnLongDescription, SetReturnMetadata, SetReturnChildren, SetReturnAdditionalPreviews, SetReturnTotalOnly, SetLanguage, SetAllowCachedResponse, SetCloudFileNameFilter, SetMatchAnyTag, SetSearchText, SetRankedByTrendDays, AddRequiredKeyValueTag

Returns: SteamAPICall_t to be used with a SteamUGCQueryCompleted_t call result.
Returns k_uAPICallInvalid if the UGC query handle was invalid.

SetAllowCachedResponse

bool SetAllowCachedResponse( UGCQueryHandle_t handle, uint32 unMaxAgeSeconds );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
unMaxAgeSecondsuint32The maximum amount of time that an item can be returned without a cache invalidation.

Sets whether results will be returned from the cache for the specific period of time on a pending UGC Query.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

SetCloudFileNameFilter

bool SetCloudFileNameFilter( UGCQueryHandle_t handle, const char *pMatchCloudFileName );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
pMatchCloudFileNameconst char *The filename to match.

Sets to only return items that have a specific filename on a pending UGC Query.

NOTE: This can only be used with CreateQueryUserUGCRequest!

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid, if the UGC query handle is not from CreateQueryUserUGCRequest or if pMatchCloudFileName is NULL.

SetItemContent

bool SetItemContent( UGCUpdateHandle_t handle, const char *pszContentFolder );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pszContentFolderconst char *The absolute path to a local folder containing the content for the item.

Sets the folder that will be stored as the content for an item.

For efficient upload and download, files should not be merged or compressed into single files (e.g. zip files).

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

SetItemDescription

bool SetItemDescription( UGCUpdateHandle_t handle, const char *pchDescription );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pchDescriptionconst char *The new description of the item.

Sets a new description for an item.

The description must be limited to the length defined by k_cchPublishedDocumentDescriptionMax.

You can set what language this is for by using SetItemUpdateLanguage, if no language is set then "english" is assumed.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

See Also: SetReturnLongDescription

SetItemMetadata

bool SetItemMetadata( UGCUpdateHandle_t handle, const char *pchMetaData );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pchMetaDataconst char *The new metadata for this item.

Sets arbitrary metadata for an item. This metadata can be returned from queries without having to download and install the actual content.

The metadata must be limited to the size defined by k_cchDeveloperMetadataMax.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid, or if pchMetadata is longer than k_cchDeveloperMetadataMax.

See Also: SetReturnMetadata

SetItemPreview

bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pszPreviewFileconst char *The absolute path to a local preview image file for the item.

Sets the primary preview image for the item.

The format should be one that both the web and the application (if necessary) can render. Suggested formats include JPG, PNG and GIF.

Be sure your app has its Steam Cloud quota and number of files set, as preview images are stored under the user's Cloud. If your app has no Cloud values set, this call will fail.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

SetItemTags

bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags );
NameTypeDescription
updateHandleUGCUpdateHandle_tThe workshop item update handle to customize.
pTagsconst SteamParamStringArray_t *The list of tags to set on this item.

Sets arbitrary developer specified tags on an item.

Each tag must be limited to 255 characters. Tag names can only include printable characters, excluding ','. For reference on what characters are allowed, refer to http://en.cppreference.com/w/c/string/byte/isprint

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid, or if one of the tags is invalid either due to exceeding the maximum length or because it is NULL.

See Also: AddRequiredTag, AddExcludedTag, SetMatchAnyTag

SetItemTitle

bool SetItemTitle( UGCUpdateHandle_t handle, const char *pchTitle );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pchTitleconst char *The new title of the item.

Sets a new title for an item.

The title must be limited to the size defined by k_cchPublishedDocumentTitleMax.

You can set what language this is for by using SetItemUpdateLanguage, if no language is set then "english" is assumed.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

SetItemUpdateLanguage

bool SetItemUpdateLanguage( UGCUpdateHandle_t handle, const char *pchLanguage );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
pchLanguageconst char *The language of the title and description that will be set in this update.

Sets the language of the title and description that will be set in this item update.

This must be in the format of the API language code.

If this is not set then "english" is assumed.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

See Also: SetItemTitle, SetItemDescription, SetLanguage

SetItemVisibility

bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
eVisibilityERemoteStoragePublishedFileVisibilityThe visibility to set.

Sets the visibility of an item.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

SetLanguage

bool SetLanguage( UGCQueryHandle_t handle, const char *pchLanguage );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
pchLanguageconst char *The language to return.

Sets the language to return the title and description in for the items on a pending UGC Query.

This must be in the format of the API Language code.

If this is not set then "english" is assumed.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

See Also: SetItemUpdateLanguage

SetMatchAnyTag

bool SetMatchAnyTag( UGCQueryHandle_t handle, bool bMatchAnyTag );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bMatchAnyTagboolShould the item just need to have one required tag (true), or all of them? (false)

Sets whether workshop items will be returned if they have one or more matching tags, or if all tags need to match on a pending UGC Query.

NOTE: This can only be used with CreateQueryAllUGCRequest!

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid or if the UGC query handle is not from CreateQueryAllUGCRequest.

See Also: AddRequiredTag, AddExcludedTag, SetItemTags

SetRankedByTrendDays

bool SetRankedByTrendDays( UGCQueryHandle_t handle, uint32 unDays );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
unDaysuint32Sets the number of days to rank items over. Valid values are 1-365 inclusive.

Sets whether the order of the results will be updated based on the rank of items over a number of days on a pending UGC Query.

NOTE: This can only be used with CreateQueryAllUGCRequest!

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid, if the UGC query handle is not from CreateQueryAllUGCRequest or if the EUGCQuery of the query is not one of:
k_PublishedFileQueryType_RankedByTrend, k_PublishedFileQueryType_RankedByPlaytimeTrend, k_PublishedFileQueryType_RankedByAveragePlaytimeTrend, k_PublishedFileQueryType_RankedByVotesUp, or k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend

SetReturnAdditionalPreviews

bool SetReturnAdditionalPreviews( UGCQueryHandle_t handle, bool bReturnAdditionalPreviews );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bReturnAdditionalPreviewsboolReturn the additional previews for the items?

Sets whether to return any additional images/videos attached to the items on a pending UGC Query.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

SetReturnChildren

bool SetReturnChildren( UGCQueryHandle_t handle, bool bReturnChildren );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bReturnChildrenboolReturn the IDs of children of the items?

Sets whether to return the IDs of the child items of the item on a pending UGC Query.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

SetReturnKeyValueTags

bool SetReturnKeyValueTags( UGCQueryHandle_t handle, bool bReturnKeyValueTags );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bReturnKeyValueTagsboolReturn any key-value tags for the items?

Sets whether to return any key-value tags for the items on a pending UGC Query.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

SetReturnLongDescription

bool SetReturnLongDescription( UGCQueryHandle_t handle, bool bReturnLongDescription );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bReturnLongDescriptionboolReturn the long description for the items?

Sets whether to return the full description for the items on a pending UGC Query.

If you don't set this then you only receive the summary which is the description truncated at 255 bytes.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

See Also: SetItemDescription

SetReturnMetadata

bool SetReturnMetadata( UGCQueryHandle_t handle, bool bReturnMetadata );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bReturnMetadataboolReturn the metadata for the items?

Sets whether to return the developer-specified metadata for the items on a pending UGC Query.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

See Also: SetItemMetadata

SetReturnOnlyIDs

bool SetReturnOnlyIDs( UGCQueryHandle_t handle, bool bReturnOnlyIDs );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bReturnOnlyIDsboolReturn only the IDs of items?

Sets whether to only return IDs instead of all the details on a pending UGC Query.

This is useful for when you don't need all the information (e.g. you just want to get the IDs of the items a user has in their favorites list.)

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid or if the UGC query handle is from CreateQueryUGCDetailsRequest.

SetReturnPlaytimeStats

bool SetReturnPlaytimeStats( UGCQueryHandle_t handle, uint32 unDays );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
unDaysuint32The number of days worth of playtime stats to return.

Sets whether to return the playtime stats on a pending UGC Query.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid.

SetReturnTotalOnly

bool SetReturnTotalOnly( UGCQueryHandle_t handle, bool bReturnTotalOnly );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
bReturnTotalOnlyboolOnly return the total number of items?

Sets whether to only return the total number of matching items on a pending UGC Query.

The actual items will not be returned when SteamUGCQueryCompleted_t is called.

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid or if the UGC query handle is from CreateQueryUGCDetailsRequest

SetSearchText

bool SetSearchText( UGCQueryHandle_t handle, const char *pSearchText );
NameTypeDescription
handleUGCQueryHandle_tThe UGC query handle to customize.
pSearchTextconst char *The text to be searched for.

Sets a string to that items need to match in either the title or the description on a pending UGC Query.

NOTE: This can only be used with CreateQueryAllUGCRequest!

NOTE: This must be set before you send a UGC Query handle using SendQueryUGCRequest.

Returns: bool
true upon success.
false if the UGC query handle is invalid, if the UGC query handle is not from CreateQueryAllUGCRequest or if pSearchText is NULL.

SetUserItemVote

SteamAPICall_t SetUserItemVote( PublishedFileId_t nPublishedFileID, bool bVoteUp );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item ID to vote on.
bVoteUpboolVote up (true) or down (false)?

Allows the user to rate a workshop item up or down.

Returns: SteamAPICall_t to be used with a SetUserItemVoteResult_t call result.


See Also: GetUserItemVote

StartItemUpdate

UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID );
NameTypeDescription
nConsumerAppIdAppId_tThe App ID that will be using this item.
nPublishedFileIDPublishedFileId_tThe item to update.

Starts the item update process.

This gets you a handle that you can use to modify the item before finally sending off the update to the server with SubmitItemUpdate.

Returns: UGCUpdateHandle_t
A handle that you can use with future calls to modify the item before finally sending the update.

See Also: Uploading a Workshop Item, SetItemTitle, SetItemDescription, SetItemUpdateLanguage, SetItemMetadata, SetItemVisibility, SetItemTags, SetItemContent, SetItemPreview, RemoveItemKeyValueTags, AddItemKeyValueTag, AddItemPreviewFile, AddItemPreviewVideo, UpdateItemPreviewFile, UpdateItemPreviewVideo, RemoveItemPreview

StartPlaytimeTracking

SteamAPICall_t StartPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs );
NameTypeDescription
pvecPublishedFileIDPublishedFileId_t *The array of workshop items you want to start tracking. (Maximum of 100 items.)
unNumPublishedFileIDsuint32The number of elements in pvecPublishedFileID.

Start tracking playtime on a set of workshop items.

When your app shuts down, playtime tracking will automatically stop.

Returns: SteamAPICall_t to be used with a StartPlaytimeTrackingResult_t call result.
Returns k_uAPICallInvalid if pvecPublishedFileID is NULL, or unNumPublishedFileIDs is less than 1 or greater than 100.

See Also: StopPlaytimeTracking, StopPlaytimeTrackingForAllItems

StopPlaytimeTracking

SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs );
NameTypeDescription
pvecPublishedFileIDPublishedFileId_t *The array of workshop items you want to stop tracking. (Maximum of 100 items.)
unNumPublishedFileIDsuint32The number of elements in pvecPublishedFileID.

Stop tracking playtime on a set of workshop items. This will increment the number of "playtime" sessions for those items by one.

When your app shuts down, playtime tracking will automatically stop.

Returns: SteamAPICall_t to be used with a StopPlaytimeTrackingResult_t call result.

StopPlaytimeTrackingForAllItems

SteamAPICall_t StopPlaytimeTrackingForAllItems();
Stop tracking playtime of all workshop items.

When your app shuts down, playtime tracking will automatically stop. This will increment the number of "playtime" sessions for those all items that were being tracked by one.

Returns: SteamAPICall_t to be used with a StopPlaytimeTrackingResult_t call result.
Returns k_uAPICallInvalid if pvecPublishedFileID is NULL or unNumPublishedFileIDs is less than 1 or greater than 100.

GetAppDependencies

SteamAPICall_t GetAppDependencies( PublishedFileId_t nPublishedFileID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe item.

Returns any app dependencies that are associated with the given item.

Returns: SteamAPICall_t to be used with a GetAppDependenciesResult_t call result.

SubmitItemUpdate

SteamAPICall_t SubmitItemUpdate( UGCUpdateHandle_t handle, const char *pchChangeNote );
NameTypeDescription
handleUGCUpdateHandle_tThe update handle to submit.
pchChangeNoteconst char *A brief description of the changes made. (Optional, set to NULL for no change note)

Uploads the changes made to an item to the Steam Workshop.

You can track the progress of an item update with GetItemUpdateProgress.

Returns: SteamAPICall_t to be used with a SubmitItemUpdateResult_t call result.
Returns k_uAPICallInvalid if handle is invalid.

SubscribeItem

SteamAPICall_t SubscribeItem( PublishedFileId_t nPublishedFileID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item to subscribe to.

Subscribe to a workshop item. It will be downloaded and installed as soon as possible.

Returns: SteamAPICall_t to be used with a RemoteStorageSubscribePublishedFileResult_t call result.


See Also: SubscribeItem

SuspendDownloads

void SuspendDownloads( bool bSuspend );
NameTypeDescription
bSuspendboolSuspend (true) or Resume (false) workshop downloads?

Suspends and resumes all workshop downloads.

If you call this with bSuspend set to true then downloads will be suspended until you resume them by setting bSuspend to false or when the game ends.

UnsubscribeItem

SteamAPICall_t UnsubscribeItem( PublishedFileId_t nPublishedFileID );
NameTypeDescription
nPublishedFileIDPublishedFileId_tThe workshop item to unsubscribe from.

Unsubscribe from a workshop item. This will result in the item being removed after the game quits.

Returns: SteamAPICall_t to be used with a RemoteStorageUnsubscribePublishedFileResult_t call result.


See Also: UnsubscribeItem

UpdateItemPreviewFile

bool UpdateItemPreviewFile( UGCUpdateHandle_t handle, uint32 index, const char *pszPreviewFile );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
indexuint32The index of the preview file from 0 to GetQueryUGCNumAdditionalPreviews.
pszPreviewFileconst char *Absolute path to the local image.

Updates an existing additional preview file for the item.

If the preview type is an image then the format should be one that both the web and the application (if necessary) can render, and must be under 1MB. Suggested formats include JPG, PNG and GIF.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

See Also: AddItemPreviewFile

UpdateItemPreviewVideo

bool UpdateItemPreviewVideo( UGCUpdateHandle_t handle, uint32 index, const char *pszVideoID );
NameTypeDescription
handleUGCUpdateHandle_tThe workshop item update handle to customize.
indexuint32The index of the preview file from 0 to GetQueryUGCNumAdditionalPreviews.
pszVideoIDconst char *The YouTube video to add. (e.g. "jHgZh4GV9G0")

Updates an additional video preview from YouTube for the item.

NOTE: This must be set before you submit the UGC update handle using SubmitItemUpdate.

Returns: bool
true upon success.
false if the UGC update handle is invalid.

See Also: AddItemPreviewVideo

ShowWorkshopEULA

bool ShowWorkshopEULA();

Show the app's latest Workshop EULA to the user in an overlay window, where they can accept it or not

Returns: bool
true upon success.
false if the overlay cannot be shown.

See Also: GetWorkshopEULAStatus

GetWorkshopEULAStatus

SteamAPICall_t GetWorkshopEULAStatus();

Asynchronously retrieves data about whether the user accepted the Workshop EULA for the current app.

Returns: SteamAPICall_t

See Also: WorkshopEULAStatus_t, ShowWorkshopEULA

Callbacks

These are callbacks that can be fired by calling SteamAPI_RunCallbacks. Many of these will be fired directly in response to the member functions of ISteamUGC.

AddAppDependencyResult_t

The result of a call to AddAppDependency.

NameTypeDescription
m_eResultEResultThe result of the operation.
m_nPublishedFileIdPublishedFileId_tThe parent workshop item that the dependency was added to.
m_nAppIDAppId_tThe app/dlc.

Associated Functions: AddAppDependency

AddUGCDependencyResult_t

The result of a call to AddDependency.

NameTypeDescription
m_eResultEResultThe result of the operation.
m_nPublishedFileIdPublishedFileId_tThe parent workshop item that the dependency was added to.
m_nChildPublishedFileIdPublishedFileId_tThe child workshop item which was added as a dependency to the parent item.

Associated Functions: AddDependency

CreateItemResult_t

Called when a new workshop item has been created.

NameTypeDescription
m_eResultEResultThe result of the operation. Some of the possible return values include:
  • k_EResultOK - The operation completed successfully.
  • k_EResultInsufficientPrivilege - The user is currently restricted from uploading content due to a hub ban, account lock, or community ban. They would need to contact Steam Support.
  • k_EResultBanned - The user doesn't have permission to upload content to this hub because they have an active VAC or Game ban.
  • k_EResultTimeout - The operation took longer than expected. Have the user retry the creation process.
  • k_EResultNotLoggedOn - The user is not currently logged into Steam.
  • k_EResultServiceUnavailable - The workshop server hosting the content is having issues - have the user retry.
  • k_EResultInvalidParam - One of the submission fields contains something not being accepted by that field.
  • k_EResultAccessDenied - There was a problem trying to save the title and description. Access was denied.
  • k_EResultLimitExceeded - The user has exceeded their Steam Cloud quota. Have them remove some items and try again.
  • k_EResultFileNotFound - The uploaded file could not be found.
  • k_EResultDuplicateRequest - The file was already successfully uploaded. The user just needs to refresh.
  • k_EResultDuplicateName - The user already has a Steam Workshop item with that name.
  • k_EResultServiceReadOnly - Due to a recent password or email change, the user is not allowed to upload new content. Usually this restriction will expire in 5 days, but can last up to 30 days if the account has been inactive recently.
m_nPublishedFileIdPublishedFileId_tThe new item's unique ID.
m_bUserNeedsToAcceptWorkshopLegalAgreementboolDoes the user need to accept the Steam Workshop legal agreement (true) or not (false)? See the Workshop Legal Agreement for more information.

Associated Functions: CreateItem

DownloadItemResult_t

Called when a workshop item has been downloaded.

NOTE: This callback goes out to all running applications, ensure that the app ID associated with the item matches what you expect.

NameTypeDescription
m_unAppIDAppId_tThe app ID associated with this workshop item.
m_nPublishedFileIdPublishedFileId_tThe workshop item that has finished downloading.
m_eResultEResultThe result of the operation.

Associated Functions: DownloadItem

GetAppDependenciesResult_t

Called when getting the app dependencies for an item.

NameTypeDescription
m_eResultEResultThe result of the operation.
m_nPublishedFileIdPublishedFileId_tThe workshop item to get app dependencies for.
m_rgAppIDsAppId_tArray of app dependencies
m_nNumAppDependenciesuint32Number of returned app dependencies in m_rgAppIDs
m_nTotalNumAppDependenciesuint32Total app dependencies found.

Associated Functions: GetAppDependencies

DeleteItemResult_t

Called when an attempt at deleting an item completes.

NameTypeDescription
m_eResultEResultThe result of the operation.
m_nPublishedFileIdPublishedFileId_tThe workshop item which was being deleted.

Associated Functions: DeleteItem

GetUserItemVoteResult_t

Called when getting the user's vote status on an item.

NameTypeDescription
m_nPublishedFileIdPublishedFileId_tThe workshop item to get the vote status.
m_eResultEResultThe result of the operation.
m_bVotedUpboolHas the user voted the item up?
m_bVotedDownboolHas the user voted the item down?
m_bVoteSkippedboolHas the user skipped voting on this item?

Associated Functions: GetUserItemVote

ItemInstalled_t

Called when a workshop item has been installed or updated.

NOTE: This callback goes out to all running applications, ensure that the app ID associated with the item matches what you expect.

NameTypeDescription
m_unAppIDAppId_tThe app ID associated with this workshop item.
m_nPublishedFileIdPublishedFileId_tThe workshop item that has finished installing. This can be used with GetItemInstallInfo to access the information about the item.

RemoveAppDependencyResult_t

Purpose: The result of a call to RemoveAppDependency.

NameTypeDescription
m_eResultEResultThe result of the operation.
m_nPublishedFileIdPublishedFileId_tThe parent workshop item that the dependency was removed from.
m_nAppIDAppId_tThe app/dlc.

Associated Functions: RemoveAppDependency

RemoveUGCDependencyResult_t

Purpose: The result of a call to RemoveDependency.

NameTypeDescription
m_eResultEResultThe result of the operation.
m_nPublishedFileIdPublishedFileId_tThe parent workshop item that the dependency was removed from.
m_nChildPublishedFileIdPublishedFileId_tThe child workshop item which was removed as a dependency from the parent item.

Associated Functions: RemoveDependency

SetUserItemVoteResult_t

Called when the user has voted on an item.

NameTypeDescription
m_nPublishedFileIdPublishedFileId_tThe workshop item that the user voted on.
m_eResultEResultThe result of the operation.
m_bVoteUpboolWas the vote up (true) or down (false)?

Associated Functions: SetUserItemVote

StartPlaytimeTrackingResult_t

Called when workshop item playtime tracking has started.

NameTypeDescription
m_eResultEResultThe result of the operation.

Associated Functions: StartPlaytimeTracking

SteamUGCQueryCompleted_t

Called when a UGC query request completes.

NameTypeDescription
m_handleUGCQueryHandle_tThe UGC query handle associated with this call result.
m_eResultEResultThe result of the operation.
m_unNumResultsReturneduint32The number of items returned in this result set.
m_unTotalMatchingResultsuint32The total number of items that matched the query in the database.
m_bCachedDataboolIndicates whether this data was retrieved from the local on-disk cache.

Associated Functions: SendQueryUGCRequest

SteamUGCRequestUGCDetailsResult_t

DEPRECATED - Former result of a call to RequestUGCDetails.

NameTypeDescription
m_detailsSteamUGCDetails_tDeprecated.
m_bCachedDataboolDeprecated.

Associated Functions: RequestUGCDetails

StopPlaytimeTrackingResult_t

Called when workshop item playtime tracking has stopped.

NameTypeDescription
m_eResultEResultThe result of the operation.

Associated Functions: StopPlaytimeTracking, StopPlaytimeTrackingForAllItems

SubmitItemUpdateResult_t

Called when an item update has been completed.

NameTypeDescription
m_eResultEResultThe result of the operation. Some of the possible return values include:
m_bUserNeedsToAcceptWorkshopLegalAgreementboolDoes the user need to accept the Steam Workshop legal agreement? See the Workshop Legal Agreement for more information.

Associated Functions: SubmitItemUpdate

UserFavoriteItemsListChanged_t

Called when the user has added or removed an item to/from their favorites.

NameTypeDescription
m_nPublishedFileIdPublishedFileId_tThe item which was added/removed.
m_eResultEResultThe result of the operation.
m_bWasAddRequestboolWas it added (true) or removed (false) from the user's favorites?

Associated Functions: AddItemToFavorites, RemoveItemFromFavorites

UserSubscribedItemsListChanged_t

Called when the user has added or removed an item to/from their subscriptions for the returned appid.

NameTypeDescription
m_nAppIDAppId_tThe related appid.

Associated Functions: SubscribeItem, UnsubscribeItem

WorkshopEULAStatus_t

Callback returned GetWorkshopEULAStatus

NameTypeDescription
m_eResultEResultThe result of the operation
m_nAppIDAppId_tThe related appid.
m_unVersionuint32The version of the signed EULA, if applicable
m_rtActionRTime32Unix timestamp of when the user signed the EULA, if applicable.
m_bAcceptedbooleanTrue if the user accepted the given version, false otherwise. Note that this can be true if the user accepted an older version of the EULA.
m_bNeedsActionbooleanTrue if the user needs to accept the latest Workshop EULA, false otherwise.

Associated Functions: GetWorkshopEULAStatus

Structs

These are structs that functions in ISteamUGC may return and/or interact with.

SteamUGCDetails_t

Details for a single published item/UGC. This is returned by GetQueryUGCResult.

NameTypeDescription
m_nPublishedFileIdPublishedFileId_tThe globally unique item handle to this piece of UGC.
m_eResultEResultThe result of the operation.
m_eFileTypeEWorkshopFileTypeThe type of the item.
m_nCreatorAppIDAppId_tApp Id of the app that created this item.
m_nConsumerAppIDAppId_tApp Id of the app that will consume this item.
m_rgchTitlek_cchPublishedDocumentTitleMaxThe title of the item.
m_rgchDescriptionk_cchPublishedDocumentDescriptionMaxThe description of the item.
m_ulSteamIDOwneruint64Steam ID of the user who created this content.
m_rtimeCreateduint32Time when the published item was created, provided in Unix epoch format (time since Jan 1st, 1970).
m_rtimeUpdateduint32Time when the published item was last updated, provided in Unix epoch format (time since Jan 1st, 1970).
m_rtimeAddedToUserListuint32Time when the user added the published item to their list (not always applicable), provided in Unix epoch format (time since Jan 1st, 1970).
m_eVisibilityERemoteStoragePublishedFileVisibilityThe visibility of the item.
m_bBannedboolWhether the item was banned.
m_bAcceptedForUseboolWhether the developer of this app has specifically flagged this item as accepted in the Workshop. (See: Curated Workshop)
m_bTagsTruncatedboolWhether the list of tags was too long to be returned in the provided buffer, and were therefore truncated.
m_rgchTagsk_cchTagListMaxComma separated list of all tags associated with this item.
m_hFileUGCHandle_tThe handle of the primary file.
m_hPreviewFileUGCHandle_tThe handle of the preview file.
m_pchFileNamek_cchFilenameMaxThe cloud filename of the primary file.
m_nFileSizeint32The file size of the primary file.
m_nPreviewFileSizeint32The file size of the preview file.
m_rgchURLk_cchPublishedFileURLMaxThe URL associated with this item. (For a video or a website.)
m_unVotesUpuint32Number of votes up.
m_unVotesDownuint32Number of votes down.
m_flScorefloatThe bayesian average for up votes / total votes, between [0,1].
m_unNumChildrenuint32The number of items in the collection if m_eFileType is k_EWorkshopFileTypeCollection, or the number of items this specific item has a dependency on (see AddDependency).

Enums

These are enums that are defined for use with ISteamUGC.

EItemPreviewType

Flags that specify the type of preview an item has. Set with AddItemPreviewFile, and received with GetQueryUGCAdditionalPreview.

NameValueDescription
k_EItemPreviewType_Image0Standard web viewable image file. Supported types: PNG, JPG, and GIF.
k_EItemPreviewType_YouTubeVideo1YouTube video ID. (e.g. "jHgZh4GV9G0")
k_EItemPreviewType_Sketchfab2Sketchfab model ID.
k_EItemPreviewType_EnvironmentMap_HorizontalCross3Standard image file containing a map of an environment in a horizontal cross layout (see below). Supported types: PNG, JPG, and GIF.
+---+---+-------+ | |Up | | +---+---+---+---+ | L | F | R | B | +---+---+---+---+ | |Dn | | +---+---+---+---+
Not currently used in web views.
k_EItemPreviewType_EnvironmentMap_LatLong4Standard image file containing a map of an environment in a LatLong layout. Supported types: PNG, JPG, and GIF. Not currently used in web views.
k_EItemPreviewType_ReservedMax255Reserved. You can specify your own types above this value.

EItemState

Specifies an items state. These are flags that can be combined. Returned by GetItemState.

NameValueDescription
k_EItemStateNone0The item is not tracked on client.
k_EItemStateSubscribed1The current user is subscribed to this item. Not just cached.
k_EItemStateLegacyItem2The item was created with the old workshop functions in ISteamRemoteStorage.
k_EItemStateInstalled4Item is installed and usable (but maybe out of date).
k_EItemStateNeedsUpdate8The item needs an update. Either because it's not installed yet or creator updated the content.
k_EItemStateDownloading16The item update is currently downloading.
k_EItemStateDownloadPending32DownloadItem was called for this item, the content isn't available until DownloadItemResult_t is fired.

EItemStatistic

Used to retrieve item statistics with GetQueryUGCStatistic.

NameValueDescription
k_EItemStatistic_NumSubscriptions0Gets the number of subscriptions.
k_EItemStatistic_NumFavorites1Gets the number of favorites.
k_EItemStatistic_NumFollowers2Gets the number of followers.
k_EItemStatistic_NumUniqueSubscriptions3Gets the number of unique subscriptions.
k_EItemStatistic_NumUniqueFavorites4Gets the number of unique favorites.
k_EItemStatistic_NumUniqueFollowers5Gets the number of unique followers.
k_EItemStatistic_NumUniqueWebsiteViews6Gets the number of unique views the item has on its Steam Workshop page.
k_EItemStatistic_ReportScore7Gets the number of times the item has been reported.
k_EItemStatistic_NumSecondsPlayed8Gets the total number of seconds this item has been used across all players.
k_EItemStatistic_NumPlaytimeSessions9Gets the total number of play sessions this item has been used in.
k_EItemStatistic_NumComments10Gets the number of comments on the items that steam has on its Steam Workshop page.
k_EItemStatistic_NumSecondsPlayedDuringTimePeriod11Gets the number of seconds this item has been used over the given time period.
k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod12Gets the number of sessions this item has been used in over the given time period.

EItemUpdateStatus

Specifies the status of a UGCUpdateHandle_t after a call to GetItemUpdateProgress, returned by GetItemUpdateProgress.

NameValueDescription
k_EItemUpdateStatusInvalid0The item update handle was invalid, the job might be finished, a SubmitItemUpdateResult_t call result should have been returned for it.
k_EItemUpdateStatusPreparingConfig1The item update is processing configuration data.
k_EItemUpdateStatusPreparingContent2The item update is reading and processing content files.
k_EItemUpdateStatusUploadingContent3The item update is uploading content changes to Steam.
k_EItemUpdateStatusUploadingPreviewFile4The item update is uploading new preview file image.
k_EItemUpdateStatusCommittingChanges5The item update is committing all changes.

EUGCMatchingUGCType

Specifies the types of UGC to obtain from a call to CreateQueryUserUGCRequest or CreateQueryAllUGCRequest.

NameValueDescription
k_EUGCMatchingUGCType_Items0Both Microtransaction items and Ready-to-use items.
k_EUGCMatchingUGCType_Items_Mtx1Microtransaction items. (See: Curated Workshop)
k_EUGCMatchingUGCType_Items_ReadyToUse2Regular in game items that players have uploaded. (See: Ready-To-Use Workshop)
k_EUGCMatchingUGCType_Collections3Shared collections of UGC.
k_EUGCMatchingUGCType_Artwork4Artwork which has been shared.
k_EUGCMatchingUGCType_Videos5Videos which have been shared.
k_EUGCMatchingUGCType_Screenshots6Screenshots which have been shared.
k_EUGCMatchingUGCType_AllGuides7Both web guides and integrated guides.
k_EUGCMatchingUGCType_WebGuides8Guides that are only available on the Steam Community.
k_EUGCMatchingUGCType_IntegratedGuides9Guides that you can use within your game. (Like Dota 2's in game character guides.)
k_EUGCMatchingUGCType_UsableInGame10Ready-to-use items and integrated guides.
k_EUGCMatchingUGCType_ControllerBindings11Controller Bindings which have been shared.
k_EUGCMatchingUGCType_GameManagedItems12Game managed items (Not managed by users.)
k_EUGCMatchingUGCType_All~0Return everything.

EUGCQuery

Used with CreateQueryAllUGCRequest to specify the sorting and filtering for queries across all available UGC.

NameValueDescription
k_EUGCQuery_RankedByVote0Sort by vote popularity all-time
k_EUGCQuery_RankedByPublicationDate1Sort by publication date descending
k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate2Sort by date accepted (for mtx items)
k_EUGCQuery_RankedByTrend3Sort by vote popularity within the given "trend" period (set in SetRankedByTrendDays)
k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate4Filter to items the user's friends have favorited, sorted by publication date descending
k_EUGCQuery_CreatedByFriendsRankedByPublicationDate5Filter to items created by friends, sorted by publication date descending
k_EUGCQuery_RankedByNumTimesReported6Sort by report weight descending
k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate7Filter to items created by users that the current user has followed, sorted by publication date descending
k_EUGCQuery_NotYetRated8Filtered to the user's voting queue
k_EUGCQuery_RankedByTotalVotesAsc9Sort by total # of votes ascending (used internally for building the user's voting queue)
k_EUGCQuery_RankedByVotesUp10Sort by number of votes up descending. Will use the "trend" period if specified (set in SetRankedByTrendDays)
k_EUGCQuery_RankedByTextSearch11Sort by keyword text search relevancy
k_EUGCQuery_RankedByTotalUniqueSubscriptions12Sort by lifetime total unique # of subscribers descending
k_EUGCQuery_RankedByPlaytimeTrend13Sort by total playtime in the "trend" period descending (set with SetRankedByTrendDays)
k_EUGCQuery_RankedByTotalPlaytime14Sort by total lifetime playtime descending.
k_EUGCQuery_RankedByAveragePlaytimeTrend15Sort by average playtime in the "trend" period descending (set in SetRankedByTrendDays)
k_EUGCQuery_RankedByLifetimeAveragePlaytime16Soft by lifetime average playtime descending.
k_EUGCQuery_RankedByPlaytimeSessionsTrend17Sort by number of play sessions in the "trend" period descending (set in SetRankedByTrendDays)
k_EUGCQuery_RankedByLifetimePlaytimeSessions18Sort by number of lifetime play sessions descending.
k_EUGCQuery_RankedByLastUpdatedDate19Sort by last updated time.

EUserUGCList

Used with CreateQueryUserUGCRequest to obtain different lists of published UGC for a user.

NameValueDescription
k_EUserUGCList_Published0List of files the user has published. (equivalent to http://steamcommunity.com/my/myworkshopfiles/?browsesort=myfiles)
k_EUserUGCList_VotedOn1List of files the user has voted on. Includes both VotedUp and VotedDown.
k_EUserUGCList_VotedUp2List of files the user has voted up. (Restricted to the current user only).
k_EUserUGCList_VotedDown3List of files the user has voted down. (Restricted to the current user only).
k_EUserUGCList_WillVoteLater4Deprecated. Do not use! (Restricted to the current user only).
k_EUserUGCList_Favorited5List of files the user has favorited. (equivalent to http://steamcommunity.com/my/myworkshopfiles/?browsesort=myfavorites)
k_EUserUGCList_Subscribed6List of files the user has subscribed to. (Restricted to the current user only). (equivalent to http://steamcommunity.com/my/myworkshopfiles/?browsesort=mysubscriptions)
k_EUserUGCList_UsedOrPlayed7List of files the user has spent time in game with. (equivalent to http://steamcommunity.com/my/myworkshopfiles/?browsesort=myplayedfiles)
k_EUserUGCList_Followed8List of files the user is following updates for.

EUserUGCListSortOrder

Used with CreateQueryUserUGCRequest to specify the sort order for user published UGC lists. Defaults to creation order descending.

NameValueDescription
k_EUserUGCListSortOrder_CreationOrderDesc0Returns items by creation date. Descending - the newest items are first. (Corresponds to "sortmethod=newestfirst" on the workshop page)
k_EUserUGCListSortOrder_CreationOrderAsc1Returns items by creation date. Ascending - the oldest items are first. (Corresponds to "sortmethod=oldestfirst" on the workshop page)
k_EUserUGCListSortOrder_TitleAsc2Returns items by name. (Corresponds to "sortmethod=alpha" on the workshop page)
k_EUserUGCListSortOrder_LastUpdatedDesc3Returns the most recently updated items first. (Corresponds to "sortmethod=lastupdated" on the workshop page)
k_EUserUGCListSortOrder_SubscriptionDateDesc4Returns the most recently subscribed items first. (Corresponds to "sortmethod=subscriptiondate" on the workshop page)
k_EUserUGCListSortOrder_VoteScoreDesc5Returns the items with the more recent score updates first. (Corresponds to "sortmethod=score" on the workshop page)
k_EUserUGCListSortOrder_ForModeration6Returns the items that have been reported for moderation. (Corresponds to "sortmethod=formoderation" on the workshop page)

EUGCContentDescriptorID

Users can control what user-generated content they want to see under the Mature Content Filtering section in their preferences. This filtering is done automatically by Steam servers, but first, user-generated content must be tagged appropriately. Developers can use AddContentDescriptor and RemoveContentDescriptor calls to manage content descriptors a piece of UGC has. These can be retrieved from the result of a query via GetQueryUGCContentDescriptors.

NameValueDescription
k_EUGCContentDescriptor_NudityOrSexualContent1Some Nudity or Sexual Content:
Contains content that has some nudity or sexual themes, but not as the primary focus.
k_EUGCContentDescriptor_FrequentViolenceOrGore2Frequent Violence or Gore:
Contains content that features extreme violence or gore.
k_EUGCContentDescriptor_AdultOnlySexualContent3Adult Only Sexual Content:
Contains content that is sexually explicit or graphic and is intended for adults only. Users must affirm that they are at least eighteen years old before they can view content with this content descriptor.
k_EUGCContentDescriptor_GratuitousSexualContent4Frequent Nudity or Sexual Content:
Contains content that primarily features nudity or sexual themes. Users must affirm that they are at least eighteen years old before they can view content with this content descriptor.
k_EUGCContentDescriptor_AnyMatureContent5General Mature Content:
Contains mature topics that may not be appropriate for all audiences.

Typedefs

These are typedefs that are defined for use with ISteamUGC.

NameBase typeDescription
UGCQueryHandle_tuint64A unique handle to a single UGC Query. This is used when requesting lists of items from the workshop.
UGCUpdateHandle_tuint64A unique handle to a single item update. This is used when uploading or updating an item on the workshop.

Constants

These are constants that are defined for use with ISteamUGC.

NameTypeValueDescription
kNumUGCResultsPerPageuint3250The maximum number of results that you'll receive for a query result.
k_cchDeveloperMetadataMaxuint325000The maximum amount of bytes you can set with SetItemMetadata.
k_UGCQueryHandleInvalidUGCQueryHandle_t0xffffffffffffffffullUsed to specify an invalid query handle. This is frequently returned if a call fails.
k_UGCUpdateHandleInvalidUGCUpdateHandle_t0xffffffffffffffffullUsed to specify an invalid item update handle. This is frequently returned if a call fails.
STEAMUGC_INTERFACE_VERSIONconst char *"STEAMUGC_INTERFACE_VERSION015"