pCallback.m_bSubmitted ) return; // Use some max input length that we passed into ShowGamepadTextInput, +1 for the null terminator. const uint32 MAX_INPUT_LENGTH = 64 + 1; uint32 length = SteamUtils()->GetEnteredGamepadTextLength(); char* szTextInput[MAX_INPUT_LENGTH]; bool success = SteamUtils()->GetEnteredGamepadTextInput( szTextInput, length ); if ( !…
pCallback.m_bSubmitted ) return; // Use some max input length that we passed into ShowGamepadTextInput, +1 for the null terminator. const uint32 MAX_INPUT_LENGTH = 64 + 1; uint32 length = SteamUtils()->GetEnteredGamepadTextLength(); const char* szTextInput[MAX_INPUT_LENGTH]; bool success = SteamUtils()->GetEnteredGamepadTextInput( szTextInput, length ); if ( !…
[/url] [section][b]Animated Profile Backgrounds[/b][/section] [h4]Visible in your Steam profile. Create 1-4 of these, ideally. Should be a looping .mp4 [i]and[/i] .webm under 4MB. The files should have a fade to black baked into the bottom of them for a smooth transition to black on the profile bottom. …
Refer to the template (downloadable above) for the area in the middle occluded by the profile.[/h4] [list] [*]300 x 168px .webm <1MB (for preview purposes) [*]300 x 168px .mp4 <1MB (for preview purposes) [*]1920 x 1080px .jpg (still) < 350KB [*]1920 x 1080px .mp4 <4MB [*]1920 x 1080px .webm <4MB [/list] [img]https://steamcdn-a.akamaihd.net/steamcommunity/public/images/steamworks_docs/english/anim_BG_GIF.gif[/img] [url=https://store.steampowered.com/points/shop/c/backgrounds](Click here to see examples live in the Points Shop.)…
[/td][/tr] [/table] Gets the time of purchase of the specified app in Unix epoch format (time since Jan 1st, 1970). This is useful for rewarding users based on their initial purchase date. [b]Returns:[/b] [apitype]steam_api::uint32[/apitype] The earliest purchase time in Unix epoch format (seconds since Jan 1st, 1970). …
param1=value1;param2=value2;param3=value3;[/code-inline] while the game is already running. The new params can be queried with [api]ISteamApps::GetLaunchCommandLine[/api] and [api]ISteamApps::GetLaunchQueryParam[/api]. …
[section=AuthenticateUser]AuthenticateUser[/section] [code=http]POST https://partner.steam-api.com/ISteamUserAuth/AuthenticateUser/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]Should be the users steamid, unencrypted.…
[/td][/tr] [/table] [section=AuthenticateUserTicket]AuthenticateUserTicket[/section] [code=http]GET https://partner.steam-api.com/ISteamUserAuth/AuthenticateUserTicket/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[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]appid of game[/td][/tr] [tr][td][b]ticket[/b][/td][td]string[/td][td]✔[/td][td]Convert the binary ticket data from GetAuthTicketForWebApi into a hexadecimal string and pass that string in as this parameter.…
[section]Library Asset Templates[/section] [table] [tr][td][b]Templates[/b][/td] [td] [url=https://www.dropbox.com/scl/fo/cvkwbosmrimklcl9h0qko/AF5IPErKP-mQM_3YO1Dw2lA?rlkey=b3ad0izykq367g4luasrinw9z&dl=0]Download templates[/url] for sizing and text placements on library images. [/td][/tr] [tr][td][b]Contents[/b][/td] [td][list] [*]Library Capsule [*]Library Header [*]Hero Graphic [*]Logo [/list][/td][/tr] [/table] [section]Visibility[/section] Note that once uploaded, Library Assets are only visible for applications that have a published store page on Steam. …
[b]Size: [/b]3840px x 1240px (an additional half-size 1920px x 620px PNG will be auto-generated from larger file) [subsection=logo]Library Logo [color=#ca5029]Required[/color][/subsection] [docimg=Logo_example_1.png]Logo_example_1.png[/docimg] [b]Usage:[/b] Appears at the top of a user’s library details page for this product, placed on top of the hero graphic. …
It replaces [code-inline]store.steampowered.com/appreviews/<appid>?json=1[/code-inline]; see [url=#migrating]Migrating from /appreviews[/url] below. [b]NOTE:[/b] This is a Service interface, methods in this interface should be called with the [code-inline]input_json[/code-inline] parameter. …
Empty means english; "all" means every language. Example usage: languages[0]='english', languages[1]='french', etc.[/td][/tr] [tr][td][b]day_range[/b][/td][td]uint32[/td][td][/td][td]Only used by the Helpful filter. Number of days back from today to look for reviews. …
This can be done by setting the environment variable ENABLE_VULKAN_RENDERDOC_CAPTURE=1. You can do this in Steam by clicking the app's gear icon and editing the command line to be: [code]ENABLE_VULKAN_RENDERDOC_CAPTURE=1 %command%[/code] If the capture button is disabled or not working and you see the API listed as Not Presenting you may need to add EnableFrameEndMarkers=1 to your launch options as well (before %command%). [code]ENABLE_VULKAN_RENDERDOC_CAPTURE=1 EnableFrameEndMarkers=1 %command%[/code] [section]Additional Performance Tools[/section] Additional developer tools for evaluating performance can found here: https://gitlab.steamos.cloud/frame-public/frame-developer-tools [section]Tracking Errors[/section] If you run into serious tracking issues please let us know. …
[/td][/tr] [tr=k_ERemotePlayInputMouseMotion][td][b]k_ERemotePlayInputMouseMotion[/b][/td][td]1[/td][td]Mouse motion event.[/td][/tr] [tr=k_ERemotePlayInputMouseButtonDown][td][b]k_ERemotePlayInputMouseButtonDown[/b][/td][td]2[/td][td]Mouse button down event.…
[/td][/tr] [tr=k_ERemotePlayMouseButtonMiddle][td][b]k_ERemotePlayMouseButtonMiddle[/b][/td][td]0x0010[/td][td]The middle mouse button.[/td][/tr] [tr=k_ERemotePlayMouseButtonX1][td][b]k_ERemotePlayMouseButtonX1[/b][/td][td]0x0020[/td][td]The first extended mouse button.[/td][/tr] [tr=k_ERemotePlayMouseButtonX2][td][b]k_ERemotePlayMouseButtonX2[/b][/td][td]0x0040[/td][td]The second extended mouse button.…
[section=GetHistoryCommandDetails]GetHistoryCommandDetails[/section] [code=http]GET https://partner.steam-api.com/IGameInventory/GetHistoryCommandDetails/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=GetUserHistory]GetUserHistory[/section] [code=http]GET https://partner.steam-api.com/IGameInventory/GetUserHistory/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.…
"time_updated": "200000", // Unix epoch time (time since Jan 1st, 1970). // 64-bit value provided by the developer when the session is created which will be passed to the game when the game is launched. // This allows you to easily tie the session object to your own backend object, it is not used internally by Steam. "context": "31415926", "user_status": [ // Array of "UserStatus" objects (described above) ] } [/code] [h4]RequestedSession[/h4] [code] { "sessionid": "1", // uint64 "include_all_user_messages": "0" // bool } [/code] [section=APIs]Common APIs available.[/section] See [webapi]IGameNotificationsService[/webapi] for the full list. …
[section=ItemVoteSummary]ItemVoteSummary[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemVoting/ItemVoteSummary/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=UserVoteSummary]UserVoteSummary[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemVoting/UserVoteSummary/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=GetAllApprovalRequests]GetAllApprovalRequests[/section] [code=http]GET https://partner.steam-api.com/IPublishedFileModerationService/GetAllApprovalRequests/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=ProcessApprovalRequest]ProcessApprovalRequest[/section] [code=http]POST https://partner.steam-api.com/IPublishedFileModerationService/ProcessApprovalRequest/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.…
[/td][/tr] [/table] 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. …
[/td][/tr] [tr][td][b]unPage[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td]The page number of the results to receive. This should start at 1 on the first call.[/td][/tr] [/table] Query for all matching UGC. You can use this to list all of the available UGC for your app. …
A build is the result of uploading your content to steam, it can contain 1 or more of your depots and is a representation of the content in those depots at that point in time. Builds are uploaded by developers using a command-line provided in the Steamworks SDK. …
[section=manifests]Manifests[/section] A manifest is a listing of all the files which are included with a depot build, along with metadata for all of the files, including the file size, SHA1 hash, and a set of flags. Manifests are output as text files during the depot build process, and can be viewed from the [url=https://partner.steamgames.com/apps/builds]Your Builds[/url] page in App Admin. …
For multi-disc soundtracks, track numbers must be unique across disks. For example, "disc 1, track 1" might have track ID 1 and "disc 2, track 1" might have track ID 10. [h4]Track Numbering[/h4] The Steam Music Player determines play order from the filenames, not the metadata. If your soundtrack's play order is important, the track number should be included at the start of the filename. If your soundtrack has 10 or more songs, the files 1-9 should begin with a leading 0 (e.g. "01 - Song Title", "02 - Song Title", and so on). [section]Preparing For Release[/section] As you prepare for release, some of the process will depend on whether you are releasing a stand-alone soundtrack vs. a soundtrack that is attached to a base game on Steam. …
[code] itemdefid: 10 type: item name: Sword itemdefid: 11 type: item name: Shield itemdefid: 100 type: generator name: Generator A bundle: 101x1;102x9 tags: color:red itemdef: 101 type: generator name: Generator Legendary bundle: 10;11 tags: quality:legendary itemdef: 102 type: generator name: Generator Common bundle: 10;11 tags: quality:common [/code] Another way to assign tags would be to use the [code-inline]tag_generator[/code-inline] item definition type. …
For the [code-inline]tag_generator_values[/code-inline] field, it is a list of [code-inline]tag_token:chance[/code-inline] separated by the ";" character. If chance is omitted it defaults to 1.…
These are displayed in different places on the Steam store and in customer's libraries. [docimg=Header_1.jpg]Header_1.jpg[/docimg] [callout=red,foo][b]August, 2024[/b]: Steam is now accepting larger asset sizes for most capsules. Please check the [url=https://www.dropbox.com/scl/fo/cvkwbosmrimklcl9h0qko/AF5IPErKP-mQM_3YO1Dw2lA?…
[h4]Submitting requests[/h4] All requests should be sent using HTTP 1.1 GET or POST using a TLS secure connection. The Content-Type should be "application/x-www-form-urlencoded" and the POST parameters should be in the body of the request in standard form urlencoding format. …
It is used to reference the transaction within the Steam system. [*] Steam ID - The user ID received from the Steam client in step 3. [*] App ID - The unique identifier of your Steam game. [*] Language - The ISO 639-1 language code that your item(s) are listed in. [*] Currency - The ISO 4217 currency code that your price(s) are listed in. …
[docimg=SaleEditor_AddItems.png]SaleEditor_AddItems.png[/docimg] [subsection]1. Smart section (requires a linked app list)[/subsection] This is a set of options that will populate an app section using some pre-defined criteria. …
There are a few different options to make the layout interesting. 2/3/4/3 [subsection]Special options for single item-per-row[/subsection] If you choose to display a single (1) item per row, then you'll find a new set of options appears for how to display that single item. …
[docimg=rp_group_images.jpg]Rich Presence is shown in multiple contexts[/docimg] In this documentation, we’re going to cover two settings you can define to control how your game appears in players’ friends list: [list][*]Rich Presence String – used for displaying information about player state in your game that their friends may want to know [*]Friend Grouping – used for grouping friends together that are playing together in the game [/list] [section]Game controlled Rich Presence string[/section] [docimg=rp3_1.jpg]Friends can see more information about games at a glance[/docimg] The system in place is customizable so that your team can determine which information is the most interesting to a player's friends. …
"#StatusWithScore" : "#StatusWithoutScore" ); // Sample of grouping friends together when they play together if ( nPartyMemberCount > 1 && strPartyID ) { // If we're in a party of more than one user, and we have a valid PartyID then // inform Steam's Rich Presence system. …