When creating new Root paths, the default [code-inline]OS Restriction[/code-inline] setting is [code-inline][Cross-Platform][/code-inline]. We strongly recommend you use this setting, even if your game currently only supports one platform. …
This quota is enforced on each Cloud-enabled game, on a per-user-per-game basis. It's recommended to set the values to reasonable amounts for your game title. [b]NOTE:[/b] Don't forget to click Save at the bottom of the page, and Publish your updated settings. …
[subsection]Opting Controllers into Steam Input[/subsection] Next, you should set up what kind of controllers use Steam Input - if you are using Steam Input API you'll want to make sure to check the "Any Future Devices" option to make sure new controllers work by default without you having to adjust settings after support ships in Steam. [docimg=steamworks_steam_input_optin_settings.png]steamworks_steam_input_optin_settings.png[/docimg] Checking these boxes will cause those controller types to make use of Steam Input rather than their standard gamepad input protocols. …
[/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 product[/td][/tr] [tr][td][b]startidx[/b][/td][td]uint32[/td][td]✔[/td][td]Starting index in the result set (0 based)[/td][/tr] [tr][td][b]count[/b][/td][td]uint32[/td][td]✔[/td][td]Number Requested[/td][/tr] [tr][td][b]tagcount[/b][/td][td]uint32[/td][td]✔[/td][td]Number of Tags Specified[/td][/tr] [tr][td][b]usertagcount[/b][/td][td]uint32[/td][td]✔[/td][td]Number of User specific tags requested[/td][/tr] [tr][td][b]hasappadminaccess[/b][/td][td]bool[/td][td][/td][td]Whether the user making the request is an admin for the app and can see private files[/td][/tr] [tr][td][b]fileType[/b][/td][td]uint32[/td][td][/td][td]EPublishedFileInfoMatchingFileType, defaults to k_PFI_MatchingFileType_Items[/td][/tr] [tr][td][b]tag[0][/b][/td][td]string[/td][td][/td][td]Tag to filter result set[/td][/tr] [tr][td][b]usertag[0][/b][/td][td]string[/td][td][/td][td]A user specific tag[/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=ResultSetSummary]ResultSetSummary[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemSearch/ResultSetSummary/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.…
Please see [doclink=store/franchise_pages]Franchise Pages Documentation[/doclink] for more information.) Once your page is set up, players can then 'follow' your organization to be notified when you release your next title. This page explains the process and details for setting up and customizing your homepage. …
[section=broadcast]Broadcasting to Your Page[/section] [color=yellow]Instructions for v1 homepages[/color] You can configure the Creator home page to receive live broadcast. This can be enabled on the settings page of your admin panel (Admin->Edit Creator Settings). This option is near the bottom with the section title broadcast settings. …
[/b][/callout] [section]Project Setup[/section] [list] [*][b]Enable OpenXR[/b] - (Project / Project settings / XR / OpenXR) and enable stereo shaders (Project / Project settings / XR / Shaders) [*][b]OpenXR Vendors Plugin[/b] - Optionally install the [url=https://godotengine.org/asset-library/asset/3768]Godot OpenXR vendors plugin[/url] from the AssetLib tab. …
If you have multiple export presets setup, make sure the one for Steam Frame is set to [b]runnable[/b]. [*]Optionally, turn on debug capabilities (Debug / Deploy With Remote Debug). [*]Click on [b]Remote Deploy[/b] in the top right toolbar and select [b]Steam Frame Lepton[/b] from the dropdown. …
Returns 0 if IP is not mapped IPv4. void SetIPv6LocalHost( uint16 nPort = 0); // Set to the IPv6 localhost address ::1, and the specified port. bool IsLocalHost() const; // Return true if this identity is localhost. …
Listen socket options can be set at the interface layer, /// if you have multiple listen sockets and they all use the same options. /// You can also set connection options on a listen socket, and they set the defaults /// for all connections accepted through this listen socket. …
[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. …
There doesn't seem to be a limit to how many activators you can add, but any more than five will start to run off of the interface. [section]Activator Settings[/section] Let's break down all the settings available in the activator system. These settings are always available regardless of activation type: [table] [tr][th]Name[/th][th]Values[/th][th]Description[/th][/tr] [tr][td]Activation Type[/td][td]Regular Press, Double Press, Long Press, Start Press, Release Press, Chorded Press, None - Remove Activator[/td][td]Activators determine how the input responds to you. …
[/td][/tr] [tr][td]Repeat Rate[/td][td]0.0-1.0[/td][td]Regular Press, Double Press, Long Press[/td][td]The speed of turbo will be set by this slider.[/td][/tr] [/table]…
('Host' attribute)[/td][/tr] [tr][td][b]pchKey[/b][/td][td]const char *[/td][td]The cookie name to set.[/td][/tr] [tr][td][b]pchValue[/b][/td][td]const char *[/td][td]The cookie value to set.[/td][/tr] [tr][td][b]pchPath[/b][/td][td]const char *[/td][td]Sets the 'Path' attribute on the cookie. …
[subsection=SetHorizontalScroll]SetHorizontalScroll[/subsection] [code=cpp]void SetHorizontalScroll( HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]unBrowserHandle[/b][/td][td][apitype]ISteamHTMLSurface::HHTMLBrowser[/apitype][/td][td]The handle of the surface to set the horizontal scroll position.…
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] …
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. …
[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. …
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. …
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. …
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. …
[section]Overview[/section] This section describes the general workflow and settings necessary for releasing your application on additional operating systems. Steam provides support for Windows, macOS, and Linux (SteamOS). …
[b]NOTE:[/b] Don't check the boxes under [b]Supported Operating Systems[/b] on the General Application Settings tab yet, that will be done when you're ready to release. [*] Create a Steam build for these new depots. [*] Set that build to a beta branch with a password. [*] Update your autogrant package to contain these new depots so Steam will let you download the files. …
[/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.…
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. …
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. …