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 );
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: RemoveAppDependencyAddDependency
SteamAPICall_t AddDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID );
Name | Type | Description |
nParentPublishedFileID | PublishedFileId_t | The workshop item to add a dependency to. |
nChildPublishedFileID | PublishedFileId_t | The 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: RemoveDependencyAddExcludedTag
bool AddExcludedTag( UGCQueryHandle_t handle, const char *pTagName );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
pTagName | const 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,
SetItemTagsAddItemKeyValueTag
bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pchKey | const char * | The key to set on the item. |
pchValue | const 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,
GetQueryUGCKeyValueTagAddItemPreviewFile
bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pszPreviewFile | const char * | Absolute path to the local image. |
type | EItemPreviewType | The 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,
RemoveItemPreviewAddItemPreviewVideo
bool AddItemPreviewVideo( UGCUpdateHandle_t handle, const char *pszVideoID );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pszVideoID | const 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,
RemoveItemPreviewAddItemToFavorites
SteamAPICall_t AddItemToFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID );
Name | Type | Description |
nAppId | AppId_t | The app ID that this item belongs to. |
nPublishedFileID | PublishedFileId_t | The 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: RemoveItemFromFavoritesAddRequiredKeyValueTag
bool AddRequiredKeyValueTag( UGCQueryHandle_t handle, const char *pKey, const char *pValue );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
pKey | const char * | The key-value key that must be attached to the UGC to receive it. |
pValue | const 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
pTagName | const 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,
SetItemTagsAddRequiredTagGroup
bool AddRequiredTagGroup( UGCQueryHandle_t handle, const SteamParamStringArray_t *pTags );
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,
AddExcludedTagBInitWorkshopForGameServer
bool BInitWorkshopForGameServer( DepotId_t unWorkshopDepotID, const char *pszFolder );
Name | Type | Description |
unWorkshopDepotID | DepotId_t | The depot ID of the game server. |
pszFolder | const 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 );
Name | Type | Description |
nConsumerAppId | AppId_t | The App ID that will be using this item. |
eFileType | EWorkshopFileType | The 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 ItemCreateQueryAllUGCRequest
UGCQueryHandle_t CreateQueryAllUGCRequest( EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage );
Name | Type | Description |
eQueryType | EUGCQuery | Used to specify the sorting and filtering for this call. |
eMatchingeMatchingUGCTypeFileType | EUGCMatchingUGCType | Used to specify the type of UGC queried for. |
nCreatorAppID | AppId_t | This 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. |
nConsumerAppID | AppId_t | This 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! |
unPage | uint32 | The 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_tReturns 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::GetAppIDCreateQueryUGCDetailsRequest
UGCQueryHandle_t CreateQueryUGCDetailsRequest( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs );
Name | Type | Description |
pvecPublishedFileID | PublishedFileId_t * | The list of workshop items to get the details for. |
unNumPublishedFileIDs | uint32 | The 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_tReturns 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 );
Name | Type | Description |
unAccountID | AccountID_t | The Account ID to query the UGC for. You can use CSteamID.GetAccountID to get the Account ID from a Steam ID. |
eListType | EUserUGCList | Used 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) |
eMatchingUGCType | EUGCMatchingUGCType | Used to specify the type of UGC queried for. |
eSortOrder | EUserUGCListSortOrder | Used to specify the order that the list will be sorted in. |
nCreatorAppID | AppId_t | This 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. |
nConsumerAppID | AppId_t | This 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! |
unPage | uint32 | The 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_tReturns 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::GetAppIDDeleteItem
SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID );
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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The workshop item to download. |
bHighPriority | bool | Start 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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The 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,
RemoveAppDependencyGetItemDownloadInfo
bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The workshop item to get the download info for. |
punBytesDownloaded | uint64 * | Returns the current bytes downloaded. |
punBytesTotal | uint64 * | 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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The workshop item to get the install info for. |
punSizeOnDisk | uint64 * | Returns the size of the workshop item in bytes. |
pchFolder | char * | Returns the absolute path to the folder containing the content by copying it. |
cchFolderSize | uint32 | The size of pchFolder in bytes. |
punTimeStamp | uint32 * | 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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The workshop item to get the state for. |
Gets the current state of a workshop item on this client.
Returns: uint32Returns 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 );
Name | Type | Description |
handle | UGCUpdateHandle_t | The update handle to get the progress for. |
punBytesProcessed | uint64 * | Returns the current number of bytes uploaded. |
punBytesTotal | uint64 * | Returns the total number of bytes that will be uploaded. |
Gets the progress of an item update.
Returns: EItemUpdateStatusThe current status.
See Also: SubmitItemUpdateGetNumSubscribedItems
uint32 GetNumSubscribedItems();
Gets the total number of items the current user is subscribed to for the game or application.
Returns: uint32Returns
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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
previewIndex | uint32 | The index of the additional preview to get the details of. |
pchURLOrVideoID | char * | Returns a URL or Video ID by copying it into this string. |
cchURLSize | uint32 | The size of pchURLOrVideoID in bytes. |
pchOriginalFileName | char * | Returns the original file name. May be set to NULL to not receive this. |
cchOriginalFileNameSize | uint32 | The size of pchOriginalFileName in bytes. |
pPreviewType | EItemPreviewType * | 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
pvecPublishedFileID | PublishedFileId_t * | Returns the UGC children by setting this array. |
cMaxEntries | uint32 | The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The 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: uint32The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
tagIndex | uint32 | The index of the tag. |
pchValue | char * | Returns the value by copying it into this string. |
cchValueSize | uint32 | The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
tagIndex | uint32 | The index of the tag. |
pchValue | char * | Returns the value by copying it into this string. |
cchValueSize | uint32 | The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
keyValueTagIndex | uint32 | The index of the tag to get the details of. |
pchKey | char * | Returns the key by copying it into this string. |
cchKeySize | uint32 | The size of pchKey in bytes. |
pchValue | char * | Returns the value by copying it into this string. |
cchValueSize | uint32 | The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
pvecDescriptors | EUGCContentDescriptorID | An array of EUGCContentDescriptorID to fill in. |
cMaxEntries | uint32 | Size 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,
RemoveContentDescriptorGetQueryUGCMetadata
bool GetQueryUGCMetadata( UGCQueryHandle_t handle, uint32 index, char *pchMetadata, uint32 cchMetadatasize );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
pchMetadata | char * | Returns the url by copying it into this string. |
cchMetadatasize | uint32 | The 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: SetItemMetadataGetQueryUGCNumAdditionalPreviews
uint32 GetQueryUGCNumAdditionalPreviews( UGCQueryHandle_t handle, uint32 index );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The 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: uint32The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The 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: uint32The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
pchURL | char * | Returns the Metadata by copying it into this string. |
cchURLSize | uint32 | The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
pDetails | SteamUGCDetails_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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item to get the details of. |
eStatType | EItemStatistic | The statistic to retrieve. |
pStatValue | uint64 * | 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The 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,
SetRequiredGameVersionsGetSupportedGameVersionData
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 )
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to get the results from. |
index | uint32 | The index of the item. |
versionIndex | uint32 | The index of the item version. |
pchGameBranchMin | char * | String buffer to populate with the minimum Steam (beta) branch this version of the item supports |
pchGameBranchMax | char * | String buffer to populate with the maximum Steam (beta) branch version this version of the item supports |
cchGameBranchSize | uint32 | Size 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,
SetRequiredGameVersionsGetSubscribedItems
uint32 GetSubscribedItems( PublishedFileId_t*pvecPublishedFileID, uint32 cMaxEntries );
Name | Type | Description |
pvecPublishedFileID | PublishedFileId_t * | The array where the item ids will be copied into. |
cMaxEntries | uint32 | The 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: uint32The 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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The 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: SetUserItemVoteReleaseQueryUGCRequest
bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle );
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 );
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: AddAppDependencyRemoveDependency
SteamAPICall_t RemoveDependency( PublishedFileId_t nParentPublishedFileID, PublishedFileId_t nChildPublishedFileID );
Name | Type | Description |
nParentPublishedFileID | PublishedFileId_t | The workshop item to remove a dependency from. |
nChildPublishedFileID | PublishedFileId_t | The 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: AddDependencyRemoveItemFromFavorites
SteamAPICall_t RemoveItemFromFavorites( AppId_t nAppId, PublishedFileId_t nPublishedFileID );
Name | Type | Description |
nAppId | AppId_t | The app ID that this item belongs to. |
nPublishedFileID | PublishedFileId_t | The 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: AddItemToFavoritesRemoveItemKeyValueTags
bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pchKey | const 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: AddItemKeyValueTagRemoveItemPreview
bool RemoveItemPreview( UGCUpdateHandle_t handle, uint32 index );
Returns: bool
AddContentDescriptor
bool AddContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid );
Sets the given
EUGCContentDescriptorID on the item.
Returns: bool
See Also: GetQueryUGCContentDescriptors,
RemoveContentDescriptorRemoveContentDescriptor
bool RemoveContentDescriptor( UGCUpdateHandle_t handle, EUGCContentDescriptorID descid );
Removes the given
EUGCContentDescriptorID from the item.
Returns: bool
See Also: GetQueryUGCContentDescriptors,
AddContentDescriptorSetRequiredGameVersions
bool SetRequiredGameVersions( UGCUpdateHandle_t handle, const char *pszGameBranchMin, const char *pszGameBranchMax );
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,
GetSupportedGameVersionDataRequestUGCDetails
SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds );
DEPRECATED! Use
CreateQueryUGCDetailsRequest instead!
Returns: SteamAPICall_t to be used with a
SteamUGCRequestUGCDetailsResult_t call result.
SendQueryUGCRequest
SteamAPICall_t SendQueryUGCRequest( UGCQueryHandle_t handle );
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,
AddRequiredKeyValueTagReturns: 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
unMaxAgeSeconds | uint32 | The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
pMatchCloudFileName | const 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 );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pszContentFolder | const 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 );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pchDescription | const 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: SetReturnLongDescriptionSetItemMetadata
bool SetItemMetadata( UGCUpdateHandle_t handle, const char *pchMetaData );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pchMetaData | const 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: SetReturnMetadataSetItemPreview
bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pszPreviewFile | const 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 );
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/isprintNOTE: 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,
SetMatchAnyTagSetItemTitle
bool SetItemTitle( UGCUpdateHandle_t handle, const char *pchTitle );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pchTitle | const 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 );
Name | Type | Description |
handle | UGCUpdateHandle_t | The workshop item update handle to customize. |
pchLanguage | const 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,
SetLanguageSetItemVisibility
bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility );
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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
pchLanguage | const 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: SetItemUpdateLanguageSetMatchAnyTag
bool SetMatchAnyTag( UGCQueryHandle_t handle, bool bMatchAnyTag );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bMatchAnyTag | bool | Should 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,
SetItemTagsSetRankedByTrendDays
bool SetRankedByTrendDays( UGCQueryHandle_t handle, uint32 unDays );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
unDays | uint32 | Sets 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bReturnAdditionalPreviews | bool | Return 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bReturnChildren | bool | Return 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bReturnKeyValueTags | bool | Return 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bReturnLongDescription | bool | Return 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: SetItemDescriptionSetReturnMetadata
bool SetReturnMetadata( UGCQueryHandle_t handle, bool bReturnMetadata );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bReturnMetadata | bool | Return 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: SetItemMetadataSetReturnOnlyIDs
bool SetReturnOnlyIDs( UGCQueryHandle_t handle, bool bReturnOnlyIDs );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bReturnOnlyIDs | bool | Return 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
unDays | uint32 | The 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 );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
bReturnTotalOnly | bool | Only 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
CreateQueryUGCDetailsRequestSetSearchText
bool SetSearchText( UGCQueryHandle_t handle, const char *pSearchText );
Name | Type | Description |
handle | UGCQueryHandle_t | The UGC query handle to customize. |
pSearchText | const 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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The workshop item ID to vote on. |
bVoteUp | bool | Vote 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: GetUserItemVoteStartItemUpdate
UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID );
Name | Type | Description |
nConsumerAppId | AppId_t | The App ID that will be using this item. |
nPublishedFileID | PublishedFileId_t | The 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_tA 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,
RemoveItemPreviewStartPlaytimeTracking
SteamAPICall_t StartPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs );
Name | Type | Description |
pvecPublishedFileID | PublishedFileId_t * | The array of workshop items you want to start tracking. (Maximum of 100 items.) |
unNumPublishedFileIDs | uint32 | The 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,
StopPlaytimeTrackingForAllItemsStopPlaytimeTracking
SteamAPICall_t StopPlaytimeTracking( PublishedFileId_t *pvecPublishedFileID, uint32 unNumPublishedFileIDs );
Name | Type | Description |
pvecPublishedFileID | PublishedFileId_t * | The array of workshop items you want to stop tracking. (Maximum of 100 items.) |
unNumPublishedFileIDs | uint32 | The 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 );
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 );
Name | Type | Description |
handle | UGCUpdateHandle_t | The update handle to submit. |
pchChangeNote | const 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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The 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: SubscribeItemSuspendDownloads
void SuspendDownloads( bool bSuspend );
Name | Type | Description |
bSuspend | bool | Suspend (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 );
Name | Type | Description |
nPublishedFileID | PublishedFileId_t | The 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: UnsubscribeItemUpdateItemPreviewFile
bool UpdateItemPreviewFile( UGCUpdateHandle_t handle, uint32 index, const char *pszPreviewFile );
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: AddItemPreviewFileUpdateItemPreviewVideo
bool UpdateItemPreviewVideo( UGCUpdateHandle_t handle, uint32 index, const char *pszVideoID );
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: AddItemPreviewVideoShowWorkshopEULA
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: GetWorkshopEULAStatusGetWorkshopEULAStatus
SteamAPICall_t GetWorkshopEULAStatus();
Asynchronously retrieves data about whether the user accepted the Workshop EULA for the current app.
Returns: SteamAPICall_tSee Also: WorkshopEULAStatus_t,
ShowWorkshopEULACallbacks
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.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
m_nPublishedFileId | PublishedFileId_t | The parent workshop item that the dependency was added to. |
m_nAppID | AppId_t | The app/dlc. |
Associated Functions: AddAppDependencyAddUGCDependencyResult_t
The result of a call to
AddDependency.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
m_nPublishedFileId | PublishedFileId_t | The parent workshop item that the dependency was added to. |
m_nChildPublishedFileId | PublishedFileId_t | The child workshop item which was added as a dependency to the parent item. |
Associated Functions: AddDependencyCreateItemResult_t
Called when a new workshop item has been created.
Name | Type | Description |
m_eResult | EResult | The 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_nPublishedFileId | PublishedFileId_t | The new item's unique ID. |
m_bUserNeedsToAcceptWorkshopLegalAgreement | bool | Does the user need to accept the Steam Workshop legal agreement (true) or not (false)? See the Workshop Legal Agreement for more information. |
Associated Functions: CreateItemDownloadItemResult_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.
Name | Type | Description |
m_unAppID | AppId_t | The app ID associated with this workshop item. |
m_nPublishedFileId | PublishedFileId_t | The workshop item that has finished downloading. |
m_eResult | EResult | The result of the operation. |
Associated Functions: DownloadItemGetAppDependenciesResult_t
Called when getting the app dependencies for an item.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
m_nPublishedFileId | PublishedFileId_t | The workshop item to get app dependencies for. |
m_rgAppIDs | AppId_t | Array of app dependencies |
m_nNumAppDependencies | uint32 | Number of returned app dependencies in m_rgAppIDs |
m_nTotalNumAppDependencies | uint32 | Total app dependencies found. |
Associated Functions: GetAppDependenciesDeleteItemResult_t
Called when an attempt at deleting an item completes.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
m_nPublishedFileId | PublishedFileId_t | The workshop item which was being deleted. |
Associated Functions: DeleteItemGetUserItemVoteResult_t
Called when getting the user's vote status on an item.
Name | Type | Description |
m_nPublishedFileId | PublishedFileId_t | The workshop item to get the vote status. |
m_eResult | EResult | The result of the operation. |
m_bVotedUp | bool | Has the user voted the item up? |
m_bVotedDown | bool | Has the user voted the item down? |
m_bVoteSkipped | bool | Has the user skipped voting on this item? |
Associated Functions: GetUserItemVoteItemInstalled_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.
Name | Type | Description |
m_unAppID | AppId_t | The app ID associated with this workshop item. |
m_nPublishedFileId | PublishedFileId_t | The 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.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
m_nPublishedFileId | PublishedFileId_t | The parent workshop item that the dependency was removed from. |
m_nAppID | AppId_t | The app/dlc. |
Associated Functions: RemoveAppDependencyRemoveUGCDependencyResult_t
Purpose: The result of a call to
RemoveDependency.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
m_nPublishedFileId | PublishedFileId_t | The parent workshop item that the dependency was removed from. |
m_nChildPublishedFileId | PublishedFileId_t | The child workshop item which was removed as a dependency from the parent item. |
Associated Functions: RemoveDependencySetUserItemVoteResult_t
Called when the user has voted on an item.
Name | Type | Description |
m_nPublishedFileId | PublishedFileId_t | The workshop item that the user voted on. |
m_eResult | EResult | The result of the operation. |
m_bVoteUp | bool | Was the vote up (true) or down (false)? |
Associated Functions: SetUserItemVoteStartPlaytimeTrackingResult_t
Called when workshop item playtime tracking has started.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
Associated Functions: StartPlaytimeTrackingSteamUGCQueryCompleted_t
Called when a UGC query request completes.
Name | Type | Description |
m_handle | UGCQueryHandle_t | The UGC query handle associated with this call result. |
m_eResult | EResult | The result of the operation. |
m_unNumResultsReturned | uint32 | The number of items returned in this result set. |
m_unTotalMatchingResults | uint32 | The total number of items that matched the query in the database. |
m_bCachedData | bool | Indicates whether this data was retrieved from the local on-disk cache. |
Associated Functions: SendQueryUGCRequestSteamUGCRequestUGCDetailsResult_t
DEPRECATED - Former result of a call to
RequestUGCDetails.
Name | Type | Description |
m_details | SteamUGCDetails_t | Deprecated. |
m_bCachedData | bool | Deprecated. |
Associated Functions: RequestUGCDetailsStopPlaytimeTrackingResult_t
Called when workshop item playtime tracking has stopped.
Name | Type | Description |
m_eResult | EResult | The result of the operation. |
Associated Functions: StopPlaytimeTracking,
StopPlaytimeTrackingForAllItemsSubmitItemUpdateResult_t
Called when an item update has been completed.
Name | Type | Description |
m_eResult | EResult | The result of the operation. Some of the possible return values include:
|
m_bUserNeedsToAcceptWorkshopLegalAgreement | bool | Does the user need to accept the Steam Workshop legal agreement? See the Workshop Legal Agreement for more information. |
Associated Functions: SubmitItemUpdateUserFavoriteItemsListChanged_t
Called when the user has added or removed an item to/from their favorites.
Name | Type | Description |
m_nPublishedFileId | PublishedFileId_t | The item which was added/removed. |
m_eResult | EResult | The result of the operation. |
m_bWasAddRequest | bool | Was it added (true) or removed (false) from the user's favorites? |
Associated Functions: AddItemToFavorites,
RemoveItemFromFavoritesUserSubscribedItemsListChanged_t
Called when the user has added or removed an item to/from their subscriptions for the returned appid.
Name | Type | Description |
m_nAppID | AppId_t | The related appid. |
Associated Functions: SubscribeItem,
UnsubscribeItemWorkshopEULAStatus_t
Callback returned
GetWorkshopEULAStatus Name | Type | Description |
m_eResult | EResult | The result of the operation |
m_nAppID | AppId_t | The related appid. |
m_unVersion | uint32 | The version of the signed EULA, if applicable |
m_rtAction | RTime32 | Unix timestamp of when the user signed the EULA, if applicable. |
m_bAccepted | boolean | True 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_bNeedsAction | boolean | True if the user needs to accept the latest Workshop EULA, false otherwise. |
Associated Functions: GetWorkshopEULAStatusStructs
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.
Name | Type | Description |
m_nPublishedFileId | PublishedFileId_t | The globally unique item handle to this piece of UGC. |
m_eResult | EResult | The result of the operation. |
m_eFileType | EWorkshopFileType | The type of the item. |
m_nCreatorAppID | AppId_t | App Id of the app that created this item. |
m_nConsumerAppID | AppId_t | App Id of the app that will consume this item. |
m_rgchTitle | k_cchPublishedDocumentTitleMax | The title of the item. |
m_rgchDescription | k_cchPublishedDocumentDescriptionMax | The description of the item. |
m_ulSteamIDOwner | uint64 | Steam ID of the user who created this content. |
m_rtimeCreated | uint32 | Time when the published item was created, provided in Unix epoch format (time since Jan 1st, 1970). |
m_rtimeUpdated | uint32 | Time when the published item was last updated, provided in Unix epoch format (time since Jan 1st, 1970). |
m_rtimeAddedToUserList | uint32 | Time when the user added the published item to their list (not always applicable), provided in Unix epoch format (time since Jan 1st, 1970). |
m_eVisibility | ERemoteStoragePublishedFileVisibility | The visibility of the item. |
m_bBanned | bool | Whether the item was banned. |
m_bAcceptedForUse | bool | Whether the developer of this app has specifically flagged this item as accepted in the Workshop. (See: Curated Workshop) |
m_bTagsTruncated | bool | Whether the list of tags was too long to be returned in the provided buffer, and were therefore truncated. |
m_rgchTags | k_cchTagListMax | Comma separated list of all tags associated with this item. |
m_hFile | UGCHandle_t | The handle of the primary file. |
m_hPreviewFile | UGCHandle_t | The handle of the preview file. |
m_pchFileName | k_cchFilenameMax | The cloud filename of the primary file. |
m_nFileSize | int32 | The file size of the primary file. |
m_nPreviewFileSize | int32 | The file size of the preview file. |
m_rgchURL | k_cchPublishedFileURLMax | The URL associated with this item. (For a video or a website.) |
m_unVotesUp | uint32 | Number of votes up. |
m_unVotesDown | uint32 | Number of votes down. |
m_flScore | float | The bayesian average for up votes / total votes, between [0,1]. |
m_unNumChildren | uint32 | The 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.
Name | Value | Description |
k_EItemPreviewType_Image | 0 | Standard web viewable image file. Supported types: PNG, JPG, and GIF. |
k_EItemPreviewType_YouTubeVideo | 1 | YouTube video ID. (e.g. "jHgZh4GV9G0") |
k_EItemPreviewType_Sketchfab | 2 | Sketchfab model ID. |
k_EItemPreviewType_EnvironmentMap_HorizontalCross | 3 | Standard 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_LatLong | 4 | Standard 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_ReservedMax | 255 | Reserved. You can specify your own types above this value. |
EItemState
Specifies an items state. These are flags that can be combined. Returned by
GetItemState.
Name | Value | Description |
k_EItemStateNone | 0 | The item is not tracked on client. |
k_EItemStateSubscribed | 1 | The current user is subscribed to this item. Not just cached. |
k_EItemStateLegacyItem | 2 | The item was created with the old workshop functions in ISteamRemoteStorage. |
k_EItemStateInstalled | 4 | Item is installed and usable (but maybe out of date). |
k_EItemStateNeedsUpdate | 8 | The item needs an update. Either because it's not installed yet or creator updated the content. |
k_EItemStateDownloading | 16 | The item update is currently downloading. |
k_EItemStateDownloadPending | 32 | DownloadItem was called for this item, the content isn't available until DownloadItemResult_t is fired. |
EItemStatistic
Used to retrieve item statistics with
GetQueryUGCStatistic.
Name | Value | Description |
k_EItemStatistic_NumSubscriptions | 0 | Gets the number of subscriptions. |
k_EItemStatistic_NumFavorites | 1 | Gets the number of favorites. |
k_EItemStatistic_NumFollowers | 2 | Gets the number of followers. |
k_EItemStatistic_NumUniqueSubscriptions | 3 | Gets the number of unique subscriptions. |
k_EItemStatistic_NumUniqueFavorites | 4 | Gets the number of unique favorites. |
k_EItemStatistic_NumUniqueFollowers | 5 | Gets the number of unique followers. |
k_EItemStatistic_NumUniqueWebsiteViews | 6 | Gets the number of unique views the item has on its Steam Workshop page. |
k_EItemStatistic_ReportScore | 7 | Gets the number of times the item has been reported. |
k_EItemStatistic_NumSecondsPlayed | 8 | Gets the total number of seconds this item has been used across all players. |
k_EItemStatistic_NumPlaytimeSessions | 9 | Gets the total number of play sessions this item has been used in. |
k_EItemStatistic_NumSecondsPlayedDuringTimePeriod | 11 | Gets the number of seconds this item has been used over the given time period. |
k_EItemStatistic_NumPlaytimeSessionsDuringTimePeriod | 12 | Gets 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.
Name | Value | Description |
k_EItemUpdateStatusInvalid | 0 | The item update handle was invalid, the job might be finished, a SubmitItemUpdateResult_t call result should have been returned for it. |
k_EItemUpdateStatusPreparingConfig | 1 | The item update is processing configuration data. |
k_EItemUpdateStatusPreparingContent | 2 | The item update is reading and processing content files. |
k_EItemUpdateStatusUploadingContent | 3 | The item update is uploading content changes to Steam. |
k_EItemUpdateStatusUploadingPreviewFile | 4 | The item update is uploading new preview file image. |
k_EItemUpdateStatusCommittingChanges | 5 | The item update is committing all changes. |
EUGCMatchingUGCType
Specifies the types of UGC to obtain from a call to
CreateQueryUserUGCRequest or
CreateQueryAllUGCRequest.
Name | Value | Description |
k_EUGCMatchingUGCType_Items | 0 | Both Microtransaction items and Ready-to-use items. |
k_EUGCMatchingUGCType_Items_Mtx | 1 | Microtransaction items. (See: Curated Workshop) |
k_EUGCMatchingUGCType_Items_ReadyToUse | 2 | Regular in game items that players have uploaded. (See: Ready-To-Use Workshop) |
k_EUGCMatchingUGCType_Collections | 3 | Shared collections of UGC. |
k_EUGCMatchingUGCType_Artwork | 4 | Artwork which has been shared. |
k_EUGCMatchingUGCType_Videos | 5 | Videos which have been shared. |
k_EUGCMatchingUGCType_Screenshots | 6 | Screenshots which have been shared. |
k_EUGCMatchingUGCType_AllGuides | 7 | Both web guides and integrated guides. |
k_EUGCMatchingUGCType_WebGuides | 8 | Guides that are only available on the Steam Community. |
k_EUGCMatchingUGCType_IntegratedGuides | 9 | Guides that you can use within your game. (Like Dota 2's in game character guides.) |
k_EUGCMatchingUGCType_UsableInGame | 10 | Ready-to-use items and integrated guides. |
k_EUGCMatchingUGCType_ControllerBindings | 11 | Controller Bindings which have been shared. |
k_EUGCMatchingUGCType_GameManagedItems | 12 | Game managed items (Not managed by users.) |
k_EUGCMatchingUGCType_All | ~0 | Return everything. |
EUGCQuery
Used with
CreateQueryAllUGCRequest to specify the sorting and filtering for queries across all available UGC.
Name | Value | Description |
k_EUGCQuery_RankedByVote | 0 | Sort by vote popularity all-time |
k_EUGCQuery_RankedByPublicationDate | 1 | Sort by publication date descending |
k_EUGCQuery_AcceptedForGameRankedByAcceptanceDate | 2 | Sort by date accepted (for mtx items) |
k_EUGCQuery_RankedByTrend | 3 | Sort by vote popularity within the given "trend" period (set in SetRankedByTrendDays) |
k_EUGCQuery_FavoritedByFriendsRankedByPublicationDate | 4 | Filter to items the user's friends have favorited, sorted by publication date descending |
k_EUGCQuery_CreatedByFriendsRankedByPublicationDate | 5 | Filter to items created by friends, sorted by publication date descending |
k_EUGCQuery_RankedByNumTimesReported | 6 | Sort by report weight descending |
k_EUGCQuery_CreatedByFollowedUsersRankedByPublicationDate | 7 | Filter to items created by users that the current user has followed, sorted by publication date descending |
k_EUGCQuery_NotYetRated | 8 | Filtered to the user's voting queue |
k_EUGCQuery_RankedByTotalVotesAsc | 9 | Sort by total # of votes ascending (used internally for building the user's voting queue) |
k_EUGCQuery_RankedByVotesUp | 10 | Sort by number of votes up descending. Will use the "trend" period if specified (set in SetRankedByTrendDays) |
k_EUGCQuery_RankedByTextSearch | 11 | Sort by keyword text search relevancy |
k_EUGCQuery_RankedByTotalUniqueSubscriptions | 12 | Sort by lifetime total unique # of subscribers descending |
k_EUGCQuery_RankedByPlaytimeTrend | 13 | Sort by total playtime in the "trend" period descending (set with SetRankedByTrendDays) |
k_EUGCQuery_RankedByTotalPlaytime | 14 | Sort by total lifetime playtime descending. |
k_EUGCQuery_RankedByAveragePlaytimeTrend | 15 | Sort by average playtime in the "trend" period descending (set in SetRankedByTrendDays) |
k_EUGCQuery_RankedByLifetimeAveragePlaytime | 16 | Soft by lifetime average playtime descending. |
k_EUGCQuery_RankedByPlaytimeSessionsTrend | 17 | Sort by number of play sessions in the "trend" period descending (set in SetRankedByTrendDays) |
k_EUGCQuery_RankedByLifetimePlaytimeSessions | 18 | Sort by number of lifetime play sessions descending. |
k_EUGCQuery_RankedByLastUpdatedDate | 19 | Sort by last updated time. |
EUserUGCList
Used with
CreateQueryUserUGCRequest to obtain different lists of published UGC for a user.
EUserUGCListSortOrder
Used with
CreateQueryUserUGCRequest to specify the sort order for user published UGC lists. Defaults to creation order descending.
Name | Value | Description |
k_EUserUGCListSortOrder_CreationOrderDesc | 0 | Returns items by creation date. Descending - the newest items are first. (Corresponds to "sortmethod=newestfirst" on the workshop page) |
k_EUserUGCListSortOrder_CreationOrderAsc | 1 | Returns items by creation date. Ascending - the oldest items are first. (Corresponds to "sortmethod=oldestfirst" on the workshop page) |
k_EUserUGCListSortOrder_TitleAsc | 2 | Returns items by name. (Corresponds to "sortmethod=alpha" on the workshop page) |
k_EUserUGCListSortOrder_LastUpdatedDesc | 3 | Returns the most recently updated items first. (Corresponds to "sortmethod=lastupdated" on the workshop page) |
k_EUserUGCListSortOrder_SubscriptionDateDesc | 4 | Returns the most recently subscribed items first. (Corresponds to "sortmethod=subscriptiondate" on the workshop page) |
k_EUserUGCListSortOrder_VoteScoreDesc | 5 | Returns the items with the more recent score updates first. (Corresponds to "sortmethod=score" on the workshop page) |
k_EUserUGCListSortOrder_ForModeration | 6 | Returns 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.
Name | Value | Description |
k_EUGCContentDescriptor_NudityOrSexualContent | 1 | Some Nudity or Sexual Content: Contains content that has some nudity or sexual themes, but not as the primary focus. |
k_EUGCContentDescriptor_FrequentViolenceOrGore | 2 | Frequent Violence or Gore: Contains content that features extreme violence or gore. |
k_EUGCContentDescriptor_AdultOnlySexualContent | 3 | Adult 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_GratuitousSexualContent | 4 | Frequent 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_AnyMatureContent | 5 | General Mature Content: Contains mature topics that may not be appropriate for all audiences. |
Typedefs
These are typedefs that are defined for use with ISteamUGC.
Name | Base type | Description |
UGCQueryHandle_t | uint64 | A unique handle to a single UGC Query. This is used when requesting lists of items from the workshop. |
UGCUpdateHandle_t | uint64 | A 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.
Name | Type | Value | Description |
kNumUGCResultsPerPage | uint32 | 50 | The maximum number of results that you'll receive for a query result. |
k_cchDeveloperMetadataMax | uint32 | 5000 | The maximum amount of bytes you can set with SetItemMetadata. |
k_UGCQueryHandleInvalid | UGCQueryHandle_t | 0xffffffffffffffffull | Used to specify an invalid query handle. This is frequently returned if a call fails. |
k_UGCUpdateHandleInvalid | UGCUpdateHandle_t | 0xffffffffffffffffull | Used to specify an invalid item update handle. This is frequently returned if a call fails. |
STEAMUGC_INTERFACE_VERSION | const char * | "STEAMUGC_INTERFACE_VERSION015" | |