[/td][/tr] [/table] [section=cover]Cover Image [color=#ca5029]Required[/color][/section] [docimg=cover.png]cover.png[/docimg] [b]Size:[/b] 800px wide x 450px tall [b]Design:[/b] This image should primarily contain the artwork and branding for your event. Steam will always automatically include your game's name and icon next to the cover image, so it isn't critical to include your game branding in the cover image (but you may still choose to do so). …
[section=header]Header Image [color=#d7bc86]Suggested[/color][/section] [docimg=header.png]header.png[/docimg] [b]Size:[/b] 1920px wide x 622px tall (please see template file for important notes) [b]Design:[/b] Add a rich header image to your detail page to communicate the theme or essence of your update or announcement. …
[section=available]Available Redistributables[/section] Available redistributables include Microsoft Visual C++, .NET, DirectX 9, OpenAL, XNA, and PhysX. The complete list of redistributables is always available on the [url=https://partner.steamgames.com/apps/installer/]Redistributables[/url] tab. …
The value field is a comma-delimited list of strings to check. [*] "and" (x1 && x2 && ... && xn) "or" (x1 || x2 || ... || xn) "nand" !(x1 && x2 && ... && xn) "nor" !(x1 || x2 || ... || xn) Performs Boolean operation on the following filters. The operand to this filter specifies the "size" of the Boolean inputs to the operation, in Key/value pairs. …
[b]Example Response:[/b] [code=xml] { "response": { [ { "sessionid": "12", "appid": "100", "title": { "token": "#TitleToken", "variables": [ { "key": "keyName", "value": "keyValue" } ] }, "time_created": "100000", // Unix time "time_updated": "200000", //Unix time "user_status": [ { "steamid": "76561197960265729", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Bob" } { "key": "level", "value": "1" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Bellevue" } ] } }, { "steamid": "76561197960265730", "state": "waiting", "title": { "token": "#TitleToken", "variables": [ { "key": "username", "value": "Greg" } { "key": "level", "value": "2" } ] }, "message": { "token": "#StatusMessageToken", "variables": [ { "key": "city", "value": "Seattle" } ] } } ] } } [/code] [b]Calling Example:[/b] [code] { "sessions": [ { "sessionid": "12", "include_all_user_messages": "0" }, { "sessionid": "13", "include_all_user_messages": "0" } ] } [/code] [section=RequestNotifications]RequestNotifications[/section] [code=http]POST https://partner.steam-api.com/IGameNotificationsService/RequestNotifications/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]pchVersionString[/b][/td][td]const char *[/td][td]The version string is usually in the form x.x.x.x, and is used by the master server to detect when the server is out of date. (Only servers with the latest version will be listed.)…
[/td][/tr] [tr=k_unServerFlagLinux][td][b]k_unServerFlagLinux[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td]0x08[/td][td]This game server is running on linux.[/td][/tr] [tr=k_unServerFlagNone][td][b]k_unServerFlagNone[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td]0x00[/td][td]This game server has no flags.…
Re-installing the application may fix this problem.[/b] The example relies on the D3D9X helper library which ships with the DirectX SDK. If you run the example on the same machine you have built it on the library should be found automatically. If you copy your compiled binary to another machine you may need to install the D3D redistributables to obtain the same version of D3D9X that you compiled against on your development machine. [/list] [section]Code Overview[/section] Once you have the [b]Spacewar![/b] example project compiling and running you'll want to start looking at the code. …
. [*] [code-inline]FontName[/code-inline] - Font used for menu text [*] [code-inline]FontHeight[/code-inline] - Height of menu text [*] [code-inline]MenuPos[/code-inline] - X and Y coordinates (in pixels) for the top left corner of the menu (ex: "200 324") [*] [code-inline]MenuStyle[/code-inline] - Alignment of menu text (0 = left, 1 = center, 2 = right) [*] [code-inline]ColorDefault[/code-inline] - RGB color for menu text (ex: "255 255 255") [*] [code-inline]ColorHover[/code-inline] - RGB color for menu text when the mouse is hovering over the text (ex: "250 180 60") [*] [code-inline]ColorDown[/code-inline] - RGB color for menu text when a mouse button is depressed over the text (ex: "0 0 0") [/olist] Setup can also display a EULA before installing your game. …
If you need to support a language that is currently not supported by Steam, please let us know in the [url=steamcommunity.com/groups/steamworks/discussions]Steamworks Development Discussions[/url] [subsection=setup_graphics]Graphics and Sound Effects[/subsection] The following files can be replaced to customize the setup application and Steam installation for your game: [olist] [*] [code-inline]splash.tga[/code-inline] - Image displayed by Steam while installing files from disk (392x165 pixels) [*] [code-inline]icon.ico[/code-inline] - Icon used in [code-inline]autorun.inf[/code-inline] as the icon for your installation disk [*] [code-inline]resources\setup.bmp[/code-inline] and [code-inline]resources\setup_<language>.bmp[/code-inline] - Image used for the background of setup.exe (640x480 pixels). …
[table] [tr] [td][docimg=override_example_1.jpg]override_example_1.jpg[/docimg][/td] [td][docimg=override_example_2.jpg]override_example_2.jpg[/docimg][/td] [td][docimg=override_example_3.jpg]override_example_3.jpg[/docimg][/td] [/tr] [tr] [td][docimg=override_example_4.jpg]override_example_4.jpg[/docimg][/td] [td][docimg=override_example_5.jpg]override_example_5.jpg[/docimg][/td] [td][docimg=override_example_6.jpg]override_example_6.jpg[/docimg][/td] [/tr] [tr] [td][docimg=override_example_7.jpg]override_example_7.jpg[/docimg][/td] [td][docimg=override_example_8.jpg]override_example_8.jpg[/docimg][/td] [td][docimg=override_example_9.jpg]override_example_9.jpg[/docimg][/td] [/tr] [/table] …
[doclink=marketing/upcoming_events/themed_sales/dinos_robots_2027]More info[/doclink]. [/td][/tr] [tr][td]Apr 12 Apr 19[/td][td]Racing Fest[/td] [td][url=https://partner.steamgames.com/optin/sale/racing_2027]Registration details[/url][/td] [td]Games about going [i]fast[/i]. …
[list] [*] In your game code: set your camera-angles-per-mouse-pixel ratio to 0.022 degrees per pixel. i.e. one mouse dot will turn your camera 0.022 degrees. [*] Set your default user mouse sensitivity to 2.5x. [*] These are the standards used in Source 2 engine games. This is why the default "Dots per 360 setting" is 6545. 360degrees / ( 0.022 * 2.5 ) = 6545.45' [/list] [/list] [subsection]Graphics[/subsection] [list] [*][b]Vulkan API[/b]: We recommend targeting Vulkan as your primary graphics API for best performance and battery life. If you use an engine like Unity or Unreal, enabling Vulkan in your build for all users will result in the highest performance/longevity. (Note: Proton includes a DirectX-to-Vulkan translation layer. If your game or engine has high-quality DirectX support but no Vulkan support, it's likely that this automated translation layer will exceed the performance of doing a custom Vulkan implementation.) [*][b]Video/Audio Codecs[/b]: We recommend using standalone codecs (eg., VP9 or AV1) rather than codecs that are tied to a specific vendor (eg., WMF). …
[b]Full branches with additional changes (recommended):[/b] https://github.com/Valve-VR/UnrealEngine/tree/5.7 https://github.com/Valve-VR/UnrealEngine/tree/5.6 https://github.com/Valve-VR/UnrealEngine/tree/4.27-plus [section]Do I need these changes?[/section] As of Unreal 5.6, you can run on Android with Steam Frame using Unreal's built in OpenXR support, with no custom code changes. …
[/list] [*]For consistency during development, you may also want to change the default Windows API to [b]Vulkan [/b]as well. [*]Change the default anti-aliasing method for mobile to [b]MSAA[/b] in [b]Project Settings > Engine - Rendering[/b], and set [b]MSAA sample count[/b] (Default Settings) to [b]4x MSAA[/b]. [*]Under the [b]Edit > Plugins[/b] menu, locate the [b]Steam Frame OpenXR Extension[/b] in the list, and enable it. [*](Optional, but recommended) Disable the [b]Android File Server[/b], which will speed up deployment and development times [/list] Depending on the needs of your project, other features can be disabled to save rendering performance, such as disabling Custom Depth if not needed. …
[b]Performance[/b] [list] [*][b]2D titles[/b]: your game must run at a minimum 30 fps at 1280x720 during normal play. [*][b]VR titles[/b]: your game must run at a minimum of 72 fps at 1728x1728 during normal play. ([i]Recommendations: We strongly recommend submitting both motion vector and depth suitable for reprojection. This will not automatically throttle your application, but will enable users to optionally run at higher refresh rates using improved reprojection techniques.[/i]) VR games below 1440x1440 will appear with an [docimg=unsupported_18.png]Unsupported badge[/docimg] [b]Unsupported[/b] badge. [callout]To assist in evaluating performance, we've added a [doclink=steamframe/compat/perf_criteria]Performance Assessment Overlay[/doclink] to SteamVR. …
However the request may have failed - the detailed Steam error code will be found in the [code-inline]x-eresult[/code-inline] header. The value for "success" is 1. All other values are likely to be errors; see the documentation for [doclink=api/steam_api]steam_api.h[/doclink] for details. …
[subsection]Delete[/subsection] Example: [code] POST https://api.steampowered.com/ICloudService/Delete/v1/ HTTP/1.1 Host: api.steampowered.com Content-Type: application/x-www-form-urlencoded Content-Length: <body length> access_token=<token>&input_json={ "appid": "1234", "filename": "%25WinAppDataLocal%25Foobar%2FGamename%2Fcloud%2Fgames%2Fsave.sav" } [/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]access_token[/b][/td][td]string[/td][td]✔[/td][td]OAuth access token for the user[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]Your App ID[/td][/tr] [tr][td][b]filename[/b][/td][td]string[/td][td]✔[/td][td]filename of the file to delete[/td][/tr] [/table] This API will delete the specified file from the user's Steam Cloud. …
Steam Machine has a discrete semi-custom AMD desktop class CPU and GPU, and is roughly 6 times more powerful than Steam Deck. Steam Machine dev-kit units are not currently available. The best way to ensure compatibility on Steam Machine is to work on your title's compatibility with Steam Deck. …
Find the "Cloud Play" section and select two boxes “Enable your game to run streamed from the Cloud, hosted by Valve, and the following service providers:” and “NVIDIA GeForce NOW.” [*]6. Navigate to the "Publish" tab and publish your store page changes. [*]7. Repeat this store page edit for all other applications you wish to approve to be available on GeForce NOW. …
ncid=pa-srch-goog-17521&gclid=Cj0KCQjwlN32BRCCARIsADZ-J4t5Mghorda2SVQEvLcf646QsSvUmynfi6yP8qJ_UGCnB2-KexbOhpcaAiMIEALw_wcB#product-matrix]HERE[/url] for NVIDIA GeForce NOW. [b]Will there be other cloud gaming services added to Steam Cloud Play?…
[docimg=xboxone_controller.png]xboxone_controller.png[/docimg] The physical inputs are identical to the [doclink=features/steam_controller/device/x360_controller]Xbox 360 Controller[/doclink], with a few small cosmetic differences: [*] The face buttons have a darker color scheme [*] The Dpad has a more traditional form factor [*] The Xbox guide (aka "home") button has a new design [*] The BACK and START buttons are now called VIEW and MENU and have new labels (two overlapping windows and a 3-line "hamburger menu"). …
[section]HTML Supported[/section] This is the list of support HTML that we convert to their equivalent bbcode [list] [*]<a href="[i]url[/i]">[i]text[/i]</a> turns into URLs [*]<img src="[i]url[/i]"> turns into an image [*]<b></b>, <strong></strong> turns into bold [*]<i></i>, <em></em> turns into italics [*]<u></u>, <span></span> turns into underline [*]<p>, <br> turns into new lines [*]<h1> ... <h6> turns into headline [*]<ul>, <ol> turns into an unordered list [*]<li> turns into list items [*]<table> turns into table start [*]<th> turns into table header row [*]<tr> turns into table row [*]<td> turns into table column [/list] [subsection]HTML Ignored[/subsection] <html>, <head>, <doctype>, <thead>, <tbody>, <title>, <div>, <hr> and any tag not in the previous list. …
Find all kinds of Steam-related videos on our Steamworks Development YouTube channel https://www.youtube.com/user/steamworksdev [section]Steamworks Socials[/section] For the latest on new features, tips, and updates. On X (Twitter): https://twitter.com/steamworks On Bluesky: https://bsky.app/profile/partner.steamgames.com…
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. …
It's worth a watch if you are considering working with a publisher. https://www.youtube.com/watch?v=7qf0WCy0X-w [sup]Panelists are: Nigel Lowrie from Devolver, James Schall from Sega, Chris Kramer from Digitalmindsoft, and video game attorney Tom Buscaglia. …