[/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.…
[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. …
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. …
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. …
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. …
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. …
[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. …
The default controller configuration must provide users with the ability to access all content. Players must not need to adjust any in-game settings in order to enable controller support or this configuration. [*][b]controller glyphs[/b]: when using Steam Frame's physical controls, on-screen glyphs must either match Frame button names, or match Xbox 360/One button names. …
On Frame, games without native Linux builds will be run through Proton, a set of tools that will automatically take your current Windows executable and game data and run them on Steam Frame's Linux-based OS. …
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] …
[/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. …
[section]Configuring as Free[/section] When you initially create your game in Steamworks, you can do so with the setting to make it free to play. [docimg=Setup1.png]Setup1.png[/docimg] Once you have done this, you'll find your game listed with a price of 'free' in the "Store Package" area. …
[subsection]Entering pricing for in-game purchases and running discounts[/subsection] For in-game purchases, you won’t enter pricing into Steamworks—all pricing is handled on your backend when it initializes the transaction. You can set whatever pricing you think is appropriate. Every transaction is completely distinct so you can set the pricing per transaction. …
. [*][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]. …
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. …
Learn more: [doclink=marketing/wishlist]Wishlist[/doclink] [*][h3]Tag your game[/h3] Once you've got your store page set up, be sure to visit the page and add any additional relevant tags. Just click the "+" symbol next to the set of tags already applied (from the set of genres you picked during setup) and you'll see an interface that allows you to choose and enter other tags. …
Many of the popular streamers, journalists, and community gaming sites are set up as Curators in Steam, and you can use Curator Connect to send them a copy of your game without having to email out keys. These influencers can post their reviews on Steam or wherever else they already post reviews or stream your game. …
[/td][/tr] [tr][td][b]property_value_string[/b][/td][td]string[/td][td][/td][td]The string value of the property to set.[/td][/tr] [tr][td][b]property_value_bool[/b][/td][td]bool[/td][td][/td][td]The boolean value of the property to set.[/td][/tr] [tr][td][b]property_value_int[/b][/td][td]int64[/td][td][/td][td]The 64 bit integer value of the property to set.[/td][/tr] [tr][td][b]property_value_float[/b][/td][td]string[/td][td][/td][td]The 32 bit float value of the property to set.[/td][/tr] [tr][td][b]remove_property[/b][/td][td]bool[/td][td][/td][td]Set to true if the property should be removed.[/td][/tr] [/table] Modify the [doclink=features/inventory/dynamicproperties]dynamic properties[/doclink] on items for the given user. …
First, make sure you have downloaded and installed the DirectX SDK. Once the SDK is installed you need to set up the include path. You can do this system wide via the standard Visual Studio environment variables, or you can set them up just for the SteamworksExample project by editing the project properties. [*] [b]Fatal error LNK1104: cannot open file 'd3d9.lib'[/b] If you encounter this error it means that your systems library path does not include the D3D library directory. …
If you do you'll find an example of installing the exception handler and setting up minidump writing in [code-inline]WinMain()[/code-inline] and [code-inline]MiniDumpFunction()[/code-inline] within [code-inline]Main.cpp[/code-inline]. …