[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]appid of game[/td][/tr] [tr][td][b]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]The asset ID to operate on[/td][/tr] [tr][td][b]contextid[/b][/td][td]uint64[/td][td]✔[/td][td]The context to fetch history for[/td][/tr] [tr][td][b]actorid[/b][/td][td]uint32[/td][td]✔[/td][td]A unique 32 bit ID for the support person executing the command[/td][/tr] [/table] [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! [section=SupportGetAssetHistory]SupportGetAssetHistory[/section] [code=http]GET https://partner.steam-api.com/IGameInventory/SupportGetAssetHistory/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.…
It is higher performance and uses a higher-quality reliability layer. It also supports ordinary UDP connectivity. An open-source version is available on [url=https://github.com/ValveSoftware/GameNetworkingSockets]github[/url]. …
Because it is very similar to UDP, it may be the easiest API to port existing UDP code. However, unlike raw UDP, the API supports messages larger than a single packet, and reliable message delivery. Traffic is relayed through the Valve backbone, or a direct connection may be established when appropriate. [*] [api]ISteamNetworkingSockets[/api] is a lower-level connection-handle-oriented interface for sending and receiving messages. [*] [api]ISteamNetworkingUtils[/api] has miscellaneous utilities, including tools for estimating ping times between arbitrary internet hosts. [*] [api]steamnetworkingtypes[/api] is a header that has many common types and utilities. [*] [doclink=features/multiplayer/steamdatagramrelay]Steam Datagram Relay[/doclink] is a service for relaying your game traffic over the Valve backbone. …
Batches are used to communicate intent to the Steam Cloud for your set of modifications, and help reduce the likelihood of file conflicts. A full batch sequence will look like the following: [list] [*] [code-inline]BeginAppUploadBatch[/code-inline] call, listing the intended uploads and deletes [*] 0 or more [b]uploads[/b], using the sequence: [list] [*] [code-inline]BeginHTTPUpload[/code-inline] [*] HTTP [code-inline]PUT[/code-inline] operation to upload the file [*] [code-inline]CommitHTTPUpload[/code-inline] [/list] [*] 0 or more [b]deletes[/b], using [code-inline]Delete[/code-inline] [*] [code-inline]CompleteAppUploadBatch[/code-inline] [/list] Note that you must call [code-inline]CompleteAppUploadBatch[/code-inline] whether or not all uploads and/or deletes complete successfully. …
One of the steps in that paperwork is to pay the Steam Direct Fee, which you can do with any payment method that Steam supports in your country. You will be directed to the Steam store to complete the transaction, and then directed back to the Steamworks website to continue with your paperwork. …
The Steam Direct Fee may be paid with any payment method that Steam supports in your country, excluding Steam wallet funds. Once the Steam Direct Fee is paid, an app credit will be attached to the Steam account of the person who paid the fee. …
This method has previous versions which are no longer officially supported. They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Fixes returning the game name in XML. …
This method has previous versions which are no longer officially supported. They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Fixes returning the game name in XML. …
v=P6CUQeHIxDA[/url] Topics covered: [list] [*]Steam Deck Hardware [*]Steam on Deck [*]Proton Support [*]Steam Input [*]Steam Deck Verified [*]APU deep dive with AMD [/list] …
[/td][/tr] [tr][td][api]ISteamController[/api][/td][td]Steam Controller support API (deprecated and replaced with ISteamInput)[/td][/tr] [tr][td][api]ISteamFriends[/api][/td][td]Interface to access information about individual users and interact with the [doclink=features/overlay][/doclink].…
[/td][/tr] [tr][td][api]ISteamInput[/api][/td][td]Interface for supporting Xbox, PlayStation, Switch and Steam Controllers.[/td][/tr] [tr][td][api]ISteamInventory[/api][/td][td]Steam Inventory query and manipulation API.…
. [*] [b]toolname[/b] - "drmtoolp" is currently the only supported toolname parameter. [*] [b]flags[/b] - Bitmask of the following numeric flags specifying tool behavior. [list=1] [*] [b]0[/b] - Normal wrap (most protection) [*] [b]6[/b] - Compatibility mode (disables obfuscation) [*] [b]32[/b] - Skip debugger check [*] [b]38[/b] - compatibility mode and also skip debugger check (least protection) [/list] [/list] Example run_build.bat script to login, apply DRM, build and upload the build to Steam (where App ID is 480): [code] builder\steamcmd.exe +login mysteamaccount +drm_wrap 480 "D:\src\steamworkssdk\steamworksexample\release\steamworksexample.exe" "D:\src\steamworkssdk\tools\ContentBuilder\content\windows_content\SteamworksExample.exe" drmtoolp 0 +run_app_build ..…
My C# / .Net game doesn't run after applying the Steam wrapper[/b] [b]A.[/b] The Steam wrapper doesn't support .Net applications. Instead of using the DRM wrapper, use [doclink=sdk/api#SteamAPI_RestartAppIfNecessary]SteamAPI_RestartAppIfNecessary[/doclink]. …
Welcome to the Steamworks Web API Reference! Here you will find a complete listing of the currently supported Web API interfaces and methods. To learn more about how to use the Steamworks Web API please see the [doclink=webapi_overview][/doclink]. …
[/td][/tr] [tr][td][webapi]ISteamMicroTxn[/webapi][/td][td]This is the interface used to support [doclink=features/microtransactions]Microtransactions (In-Game Purchases)[/doclink].[/td][/tr] [tr][td][webapi]ISteamNews[/webapi][/td][td]Provides access to the Steam News functionality.…
[section=Overview]Overview[/section] The Xbox One controller, originally designed for Microsoft's Xbox One home game console, was the second 3rd-party device to get official Steam Input support (simultaneous with the Xbox 360 controller and generic XInput devices). In contrast to the PlayStation 4 controller and Steam controller, it has neither trackpads nor gyroscope. …
[docimg=inventory_tag_filtering.png]inventory_tag_filtering.png[/docimg] To use tags, first define the categories and tags directly in the Item Definitions, then provide user-visible localized strings in English and any other languages you plan to support. Tags that do not have at least an English localization string will be ignored by inventory features. The values used in the item definition should be short, simple text tokens. …
[subsection]Item Tag Localization[/subsection] Once you've defined tags for your items, to make them visible to users you must provide user-visible translations at least in English, but preferably in all supported languages. This can be set as part of your SteamWorks configuration, on the [url=https://partner.steamgames.com/apps/inventoryservice]Inventory Service[/url] page for your application. …
If you are having problems solving any Steam Family sharing related issues using these APIs, please contact Steam Support. …
This includes the Steam controller and all third party devices supported by the system. This is [i]not[/i] a detailed listing of methods used for interacting with the software from within your game. …
[section]Overview[/section] The Steam HTML Surface API enables the display and render of HTML-based pages directly in a game or application. It is built upon the Chromium Embedded Framework and supports HTML5 markup. [section=GettingStarted]Getting Started with ISteamHTMLSurface[/section] The [api]ISteamHTMLSurface[/api] interface is implemented in [code-inline]isteamhtmlsurface.h[/code-inline] and can be found in the [code-inline]public/steam[/code-inline] folder in the [doclink=sdk]Steamworks SDK[/doclink]. …
It's rarely a good idea to default to always-on though, and if your game supports more than 4 players then always-on is never recommended. Then when the player releases their push-to-talk hotkey, or the gameplay session ends you should call [api]ISteamUser::StopVoiceRecording[/api] to stop recording. …
When a user has been banned by the RequestPlayerGameBan API in the ICheatReportingService, the following happens: [list] [*] The account cannot join secure servers for the AppIDs that are banned [*] The ban is publicly displayed on their Steam Community profile [*] If the user is accessing the game via [url=https://support.steampowered.com/kb_article.php?ref=3784-QLBM-5731]Family Library Sharing[/url], the ban is also applied to the actual owner of the game [/list] [section]Requirements[/section] [b]Multi-player[/b] Banning depends on the game server to exclude banned users from games. …
Because Steam Cloud is cross platform the files need to have valid names on all supported OSes and file systems. See Microsoft's documentation on [url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx]Naming Files, Paths, and Namespaces[/url]. [*] The current user's Steam Cloud storage quota has been exceeded. …
Because Steam Cloud is cross platform the files need to have valid names on all supported OSes and file systems. See Microsoft's documentation on [url=https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx]Naming Files, Paths, and Namespaces[/url]. [*] The current user's Steam Cloud storage quota has been exceeded. …
[/td][/tr] [/table] This method has previous versions which are no longer officially supported. They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Fixes returning the leaderboard name in XML. …
[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]appid of game[/td][/tr] [/table] This method has previous versions which are no longer officially supported. They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Fixes returning the leaderboard name in XML. …
[/td][/tr] [tr][td][b]eLeaderboardSortMethod[/b][/td][td][apitype]ISteamUserStats::ELeaderboardSortMethod[/apitype][/td][td]The sort order of the new leaderboard if it's created.[/td][/tr] [tr][td][b]eLeaderboardDisplayType[/b][/td][td][apitype]ISteamUserStats::ELeaderboardDisplayType[/apitype][/td][td]The display type (used by the Steam Community web site) of the new leaderboard if it's created.…
[b]See Also:[/b] [api]ISteamUserStats::GetLeaderboardEntryCount[/api], [api]ISteamUserStats::GetLeaderboardSortMethod[/api], [api]ISteamUserStats::GetLeaderboardDisplayType[/api] [subsection=GetLeaderboardSortMethod]GetLeaderboardSortMethod[/subsection] [code=cpp]ELeaderboardSortMethod GetLeaderboardSortMethod( SteamLeaderboard_t hSteamLeaderboard );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]hSteamLeaderboard[/b][/td][td][apitype]ISteamUserStats::SteamLeaderboard_t[/apitype][/td][td]A leaderboard handle obtained from [api]ISteamUserStats::FindLeaderboard[/api] or [api]ISteamUserStats::FindOrCreateLeaderboard[/api].[/td][/tr] [/table] Returns the sort order of a leaderboard handle. [b]Returns:[/b] [apitype]ISteamUserStats::ELeaderboardSortMethod[/apitype] The sort method of the leaderboard. …
Valid options are: "Day", "Week", "Month", "Year" [*] [b]frequency[0][/b] - Frequency (in number of days) for recurring billing. Supported values: 1 - 255 [*] [b]recurringamt[0][/b] - Amount to be billed for future recurring billing transactions. [/list] A user may only have one active billing agreement per game. …