[/list] [/callout] [h3]Purchase games for commercial use on Steam[/h3] [callout] Only games specifically mentioned for commercial use on Steam can be offered to your customers and patrons. Commercial game licenses can be found by visiting a game's individual Steam store page. The commercial license and details about it will be displayed right under the regular end user purchase option on the game's store page. …
We are allocating a portion of our Steam Deck LCD units for partners to test their titles. These are the same Steam Decks that are shipping to customers, there is no additional development software or hardware changes. Steam Deck dev kits are ready to ship, and we've opened up the Steam Deck Dev Kit request form. …
Promotions may involve other Steam products, or products/brands outside of Steam. These types of promotions are encouraged and many customers find value in them. However, under no circumstances is it okay to charge other developers to participate in a bundle or to sell access to a sale page or other page on Steam. [*][subsection]Paid Advertising Outside Steam[/subsection] Developers may want to run paid advertising campaigns to drive traffic to their Steam product pages. …
[/section] If you believe your game or application is using a redistributable which is not listed in the app admin, but might be used by many other apps, please let us know in the [url=steamcommunity.com/groups/steamworks/discussions/]Steamworks Development Group[/url], and we might be able to get it added. If your redistributable or installer is uncommon or custom, you can use an [doclink=sdk/installscripts]install script[/doclink] to install it manually.…
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. …
The settings would take precedence over any application-level settings. [/list] Only item definitions which are marked as "playtime item generators" can be spawned. …
In this case, clicking the "Buy on Steam" button from the widget will take customers to the Steam website with the item in their cart where they can easily complete the purchase process and pay with whatever method they prefer, including funds from their Steam Wallet. …
Steam provides many different features and APIs to improve the multiplayer experience for developers and customers alike. With these features you can easily allow players to find and play with each other using the Steam Matchmaking APIs, or use the Steam Game Servers API to provide persistent dedicated servers that your players can create communities around. …
[/list] [/list] [section=initialization_and_shutdown]Initialization and Shutdown[/section] [subsection=SteamAPI_Init]SteamAPI_Init[/subsection] After you have the Steamworks API set up within your project you can start using it by calling [api]steam_api::SteamAPI_Init[/api] function to initialize the API. This will set up the global state and populate the interface pointers which are accessible via the global functions which match the name of the interface. …
Each callback consists of a struct containing a unique identifier and a small set of data. The callbacks are declared in the [code-inline]ISteam*.h[/code-inline] header files, grouped with the interface that it most closely belongs to. …
Is your interface reasonably sized on various resolutions? Can customers adjust resolution to make sure it fits natively on their monitor? These are all options that are pretty standard in successful PC titles. …
[/td][/tr] [tr][td][b]actionSetHandle[/b][/td][td][apitype]ISteamController::ControllerActionSetHandle_t[/apitype][/td][td]The handle of the action set you want to activate.…
[/td][/tr] [tr][td][b]actionSetHandle[/b][/td][td][apitype]ISteamController::ControllerActionSetHandle_t[/apitype][/td][td]The handle of the action set you want to query.…
[subsection=openxr]OpenXR Interaction Profile[/subsection] You'll find an OpenXR Interaction Profile included in each Game Engine plugin (or in the case of Godot in the engine itself). If you have your own custom engine you can add support via our extension detailed on the [doclink=steamframe/engines/custom][/doclink] documentation page. …
[section]Event Impression Locations[/section] Here is a quick run-down of what each location refers to: [list] [*][b]Library Home Page Impressions[/b] - This is when your event appears in the row of "What's New" section at the top of the Steam Library Home. Not all of your customers will see your event, as they may not sign in to Steam during the time where your event is valid, or they may have many other games posting events around the same time. …
Our suggested prices vary slightly from region to region, with the goals of providing fair prices for customers. We therefore limit gifting from lower-priced regions (e.g. South-East Asia) to higher-priced regions (e.g. North America). …
If you're sending binary data, you should prefix a header to the message so that you know to treat it as your custom data rather than a plain old text message. For communication that needs to be arbitrated (for example having a user pick from a set of characters, and making sure only one user has picked a character), you can use the lobby owner as the decision maker. …
This can not be longer than [apitype]ISteamFriends::k_cubChatMetadataMax[/apitype].[/td][/tr] [/table] Sets a key/value pair in the lobby metadata. This can be used to set the the lobby name, current map, game mode, etc. This can only be set by the owner of the lobby. …
Here is an example of what this [url=https://medal.tv/clips/4725198]clip[/url] embedded on an events page looks like Medal offers customization options to add things such as a "Get this on Steam" button to your clips. You can view the clip documentation [url=https://docs.medal.tv/player#enable-get-this-on-steam]here[/url]. …
This is useful for creating spatialized ambiences that are fixed in place relative to the virtual world. [*] [b]Use custom HRTFs using SOFA files.[/b] In addition to its built-in HRTF, Steam Audio can spatialize point sources and Ambisonics sources using any HRTF specified by the user. …
ref=8625-wrah-9030]Steam Guard Mobile Authenticator[/url] page on the customer facing Steam Support site for more information. [b]Returns:[/b] bool [b]true[/b] if the current user has phone verification enabled; otherwise, [b]false[/b]. …
ref=8625-wrah-9030]Steam Guard Mobile Authenticator[/url] page on the customer facing Steam Support site for more information. [b]Returns:[/b] bool [b]true[/b] if the current user has two factor authentication enabled; otherwise, [b]false[/b]. …
[/td][/tr] [tr][td][b]actionSetHandle[/b][/td][td][apitype]ISteamInput::InputActionSetHandle_t[/apitype][/td][td]The handle of the action set you want to activate.…
[/td][/tr] [tr][td][b]actionSetLayerHandle[/b][/td][td][apitype]ISteamInput::InputActionSetHandle_t[/apitype][/td][td]The handle of the action set layer you want to activate.…
The currencies listed as "live" below are currently available to customers on Steam. Currencies listed without being Live are ones where we collect prices and plan to release at some point in the future. …
There are two ways that Workshop items can get version information set: Mod authors can set this information, or your uploader tool can set this information. [olist] [*][b]Mod authors can set supported versions[/b] - Mod authors in the Steam Workshop can set version support by visiting the item history page and using the UI to configure which versions of the game work for each version of their Workshop item. [*][b]Your Workshop uploader can set supported versions[/b] - If your Workshop item uploader tool can validate support for an item, you can automatically mark it as supporting the appropriate versions, or you can build UI to make it easy for the mod author to choose supported versions and ranges at time of upload. …
If the [i]minimum[/i] branch is not set, then the item is valid for all Steam branches older than the [i]maximum[/i] branch, and vice-versa for when the [i]maximum[/i] branch is not set. …