[section=SetItemPaymentRules]SetItemPaymentRules[/section] [code=http]POST https://partner.steam-api.com/IWorkshopService/SetItemPaymentRules/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.…
[section=GetItemDailyRevenue]GetItemDailyRevenue[/section] [code=http]GET https://partner.steam-api.com/IWorkshopService/GetItemDailyRevenue/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.…
Values are: [list] [*] Windows 3.11 [*] Windows 95 [*] Windows 98 [*] Windows ME [*] Windows NT [*] Windows 2000 [*] Windows XP [*] Windows 2003 [*] Windows Vista [*] Windows 7 [*] Windows 2008 [*] Windows 2012 [*] Windows 2012 R2 [*] Windows 8 [*] Windows 8.1 [*] Windows 10 [/list] [/list] [b]64 bit Example[/b] This example will run the appropriate installer for the 32 or 64 bit installer. …
For example: [code] "InstallScript" { "Registry" { "HKEY_LOCAL_MACHINE\\SOFTWARE\\MonkeyDime Studios\\Killer Banana Peel" { "dword" { "english" { "Language" "1" } "french" { "Language" "2" } "german" { "Language" "3" } "italian" { "Language" "4" } "spanish" { "Language" "5" } } } } } [/code] The install script gets the language from Steam's registry key, querying the value "Language". …
[subsection]Community Tabs[/subsection] Community hubs are organized into different tabs based on the type of content they contain. By default, these tabs will show the most popular content posted over the previous week. [list] [*][b]All[/b] - The front page of your hub. …
These settings control the features that your different group member types are able to use. You can access these permissions from the Hub Admin panel by selecting [i]Edit Group Permissions[/i] [*][b]Adding moderators[/b] Once you have a good idea of what features are accessible by which member types, you'll want to promote other members of your team. …
[section=AuthenticateUser]AuthenticateUser[/section] [code=http]POST https://partner.steam-api.com/ISteamUserAuth/AuthenticateUser/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]Should be the users steamid, unencrypted.…
[/td][/tr] [/table] [section=AuthenticateUserTicket]AuthenticateUserTicket[/section] [code=http]GET https://partner.steam-api.com/ISteamUserAuth/AuthenticateUserTicket/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]appid[/b][/td][td]uint32[/td][td]✔[/td][td]appid of game[/td][/tr] [tr][td][b]ticket[/b][/td][td]string[/td][td]✔[/td][td]Convert the binary ticket data from GetAuthTicketForWebApi into a hexadecimal string and pass that string in as this parameter.…
This document describes where various types of events can appear. Events are your communication channel with your players and prospective players on Steam. You can author a single event with images and metadata attached to it, and it will automatically be pushed out to all the relevant locations across Steam. …
Steam players have the ability to personalize the games and event types they will see. They can increase or decrease the frequency of events about games that appear in their 'What's New' section. To present the best event to your fan on their home, you need to be mindful of when older events should no longer appear in this section. …
[section=ItemVoteSummary]ItemVoteSummary[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemVoting/ItemVoteSummary/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.…
[section=UserVoteSummary]UserVoteSummary[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemVoting/UserVoteSummary/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.…
[section]Creating[/section] To distribute your dedicated game server through Steam, there are a few necessary configurations to be made. [olist] [*] Create a new App ID of type TOOL that will be used solely for the dedicated server for the game. You can do this yourself by visiting the "All Associated Packages, DLC, Demos and Tools" section for your app and clicking "Create new Tool" button. [*] Inside that new App, click Edit Steamworks Settings. …
[section]Releasing[/section] Your dedicated server has a release checklist similar to other types of products in Steamworks. You'll need to complete the required items listed on the right-hand side of your app landing page for the tool. …
[section]Configuring Location of Broadcast Player[/section] By default, broadcasts will appear at the very top of your sale page. But you can add a 'broadcast' type section to your page (further instructions below) to display livestreams in a specific spot on your page (if, for example, you wish to show more information above the broadcast player). This 'broadcast' type section will automatically include livestreams from games that are part of your sale and from specific accounts that you approve. …
[section=GetAppList]GetAppList[/section] [code=http]GET https://partner.steam-api.com/IStoreService/GetAppList/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]Any web API key.[/td][/tr] [tr][td][b]if_modified_since[/b][/td][td]uint32[/td][td][/td][td]Return only items that have been modified since this date.…
[/td][/tr] [/table] Returns a list of all apps available on the Steam Store. The type of items returned can be filtered using the [code-inline]include_games[/code-inline], [code-inline]include_dlc[/code-inline], [code-inline]include_software[/code-inline], [code-inline]include_videos[/code-inline], and [code-inline]include_hardware[/code-inline] flags. …
[section]Before you start[/section] In order to make use of this feature, you will need to: [list] [*]Review the [doclink=store/promo]rules and guidelines[/doclink] for the type of event you are running. [*]At the bottom of each rules page, find the link under "Getting started" and submit a support ticket with information about your event. [*]Once enabled, you'll need to add your games, configure sections and finish most of the merchandising work to organize the games in your sale. [*]Flip over to the 'preview' of your sale page, and you'll see the controls to enable background groupings. …
[/b] A: Probably best not to overwhelm people with too many moving things [b]Q: What file types are supported for background groupings?[/b] A; .jpg .png .webp…
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. …
Default set of icons: [no_glow] [table] [tr] [th]Icon[/th][th]Name[/th][th]Description[/th] [/tr] [tr] [td][docimg=marker_2.png][/docimg][/td][td]steam_marker[/td][td]Marker[/td] [/tr] [tr] [td][docimg=achievment_1.png][/docimg][/td][td]steam_achievement[/td][td]Achievement[/td] [/tr] [tr] [td][docimg=attack_1.png][/docimg][/td][td]steam_attack[/td][td]Attack[/td] [/tr] [tr] [td][docimg=bolt_1.png][/docimg][/td][td]steam_bolt[/td][td]Bolt[/td] [/tr] [tr] [td][docimg=bookmark_1.png][/docimg][/td][td]steam_bookmark[/td][td]Bookmark[/td] [/tr] [tr] [td][docimg=bug.png][/docimg][/td][td]steam_bug[/td][td]Bug[/td] [/tr] [tr] [td][docimg=cart.png][/docimg][/td][td]steam_cart[/td][td]Cart[/td] [/tr] [tr] [td][docimg=caution.png][/docimg][/td][td]steam_caution[/td][td]Caution[/td] [/tr] [tr] [td][docimg=chat.png][/docimg][/td][td]steam_chat[/td][td]Chat[/td] [/tr] [tr] [td][docimg=checkmark.png][/docimg][/td][td]steam_checkmark[/td][td]Checkmark[/td] [/tr] [tr] [td][docimg=chest.png][/docimg][/td][td]steam_chest[/td][td]Chest[/td] [/tr] [tr] [td][docimg=circle.png][/docimg][/td][td]steam_circle[/td][td]Circle[/td] [/tr] [tr] [td][docimg=combat.png][/docimg][/td][td]steam_combat[/td][td]Combat[/td] [/tr] [tr] [td][docimg=completed.png][/docimg][/td][td]steam_completed[/td][td]Completed[/td] [/tr] [tr] [td][docimg=crown.png][/docimg][/td][td]steam_crown[/td][td]Crown[/td] [/tr] [tr] [td][docimg=death.png][/docimg][/td][td]steam_death[/td][td]Death[/td] [/tr] [tr] [td][docimg=defend.png][/docimg][/td][td]steam_defend[/td][td]Defend[/td] [/tr] [tr] [td][docimg=diamond.png][/docimg][/td][td]steam_diamond[/td][td]Diamond[/td] [/tr] [tr] [td][docimg=edit.png][/docimg][/td][td]steam_edit[/td][td]Edit[/td] [/tr] [tr] [td][docimg=effect.png][/docimg][/td][td]steam_effect[/td][td]Effect[/td] [/tr] [tr] [td][docimg=explosion.png][/docimg][/td][td]steam_explosion[/td][td]Explosion[/td] [/tr] [tr] [td][docimg=fix.png][/docimg][/td][td]steam_fix[/td][td]Fix[/td] [/tr] [tr] [td][docimg=flag.png][/docimg][/td][td]steam_flag[/td][td]Flag[/td] [/tr] [tr] [td][docimg=gem.png][/docimg][/td][td]steam_gem[/td][td]Gem[/td] [/tr] [tr] [td][docimg=group.png][/docimg][/td][td]steam_group[/td][td]Group[/td] [/tr] [tr] [td][docimg=heart.png][/docimg][/td][td]steam_heart[/td][td]Heart[/td] [/tr] [tr] [td][docimg=info.png][/docimg][/td][td]steam_info[/td][td]Info[/td] [/tr] [tr] [td][docimg=invalid.png][/docimg][/td][td]steam_invalid[/td][td]Invalid[/td] [/tr] [tr] [td][docimg=minus.png][/docimg][/td][td]steam_minus[/td][td]Minus[/td] [/tr] [tr] [td][docimg=pair.png][/docimg][/td][td]steam_pair[/td][td]Pair[/td] [/tr] [tr] [td][docimg=person.png][/docimg][/td][td]steam_person[/td][td]Person[/td] [/tr] [tr] [td][docimg=plus.png][/docimg][/td][td]steam_plus[/td][td]Plus[/td] [/tr] [tr] [td][docimg=purchase.png][/docimg][/td][td]steam_purchase[/td][td]Purchase[/td] [/tr] [tr] [td][docimg=question.png][/docimg][/td][td]steam_question[/td][td]Question[/td] [/tr] [tr] [td][docimg=ribbon.png][/docimg][/td][td]steam_ribbon[/td][td]Ribbon[/td] [/tr] [tr] [td][docimg=screenshot.png][/docimg][/td][td]steam_screenshot[/td][td]Screenshot[/td] [/tr] [tr] [td][docimg=scroll.png][/docimg][/td][td]steam_scroll[/td][td]Scroll[/td] [/tr] [tr] [td][docimg=square.png][/docimg][/td][td]steam_square[/td][td]Square[/td] [/tr] [tr] [td][docimg=star.png][/docimg][/td][td]steam_star[/td][td]Star[/td] [/tr] [tr] [td][docimg=starburst.png][/docimg][/td][td]steam_starburst[/td][td]Starburst[/td] [/tr] [tr] [td][docimg=timer.png][/docimg][/td][td]steam_timer[/td][td]Timer[/td] [/tr] [tr] [td][docimg=transfer.png][/docimg][/td][td]steam_transfer[/td][td]Transfer[/td] [/tr] [tr] [td][docimg=triangle.png][/docimg][/td][td]steam_triangle[/td][td]Triangle[/td] [/tr] [tr] [td][docimg=trophy.png][/docimg][/td][td]steam_trophy[/td][td]Trophy[/td] [/tr] [tr] [td][docimg=view.png][/docimg][/td][td]steam_view[/td][td]View[/td] [/tr] [tr] [td][docimg=x.png][/docimg][/td][td]steam_x[/td][td]X[/td] [/tr] [/table] [/no_glow] [section=example]Example Code[/section] Below is a code sample for integrating Steam Timeline with Left 4 Dead. …
A single lobby can have up to 250 users in it, although typically most games have at most 2-16 players. Skill-based matchmaking is built on top of this system. The Steam peer-to-peer matchmaking API is a set of functions that enable users to find other users to play a game with. …
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. …
You can read more in the [doclink=marketing/branding]Steam Branding Guidelines[/doclink]. 2. [b][i]Do not make specific promises about future events.[/i] [/b]For example, there is no way you can know exactly when the game will be finished, that the game will be finished, or that planned future additions will definitely happen. …
This notice will appear when either of the following criteria has been met: [list] [*]It has been more than 12 months since a build has been assigned to the 'default' branch in Steamworks. [*]It has been more than 12 months since the developer has posted an 'update' type event, communicating to players about the update (This includes all three 'update' type events: Major Update, Regular Update, or Patch Notes) [/list] [section]Frequently Asked Questions[/section] [list][*][h4]Q: Can my unreleased Early Access Game be listed as Coming Soon?…
[docimg=ds4_controller_l1_r1.png]ds4_controller_l1_r1.png[/docimg] [subsection=L2R2]L2 and R2 (Shoulder triggers)[/subsection] [b]Analog, 1 axis (each)[/b] Unlike the Steam controller, the L2 and R2 analog triggers on the PlayStation 4 controller do [i]not[/i] have a distinct digital "click" at the end of the normal analog range distinguishing a "full pull" from a "soft pull". …
However, the Steam Input configurator is able to fix this; the player may set a threshold that distinguishes a "full pull" from a "soft pull." [docimg=ds4_controller_l2_r2.png]ds4_controller_l2_r2.png[/docimg] [subsection=DPAD]Dpad[/subsection] [b]Digital[/b] The PlayStation 4 controller features a fairly standard digital pad, or Dpad. …
We won't be allowing TF2 mods that are based around manipulating the items or economy. [*] [h4]Q. Can my mod redistribute TF2 game files?[/h4] [b]A.[/b] No. TF2 mods can only redistribute their own game files, and load TF2 content from a local install. Players will need TF2 installed to play any TF2 mod. …
Here's an example of a touch menu in [i][url=http://store.steampowered.com/app/268500/XCOM_2/]XCOM 2[/url][/i], binding the numeric hotkeys: [docimg=xcom2_touch_menu_button_ex.png]xcom2_touch_menu_button_ex.png[/docimg] Touch menus are available in both native and legacy mode, but can only be driven by a trackpad. …
[docimg=touch_menu_create.png]touch_menu_create.png[/docimg] Here's what the touch menu configuration screen looks like: [docimg=xcom2_touch_menu.png]xcom2_touch_menu.png[/docimg] [section]Basic Options[/section] [subsection]Menu Activation Style[/subsection] This works in the exact same way as it does for [doclink=features/steam_controller/radial_menus][/doclink]. …
After a user purchases or activates a package, the contents of that package dictate which applications or depot contents the user has permission to download and launch. [section]Types of packages[/section] Any new application created in the Steamworks system will by default be included in a new package with which that application can be sold via Steam and can have keys generated against it. [list] [*] [b]Store + CD-Key Package (Default)[/b]: All new applications in the Steamworks system come with this type of package by default. This lets you sell your app in the Steam store as well as generate CD Keys that unlock the exact same content if you wish. [*] [b]Store Package[/b]: This is a package that can only be sold on the Steam store [*] [b]CD Key Package[/b]: This is a package that can only have CD Keys generated against it [*] [b]Release Override "Beta Testing" Package[/b]: This package is automatically created along with your Application. …
[section=GetSupportedAPIList]GetSupportedAPIList[/section] [code=http]GET https://api.steampowered.com/ISteamWebAPIUtil/GetSupportedAPIList/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]The Steamworks Web API authentication key which is required to receive restricted methods.…
[section]Actual Authority[/section] Actual Authority is a specific type of administrative rights which are handled differently than other types of permissions. Actual Authority allows the user to: [list] [*]view and make changes to bank account information [*]view and make changes to tax information [*]view and make changes to payment thresholds [*]sign legal agreements, and [*]initiate and accept transfers of applications. …
We recommend that you periodically review who has this level of rights. [section=permissions]User Permissions[/section] There are two types of user permissions on Steamworks: Partner-level permissions and Group Permissions. [subsection]Partner Permissions[/subsection] Partner-level permissions are applied for the entire Steamworks partner account. …
The default stream usually looks something like: [code] 00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:172006], 00000009 my_exe_name.exe:05 > IClientUser::BLoggedOn( ) = 1, 00000009 my_exe_name.exe:05 > IClientNetworking::IsP2PPacketAvailable( 0, ) = 0, 0, 00000009 my_exe_name.exe:05 > IClientNetworking::IsP2PPacketAvailable( 1, ) = 0, 0, 00000009 my_exe_name.exe:05 > IClientFriends::GetPersonaName( ) = "user", 00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:123456], [/code] [subsection]Monitoring a specific interface[/subsection] If you are trying to track a specific issue, filter the log_ipc to the specific interface. ex: [code-inline]log_ipc IClientUser[/code-inline] Example output: [code] 00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:172006], 00000009 my_exe_name.exe:05 > IClientUser::BLoggedOn( ) = 1, 00000009 my_exe_name.exe:05 > IClientUser::GetSteamID( ) = [U:2:123456], [/code] [subsection]IPC Report[/subsection] A rollup report is available to the log_ipc command in the Steam client. …