[section=Setting]Setting Up[/section] You'll need to start by having a functional [doclink=features/inventory]Steam Inventory Service[/doclink] implementation. …
Some common issues developers run into: [list] [*] [b]No items show up[/b] - This can happen if no prices have been set for your item definitions. [*] [b]Item Store is not visible[/b] - Your Item Store will only be visible to everyone if your app has been released and you've manually set the Item Store live, which you can do from the store page settings for your app. …
Here is a break-down of how we set up the Valve homepage so you can get a sense of how you can use various sections to achieve different sets of games. You can see the Valve homepage here: https://store.steampowered.com/dev/valve We may change the Valve homepage, so the current version of the homepage may not exactly match the sections described below, but hopefully we have included enough information here to be useful as a guide. …
See [doclink=store/franchise_pages]Franchise Pages documentation[/doclink] for more information on setting up a franchise homepage. Once you are a member of other groups that are set up as franchise homepages, you can select them to display in this section. …
Currently in SteamVR we only expose the currently in-use refresh rate. [i]Requirements: OpenXR[/i] [/list] [section]Project Settings[/section] These settings are required for Android OpenXR builds to work on the Steam Frame. [list] [*][b]Enable OpenXR[/b] - Enable the OpenXR Plugin [i](Project settings > XR Management)[/i] [*][b]Disable Meta XR[/b] - Disable all Meta XR and Meta Quest OpenXR Features [i](Project Settings > XR Management > OpenXR > OpenXR Feature Groups)[/i] [i]Note: New versions of the OpenXR Package have fixed having the Meta Quest Support feature enabled while deploying to non-meta headsets, but we recommend turning it off if your application doesn't load into VR correctly.…
[/list] [section]Known Issues[/section] [list] [*][b]GPU Particles[/b] - Due to current TSO settings in FEX, uncached GPU buffer access is extremely slow. Solution: Enable GPU Instancing. Note: This only applies to games running through FEX (e.g. …
It's recommended to call this function twice, the first time with [code-inline]pchValueBuffer[/code-inline] set to [b]NULL[/b] and [code-inline]punValueBufferSizeOut[/code-inline] set to zero to get the size required for the buffer for the subsequent call. …
See [api]ISteamInventory::DeserializeResult[/api] for expiration handling. If this is set [code-inline]pOutBuffer[/code-inline] to [b]NULL[/b] then [code-inline]punOutBufferSize[/code-inline] will be set to the buffer size required. …
Change history: [list] [*] [b]Version 2[/b] - Fixes returning the game name in XML. [/list] [section=SetUserStatsForGame]SetUserStatsForGame[/section] [code=http]POST https://partner.steam-api.com/ISteamUserStats/SetUserStatsForGame/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]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]SteamID of user[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]appid of game[/td][/tr] [tr][td][b]count[/b][/td][td]uint32[/td][td]✔[/td][td]Number of stats and achievements to set a value for (name/value param pairs)[/td][/tr] [tr][td][b]name[0][/b][/td][td]string[/td][td]✔[/td][td]Name of stat or achievement to set[/td][/tr] [tr][td][b]value[0][/b][/td][td]uint32[/td][td]✔[/td][td]Value to set[/td][/tr] [/table] Sets a stat for the specified user for the game. …
Once done, follow these steps to upload and deploy the new files: [list] [*]Login to the Steamworks website [*]Select the game you would like to update [*]Select [b]Edit Steamworks Settings[/b] [*]Select [b]SteamPipe[/b] > [b]Web Uploads[/b] [*]Find the depot you need to update [*]Select [b]Choose File[/b] and select the zip file [*]Select [b]Merge With Baseline[/b] from the associated dropdown [*]Select [b]Upload[/b] [*]Once uploaded, you should see a green status message and a new Commit line should appear. [*] Enter a build note, leave the branch setting at [b]"None"[/b] and select [b]Commit[/b]. [*] Select [b]SteamPipe[/b] > [b]Builds[/b] [*] Find your new build and set it live on a private test branch with [b]"Preview Changes"[/b] [*] After testing your game with these new files, set it live on the [b]"Default"[/b] branch [/list] …
[/td][/tr] [tr][td][b]onlytrustedwrites[/b][/td][td]bool[/td][td][/td][td]if this is true the leaderboard scores cannot be set by clients, and can only be set by publisher via SetLeaderboardScore WebAPI. Defaults to false.[/td][/tr] [tr][td][b]onlyfriendsreads[/b][/td][td]bool[/td][td][/td][td]if this is true the leaderboard scores can only be read for friends by clients, scores can always be read by publisher. …
As such this API [b]MUST[/b] be called from a secure server, and can never be used directly by clients! [section=SetLeaderboardScore]SetLeaderboardScore[/section] [code=http]POST https://partner.steam-api.com/ISteamLeaderboards/SetLeaderboardScore/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.…
Returns false if passed an invalid poll group handle. [subsection=SetConnectionPollGroup]SetConnectionPollGroup[/subsection] [code=cpp]bool SetConnectionPollGroup( HSteamNetConnection hConn, HSteamNetPollGroup hPollGroup );[/code] Assign a connection to a poll group. …
Try again with a buffer of at least N bytes. [/list] [subsection=SetConnectionUserData]SetConnectionUserData[/subsection] [code=cpp]bool SetConnectionUserData( HSteamNetConnection hPeer, int64 nUserData );[/code] Set connection user data. …
If you'd like to include a Season Pass as part of a pre-purchase of an edition of a game, you'll still need to set up a Season Pass DLC as usual. However, as part of setting up a pre-purchase, you'll need to contact Steam to set the Season Pass DLC into pre-purchase mode. …
In this set up, customers only pay for the items they don’t already own, making it ideal for players with partial content. You can create a Complete the Set bundle as outlined in the [doclink=/store/application/bundles]Bundle Documentation[/doclink]. …
[subsection]Solution[/subsection] The order of operations can matter here, as setting a build live doesn’t go through the publish process but changing the launch options does. If it’s only a few seconds between the two, it’s unlikely to impact many people as Steam will force an update when the user goes to launch and that should grab the latest launch options. Assuming that there’s a build update associated with the change, we recommend setting the build live and then immediately publishing the app admin settings with the launch option change. …
Please note that audio will be filtered down to regular stereo when we transcode the videos. [subsection]Advanced Settings[/subsection] The Advanced Settings can be used if you have trailers in multiple languages or need to restrict them to certain countries. You will not need to use the Advanced Settings if your trailer is visible to all countries and languages. You can set the language that specific trailers will show to customers that have their settings set to that language. …
You can also set the distance from the specified corner by using [api]ISteamUtils::SetOverlayNotificationInset[/api]. This position is per-game and is reset each launch. [subsection=SetVRHeadsetStreamingEnabled]SetVRHeadsetStreamingEnabled[/subsection] [code=cpp]void SetVRHeadsetStreamingEnabled( bool bEnabled );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]bEnabled[/b][/td][td]bool[/td][td]Turns VR HMD Streaming on ([b]true[/b]) or off ([b]false[/b]).…
For example, if your game is being distributed on Steam by a publisher, then it's useful for both the publisher and the development studio to be set up with access to the game, even if payments for sales of the game will only go to one of the entities. There are a few ways to grant others access to your applications. …
[b]This method has the following advantages:[/b] [list] [*]You can explicitly set permissions for each individual user account. [*]You can control exactly which individual user accounts have access to your Application. [*]You can control exactly which packages are autogranted to the individual user accounts in the group. …
If a player is visiting your store page and if your product has content descriptors that the user has indicated they do not want to see (including defaults), they will be presented with a warning. This is keyed off the settings you entered in filling out the mature content survey while setting up your store page. These warning pages will let the player know that the content they are about to view is different from the preferences they have previously specified (or the defaults that Steam has). [section]Regional Rating Board Settings[/section] Players may also encounter an age-gate if you enabled age-gates while entering in ratings from regional rating boards such as ESRB or PEGI. …
Each playtime generator grant will be tracked separately if any of the drop settings are specified ('drop_interval', 'use_drop_window', 'drop_window', 'drop_max_per_window' ). In other words, if the itemdef does [b]NOT[/b] any drop settings, then it shares drops with all other playtime generators without drop settings and they are all limited by the application's drop interval. …
Alternatively it can be used to prevent any future drops of a deprecated item if the value is set to zero. We will only acknowledge this setting if the [code-inline]use_drop_limit[/code-inline] is assigned to "true". …
It is up to the publisher/developer to decide if they want to participate in the program and they are responsible for setting the commercial price. [*][h4]Does the Café Program work for schools and universities?[/h4] Yes. We designed the Café Program to be as flexible as possible. …
[/h4] We will have no limit on the number of PCs that the pool of commercial game licenses can be used across so as long they are all on the same network where the authorized Café Server is located. [*][h4]How do I set up the Steam PC Café Server and enable content cache?[/h4] Instructions on how to set up the server and frequently asked questions around it can be found [url=https://partner.steamgames.com/doc/sitelicense/licensees/gettingstarted/licensemodelpc]here[/url]. [*][h4]How can I add my VAT ID to my license agreement?…
[subsection=PlayPrevious]PlayPrevious[/subsection] [code=cpp]void PlayPrevious();[/code] Have the Steam Music player play the previous song. [subsection=SetVolume]SetVolume[/subsection] [code=cpp]void SetVolume( float flVolume );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]flVolume[/b][/td][td]float[/td][td]The volume percentage to set from [b]0.0[/b] to [b]1.0[/b].[/td][/tr] [/table] Sets the volume of the Steam Music player. [section=callbacks]Callbacks[/section] These are callbacks which can be fired by calling [api]steam_api::SteamAPI_RunCallbacks[/api]. …
Those methods will be used to confirm setting a build live for a released app. Additionally, if the Steam account has any security changes (email, phone number, etc), then you will need to wait 3 days before you can set a build live for a released app. …
"[/h4] Resolution: Go to [b]Internet Options[/b]->[b]Connections[/b]->[b]Lan Settings[/b] and check [b]Automatically detect settings[/b]. [h4]Running the app build results in the following error: "ERROR! Failed 'DepotBuild for scriptname.vdf' - status = 6.…
[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]The app to use the account for[/td][/tr] [tr][td][b]memo[/b][/td][td]string[/td][td]✔[/td][td]The memo to set on the new account[/td][/tr] [/table] Creates a persistent game server account [section=SetMemo]SetMemo[/section] [code=http]POST https://api.steampowered.com/IGameServersService/SetMemo/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]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]The SteamID of the game server to set the memo on[/td][/tr] [tr][td][b]memo[/b][/td][td]string[/td][td]✔[/td][td]The memo to set on the new account[/td][/tr] [/table] This method changes the memo associated with the game server account. …
[subsection=SetGamePhaseID]SetGamePhaseID[/subsection] [code=cpp] void SetGamePhaseID( const char *pchPhaseID) ;[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]pchPhaseID[/b][/td][td]const char *[/td][td]A game-provided persistent ID for a game phase. …
Attributes can be set as many times as the game likes with SetGamePhaseAttribute, and only the last value will be shown to the user. [subsection=SetTimelineGameMode]SetTimelineGameMode[/subsection] [code=cpp]void SetTimelineGameMode( ETimelineGameMode eMode );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]eMode[/b][/td][td][apitype]ISteamTimeline::ETimelineGameMode[/apitype][/td][td]The mode that the game is in.…