Unaffiliated

Home Documentation & Help
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.

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 that 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 users favorites list.

Adds a workshop item to the users 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 that 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

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 it's 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 seperate 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 workshop items.

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:
  • 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 be 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 seperate 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.

NOTE: This method only works with workshop items created with ISteamUGC. It will not work with the legacy ISteamRemoteStorage workshop items.

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.

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.

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.

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 url 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.

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 users vote.

Gets the users 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 users favorites list.

Removes a workshop item from the users 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 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

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.

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 tag, 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 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.

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 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 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.

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.

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

Callbacks

These are callbacks which 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:
m_nPublishedFileIdPublishedFileId_tThe new items 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

GetUserItemVoteResult_t

Called when getting the users 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 UGC 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.
m_unTotalMatchingResultsuint32The total number of items that matched the query.
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 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 an added (true) or removed (false) from the users favorites?

Associated Functions: AddItemToFavorites, RemoveItemFromFavorites

Structs

These are structs which 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_rgchTitlechar[[apitype]ISteamRemoteStorage::k_cchPublishedDocumentTitleMax[/apitype]]The title of the item.
m_rgchDescriptionchar[[apitype]ISteamRemoteStorage::k_cchPublishedDocumentDescriptionMax[/apitype]]The 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_rgchTagschar[[apitype]ISteamRemoteStorage::k_cchTagListMax[/apitype]]Comma 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_pchFileNamechar[[apitype]ISteamRemoteStorage::k_cchFilenameMax[/apitype]]The cloud filename of the primary file.
m_nFileSizeint32The file size of the primary file.
m_nPreviewFileSizeint32The file size of the preview file.
m_rgchURLchar[[apitype]ISteamRemoteStorage::k_cchPublishedFileURLMax[/apitype]]The 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.

Enums

These are enums which 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 web viable image file in a horizontal cross environment map layout. Supported types: PNG, JPG, and GIF.
+---+---+-------+ | |Up | | +---+---+---+---+ | L | F | R | B | +---+---+---+---+ | |Dn | | +---+---+---+---+
k_EItemPreviewType_EnvironmentMap_LatLong4Standard web viable image file in a LatLong environment map layout. Supported types: PNG, JPG, and GIF.
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 items 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 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_RankedByVote0
k_EUGCQuery_RankedByPublicationDate1
k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate2
k_EUGCQuery_RankedByTrend3
k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate4
k_EUGCQuery_CreatedByFriendsRankedByPublicationDate5
k_EUGCQuery_RankedByNumTimesReported6
k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate7
k_EUGCQuery_NotYetRated8
k_EUGCQuery_RankedByTotalVotesAsc9
k_EUGCQuery_RankedByVotesUp10
k_EUGCQuery_RankedByTextSearch11
k_EUGCQuery_RankedByTotalUniqueSubscriptions12
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.

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)

Typedefs

These are typedefs which 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 which 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_VERSION010"