From time to time, Steam will add new currency support to the Steam wallet. This will affect both Pay for Purchase titles on the Steam store and In-Game sales made through the [doclink=features/microtransactions]In-Game Purchasing/Microtransaction[/doclink] APIs. …
For purposes of monthly payout from Steam, this example would be considered a USD transaction of $10 value. [/list] …
Steam Controller support API. This API has been deprecated in favor of ISteamInput - please see [doclink=api/ISteamInput][/doclink] for API info See the [doclink=features/steam_controller][/doclink] documentation for more information. …
I guess Steam has added support for // a new controller or we just forgot to add this art! //(i.e, we only have Steam Controller glyphs, but it's a PlasyStation 4 Controller) if( glyphTextureID == -1 ) { // Just get the image from the Steam client instead. …
v=eYKfnWtQSaQ]video[/url] as an example. [callout=red] [h3]Warning[/h3] Although Steam Input re-scales the mouse position proportionally with resolution, many games do not apply consistent proportional scaling to their GUI elements. …
[list] [*] [b]Default User Setting[/b] No change to how the light functions [*] [b]Default XInput Slot Number Setting[/b] Slots 1-4 are colored red, blue, green, and purple, respectively. [*] [b]Custom Setting[/b] [list] [*][b]Controller Light Color[/b] Change the color of the light [*][b]Controller Light Saturation[/b] Change the intensity of the light [/list] [/list] [subsection]Music[/subsection] [docimg=legacy_music.png]legacy_music.png[/docimg] This lets you control music playback from your Steam music player. Options include: [list] [*] [b]STEAM MUSIC PLAY/PAUSE[/b] [*] [b]STEAM MUSIC NEXT[/b] [*] [b]STEAM MUSIC PREVIOUS[/b] [*] [b]STEAM MUSIC VOLUME UP[/b] [*] [b]STEAM MUSIC VOLUME DOWN[/b] [*] [b]STEAM MUSIC MUTE[/b] [/list] [subsection]Empty[/subsection] [docimg=legacy_empty.png]legacy_empty.png[/docimg] This does nothing, and is used for clearing out a previously selected special action.…
[b]Example Response:[/b] [code=json] { "price_info": { "220": { "packageid": 36, "currency": "USD", "initial_price": 999, "final_price": 999, "discount_percent": 0 } } } [/code] [section=GetDeletedSteamIDs]GetDeletedSteamIDs[/section] [code=http]GET https://partner.steam-api.com/ISteamUser/GetDeletedSteamIDs/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] [/table] [section=ResolveVanityURL]ResolveVanityURL[/section] [code=http]GET https://partner.steam-api.com/ISteamUser/ResolveVanityURL/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.…
[/td][/tr] [tr][td][b]login_token[/b][/td][td]string[/td][td]✔[/td][td]Login token to query[/td][/tr] [/table] Queries the status of the specified token, which must be owned by you [section=GetServerSteamIDsByIP]GetServerSteamIDsByIP[/section] [code=http]GET https://api.steampowered.com/IGameServersService/GetServerSteamIDsByIP/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.[/td][/tr] [tr][td][b]server_ips[/b][/td][td]string[/td][td]✔[/td][td][/td][/tr] [/table] Gets a list of server SteamIDs given a list of IPs [section=GetServerIPsBySteamID]GetServerIPsBySteamID[/section] [code=http]GET https://api.steampowered.com/IGameServersService/GetServerIPsBySteamID/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.…
[/introblock] We've been hard at work expanding Steam’s Events and Announcements system to enable integrated, eye-catching communications with your players. In the course of developing, launching, updating, and operating your game, you probably have interesting news to share, or moments you want players to be a part of. …
This post-time will be used by Steam algorithms to determine whether a Steam customer has "seen" the event or not. [*]Moving the start time of an event might confuse customers, as calendar entries a player manually creates or downloads may become out-of-sync with the actual event. …
Lepton is a container for running Android apps on Linux devices such as Steam Frame. There is no Lepton container running by default on Steam Frame, so adb will not have anything to connect to until we start one. You can do this by going to your Steam Library on the Steam Frame, find "Lepton Development" and start the application. You should see a floating window appear with an Android home screen. …
[docimg=rimworld_new_branch_exmpl.png]rimworld_new_branch_exmpl.png[/docimg] As soon as a tester or customer has selected the branch, the Steam client will start downloading the branch, replacing their currently installed branch. One a player is opted in to any branch other than "default/none," Steam will show some UI next to the play button indicating the selected branch. …
" dropdown menu. [*] Click on the "Preview Change" button for the build you selected. [*] Click on "Set Build Live Now" to immediately make your branch available in Steam. [/list] [/list] [section]Switching Branches from within your game[/section] Steam has a set of APIs that lets a game tell Steam to switch the user to a particular beta branch. …
[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. …
[/b] A: Impressions are only counted when the event capsule is viewed on the Steam Library, Store, or Community site. If a user discovers your event outside of Steam and visits your event page directly, it will count as a read without generating a corresponding impression. …
Rename the file to the following: "game_actions_X.vdf", where X is your game's Steam AppID. If you don't know what your game's Steam AppID is, it can be found by logging into your Steam partner site. [callout] [h3]NOTE: These are the typical controller_config locations for each platform:[/h3] Windows: C:\Program Files (x86)\Steam\controller_config macOS: ~/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/controller_config Linux: ~/.steam/steam/controller_config [/callout] Now open up the file in your favorite text editor. …
[/code] Major revisions are used for large, breaking changes to Steam Input API, such as adding it to an existing game or changing of action sets. By default, this will only affect configurations already using Steam Input API as to not disrupt existing players who have been using Steam Input to existing gamepad support. …
[/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. [section=GetSteamLevel]GetSteamLevel[/section] [code=http]GET https:/partner.steam-api.com/IPlayerService/GetSteamLevel/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.[/td][/tr] [tr][td][b]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]The player we're asking about[/td][/tr] [/table] Returns the Steam Level of a user [section=GetBadges]GetBadges[/section] [code=http]GET https://partner.steam-api.com/IPlayerService/GetBadges/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.…
[subsection=RetrieveMessage]RetrieveMessage[/subsection] [code=cpp]EGCResults RetrieveMessage( uint32 *punMsgType, void *pubDest, uint32 cubDest, uint32 *pcubMsgSize );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]punMsgType[/b][/td][td][apitype]steam_api::uint32[/apitype] *[/td][td][/td][/tr] [tr][td][b]pubDest[/b][/td][td]void *[/td][td][/td][/tr] [tr][td][b]cubDest[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td][/td][/tr] [tr][td][b]pcubMsgSize[/b][/td][td][apitype]steam_api::uint32[/apitype] *[/td][td][/td][/tr] [/table] Fills the provided buffer with the first message in the queue and returns k_EGCResultOK or returns k_EGCResultNoMessage if there is no message waiting. pcubMsgSize is filled with the message size. …
[b]Returns:[/b] [apitype]ISteamGameCoordinator::EGCResults[/apitype] [section=callbacks]Callbacks[/section] These are callbacks which can be fired by calling [api]steam_api::SteamAPI_RunCallbacks[/api]. Many of these will be fired directly in response to the member functions of [code-inline]ISteamGameCoordinator[/code-inline]. …
You can see an example on the [doclink=sdk/uploading#5]Uploading to Steam - Advanced Build Scripts[/doclink] page. During the build process, two things take place: [list] [*] The install script is uploaded to Steam and cryptographically signed. …
You can see this in the generated [code-inline]manifest.txt[/code-inline] file as a [code-inline]100[/code-inline] in the [code-inline]Flags[/code-inline] field. [/list] When a Steam user is starting a game, Steam will scan all of the mounted depots for that game for any file with the install script flag and run them. …
Here's an example of radial menus used for quick spell selection in [i][url=http://store.steampowered.com/app/218410]Defender's Quest: Valley of the Forgotten[/url][/i]: [docimg=dqdx_radial_menu.png]dqdx_radial_menu.png[/docimg] That radial menu in the center of the screen is [i]not[/i] part of [i]Defender's Quest's[/i] code. It's entirely driven by the Steam overlay and the Steam Input configurator. As far as the [i]Defender's Quest[/i] application is concerned, it's simply receiving actions from the Steam Input API. …
A double-layered radial menu. Once again, here's the link to configuration: steam://controllerconfig/433340/1360133345 And the IGA file: [docfile=slime_rancher_nested_radial_menus.vdf]slime_rancher_nested_radial_menus.vdf[/docfile] [section]Further Reading[/section] [list] [*] [url=http://www.gamasutra.com/blogs/LarsDoucet/20170125/289904/The_Steam_Controller_Configurators_Untapped_Power.php]The Steam Controller Configurator's Untapped Power[/url] [*] [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/mouse_regions][/doclink] [*] [doclink=features/steam_controller/touch_menus][/doclink] [/list] …
As part of the Steam Library update, we’ve improved the look and feel of your event and announcement pages, along with the authoring tools for creating them. …
[subsection]Event Body[/subsection] Users can interact with the [b]event body section[/b] of your announcement. So, in addition to text and static images, feel free to include Steam Store widgets or YouTube videos. [docimg=event_example_detail_lg2.jpg]event_example_detail_lg2.jpg[/docimg] [section]Steam Library - Game Details Page[/section] Your game details page in the Steam Library includes three image types to convey information about the state of your game. …
However, it is subject to change so please do not parse it yourself. Your buffer must be at least k_cchMaxSteamNetworkingPingLocationString bytes. [subsection=ParsePingLocationString]ParsePingLocationString[/subsection] [code=cpp]bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t &result );[/code] Parse back SteamNetworkPingLocation_t string. …
[subsection=GetPingToDataCenter]GetPingToDataCenter[/subsection] [code=cpp]int GetPingToDataCenter( SteamNetworkingPOPID popID, SteamNetworkingPOPID *pViaRelayPoP );[/code] Fetch ping time of best available relayed route from this host to the specified data center. …
Steam has various top sellers lists throughout the store, including the most prominent one on the homepage of Steam. You can also find them when browsing any individual tag, theme, or genre, scoped to that particular category. …
filter=globaltopsellers]Steam search results[/url] page. [subsection]Tag, Genre, Theme, Category pages[/subsection] Each individual tag, genre, theme, or category browse page on Steam also has a top sellers list that is appropriate for that category. …
[/olist] [section=started]Getting Started[/section] Sale landing pages are built on top of Steam Community groups for Developers homepages or Steam Curators. They need to be enabled specifically by someone at Valve. [b]Permissions[/b] [list] [*]Your Steam account needs to have 'Officer' level rights within your [url=https://support.steampowered.com/kb_article.php?ref=2092-QLZX-8453]Steam Community group[/url]. [*]Your Steam account cannot be a [url=https://support.steampowered.com/kb_article.php?ref=3330-iagk-7663]limited user account[/url]. …
Please also note that Steam may spread out Free Weekend events on the calendar to avoid overlapping promotions. [section]Setup[/section] To run a Free Weekend, you'll first need approval from the Steam Team as described in the [doclink=marketing/discounts/freeweekends#1]Overview[/doclink] above. If approved, here are few set up steps and best practices: [subsection]Steam Team Setup:[/subsection] [list] [*] The Steam Team will create a special Free Weekend package that grants players access to your game during the event. …
[section=Overview]Overview[/section] Steam Bundles is a feature that allows multiple products to be bundled together at a discount to provide additional value and benefit to your best fans. …
Can I request keys for a Steam Bundle?[/b] A. Steam Bundles do not have the ability to have keys associated with them. If you need keys that grant users multiple products, you'll need to use a key-only package for those contents. …