All requests should be sent using HTTP 1.1 and use a secure TLS connection when possible. The Content-Type must be [code-inline]application/x-www-form-urlencoded[/code-inline] and the POST parameters must be in the body of the request in standard form urlencoding format. …
[b]"absolute_mouse"[/b][/h3] We can’t stress enough that when creating a camera input for your first/third person game or anything cursor driven, you should always use the [b]"absolute_mouse"[/b] type and react to deltas as if it’s a mouse. The API will automagically do the right thing here for stick based input, so you'll still get a tune-able stick input if your camera is applied to an analog stick (PS4/Xbox style) with full dead zones/response curves/etc. that you can specify in your default configuration. …
[/code] And you will want to either re-export all official configurations or manually add the same major/minor revision tokens to the individual files in the same format: [code] "controller_mappings" { "version" "3" "revision" "3" "title" "Portal 2 Standard Controls For XBOX ONE Controller" "description" "Your modified configuration for this game." ... "controller_type" "controller_xboxone" "controller_caps" "1590271" "major_revision" "1" "minor_revision" "1" "Timestamp" "1761699544" "actions" { ... …
You can find out more about connected devices using the [doclink=api/ISteamRemotePlay][/doclink] If you have optimized your game for remote play on various types of devices, or your game works well with Remote Play Together, you can check the appropriate feature checkboxes in the Basic Info section of the Store Page admin on the partner site, and your game will show up when customers search for games that work well for those use cases. …
Returns false if the handle is invalid, or the information is not available for that type of listen socket. [subsection=GetIdentity]GetIdentity[/subsection] [code=cpp]bool GetIdentity( SteamNetworkingIdentity *pIdentity );[/code] Get the identity assigned to this interface. …
This is useful for the same reason that listening on multiple UDP ports is useful for different types of traffic. Because these allocations come from a global namespace, there is a relatively strict limit on the maximum number of ports you may request. …
You can also tick the "Commercial License" option under "Show selected types" when using the filter to search the Steam store. On the game's store page, the commercial license price will be displayed right under the regular purchase option. [*][h4]Are commercial licenses refundable?…
For more information about general Steam branding, refer to the [doclink=marketing/branding][/doclink]. [section]Workshop Types[/section] There are two main types of Steam Workshop integration options available. Each has benefits and trade-offs, so you should think carefully about which option makes the most sense for your product. …
Note that you should only use the appID for your “base” game--do not use the appID for DLC, Demos, Soundtracks, or other secondary application types. [docimg=stream3.png]stream3.png[/docimg] [*]Set Your Broadcast Permissions By default, your stream is set to “Friends Only”, which means it’s only visible by you and your friends on Steam. …
Head to the [doclink=store/promo/creatorpages]Creator Page documentation[/doclink] for more information on those types of events. Here's a small sample of some the creative event ideas we've seen third-parties bring to Steam: [*][b]Gaming Showcase / Award Shows[/b] - for example [url=https://store.steampowered.com/sale/thegameawards2023]The Game Awards[/url], [url=https://store.steampowered.com/sale/gamescom-2024]gamescom[/url] or [url=https://store.steampowered.com/sale/paxaus]PAX[/url]. …
If you're proposing a Publisher, Franchise, or Developer sale, those need to be hosted by the Creator Home associated with your group. If you're proposing any other type of event, you'll need to [url=https://steamcommunity.com/actions/GroupCreate]create a new Community Group[/url] to host the event. …
The calls are primarily used to pass information to the Steam Timeline UI [callout][b]NOTE:[/b] The overlay is automatically disabled for 'Software' app types. 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. …
The difference is mainly in your responsibility to explicitly establish a connection and the type of feedback you get about the state of the connection. Both interfaces can do "P2P" communications, both support both unreliable and reliable messages, fragmentation and reassembly, and both can be used to take advantage of [doclink=features/multiplayer/steamdatagramrelay]Steam Datagram Relay[/doclink] to talk to dedicated servers. …
[/olist] [section=rules]Rules & Guidelines[/section] [subsection]Eligibility[/subsection] Games are eligible to appear in one sale event per type every calendar year. For example, Portal would be eligible for both a Portal Franchise Sale as well as a Valve Publisher Sale. If your game was worked on by multiple developers, multiple publishers, or sits across multiple franchises, you'll need to select which one makes the most sense for your title. …
This gives your title the biggest opportunity to create buzz and visibility at a point where all players can actually share their excitement with all of their friends. In addition, some types of games are just not a good fit for advance access. (Short games, single player narrative heavy games, and games where there is a competitive advantage to playing early might all negatively impact player sentiment by having an advance access period) For these reasons, we will not support running advance access except in a few rare cases with partners with which we have a well-established relationship and that have a proven track record on Steam. …
Only add in metadata and values that are used for search (for example, game type or game state). You will not need to put in player counts, as a lobby search will already look for lobbies with available slots [*]Do not join lobbies just to find out their metadata. …
Any change in price or other change will also go through the standard Steam review processes. [b]DLC visibility options[/b] For some types of DLC content, it might make sense to have the DLC for sale on the Steam store, with its own store page, trailer, screenshots, and description. …
[code] "Net32" { "Process 1" "%INSTALLDIR%\\redist\\Controller\\32bitInstaller.exe" "NoCleanUp" "1" "Requirement_OS" { "Is64BitWindows" "0" } } "Net64" { "Process 1" "%INSTALLDIR%\\redist\\Controller\\64bitInstaller.exe" "NoCleanUp" "1" "Requirement_OS" { "Is64BitWindows" "1" } } [/code] [b]OS Type Example[/b] This example will only run on Windows XP [code] "Controller" { "Process 1" "%INSTALLDIR%\\redist\\WinXPInstaller.exe" "NoCleanUp" "1" "Requirement_OS" { "OSType" "Windows XP" } } [/code] [section=environment_variables]Environment Variables[/section] Environment variables are supported in an install script. …
This is particularly useful when combined with the "Always On" menu activation type. A natural example is binding this to "pause," so that whenever you bring up the radial menu, the game pauses and you have time to make your choice. …
[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. …
[subsection]Best Practices[/subsection] You're going to encounter reviews of all types. Some will be tremendously helpful and constructive, while others may represent frustrating or incomplete assessments of a product. …
[subsection]Header File[/subsection] We first define a structure to hold our achievement data received from Steam and provide a macro for creating objects of that type. This data maps directly to what is found on the [url=https://partner.steamgames.com/apps/achievements/]Achievement Configuration[/url] page. …
[/olist] If your game doesn't have any achievements yet, the definitions and localization exports are templates containing a couple of example rows beginning with [code-inline]EXAMPLE_[/code-inline]. You can type over them, delete them, or upload the template as-is to see how importing works. [subsection]Achievement Definitions CSV[/subsection] Exported as [code-inline]<appid>-achievements-definitions.csv[/code-inline]. …
Banned accounts are also not allowed to upload screenshots, artwork, guides, workshop items or other UGC types to your hub. [section]Moderating Screenshots, Videos, and Workshop Items[/section] As an admin or moderator with proper permissions, you have a number of tools available for moderation. …