After you activate an action such as "assign_group" or "add_remove_group", the game's programming will wait until an action such as "group_0" or "group_3" is pressed. "assign_group" + "group_2" means, "assign the current selection to group 2," whereas "select_group" + "group_5" means, "select everything currently assigned to group 5." This sort of thing has to be implemented by the game's own logic, but it's much simpler than creating individual action permutations for each slot, ie "add_remove_group_2", "assign_group_2", "select_group_2", etc... Additionally, the Unit commands have the special action "queue.…
They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Removes element names from arrays [/list] [section=GetNewsForAppAuthed]GetNewsForAppAuthed[/section] [code=http]GET https://partner.steam-api.com/ISteamNews/GetNewsForAppAuthed/v2/[/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.…
They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Removes element names from arrays [/list] [b]NOTE:[/b] This call requires the publisher API key that owns the specified App ID to use this method. …
Trailers are displayed at the top of your product's store page and are often one of the first things your potential customers will be seeing. [docimg=Portal2TrailerExample2_1.jpg]Portal2TrailerExample2_1.jpg[/docimg] [section]Best Practices[/section] Trailers are important in marketing your product on Steam. …
If you have PEGI and ESRB rated videos that should only appear in certain countries, you can restrict the visibility of your trailer to certain countries by using the [url=https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2]ISO 3166-1 alpha-2[/url] language codes. (Example: DE,FR,US,CA,MX) [section]Trailer Thumbnail / Poster Images[/section] As Steam processes the trailer you upload, it will automatically generate two images needed by the store: [list] [*]A poster image of 600px x 380px that displays in the video player until the video has loaded enough to start playing [*]A thumbnail image of 232px x 130px that is used to represent the trailer on your store page [/list] [subsection]Custom thumbnail/poster image[/subsection] If you are unhappy with the image automatically generated by Steam, you may upload your own image to represent your trailer. …
[section=capsule]Library Capsule [color=#ca5029]Required[/color][/section] The library capsule is the primary way of presenting your game within the Steam Library, including on the library overview and within collections. [docimg=library_capsule_example2.jpg]library_capsule_example2.jpg[/docimg] [b]Usage:[/b] This image is primarily used in the library overview and collection views. …
[b]Size:[/b] 600px x 900px (an additional half-size 300px x 450px PNG will be auto-generated from larger file) [section=header]Library Header [color=#ca5029]Required[/color][/section] The library header is used in different places within the Steam Client Library. [docimg=cs2libheader.jpg]cs2libheader.jpg[/docimg] [b]Usage:[/b] Appears in various places in the Steam Client Library, including Recent Games. …
[section=GetSchemaForGame]GetSchemaForGame[/section] [code=http]GET https://partner.steam-api.com/ISteamUserStats/GetSchemaForGame/v2/[/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.…
They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Fixes returning the game name in XML. [/list] [section=GetUserStatsForGame]GetUserStatsForGame[/section] [code=http]GET https://partner.steam-api.com/ISteamUserStats/GetUserStatsForGame/v2/[/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.…
[section]Icon Asset Templates[/section] [table] [tr][td][b]Templates[/b][/td] [td] [url=https://www.dropbox.com/scl/fo/cvkwbosmrimklcl9h0qko/AF5IPErKP-mQM_3YO1Dw2lA?rlkey=b3ad0izykq367g4luasrinw9z&dl=0]Download templates[/url] for sizing with examples. [/td][/tr] [tr][td][b]Contents[/b][/td] [td][list] [*]Shortcut Icon [*]App Icon [/list][/td][/tr] [/table] [section=client_icon]Shortcut Icon [color=#ca5029]Required[/color][/section] [docimg=shortcut.png]shortcut.png[/docimg] [b]Usage:[/b] This icon is used when creating desktop shortcuts to launch your application. …
[docimg=mac_icon.jpeg]mac_icon.jpeg[/docimg] [/callout] [section=community_icon]App Icon [color=#ca5029]Required[/color][/section] [docimg=cs2.jpg]cs2.jpg[/docimg] [b]Usage:[/b] This image is used to represent your application in compact layouts where there isn't enough room for a larger capsule. …
They will continue to be usable but it's highly recommended that you use the latest version. Change history: [list] [*] [b]Version 2[/b] - Removes element names from arrays [/list] The response from the call will look something like this: [code] "response":{ "players":[ { "steamid":"77561198355051011", "communityvisibilitystate":1, "profilestate":1, "personaname":"Mister Manager", "lastlogoff":1556305001, "profileurl":"https://steamcommunity.com/profiles/77561198355051011/", "avatar":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5.jpg", "avatarmedium":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5_medium.jpg", "avatarfull":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5_full.jpg", }, { "steamid":"77561197978236369", "communityvisibilitystate":3, "profilestate":1, "personaname":"Olive The Dog", "lastlogoff":1556239336, "profileurl":"https://steamcommunity.com/id/olive_the_dog/", "avatar":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/41/555d2fbb879593c0565ce0489428a09c019feffa.jpg", "avatarmedium":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/41/555d2fbb879593c0565ce0489428a09c019feffa_medium.jpg", "avatarfull":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/41/555d2fbb879593c0565ce0489428a09c019feffa_full.jpg", } ] } [/code] [section=GetPublisherAppOwnership]GetPublisherAppOwnership[/section] [code=http]GET https://partner.steam-api.com/ISteamUser/GetPublisherAppOwnership/v4/[/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]vanityurl[/b][/td][td]string[/td][td]✔[/td][td]The vanity URL to get a SteamID for[/td][/tr] [tr][td][b]url_type[/b][/td][td]int32[/td][td][/td][td]The type of vanity URL. 1 (default): Individual profile, 2: Group, 3: Official game group[/td][/tr] [/table] …
Learn more about [doclink=store/application/packages/autogrants][/doclink]. [/list] [subsection]Method 2: Multiple Steamworks Partner Accounts[/subsection] This method may be useful when a publisher is sharing access with a development studio, or when both parties already have Steamworks partner accounts set up. …
If the latter, you'll need some help from Valve to get this set up, so please [url=https://help.steampowered.com/en/wizard/Login?redir=%2Fen%2Fwizard%2FHelpWithPublishing%3Fissueid%3D903&title=Sign+in]contact Valve[/url] if this is the case. [*][h4]If my game is published by a different company, how do I create a new Steamworks account without creating a new app and paying the app fee?…
Create 1-4 of these, ideally. All assets should be looping, and under 2MB. [/h4] [list][*]224 x 224px APNG (animated .png) <2MB [*]224 x 224px .png (still)[/list] [img]https://steamcdn-a.akamaihd.net/steamcommunity/public/images/steamworks_docs/english/steamhweensale2020GIF2.gif[/img] [url=https://store.steampowered.com/points/shop/c/avatar](Click here to see examples live in the Points Shop.)…
Stickers should be a looping APNG (plus one still frame PNG), clearly expressing some emotion or idea (without words) at 150x150px (under 300KB), with alpha transparency in each frame. Create 2-6 of these, ideally. [url=https://store.steampowered.com/points/shop/c/stickers](Click here to see examples live in the Points Shop.)…
[subsection]Example Files[/subsection] [list] [*][docfile=portal2_actions.vdf]portal2_actions.vdf[/docfile] for [url=http://store.steampowered.com/app/620/Portal_2/]Portal 2[/url] [*][docfile=defenders_quest_actions.vdf]defenders_quest_actions.vdf[/docfile] for [url=http://store.steampowered.com/app/218410]Defender's Quest: Valley of the Forgotten[/url] [*][doclink=features/steam_controller/iga_examples]IGA template files[/doclink] (not from any actual game, but meant as starting material for various genres). …
[b]StickPadGyro Actions[/b] Let's start by adding some [code-inline]StickPadGyro[/code-inline] (2-axis analog) actions. How about something to move the character around -- we'll call it "Move", and something to control the camera -- we'll call it "Camera.…
[docimg=steamworks_steam_input_custom_config.png]steamworks_steam_input_custom_config.png[/docimg] And from the selection below, select "Add Custom Configuration." [docimg=steamworks_steam_controller_custom2.png]steamworks_steam_controller_custom2.png[/docimg] [*] Paste the file ID of your public configuration into the box, and click the OK button. …
To do this, simply create multiple configurations and publish them each via step 2. Then, in step 3, paste all the file IDs for your configurations into the box, separated by the comma character (,) characters. The first one on the list will be considered the highest priority, and will be picked by default for new players. …
[section]Homepage Editor Tools Overview[/section] https://www.youtube.com/watch?v=kjhqm6Y2CFY [section]To start using the new editor[/section] Visit your developer or publisher homepage and then the following: [olist] [*]Click the 'admin' tab. [*]Select "Creator Home v2" on the left-hand side of admin options. [*]Click "Create New" to set up a new homepage. …
[olist] [*]From your developer homepage, select the 'admin' tab [*]Then click on one of the list options in the left-hand menu. [/olist] [docimg=Homepage_Valve_Lists2.png]Homepage_Valve_Lists2.png[/docimg] [section]Previewing a new homepage[/section] While using the editing tools, you can click 'live preview' in the upper-right corner of the editor to get a second window that shows your work in progress within the context of your homepage header. …
The URL format for this page is as follows: https://store.steampowered.com/verified/<appid> More pretty examples: [docimg=Example_2.png]Example_2.png[/docimg] [subsection]Requirements[/subsection] To enable this page, the game must have received Verified status and must have [b]at least one[/b] trailer published to the store page that is marked as safe for all ages.…
Specifically: [list] [*]Show your full face, and you holding the same Identification document that you have previously provided [*]Please remove hats, glasses, and other facial obstructions if those items are not visible in your identification document [*]The ID itself must be clear and legible and all four corners and edges must be visible [*]Please send the images as a JPEG / Image file [/list] Examples: [docimg=Id_docs_example_composite2.png]Id_docs_example_composite2.png[/docimg]…
After you have plugged it in, press the power button to turn it on, then follow the in headset instructions to get through the initial update. After the headset reboots, log into Steam. [docimg={62DA2CEA-FD49-491C-8E01-B983CBEC377F}.png]{62DA2CEA-FD49-491C-8E01-B983CBEC377F}.png[/docimg] [section]Developer Mode[/section] When you get your frame the first thing you will want to do is turn on [b]Developer Mode[/b]. …
Once connected, click this same button to disconnect from wireless streaming. [docimg=steamframe-streamtopc2.png]steamframe-streamtopc2.png[/docimg] [i]Note: SteamVR will automatically reconnect to the last wireless headset it was launched with, so you can just launch SteamVR from the PC rather than needing to initiate from in-headset each time. …
id=<file id> [/code] For example, here are a few examples from Portal 2's [url=https://steamcommunity.com/app/620/workshop/]Workshop[/url] and [url=https://steamcommunity.com/app/620]Community Hub[/url]. …
Here is an example of the first [url=https://steamcommunity.com/games/portal2/announcements/detail/92679896001484067]Portal 2 update event[/url]. [docimg=2019-09-18_13-59-10.png]2019-09-18_13-59-10.png[/docimg] [subsection=medal]Medal.tv[/subsection] It might be fun to share an epic moment from your gaming sessions in your game's announcements. …
Your Store Page descriptions can be found in each app of Steamworks under Store Presence > Edit Store Page > Description [section]Your Product's Short Description[/section] Your product's short description is meant to be a brief synopsis, used in locations on Steam where real estate is limited, most notably at the very top of your game's store page. [docimg=short_description_example2.jpg]short_description_example2.jpg[/docimg] [subsection]Short Description Best Practices[/subsection] [list] [*][b]Focus on Your Product's Unique Value Proposition[/b] - There are a million things to say about any game, but the short description will need to quickly convey why a customer would want to learn more about [i]this[/i] game in particular. …
This includes via embedded images, QR codes and even implied URLs via text such as "DOTA2 DOT COM". Instead, you should use the specific link fields provided if you want to link tocommon social media platforms or your own website. …
We have found that for our own games it works best to release major updates every 1-2 months at most. This let us put together a big enough update to be exciting and compelling, and allowed for time to tease or pre-announce those updates before they ship to build anticipation. …
[/olist] [b]Examples[/b] As an example of the kinds of update announcement pages that we at Valve have put together for some of our own games, you can see the latest updates for Counter-Strike 2 listed down the right-side of the [url=https://www.counter-strike.net/home]CS2 website[/url], or some updates for Dota 2 [url=http://www.dota2.com/700]here[/url] and [url=http://www.dota2.com/darkrift]here[/url]. …
IPv6 is always used; IPv4 is represented using "IPv4-mapped" addresses: IPv4 aa.bb.cc.dd => IPv6 ::ffff:aabb:ccdd. (See [url=https://tools.ietf.org/html/rfc4291#section-2.5.5.2]RFC 4291[/url] section 2.5.5.2.) [code] struct SteamNetworkingIPAddr { void Clear(); // Set everything to zero. E.g. [::]:0 bool IsIPv6AllZeros() const; // Return true if the IP is ::0. …
See k_ESteamNetworkingSendType_ReliableNoNagle, [api]ISteamNetworkingSockets::FlushMessagesOnConnection[/api], [api]ISteamNetworkingMessages::FlushMessagesToUser[/api] Migration note: This is NOT the same as k_EP2PSendReliable, it's more like k_EP2PSendReliableWithBuffering [code]const int k_nSteamNetworkingSend_ReliableNoNagle = k_nSteamNetworkingSend_Reliable|k_nSteamNetworkingSend_NoNagle;[/code] Send a message reliably, but bypass Nagle's algorithm. …
Once you enable Smart Section, you will see a few options for which smart section criteria to use for this section. [subsection]2. Using filters (requires a linked app list)[/subsection] If you have more than about 50 games, and if you want to organize them by genre or tag, you may want to use the linked app list. …
There are a few different options to make the layout interesting. 2/3/4/3 [subsection]Special options for single item-per-row[/subsection] If you choose to display a single (1) item per row, then you'll find a new set of options appears for how to display that single item. …