Uploading localized assets is a critical step, as it helps customers around the world understand the purchase options you are presenting to them. [docimg=manageeditions3resize_1.png]manageeditions3resize_1.png[/docimg] Once you have managed your editions and uploaded a comparison image, click “Save” to save any changes you have made. …
The Compare Editions asset is much easier for customers to find than having to scroll down and search through the store page for this information. [docimg=manageeditions4resize_1.png]manageeditions4resize_1.png[/docimg] In addition, partners have the ability to display capsule art underneath the purchase option of a given edition on your store page. …
[code] "Action Manifest" { "configurations" { "controller_xboxone" { "0" { "path" "xbox_controller.vdf" } } "controller_steamcontroller_gordon" { "0" { "path" "steam_controller.vdf" } "1" { "path" "steam_controller_motion_controls.vdf" } } } "actions" { } "localization" { } } [/code] Supported controller type strings: [table] [tr][td]Steam Deck Controller[/td][td]controller_neptune[/td][/tr] [tr][td]Steam Controller[/td][td]controller_steamcontroller_gordon[/td][/tr] [tr][td]Xbox 360[/td][td]controller_xbox360[/td][/tr] [tr][td]Xbox One[/td][td]controller_xboxone[/td][/tr] [tr][td]Xbox One Elite Controller[/td][td]controller_xboxelite[/td][/tr] [tr][td]PlayStation 3 Controller[/td][td]controller_ps3[/td][/tr] [tr][td]PlayStation 4 Controller[/td][td]controller_ps4[/td][/tr] [tr][td]DualSense Controller[/td][td]controller_ps5[/td][/tr] [tr][td]DualSense Edge Controller[/td][td]controller_ps5_edge[/td][/tr] [tr][td]Nintendo Switch Pro Controller[/td][td]controller_switch_pro[/td][/tr] [tr][td]Nintendo Switch 2 Pro Controller[/td][td]controller_switch2_pro[/td][/tr] [tr][td]Nintendo Joy-Con (L)[/td][td]controller_switch_joycon_left[/td][/tr] [tr][td]Nintendo Joy-Con (R)[/td][td]controller_switch_joycon_right[/td][/tr] [tr][td]Nintendo Joy-Con Pair[/td][td]controller_switch_joycon_pair[/td][/tr] [tr][td]Remote Play Touch Controller[/td][td]controller_mobile_touch[/td][/tr] [tr][td]Generic Gamepads[/td][td]controller_generic[/td][/tr] [/table] [section]Setting up an Action Manifest File[/section] There are two main ways to setup your action manifest file, either starting from scratch or using an existing IGA file. [subsection]Starting with an In-Game Actions file[/subsection] [subsection]Step 1 - Setting up Dev-mode for Steam Input[/subsection] Before editing the Action Manifest File, we need to enable Steam Input dev-mode so that we can export configurations as a developer and receive error messages if we make mistakes when editing the actions manifest. 1) Go to Steam Big PIcture Mode ->Settings->System and turn on Dev mode for Steam [docimg=export_prestep_1.png]export_prestep_1.png[/docimg] 2) Go to the developer section and turn on "Steam Input Layout Dev Mode" [docimg=export_prestep_2.png]export_prestep_2.png[/docimg] [subsection]Step 2 - Save a configuration[/subsection] If you have an existing IGA file you can save your current configuration out in the controller configuration screen. 1) Select the Gear Icon [docimg=export_step_1.png]export_step_1.png[/docimg] 2) Select "Export layout" [docimg=export_step_2.png]export_step_2.png[/docimg] 3) Select a Title and Description for you game and export the configuration. …
It also allows users to play non-VR content on the headset without a separate device. [docimg=steamframe-controllers_1.png]steamframe-controllers_1.png[/docimg] [subsection]VR Compatibility[/subsection] While you will always get a better user experience by tailoring your title to the Frame Controllers specifically, our controller compatibility modes have become quite robust. SteamVR will always use a Frame Controller binding by default but in the case one is not available it will first look for a [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#XR_KHR_generic_controller]OpenXR Generic Controller[/url] binding, then an [url=https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#semantic-paths-oculus-touch-controller-profile]Oculus Touch[/url] binding, and remap those to the Frame Controller layout. …
. [*] [b]log_callbacks <first callbackID> <last callbackID>[/b] - Logs all callbacks to the console. [*] [b]log_matchmaking_callbacks <0|1>[/b] - Enables/disables logging matchmaking callbacks. [*] [b]log_ipc <counts|verbose> <filter>[/b] - See [doclink=#steamworks_api_logging][/doclink]. …
The command takes a filter param, which can be the interface you are interested in monitoring or the name of the process. Note that the names provided do not always match 1:1 with the ISteam* version, but are usually very close. Specifying "counts" or "verbose" is optional, defaulting to counts. …
Select the branch that you want to use for testing, then save and publish your changes. [docimg=RemotePlayTogetherPartnerConfiguration_1.png]RemotePlayTogetherPartnerConfiguration_1.png[/docimg] [*] If your game is unreleased, send a CD-key to the users you would like to invite for testing. …
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() ? …
(You can localize the quote in other languages) [b]Some guidelines:[/b] [list][*]Reviews should be accurate and you should have permission to post them [*]Quotes should be relatively short (Ideally 1 or 2 short sentences) [*]Quotes should be localized where possible [docimg=reviewexamples.png]reviewexamples.png[/docimg] [/list] [b]Visibility on Steam[/b] Reviews appear directly below the "Recent Events and Announcements" section and above the "About this game" section. …
You can configure the information using BBCode similar to your game description [docimg=awardinput.png]awardinput.png[/docimg] [b]Some guidelines:[/b] [list][*]Awards should be accurate. [*]Include the most important awards. Usually 1-5 awards is enough. Any more makes it confusing for users. The Awards section is collapsed as a default and can be expanded by the user. [*]Awards should be localized where possible[/list] [b]Visibility on Steam[/b] Awards appear directly below the Share and Embed section on the right hand side of your Steam page [docimg=awardlocation_1.PNG]awardlocation_1.PNG[/docimg] …
[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.…
[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.…
[docimg=OkayCapsuleUsage]OkayCapsuleUsage[/docimg] [section]Not Allowed Example[/section] See rules above for details. [docimg=notallowed_1.png]notallowed_1.png[/docimg] [section]Store Page Accolades[/section] We understand that developers want to communicate with their players about the quality of their games, and Steam already has spaces on game store pages to present most of this information. …
You can check out our [doclink=store/accolades]Store Page Accolades documentation[/doclink] for details. [section]Rules Effective Sept 1, 2022[/section] As a reminder, these [b]new rules go into effect Sept 1, 2022[/b] and we ask that all game developers review their graphical assets and make any changes to bring them inline with these new rules. …
Go to the [b]Devkits[/b] tab and click [b]Register[/b] next to the entry for your frame. [docimg=steamframe-register_1.png]steamframe-register_1.png[/docimg] Confirm pairing on the headset and you're ready to deploy! [section]Deploying with the SteamOS DevKit Client[/section] Launch the SteamOS DevKit Client from Steam. …
[code-inline]ENABLE_FOO=1 %command%[/code-inline]).…
[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.…
[/td][/tr] [tr][td][b]appdata[/b][/td][td]uint64[/td][td][/td][td](Optional) App specific data about the type of cheating set by developer. (ex 1 = Aimbot, 2 = Wallhack, 3 = Griefing)[/td][/tr] [tr][td][b]heuristic[/b][/td][td]bool[/td][td][/td][td](Optional) Extra information about the source of the cheating - was it a heuristic.…
[/td][/tr] [tr][td][b]timeend[/b][/td][td]uint32[/td][td]✔[/td][td]The end of the time range. Formatted as Unix epoch time (time since Jan 1st, 1970).[/td][/tr] [tr][td][b]timebegin[/b][/td][td]uint32[/td][td]✔[/td][td]The beginning of the time range. Formatted as Unix epoch time (time since Jan 1st, 1970).…
[section=CreateSession]CreateSession[/section] [code=http]POST https://partner.steam-api.com/IGameNotificationsService/CreateSession/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.…
[b]Example Response:[/b] [code=xml] { "response": { } } [/code] [b]Calling Example:[/b] [code] { "sessionid": "10" } [/code] [section=DeleteSessionBatch]DeleteSessionBatch[/section] [code=http]POST https://partner.steam-api.com/IGameNotificationsService/DeleteSessionBatch/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=GetFriendList]GetFriendList[/section] [code=http]GET https://partner.steam-api.com/ISteamUser/GetFriendList/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]vanityurl[/b][/td][td]string[/td][td]✔[/td][td]The vanity URL to get a SteamID for[/td][/tr] [tr][td][b]url_type[/b][/td][td]int32[/td][td][/td][td]The type of vanity URL. 1 (default): Individual profile, 2: Group, 3: Official game group[/td][/tr] [/table] …
Trailers are displayed at the top of your product's store page and are often one of the first things your potential customers will be seeing. [docimg=Portal2TrailerExample2_1.jpg]Portal2TrailerExample2_1.jpg[/docimg] [section]Best Practices[/section] Trailers are important in marketing your product on Steam. …
[subsection]More Details[/subsection] Check out this presentation from Steam Dev Days 2016 for general best practices for trailers: [url]https://www.youtube.com/watch?v=eok0W1nKjM0&t=14m41s[/url] [section]Uploading a Trailer[/section] To upload your trailers, go to the Store Page Admin > Trailers tab. …
The minimum active level, 0, represents the lowest overall image quality, but the maximum performance. -1 (default) disables foveation. [*][b]xr.VRS.SteamFrame.DynamicFoveation[/b] - When set to 1, the foveation amount will change based on current measured GPU load to try and maintain the target framerate. …
This is a pixel divisor, so sampling will occur at 1.0 / Density. Because of this, note that the lower the value of the density, the bigger the effect on quality! [*][b]xr.VRS.SteamFrame.TestFoveation.FovealWidth[/b] - The size, in float percentage of the screen diagonal (0.0, 1.0], for the foveal region of the screen where FovealDensity is applied. [*][b]xr.VRS.SteamFrame.TestFoveation.MidBandDensity[/b] - The same as FovealDensity, but for the mid-quality band immediately outside the foveal region. [*][b]xr.VRS.SteamFrame.TestFoveation.MidBandWidth[/b] - The size, in float percentage of the screen diagonal (0.0, 1.0], for the mid-quality band immediately outside of the foveal region. …
If so, you should also consider publishing a [doclink=/marketing/event_tools]News Event[/doclink] to share these details with your current players. [*][b][i]Set Your V1.0 Full Release Date[/i][/b] - On the Early Access tab of the Edit Store Page tools a date picker to select a planned 1.0 release date. …
If you're planning on raising your price at or around the time of releasing out of Early Access and want to run a discount to celebrate your V1.0 release, you may want to consider these scenarios: [list][*]You could leave your price as is, run a discount as you release V1.0 out of Early Access and then raise your price after that. [*]You could raise your price as you transition out of Early Access and not run a discount. [*]You could raise your price more than 30 days before you release out of Early Access, and then run a discount to go with your V1.0 release.…
Its v1.0 release date (aka Early Access Graduation) is approaching on October 15, but it also wants to run one last custom discount during the early access window, [i]and[/i] it also wants to run another launch discount for the v1.0 Release. How can it manage a price increase, a custom discount, a v1.0 release and a launch discount given the cooldown timers? One potential solution would be the following: [list] [*] On September 1st, Bass Ain't Bitin' 2 sets up a 14-day discount on its current Early Access prices. …
All demos that have opted in to be available for press preview will be included. [*][b]February 22[/b] -[b] Steam Next Fest: February 2027 begins at 10am PST[/b]; set your demo live (or opt out if your plans have changed) before 10am PST. [*][b]March 1[/b] - Steam Next Fest: February 2027 concludes. [*][b]March 1[/b] - Steam Next Fest: February 2027 Wrap-Up (featuring games with the most played demos of the Fest) launches. [/list] [section=eligibility]Eligibility[/section] Steam Next Fest: February 2027 is open to upcoming games that meet all of the following criteria: [list] [*]Associated with a Steamworks developer account in good standing [*]Store page must be published and public [*]Is not a prologue, chapter 1, or otherwise 'demo' version of existing content available to customers [*]Includes a publicly playable demo by the time the festival begins [*]Released any time after the conclusion of the fest on March 1, 2027 [/list] [b]Please Note:[/b] [list] [*]All upcoming games may participate with a playable demo in Steam Next Fest, regardless of release date. [*]A game may only appear once in Steam Next Fest. …
[section=GetAppBetas]GetAppBetas[/section] [code=http]GET https://partner.steam-api.com/ISteamApps/GetAppBetas/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=GetAppBuilds]GetAppBuilds[/section] [code=http]GET https://partner.steam-api.com/ISteamApps/GetAppBuilds/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.…