These are the standard store graphical assets. Most of these are required as part of setting up your game on Steam. [section]Store Capsule Rules[/section] [b][color=#ca5029]IMPORTANT NOTE:[/color][/b] Please see [doclink=store/assets/rules]Graphical Asset Rules[/doclink] for important rules on what can and cannot be included in your graphical asset capsules. …
[b]Size: [/b] 1438px x 810px [section=bundle]Bundle Assets[/section] Bundles use the same set of assets as other products on Steam, with one addition: [subsection]Bundle Header[/subsection] [docimg=civ6.jpg]civ6.jpg[/docimg] [b]Usage:[/b] This image appears at the top of the bundle detail page on Steam. …
That will give you more control to configure your broadcast, and let you point Steam directly at your game appID rather than SteamVR.exe. [*][h4]Q. Can I test a stream on my store page by setting it to friends only?[/h4] A. No. Only public streams can appear on your store page. [*][h4]Q. Help, my stream is not showing up on my game product page?…
Click "Edit Store Page " on the app landing page, and add broadcaster(s) into the whitelist in the "Steam Broadcast (Beta) " section on "Special Settings" tab. The event method is preferred since the event start/stop date/time limits how long the stream will show up the store page and can be used to provide context for the content of the stream. …
For more info on how to use the Steamworks Web API please see the [doclink=webapi_overview][/doclink]. [section=SetItemPaymentRules]SetItemPaymentRules[/section] [code=http]POST https://partner.steam-api.com/IWorkshopService/SetItemPaymentRules/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]make_workshop_files_subscribable[/b][/td][td]bool[/td][td]✔[/td][td]Allow users to subscribe to the workshop items?[/td][/tr] [/table] Sets the payment rules for a specific item. [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! …
The Steam Inventory Service is a set of features that allow a game to enable persistent player inventories without having to run special servers to manage users or items. …
You can get there from here: https://partner.steamgames.com/apps/inventoryservice/ [*] [b]Enable Inventory Service[/b] Once you have item definitions, turn on the Inventory Service by checking "Enable Inventory Service" on the page you uploaded your item definitions. Note that while your item visibility is set to Private in the Steam Economy Settings, only accounts in your Steamworks Partner group will be able to access your items in-game. [*] [b]Download Users Inventory[/b] Have your game client download the users inventory by calling [api]ISteamInventory::GetAllItems[/api]. …
This is used for iteration, after calling this then [api]ISteamFriends::GetCoplayFriend[/api] can be used to get the Steam ID of each player. These players are have been set with previous calls to [api]ISteamFriends::SetPlayedWith[/api]. [b]Returns:[/b] int The number of users that the current user has recently played with. …
[/td][/tr] [/table] Gets the number of Rich Presence keys that are set on the specified user. This is used for iteration, after calling this then [api]ISteamFriends::GetFriendRichPresenceKeyByIndex[/api] to get the rich presence keys. …
By default, all tags submitted by the game to Steam will show up listed for customers to see in the right-hand column of your application's Workshop home page. These tags are defined with [doclink=api/ISteamUGC#SetItemTags]ISteamUGC::SetItemTags[/doclink] when an item is uploaded from your game or submission tool. [docimg=tags_public.jpg]tags_public.jpg[/docimg] [section]Overriding Tags[/section] You can override the list of tags by specifying the specific tags and category titles that you wish to be visible. …
In many cases, we urge you to consider whether recurring subscription is really the right path for your product. Many products have set off down this path and discovered that customer appetite for signing up to be billed on a recurring basis is limited and as a result many products have subsequently switched to a traditional single up-front payment method. …
Please see [doclink=features/microtransactions/recurring_billing][/doclink] for details on getting this set up. [b]General Experience:[/b] [list] [*] The game is typically a free-to-play, but could also work with a standard purchaseable game. [*] From within the game, a user would find a purchase option to sign up for a recurring subscription. …
In cases where an API key is required, it can be provided either as a standard parameter or by setting the 'x-webapi-key' request header value. [section=user-keys]User Keys[/section] The standard user keys are available to everyone, all that is required is a Steam account and the domain name that will be associated with this key. …
[/i] [*] Ensure the applications associated with the group are correct before creating a key. [*] Select [b]Create WebAPI Key[/b]. [*] Select the set of desired key permissions. [*] Select [b]Save Changes[/b] [*] The newly created key will display in the right-hand sidebar of that page. …
Read on for more details on these two options. [subsection]Optional separate store page[/subsection] When setting up your demo store presence, you can optionally choose to enable an entire separate store page for your demo, giving you space to more fully describe your demo. …
[section]Testing your demo[/section] To work properly for customers, your application type must be set as 'Demo' and the App ID of your base game must be entered in the General Application Settings section of the Steamworks website for your demo. …
[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.[/td] [/tr] [tr][td][doclink=features/steamvr/input][/doclink][/td] [td]Overview of the SteamVR Input and Skeletal systems.…
This documentation is a collection of resources and FAQs on the ways that working with a publisher might impact how your game is set up and managed within Steamworks. [section]General Resources[/section] How should you choose whether or not to work with a publisher? …
Moderated by Connor Malone from Valve[/sup] [section]Game Access Within Steamworks[/section] When multiple entities (such as a developer team and a publishing company) need access to the same application within Steamworks, some special configuration will be necessary to make sure the right permissions are defined. For a complete break-down on the ways access can be set up, please see [doclink=gettingstarted/managing_apps]Managing Applications[/doclink].…
If you need the overlay enabled, you can do so by: [olist] [*]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 [/olist] [/callout] [section=activating]Integrating Steam Timeline functionality in your app[/section] The Steam Timeline API calls can be found here: [api]ISteamTimeline[/api] [section=icons]Timeline Icons[/section] Steam Timelines includes a set of icons ready to use for your game. …
= C_BasePlayer::GetLocalPlayer()->GetUserID() ) return; const char* eventname = pEvent->GetName(); if ( V_strcmp( "survival_round_start", eventname ) == 0 ) { SteamTimeline()->SetTimelineGameMode( k_ETimelineGameMode_Playing ); } else if ( V_strcmp( "round_end", eventname ) == 0 ) { SteamTimeline()->SetTimelineGameMode( k_ETimelineGameMode_Staging ); } else if ( V_strcmp( "heal_success", eventname ) == 0 ) { SteamTimeline()->AddTimelineEvent( "medkit32", "Healed", CFmtStr( "Restored %d Health", pEvent->GetInt( "health_restored" ) ), 0, -5.f, 5.f, k_ETimelineEventClipPriority_Standard ); } else if ( V_strcmp( "player_incapacitated_start", eventname ) == 0 ) { C_TerrorPlayer* pAttacker = (C_TerrorPlayer*)UTIL_PlayerByUserId( pEvent->GetInt( "userid" ) ); const char* pszAttacker = pAttacker ? …
If your game is eligible for a marketing message, we will reach out to you to notify you and set that up. [h4]Q: Can I change my capsule art to reflect Advance Access?[/h4] A: No, you should not change your capsule art to include any banners indicating Advance Access status. …
[/h4] A: The content (bits being delivered to the user’s client) will become playable if the DLC is in the package that’s set for advance access regardless of having a publicly visible store page. You will still need to set the store page live. [h4]Q: What happens with retail keys I've ordered for the Advance Access Package?…
Before directing a user to the store, Steamworks games should call [api]ISteamUtils::IsOverlayEnabled[/api] to determine if the user has disabled the Steam overlay through the Steam client settings. Note: To prevent version incompatibilities with the executing version of a game and downloadable content, Steam will only download new content if the user is running the newest version of the game. …
If you need to add additional DLC depots to support alternate languages, OS's, or architectures, follow the steps below: [olist] [*] Open the Steamworks [url=https://partner.steamgames.com/apps]App Admin[/url] for the base App (All depots are managed in the base App, not in the DLC). [*] Navigate into Steamworks Settings, SteamPipe, Depots. [*] Click the Add New Depot button, set the name, and click OK. Give it a name similar to the existing DLC depot so you can easily identify it. [*] Set the correct language, OS or architecture. [*] Choose the correct DLC from the dropdown box to associate this depot with the DLC. [*] Click Save Changes. …
This will make your store page and community hub visible to customers and listed as upcoming, with whatever release date you set. This is a great way to start building an audience and providing customers the ability to add your game to their wishlist in anticipation of your launch. …
[section]Pre-Purchase[/section] Pre-Purchases are not a self-served feature and will need to be set up by Valve. We normally don't recommend pre-purchase launches since spreading out sales across a few weeks during a pre-purchase can make it difficult for your game to have a successful launch day on Steam. …
[subsection]Remote debugging process startup: "early attach" support:[/subsection] The remote debug service can be configured to wait for the user to attach before launching the title. This allows you to set a breakpoint in WinMain or other initialization code. This requires that you first install a Microsoft extension in Visual Studio on your development host: https://marketplace.visualstudio.com/items?itemName=vsdbgplat.MicrosoftChildProcessDebuggingPowerTool [docimg=child-process-debug-extension.png]child-process-debug-extension.png[/docimg] Once the extension is installed, enable child process debugging per the documentation (Debug > Other Debug Targets > Child Process Debugging Settings) Check "Wait for a debug client to attach" in your devkit tool, and upload your title. Launch your title normally. …
For more information on editing packages, please see [doclink=store/application/packages][/doclink]. [section=external]External Testing Options - Setting up closed or open testing[/section] Setting up pre-release testing is easy and free on Steam, and can be configured to small private tests or large public tests, or any combination. …
If you’re interested in releasing a beta version of your game that any customer can buy, check out [doclink=store/earlyaccess]Early Access[/doclink]. There are two common ways of setting up testing for external audiences: [olist] [*]Using the Steam Playtest feature. [*]Using the main game's App ID with release override keys. …
Use the "next_cursor" value returned in the response to set up the next query to get the next set of results.[/td][/tr] [tr][td][b]numperpage[/b][/td][td]uint32[/td][td][/td][td](Optional) The number of results, per page to return.…
That value will correspond to [api]ISteamRemoteStorage#EWorkshopFileType[/api][/callout] [section=SetDeveloperMetadata]SetDeveloperMetadata[/section] [code=http]POST https://partner.steam-api.com/IPublishedFileService/SetDeveloperMetadata/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.…
This has two advantages: [olist] [*]As a game developer, you have one common set of compatibility to target. [*]Any game that is Verified on Steam Deck is guaranteed to be Verified on Steam Machine as well. [/olist] https://youtu.be/a8tNvhwkth8 [section]Compatibility Ratings[/section] Many games work great as-is on Deck and Machine. …
On Deck and Machine, games without native Linux builds will be run through Proton, a set of tools that will automatically take your current Windows executable and game data and run them on Steam Deck and Steam Machine's Linux-based OS. [*]Proton is a work in progress, and it's possible that your game may not yet be fully supported. …
[docimg=MarkAsReady_2.png]MarkAsReady_2.png[/docimg] [section]Release Yourself When Ready[/section] Once your store page has been approved and it's presence has been set to "coming soon" for a least 2 weeks and the build is reviewed, you will be able to release your game. You will need to use the green "Release App" button that appears on the top of your product landing page in Steamworks at the time you wish to release your title. …
[docimg=ReleaseOptions_2.png]ReleaseOptions_2.png[/docimg] After you click "Release App", you'll see a summary of actions that the release process will do, including publishing the store package, setting a launch discount live if you chose to have one, setting the game to playable and released and applying the release timestamp of "NOW". …