For positional based leaderboards, use Ascending. For high-score, use Descending. [*] [b]Display Type[/b] - Determines the types of data to be displayed with the leaderboard. Select from Numeric, Seconds or Milliseconds. [*] [b]Writes[/b] - If this is set to Trusted, the leaderboard scores cannot be set by clients, and can only be set by via SetLeaderboardScore WebAPI. …
[/list] [docimg=spacewar_leaderboards]spacewar_leaderboards[/docimg] [section]Step 2 - Encapsulating Leaderboard work[/section] The following code is game independent and can be added to your game as you see fit. The class is fully functional as is but can be easily extended to meet any further needs. …
[/list] [/list] [b]Example code[/b] [code] curl --request POST \ --header "Content-Type: application/x-www-form-urlencoded" \ --form appid=30400 \ --form 'itemdefs=[{"appid":"30400","itemdefid":"418","type":"item","display_type":"bag","name":"Bag of Stuff","description":"This bag contains stuff.","background_color":"993300","tradable": true,"marketable": true,"commodity": true,"tags":"class:human;type:bag"}, {"appid": "30400","itemdefid":"403","type":"item","display_type":"cat","name":"Cat of Bags","description":"This cat contains multitudes.…
[section=GetAccountList]GetAccountList[/section] [code=http]GET https://api.steampowered.com/IGameServersService/GetAccountList/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.…
[section=ResetLoginToken]ResetLoginToken[/section] [code=http]POST https://api.steampowered.com/IGameServersService/ResetLoginToken/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.…
[list] [*] The specified stat exists in App Admin on the Steamworks website, and the changes are published. [*] [api]ISteamGameServerStats::RequestUserStats[/api] has completed and successfully returned its callback. [*] The type passed to this function must match the type listed in the App Admin panel of the Steamworks website. [/list] [subsection=RequestUserStats]RequestUserStats[/subsection] [code=cpp]SteamAPICall_t RequestUserStats( CSteamID steamIDUser );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]steamIDUser[/b][/td][td][apitype]steam_api::CSteamID[/apitype][/td][td]The Steam ID of the user to request the stats for.…
[list] [*] The specified stat exists in App Admin on the Steamworks website, and the changes are published. [*] [api]ISteamGameServerStats::RequestUserStats[/api] has completed and successfully returned its callback for the specified user. [*] The type passed to this function must match the type listed in the App Admin panel of the Steamworks website. [*] The stat must be allowed to be set by game server. …
[/td][/tr] [/table] Here's a description of the various activation types: [table] [tr][th]Activation Type[/th][th]Description[/th][/tr] [tr][td]Regular Press[/td][td]Regular Press Activator is the default type. …
[/td][/tr] [/table] These settings are specific to certain activation types: [table] [tr][th]Name[/th][th]Values[/th][th]Activation Type[/th][th]Description[/th][/tr] [tr][td]Interruptable[/td][td]Off, On[/td][td]Regular Press, Release Press[/td][td]Interruptable activators can be paused or stopped by other activators. …
[subsection=BReleaseSteamPipe]BReleaseSteamPipe[/subsection] [code=cpp]bool BReleaseSteamPipe( HSteamPipe hSteamPipe );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]hSteamPipe[/b][/td][td][apitype]ISteamClient::HSteamPipe[/apitype][/td][td]The pipe to release.…
[subsection=CreateLocalUser]CreateLocalUser[/subsection] [code=cpp]HSteamUser CreateLocalUser( HSteamPipe *phSteamPipe, EAccountType eAccountType );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]phSteamPipe[/b][/td][td][apitype]ISteamClient::HSteamPipe[/apitype] *[/td][td][/td][/tr] [tr][td][b]eAccountType[/b][/td][td][apitype]steam_api::EAccountType[/apitype][/td][td][/td][/tr] [/table] Create a Steam user that won't be shared with anyone else. …
[table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_SteamID[/b][/td][td][apitype]steam_api::CSteamID[/apitype][/td][td]The Steam ID of the user that is wanting to connect.…
This information can be used to determine which server is bad. [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_eResult[/b][/td][td][apitype]steam_api::EResult[/apitype][/td][td]The result of the operation.…
[section=EnumerateUserSubscribedFiles]EnumerateUserSubscribedFiles[/section] [code=http]POST https://partner.steam-api.com/ISteamRemoteStorage/EnumerateUserSubscribedFiles/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 publisher authentication key.…
[section=SubscribePublishedFile]SubscribePublishedFile[/section] [code=http]POST https://partner.steam-api.com/ISteamRemoteStorage/SubscribePublishedFile/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 publisher authentication key.…
[section=GetRecentlyPlayedGames]GetRecentlyPlayedGames[/section] [code=http]GET https://partner.steam-api.com/IPlayerService/GetRecentlyPlayedGames/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.…
[section=GetSteamLevel]GetSteamLevel[/section] [code=http]GET https:/partner.steam-api.com/IPlayerService/GetSteamLevel/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.…
Networking API intended to make it easy to port non-connection-oriented code to take advantage of P2P connectivity and [doclink=features/multiplayer/steamdatagramrelay]Steam Datagram Relay[/doclink]. [api]ISteamNetworkingSockets[/api] is connection-oriented (like TCP), meaning you need to listen and connect, and then you send messages using a connection handle. …
The difference is mainly in your responsibility to explicitly establish a connection and the type of feedback you get about the state of the connection. Both interfaces can do "P2P" communications, both support both unreliable and reliable messages, fragmentation and reassembly, and both can be used to take advantage of [doclink=features/multiplayer/steamdatagramrelay]Steam Datagram Relay[/doclink] to talk to dedicated servers. …
For positional based leaderboards, use Ascending. For high-score, use Descending. [*]Display Type - Determines the types of data to be displayed with the leaderboard. Select from Numeric, Seconds or Milliseconds. [*]Writes - If this is set to Trusted, the leaderboard scores cannot be set by clients, and can only be set by via SetLeaderboardScore WebAPI. …
Once a leaderboard has been created, you can modify the sort method and display type for a leaderboard through the Game Admin. When FindOrCreateLeaderboard is called for an existing leaderboard, the sort method and display type parameters are ignored. …
[subsection=GetOPFSettings]GetOPFSettings[/subsection] [code=cpp]void GetOPFSettings( AppId_t unVideoAppID );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]unVideoAppID[/b][/td][td][apitype]steam_api::AppId_t[/apitype][/td][td]The video app ID to get the OPF details of.…
After receiving this you can use [api]ISteamVideo::GetOPFStringForApp[/api] to access the OPF details. [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_eResult[/b][/td][td][apitype]steam_api::EResult[/apitype][/td][td]The result of the operation. …
[section=CanTrade]CanTrade[/section] [code=http]GET https://partner.steam-api.com/ISteamEconomy/CanTrade/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 publisher authentication key.…
[section=StartTrade]StartTrade[/section] [code=http]GET https://partner.steam-api.com/ISteamEconomy/StartTrade/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 publisher authentication key.…
[section=GetTradeHistory]GetTradeHistory[/section] [code=http]GET https://api.steampowered.com/IEconService/GetTradeHistory/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.…
[section=GetTradeOffers]GetTradeOffers[/section] [code=http]GET https://api.steampowered.com/IEconService/GetTradeOffers/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.…
Once you submit your tax information, it is verified with a third party service. This process may take 2-7 business days, and you may be asked to provide additional documentation. Please keep an eye out for emails requesting additional documents. …
Generally, a foreign person is subject to U.S. tax on its U.S. source income. Most types of U.S. source income received by a foreign person are subject to a U.S. tax rate of 30%. A reduced rate, including exemption, may apply if there is a tax treaty between the foreign person's country of residence and the United States. …
[docimg=deck_compat_developer_post_desktop_1.png]deck_compat_developer_post_desktop_1.png[/docimg] [section]FAQ[/section] [b]What application types are eligible for compatibility review?[/b] At this time, this process is only available for games. There is no compatibility review process for other app types, e.g. demos, DLC, tools, or soundtracks, other than in exceptional cases. …
The compatibility review program is a service to help customers understand the type of experience they can expect to have with a game before launching it on Deck or Machine. To that end, we think it's critical that customers see, as quickly as possible, the data that reflects the current state of any game. …
You can find out more about connected devices using the [doclink=api/ISteamRemotePlay][/doclink] If you have optimized your game for remote play on various types of devices, or your game works well with Remote Play Together, you can check the appropriate feature checkboxes in the Basic Info section of the Store Page admin on the partner site, and your game will show up when customers search for games that work well for those use cases. …
For example, if you wanted to add a menu actionset, you could do it like this: [docimg=TouchBindings_1.PNG]TouchBindings_1.PNG[/docimg] [docimg=TouchLayoutMenu.png]TouchLayoutMenu.png[/docimg] [code=cpp] #include "steam/isteaminput.h" void GameInit() { SteamInput()->Init(); } void GameQuit() { SteamInput()->Shutdown(); } void GameLoop() { GameInit(); while ( bRunning ) { const InputActionSetHandle_t k_ActionSetGame = 1; const InputActionSetHandle_t k_ActionSetMenu = 2; SteamInput()->ActivateActionSet( STEAM_INPUT_HANDLE_ALL_CONTROLLERS, BInMenu() ? k_ActionSetMenu : k_ActionSetGame ); ... } GameQuit(); } [/code]…
[section=GetAssetID]GetAssetID[/section] [code=http]GET https://partner.steam-api.com/IEconMarketService/GetAssetID/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 publisher authentication key.…
[section=GetPopular]GetPopular[/section] [code=http]GET https://partner.steam-api.com/IEconMarketService/GetPopular/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 publisher authentication key.…
The [doclink=api][/doclink] catalogs and documents every interface, function, callback, and type supported in the API. Integration with the Steamworks API is never required to ship your product on Steam, but it is highly recommended as it allows you to accomplish many interactions that Steam users expect. …
An event will only come through one or the other, not both. You must make sure that you are registering for the right type of event! Call results must be created as a member in a struct/class using the CCallResult type and you will also need to create the member function that will receive the callback. …
[/b] These are separate tax rates that are applied depending on the content type of your sales. The royalty copyright rate will apply to US sourced sales on games and related DLCs. The royalty film rate will apply to US sourced sales on film and video. …
[/b] Please see the [doclink=#CurrentRates][/doclink] section below for the list of countries where this type of tax is collected and the applicable tax rate. The list is updated as new laws become effective. In all other countries, we are selling cross-border and are not required to collect. …