[section]Managing Autogrants[/section] Previously autogrants were assigned at a partner level, with only Valve admins being able to add or remove them after they were set. This meant it was impossible for you to have some accounts with access to an autogrant package while restricting it from others. Everyone in your partner got all autogrants, regardless of what Steamworks access they had on the appID in the package. It also meant that if you wanted to remove an autogrant, you had to contact someone at Valve. But we recently changed it so autogrants are set at a group level instead. With this change, we've also made it so you can add or remove autogrant packages when managing your groups. …
In order to test your update, you should upload the new build using Steampipe, then set that build on a test branch with a password to test before moving it to the default branch. See [doclink=store/application/builds#Managing_Uploaded_Builds]Managing Uploaded Builds[/doclink] above for a refresher on managing your build branches. [section]Set Your Build Live[/section] Once you've uploaded and tested your build, you're ready to make it live for players. To do so, you'll need to switch your desired build to be the new 'default' build. …
[/td][/tr] [tr][td][doclink=features/inventory][/doclink][/td][td]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.…
[/td][/tr] [tr][td][doclink=features/voice][/doclink][/td][td]The Steam Voice API is a set of functions that allow you record audio from the user's microphone in either compressed or uncompressed format. This can be used to implement voice chat or a voice command system.…
For that please see the [doclink=api/ISteamInput]Steam Input API[/doclink]. [subsection=Background]Background[/subsection] To set the stage, you might start by watching or reading this Steam Dev Days 2016 presentation: [url]https://www.youtube.com/watch?v=7I4SiAiKqqk[/url] [url=http://cdn.akamai.steamstatic.com/apps/steamdevdays/slides2016/SteamController.pdf]Slides - PDF[/url] [url=http://www.gamasutra.com/blogs/LarsDoucet/20161012/283057/Steam_Dev_Days_Steam_Controller.php]Slides - HTML[/url] And for a specific applied example and case study, you should read this article: [url=http://www.gamasutra.com/blogs/LarsDoucet/20170125/289904/The_Steam_Controller_Configurators_Untapped_Power.php]The Steam Controller Configurator's Untapped Power[/url] With those two things under your belt, you're ready to dig into the nitty-gritty details of this document! [section=TableOfContents]Table of Contents[/section] [b]Hold my hand a little:[/b] [olist] [*] [doclink=features/steam_controller/getting_started_for_players]Getting Started as a [b]Player[/b][/doclink] [*] [doclink=features/steam_controller/getting_started_for_devs]Getting Started as a [b]Developer[/b][/doclink] [/olist] [b]Give me all the nerdy details:[/b] [olist] [*] [doclink=features/steam_controller/concepts][/doclink] [*] [doclink=features/steam_controller/device][/doclink] [*] [doclink=features/steam_controller/iga_file][/doclink] [*] [doclink=features/steam_controller/action_manifest_file][/doclink] [*] [doclink=features/steam_controller/input_source][/doclink] [*] [doclink=features/steam_controller/input_source_modes][/doclink] [*] [doclink=features/steam_controller/mode_shifting][/doclink] [*] [doclink=features/steam_controller/browse_configs][/doclink] [*] [doclink=features/steam_controller/activators][/doclink] [*] [doclink=features/steam_controller/mouse_regions][/doclink] [*] [doclink=features/steam_controller/radial_menus][/doclink] [*] [doclink=features/steam_controller/touch_menus][/doclink] [*] [doclink=features/steam_controller/action_set_layers][/doclink] [*] [doclink=features/steam_controller/legacy_mode][/doclink] …
\n" ); break; } } else { // Device is not a controller through Steam Input - use your normal controller ID logic continue; } } } free(devices); } [/code] [section]Setting the Steamworks Settings[/section] The first step is to setup which controllers will use Steam Input in the Opt-in section on the Steamworks settings under Application->Steam Input. For a standard game w/ Xbox controller support we recommend checking all checkboxes other than Xbox: [docimg=steamworks_steam_input_optin_settings.png]steamworks_steam_input_optin_settings.png[/docimg] If your game has flight stick or racing wheel support you'll want to uncheck the box for Generic/DirectInput controllers because Steam doesn't support remapping those devices. …
The client should install their certificate using [api]ISteamNetworkingSockets::SetCertificate[/api] [*] It is highly recommended that you also distribute the network configuration to clients at this time as well. …
In development, you will leave SDR_POPID blank. When SDR_LISTEN_PORT and SDR_POPID is blank, the POPID is set to the special 3-character code "dev". In general, authentication is disabled for servers in the "dev" environment. …
[/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. …
Whether you have a small bug you need to fix or a major content addition, Steam has a robust set of tools to announce your update and get it into the hands of your players. What follows is a general set of practices to consider when making an update, along with some best practices that we at Valve have learned from the major updates we've made with our own products and by learning from the many other products that are available via Steam. …
[section]Set Your Build Live[/section] Once you've uploaded and tested your build, you're ready to make it live for players. To do so, you'll need to switch your desired build to be the new 'default' build. …
Some store filters prioritize the first 15 tags, so be sure that these are sorted in order of relevance to your title. The Tag Wizard helps set these weights with a Suggest Prioritization feature. This is a very simple algorithm that moves high-information tags like sub-genres to the top, and redundant or low-information tags (like “indie” or “singleplayer”) to the bottom. …
Note that this is not a direct reflection of the [i]More Like This[/i] algorithm's results, but rather, a strictly tag-driven comparison of title similarity. So, as a recap, start setting tags and their weight by using the Tag Wizard. Customers will also tag your game and those tags will be mixed in with the tags you had set with the Tag Wizard. …
See [doclink=marketing/event_tools/sales/tools]Sales Landing Page Editor[/doclink] documentation for more on setting up sale page. -- This document explains the various types of sections you can use on your sale page to display different content. …
Make sure you save your custom title separately, by clicking "Save Title" next to it. [*][b]Section Subtitle[/b] - Most sections also support a subtitle too if you need to explain anything more about a given section. [*][b]Background Settings[/b] - You can customize the background color of each section, and even provide an image if you wish. This can help set each section apart from the others. [*][b]Tab Settings[/b] - If you have tabs turned on for your page, you can specify which tabs each section should appear under. …
[subsection]Invitation Process[/subsection] From the resulting list of eligible games, we will send email invitations to the developers associated with each game. This invitation will go out to Steamworks users who have set "Receive Steamworks communications" permission for eligible games. Reference the [doclink=#faq]Frequently Asked Questions[/doclink] below to ensure your communication preferences are set to permit these communications, or for details on how to access key information if opted out. …
You can edit per user here: https://partner.steamgames.com/pub/users/ Note that accounts with this permission setting must also have completed or must newly complete the additional confirmation request sent via email authentication in order to fully enable permission. …
[url=https://store.steampowered.com/points/shop/c/stickers](Click here to see examples live in the Points Shop.)[/url][/h4] Sticker sets have been designed and animated in the past by the following animators (feel free to reach out to them for their availability and interest!)…
This image will be used to represent your startup movie in a user's inventory and in Steam client settings. [list] [*]No alpha is permitted. [*]No animation is permitted - it must be a single frame image. [*].png, .jpg and .webp are all accepted. …
[/td][/tr] [tr][td][b]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]The player we're asking about[/td][/tr] [tr][td][b]include_appinfo[/b][/td][td]bool[/td][td]✔[/td][td]true if we want additional details (name, icon) about each game[/td][/tr] [tr][td][b]include_played_free_games[/b][/td][td]bool[/td][td]✔[/td][td]Free games are excluded by default. If this is set, free games the user has played will be returned.[/td][/tr] [tr][td][b]appids_filter[/b][/td][td]uint32[/td][td]✔[/td][td]if set, restricts result set to the passed in apps[/td][/tr] [/table] Returns a list of games owned by the player if their owned games/game details are visible to you. …
[/td][/tr] [tr][td][b]get_descriptions[/b][/td][td]bool[/td][td]✔[/td][td]If set, the item display data for the items included in the returned trade offers will also be returned.[/td][/tr] [tr][td][b]language[/b][/td][td]string[/td][td]✔[/td][td]The language to use when loading item display data.…
[/td][/tr] [tr][td][b]time_historical_cutoff[/b][/td][td]uint32[/td][td]✔[/td][td]When active_only is set, offers updated since this time will also be returned[/td][/tr] [/table] Get a list of sent or received trade offers [section=GetTradeOffer]GetTradeOffer[/section] [code=http]GET https://api.steampowered.com/IEconService/GetTradeOffer/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.…
This is the only set of languages supported by Steamworks APIs. [*][b]Game Support Only[/b] - This set of languages is available for developers to indicate the languages their game supports. …
It is available for game depots and game language selection in the per-game settings panel. But the Steam UI itself is not currently translated into Arabic and players cannot select Arabic as one of the languages to run Steam in. …
This frees the resources being used by it. [*] [api]ISteamHTMLSurface::SetSize[/api] Call this to set the size of the HTML rendering area. [*] [api]ISteamHTMLSurface::LoadURL[/api] Navigate to the URL. …
This can be found by clicking on your wifi network in headset under [b]Quick Settings[/b] or [b]Steam Settings > Internet[/b] (Example: 192.168.4.80). …
The Steam Voice API is a set of functions that allow you record audio from the user's microphone. This can be used to implement voice chat or a voice command system. …
If the user is using push-to-talk voice chat, you can call [api]ISteamFriends::SetInGameVoiceSpeaking[/api] when you start and stop recording to mute any voice chat the user may be doing through the Steam friends UI. …
. [*][b]Must localize any text[/b] - Any text included on a graphical asset MUST be localized into at least the same set of languages supported by the game. [*][b]Only to describe new content that is currently available for Steam users[/b] - The only acceptable additional text on a game capsule are words describing a current major update to the game (new update), content that is currently available to a user (new seasonal event, battle pass, DLC), or similar new content for the game. …
[/olist] [/olist] [section]Library Graphical Asset Rules[/section] Library graphical assets are the set of images that represent your game within the Steam library. These are comprised of a vertical capsule, a hero image and a logo. You can find detailed specifications and templates in our [doclink=store/assets/libraryassets]Library Assets documentation[/doclink]. …
[/td] [/tr] [tr] [td][doclink=marketing/tradingcards]Steam Community Items[/doclink][/td] [td]Steam Trading Cards are collectible cards users get by playing games on Steam. By collecting the entire set of cards, users earn items that help them customize their profile and show off gameplay.[/td] [/tr] [tr] [td][doclink=marketing/widget]Store Widget[/doclink][/td] [td]For any game with a visible purchase option in the Steam store, you can create a widget with information about your product, current price, any discounts, and a purchase button to help you promote and display your title anywhere.…
These triggers may change in the future, but this is a description of current set of features.[/td] [/tr] …