They can also be used when items are subscribed in-game to provide status of installation in real time. [h4]Status of a Workshop Item[/h4] [list] [*] [api]ISteamUGC::GetItemState[/api] - Gets the current state of a workshop item on this client. [/list] [h4]Download Progress of a Workshop Item[/h4] [list] [*] [api]ISteamUGC::GetItemDownloadInfo[/api] - Get info about a pending download of a workshop item that has [apitype]ISteamUGC::k_EItemStateNeedsUpdate[/apitype] set. …
It should be compared against the running application ID as the handler will be called for all item downloads regardless of the running application. [/list] [/list] [h4]Retrieving information about the local copy of the Workshop Item[/h4] [list] [*] [api]ISteamUGC::GetItemInstallInfo[/api] - Gets info about currently installed content on the disc for workshop items that have [apitype]ISteamUGC::k_EItemStateInstalled[/apitype] set. …
[callout][b]NOTE:[/b] The overlay is automatically disabled for 'Software' app types. If you need the overlay enabled, you can do so by: [list] [*]Making sure your Steam account has the Edit App Metadata permission [*]Navigate from the App's landing page to > Edit Steamworks Settings > Installation tab > General Installation [*]Check box for Enable Steam Overlay for Application [*]Publish [/list] [/callout] [section=activating]Activating the overlay from your app[/section] There are a set of functions in the Steamworks API that give you direct access to triggering the game overlay. …
The overlay process could take a few seconds to start & hook the game process, so this function will initially return false while the overlay is loading. [/list] [section=callbacks]Communication from the overlay to your game[/section] The following signals (callbacks) are sent from Steam to your game, based on user action in the overlay: [list] [*] [apitype]ISteamFriends::GameOverlayActivated_t[/apitype] Posted when game overlay activates or deactivates. …
[/list] [section=console_commands]Steam Console Commands[/section] In addition to providing additional output for error reporting or logging, the Steam console can also be used to issue commands to the steam client or servers. Here are a few commands which are useful for debugging purposes. [list] [*] [b]find <string>[/b] - Lets you find other useful commands [*] [b]set_spew_level[/b] - Enables you to set a higher level of output in the steam console as well as log files. ex: "set_spew_level 4 4" - provides the most verbose logging and is very useful for troubleshooting problems [*] [b]app_info_print <AppID>[/b] - Displays all of the information the Steam servers provide about the game. [*] [b]enable/disable_license <PackageID>[/b] - This allows testing of app ownership, typically DLC. [*] [b]testappcloudpaths <AppID>[/b] - Allows testing of auto-cloud configuration before enabling auto-cloud for all customers. …
[subsection=GetPOPCount]GetPOPCount[/subsection] [code=cpp]int GetPOPCount();[/code] Get number of network points of presence in the config [subsection=GetPOPList]GetPOPList[/subsection] [code=cpp]int GetPOPList( SteamNetworkingPOPID *list, int nListSz );[/code] Get list of all POP IDs. Returns the number of entries that were filled into your list. [section=functions_ping_location]Config Functions[/section] Control networking options. …
NOTE: When setting pointers (e.g. callback functions), do not pass the function pointer directly. Your argument should be a pointer to a function pointer. [/list] [subsection=char]char[/subsection] [code=cpp]const char *GetConfigValueInfo( ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigDataType *pOutDataType, ESteamNetworkingConfigScope *pOutScope );[/code] Get info about a configuration value. …
This section provides information about how to develop SteamVR applications and additional requirements for distributing them on Steam. [table] [tr][td][doclink=features/steamvr/info]Overview[/doclink][/td] [td]Overview of SteamVR.[/td] [/tr] [tr][td][doclink=features/steamvr/settings][/doclink][/td] [td]Explains launch options and Steamworks settings for distributing Virtual Reality applications on Steam.…
Want to learn more about how to get a VR devkit? Looking for API documentation? Check out the following links: [list] [*] [url=https://steamcommunity.com/app/358720/discussions/]Steam VR Community Hub[/url] [*][url=https://steamcommunity.com/app/633750]SteamVR Knuckles Community Hub[/url] [*][url=https://steamcommunity.com/app/507090/discussions/]SteamVR Tracking HDK Community Hub[/url] [*] [url=https://github.com/ValveSoftware/openvr]OpenVR GitHub Repository[/url] [*] [url=https://github.com/ValveSoftware/openvr/wiki/API-Documentation]OpenVR API Documentation[/url] [/list]…
The response has the following structure: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]sites[/b][/td][td]see below[/td][td]A list of site details[/td][/tr] [tr][td][b]game_names[/b][/td][td]see below[/td][td]Mapped list of game names.[/td][/tr] [/table] [code-inline]game_names[/code-inline] has the following structure: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]id[/b][/td][td]uint32[/td][td]ID number of entry; referenced in site info below[/td][/tr] [tr][td][b]name[/b][/td][td]string[/td][td]Game name[/td][/tr] [/table] [code-inline]sites[/code-inline] has the following structure: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]siteid[/b][/td][td]uint64[/td][td]64-bit SiteID of the site[/td][/tr] [tr][td][b]site_name[/b][/td][td]string[/td][td]Site name you have assigned to the site[/td][/tr] [tr][td][b]games[/b][/td][td]see below[/td][td]list of all game titles played[/td][/tr] [/table] [code-inline]games[/code-inline] has the following structure: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]id[/b][/td][td]uint32[/td][td]ID of game in the [code-inline]game_names[/code-inline] section of the response[/td][/tr] [tr][td][b]license_type[/b][/td][td]string[/td][td]Playtime is divided up for each game by the type of license used. See the GetCurrentClientConnections section above for the list.[/td][/tr] [tr][td][b]playtime_seconds[/b][/td][td]uint32[/td][td]total playtime for this game and license type, in seconds, for the requested period.…
[doclink=marketing/upcoming_events/themed_sales/dinos_robots_2027]More info[/doclink]. [/td][/tr] [tr][td]Apr 12 Apr 19[/td][td]Racing Fest[/td] [td][url=https://partner.steamgames.com/optin/sale/racing_2027]Registration details[/url][/td] [td]Games about going [i]fast[/i]. …
[doclink=marketing/upcoming_events/themed_sales/racing_2027]More info[/doclink]. [/td][/tr] [tr][td]Apr 22 Apr 26[/td][td]Witch Fest[/td] [td][url=https://partner.steamgames.com/optin/sale/witch_2027]Registration details[/url][/td] [td]Games that are witchy! …
If you've came here by accident and are looking for additional information about the program, please click [url=https://partner.steamgames.com/doc/sitelicense]here[/url] to get to the program's info page. [callout] [list] [h3][b]Recommended Setup[/b][/h3] [*][b][u]PC Cafés - Patrons log in with their personal Steam account for the full Steam experience[/u][/b] This setup lets users experience Steam at your location in exactly the same way as they would at home. …
[/url][/h4] [/list][/callout] [callout] [list] [*][u][b]VR Arcades Only - Dedicated Steam Account per VR station[/b][/u] This model allows VR arcades to create a dedicated Steam account for each station. …
[/list] You can toggle those display options manually. In your base game's Edit Store Page section, select the Special Settings tab and scroll down to Associated Demos to see these options. …
[/callout] [section]Demo visibility in the Steam store[/section] Demos can appear anywhere in Steam that a free game could appear. This includes lists such as the "New & Trending" as well as lists within store hubs, tag pages, genre pages, and so forth. [section]Frequently Asked Questions[/section] [b]Q: Can I make a demo accessible on the full game's 'coming soon' page?…
[/olist] To get and set version information for a Workshop item, use these Steamworks APIs: [list] [*][api]ISteamUGC::SetRequiredGameVersions[/api] – when submitting an update, the user can specify the min/max beta branches the item is valid for [*][api]ISteamUGC::GetNumSupportedGameVersions[/api] – returns the number of versions the item has [*][api]ISteamUGC::GetSupportedGameVersionData[/api] – returns the min/max branch for the specific item version [/list] [section]Best practices for game developers[/section] With an ideal setup of game versions and mod versions, Steam will automatically download the right mod version for the version of the game being run. Below are a few important things that game developers should keep in mind in order to use these features correctly, and to best support their mod authoring community. [list] [*][b]Deliberately manage your build branches[/b] - Visit the Steamworks build management page and craft your set of previous game versions carefully. …
[section]Free to Play and In-Game Sales[/section] You have two choices for sales made within game and we believe strongly that option #1 will be better for your game and customers. [list] [*] You can add the new currencies to your in-game pricing table and using the [webapi]ISteamMicroTxn/GetUserInfo[/webapi] Web API, know which currency a user should be charged in. …
For purposes of monthly payout from Steam, this example would be considered a USD transaction of $10 value. [/list] …
As such this API [b]MUST[/b] be called from a secure server, and can never be used directly by clients! [section=GetAssetClassInfo]GetAssetClassInfo[/section] [code=http]GET https://api.steampowered.com/ISteamEconomy/GetAssetClassInfo/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API user authentication key.…
[/td][/tr] [tr][td][b]contextid[/b][/td][td]uint64[/td][td]✔[/td][td]The context in the app to get exported items from.[/td][/tr] [/table] Retrieves the list of assets from another game to import. [b]NOTE:[/b] This call requires a publisher API key to use this method. As such this API [b]MUST[/b] be called from a secure server, and can never be used directly by clients! …
[b]NOTE:[/b] This is a Service interface, methods in this interface should be called with the [code-inline]input_json[/code-inline] parameter. For more info on how to use the Steamworks Web API please see the [doclink=webapi_overview][/doclink]. [section=GetAppList]GetAppList[/section] [code=http]GET https://partner.steam-api.com/IStoreService/GetAppList/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Any web API key.…
The number of results is limited, so multiple requests should be made to obtain the full list. The results are returned in order of [code-inline]appid[/code-inline], subsequent requests should pass the last appid returned by the previous request as the [code-inline]last_appid[/code-inline] parameter. …
[/list] [/list] If you're having trouble deciding which tags make sense, take a look at similar games on Steam and note the tags applied to those games. …
To find the wizard, visit your 'Edit Store Page' section in Steamworks for your game and scroll down the 'basic info' tab to the 'Tags' section. [*][b]On your store page[/b] - You can remove tags directly from your store page. To do so, click the '+' (plus) symbol next to the list of tags that appear to the right of your screenshots on your store page. …
Otherwise, [b]false[/b] if the request handle is invalid. [subsection=SetHTTPRequestUserAgentInfo]SetHTTPRequestUserAgentInfo[/subsection] [code=cpp]bool SetHTTPRequestUserAgentInfo( HTTPRequestHandle hRequest, const char *pchUserAgentInfo );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]hRequest[/b][/td][td][apitype]ISteamHTTP::HTTPRequestHandle[/apitype][/td][td]The request handle to set the user agent info for.[/td][/tr] [tr][td][b]pchUserAgentInfo[/b][/td][td]const char *[/td][td]The string to append to the end of the user agent.[/td][/tr] [/table] Set additional user agent info for a request. …
[/olist] [section]Review all of your games[/section] Please check the following link to find a list of any of your games that are missing a rating in Indonesia. https://partner.steamgames.com/healthcheck/missingrequiredratings [section]The Indonesian Age-Rating System[/section] Age ratings in Indonesia are made up of 6 tiers of rating [list] [*]3+ [*]7+ [*]13+ [*]15+ [*]18+ [*]Refused Classification [/list] You can learn more by visiting the official IGRS website: https://igrs.id/rating-info [section]Frequently Asked Questions[/section] [b]Q. …
[/list] Accordingly, Actual Authority rights are limited. To request that a user be given Actual Authority, please [url=https://help.steampowered.com/en/wizard/HelpWithPublishing?…
[doclink=features/keys]Learn more about product keys here.[/doclink][/td] [/tr] [tr] [td][b]View Financial Info[/b][/td] [td]Can view sales and download data for your application and packages.[/td] [/tr] [tr] [td][b]Manage Signing[/b][/td] [td]Can manage digital signing for your title. …
Once approved, you should use the [webapi]ISteamMicroTxn/FinalizeTxn[/webapi] WebAPI to complete the agreement. The additional parameters needed for InitTxn are: [list] [*] [b]billingtype[0][/b] - Valid options are: "Steam" or "Game". Using "Steam" is the preferred method [*] [b]period[0][/b] - Period for recurring billing. …
Your game server should call GetReport frequently, at least every couple of seconds, so that it can always be up-to-date. Additional Web APIs for recurring payments are: [list] [*] [webapi]ISteamMicroTxn/CancelAgreement[/webapi] - Cancels a recurring billing agreement. [*] [webapi]ISteamMicroTxn/GetUserAgreementInfo[/webapi] - Get detailed information of the recurring billing agreement for a user. [*] [webapi]ISteamMicroTxn/AdjustAgreement[/webapi] - Add time to the payment schedule of an agreement [/list]…
[b]Returns:[/b] [apitype]steam_api::SteamAPICall_t[/apitype] to be used with a [apitype]ISteamFriends::FriendsEnumerateFollowingList_t[/apitype] call result. [b]Example:[/b] [code=cpp]class CEnumerateFollowingListExample { public: void GetWhoWeFollow(); private: void OnFriendsEnumerateFollowingList( FriendsEnumerateFollowingList_t *pCallback, bool bIOFailure ); CCallResult< CEnumerateFollowingListExample, FriendsEnumerateFollowingList_t > m_SteamCallResultFriendsEnumerateFollowingList; int m_nFollowersParsed; }; void CEnumerateFollowingListExample::GetWhoWeFollow() { m_nFollowersParsed = 0; printf( "Getting the list of users that we follow.\n" ); SteamAPICall_t handle = SteamFriends()->EnumerateFollowingList( 0 ); m_SteamCallResultFriendsEnumerateFollowingList.Set( handle, this, &CEnumerateFollowingListExample::OnFriendsEnumerateFollowingList ); } void CEnumerateFollowingListExample::OnFriendsEnumerateFollowingList( FriendsEnumerateFollowingList_t *pCallback, bool bIOFailure ) { if ( pCallback->m_eResult !…
[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td][/td][/tr] [/table] Flushes the display cache for assets. This will result in calls to GetAssetClassInfo for each asset class the next time it is displayed. [b]NOTE:[/b] This call requires a publisher API key to use this method. As such this API [b]MUST[/b] be called from a secure server, and can never be used directly by clients! …
[/td][/tr] [tr][td][b]get_sent_offers[/b][/td][td]bool[/td][td]✔[/td][td]Request the list of sent offers.[/td][/tr] [tr][td][b]get_received_offers[/b][/td][td]bool[/td][td]✔[/td][td]Request the list of received offers.[/td][/tr] [tr][td][b]get_descriptions[/b][/td][td]bool[/td][td]✔[/td][td]If set, the item display data for the items included in the returned trade offers will also be returned.…