[b]Portuguese:[/b] ©2026 Valve Corporation. Steam e o logótipo Steam são marcas e/ou marcas registadas da Valve Corporation nos EUA e/ou noutros países. ©2026 Valve Corporation. …
Steam 和 Steam 標誌為 Valve Corporation 在美國與(或)其它國家 / 地區的商標與(或)註冊商標。 ©2026 Valve Corporation. Steamworks 和 Steamworks 標誌為 Valve Corporation 在美國與(或)其它國家 / 地區的商標與(或)註冊商標。 [b]Turkish:[/b] ©2026 Valve Corporation. …
[docimg=nf_oct26_doc_banner.jpg]nf_oct26_doc_banner.jpg[/docimg] [b]Steam Next Fest: October 2026 Edition[/b] is a multi-day celebration where fans can try out demos, chat with developers, watch live streams, and learn about upcoming games on Steam. …
All demos that have opted in to be available for press preview will be included. [*][b]October 19[/b] -[b] Steam Next Fest: October 2026 begins at 10am PDT[/b]; set your demo live (or opt out if your plans have changed) before 10am PDT. [*][b]October 26[/b] - Steam Next Fest: October 2026 concludes. [*][b]October 26[/b] - Steam Next Fest: October 2026 Wrap-Up (featuring games with the most played demos of the Fest) launches. …
\n" ); break; case k_ESteamInputType_SteamDeckController: printf( "Steam Deck!\n" ); break; case k_ESteamInputType_SteamController2026: printf( "Steam Controller (2026)!\n" ); break; } } [/code] [subsection=GetCurrentActionSet]GetCurrentActionSet[/subsection] [code=cpp]InputActionSetHandle_t GetCurrentActionSet( InputHandle_t inputHandle );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]inputHandle[/b][/td][td][apitype]ISteamInput::InputHandle_t[/apitype][/td][td]The handle of the controller you want to query.…
\n"); break; case k_ESteamInputType_SteamDeckController: printf("Steam Deck!\n"); break; case k_ESteamInputType_SteamController2026: printf("Steam Controller (2026)!\n"); break; } [/code] [subsection=GetMotionData]GetMotionData[/subsection] [code=cpp]InputMotionData_t GetMotionData( InputHandle_t inputHandle );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]inputHandle[/b][/td][td][apitype]ISteamInput::InputHandle_t[/apitype][/td][td]The handle of the controller you want to get motion data for.…
For more information, please see the [url=https://partner.steamgames.com/doc/marketing/upcoming_events/themed_sales]Steam Themed Sale Events documentation[/url]. [subsection][b]2026 Fests[/b][/subsection] [table] [tr][th]Event Dates[/th][th]Theme[/th][th]Registration[/th][th]Eligibility & Notes[/th][/tr] [tr][td]Oct 26 Nov 2[/td][td]Steam Scream V[/td] [td][url=https://partner.steamgames.com/optin/sale/horror_2026]Registration details[/url][/td] [td]Games that fall into the horror category, and explicitly Halloween-centric games. [doclink=marketing/upcoming_events/themed_sales/steam_halloween_2026]More info[/doclink]. [/td][/tr] [tr][td]Nov 16 Nov 23[/td][td]Auto-Battler RPG Fest[/td] [td][url=https://partner.steamgames.com/optin/sale/auto_battler_2026]Registration details[/url][/td] [td]Games where the battles play themselves out – but you have to upgrade your units to win. …
[/list] [/list] [/list] [b]Example Response:[/b] [code=json] { "response": { "result": "OK", "params": { "count": 4, "orders": [ { "orderid": "1233", "transid": "1234567890123456788", "steamid": "76561197972751825", "status": "PartialRefund", "currency": "USD", "time": "2024-01-23T18:30:00Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:15:00Z", "items": [ { "itemid": 100, "qty": 1, "amount": 99, "vat": 9, "itemstatus": "Refunded" }, { "itemid": 101, "qty": 1, "amount": 1299, "vat": 116, "itemstatus": "Succeeded" } ] }, { "orderid": "1234", "transid": "1234567890123456789", "steamid": "76561197972751825", "status": "Failed", "currency": "USD", "time": "2024-01-23T18:40:30Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:39:00Z", "items": [ { "itemid": 100, "qty": 1, "amount": 99, "vat": 9, "itemstatus": "Failed" } ] }, { "orderid": "1235", "transid": "1234567890123456790", "steamid": "76561197972751825", "status": "Succeeded", "currency": "USD", "time": "2024-01-23T18:40:40Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:39:30Z", "items": [ { "itemid": 101, "qty": 1, "amount": 1299, "vat": 116, "itemstatus": "Succeeded" } ] }, { "orderid": "1236", "transid": "1234567890123456791", "steamid": "76561197972751825", "status": "Chargedback", "currency": "USD", "time": "2024-01-23T19:55:00Z", "country": "US", "usstate": "WA", "timecreated": "2024-01-23T18:40:00Z", "items": [ { "itemid": 102, "qty": 1, "amount": 999, "vat": 89, "itemstatus": "Chargedback" } ] } ] } } } [/code] [section=GetUserAgreementInfo]GetUserAgreementInfo[/section] [code=http]GET https://partner.steam-api.com/ISteamMicroTxn/GetUserAgreementInfo/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 [url=https://partner.steamgames.com/doc/webapi_overview/auth#publisher-keys]publisher key[/url] with [b]Microtransaction[/b] permissions.…
[/list] [/list] [/list] [b]Example Response:[/b] [code=xml] <response> <result>OK</result> <params> <state>WA</state> <country>US</country> <currency>USD</currency> </params> </response> [/code] [section=InitTxn]InitTxn[/section] [code=http]POST https://partner.steam-api.com/ISteamMicroTxn/InitTxn/v3/[/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 [url=https://partner.steamgames.com/doc/webapi_overview/auth#publisher-keys]publisher key[/url] with [b]Microtransaction[/b] permissions.…
[optin=sale_medieval_2026][/optin]…
[section]Local-only branch[/section] You'll need a branch for your app named "local". Prior to September 2026, this branch was created automatically by Steam on the first build uploaded which specified it was an LCS build. From September 2026 onwards, Steam will require you to create this branch manually first (if it doesn't already exist for your app), and will require it to be password-protected. …
This file should contain the following text: [code] @LocalContentServer YourWebServerName [/code] Examples: [code] @LocalContentServer localhost @LocalContentServer "127.0.01:8080" [/code] [list] [*] Either the server IP or server hostname can be used. [*] If you need to specify another port then 80, it must be "ip:port" in quotes [*] Don't add "http://" in front, HTTPS is not supported [/list] Note: The default location of the Steam executable is: [list] [*] [b]For Windows[/b]: [code]C:\Program Files (x86)\Steam\[/code] [*] [b]For macOS[/b]: [code]Steam.app/contents/macOS/[/code] [*] [b]For Linux[/b]: [code]~/.local/share/Steam/[/code] [/list] [b]Note[/b] As of September 2026, Steam will begin requiring newly-created "local" app branches to be [b]password-protected[/b]. For local branches with a password, users will also need to enter the password into the Steam client UI to unlock the "local" branch selection. …
[optin=sale_horror_2026][/optin]…
[optin=sale_auto_battler_2026][/optin]…
This is the best choice for highly competitive games (such as Dota 2) or games with persistent servers that stay around after players leave (such as Team Fortress 2). [section]Steam Server Browser[/section] A large part of the game server experience on Steam comes from the unified server browser. …
Here are a few examples from over the years: [list][*][b]Developer / Publisher Sales[/b] - like the [url=https://store.steampowered.com/sale/kleifest2026]Klei Fest Publisher Sale[/url], the [url=https://store.steampowered.com/sale/KalypsoAnniversary2021]Kalypso Anniversary Sale[/url] or the [url=https://store.steampowered.com/sale/HoodedHorsePublisherSale2024]Hooded Horse Publisher Sale[/url]. [docimg=PublisherSaleExample]PublisherSaleExample[/docimg] [*][b]Franchise Sales[/b] - such as the [url=https://store.steampowered.com/sale/falloutfranchise2024]Fallout Franchise Sale[/url] or the [url=https://store.steampowered.com/sale/TropicoFranchiseSale2026]Tropico Franchise Sale[/url]. [docimg=FranchiseBannerExample_1.]FranchiseBannerExample_1.[/docimg] [/list] [section=how]How It Works[/section] [olist] [subsection]1. …
[section]Example Query[/section] The following example retrieves the 3 most recent news entries for Team Fortress 2. The request specifies that the response should be returned as JSON and includes: a required appid parameter (Team Fortress 2's AppID is 440), and an optional count parameter to limit the number of results returned. …
This is the best choice for highly competitive games (such as Dota 2) or games with persistent servers that keep running even after all players leave (such as Team Fortress 2). You can read more about it in the [doclink=features/multiplayer/game_servers][/doclink] documentation.…
This is the approach used by older Valve Source games such as Team Fortress 2 and Counter-Strike: Source. If you choose OpenGL then we recommend using the core functionality in OpenGL 3.0 for your game. …
The following libraries provide support for other aspects of game development: [list] [*] [url=http://www.freetype.org/index.html]FreeType[/url] - font rendering (both vector-based and bitmap fonts) on Linux [*] [url=http://www.freedesktop.org/wiki/Software/fontconfig]Fontconfig[/url] - configuring and customizing font access [*] [url=http://www.radgametools.com/miles.htm]Miles Sound System[/url] - a middleware sound engine for Linux development [*] [url=http://www.radgametools.com/bnkmain.htm]Bink Video[/url] - a video codec designed for game developers [*] [url=http://www.webmproject.org/]WebM[/url] - an open media file format; used for recording Team Fortress 2 video instead of QuickTime. [/list] [section]Linux Runtime[/section] Titles with native Linux support may select a specific version of the Steam for Linux runtime to execute under. …
/vrpreferences.json" failed: * Line 5, Column 3 4: "preferMinRefreshRate": 120, 5: } 6: } Missing '}' or object member name Tue Jul 28 2026 11:05:56.126069 [Info] - [Settings] No or invalid application preferences settings at '/home/steamos/.local/share/Steam/steamapps/common/[...]…
This legal attribution must be provided, unless some alternative attribution is provided by Valve: [list]©2026 Valve Corporation. Steam and the Steam logo are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries.…
[/introblock] [section]Table of Contents[/section] [list] [*][doclink=#dates]Important Dates[/doclink] [*][doclink=#eligibility]Eligibility[/doclink] [*][doclink=#asset]Asset Kit[/doclink] [*][doclink=#faq]Frequently Asked Questions[/doclink] [*][doclink=#contact]Contact / Help[/doclink] [/list] [section=dates]Important Dates[/section] [b]December 2026[/b] [list] [*][b]December 8, 10 - 11am PST[/b] - Live virtual Q&A session on Zoom. [url=https://store.steampowered.com/news/group/4145017/view/668369251018476379]Learn more and set a reminder here[/url]. …
These files will not be downloaded by users through the Workshop, but will be viewable by the community to rate. This is the implementation that Team Fortress 2 uses. [/list] [/list] [*] Register a call result handler for [apitype]ISteamUGC::CreateItemResult_t[/apitype] [*] First check the [code-inline]m_eResult[/code-inline] to ensure that the item was created successfully. [*] When the call result handler is executed, read the [code-inline]m_nPublishedFileId[/code-inline] value and store for future updates to the workshop item (e.g. in a project file associated with the creation tool). [*] The [code-inline]m_bUserNeedsToAcceptWorkshopLegalAgreement[/code-inline] variable should also be checked and if it's [b]true[/b], the user should be redirected to accept the legal agreement. …
[code=cpp] "workshopitem" { "appid" "480" "publishedfileid" "5674" "contentfolder" "D:\\Content\\workshopitem" "previewfile" "D:\\Content\\preview.jpg" "visibility" "0" "title" "Team Fortress Green Hat" "description" "A green hat for Team Fortress" "changenote" "Version 1.2" } [/code] Notes: [list] [*] The keys map to the various ISteamUGC::SetItem[...] methods. …
[/b] The best way to contact us with questions about shipping your mod is by filing a support ticket on https://help.steampowered.com. [/list] [section=TF2FAQ]Team Fortress 2 Mods FAQ[/section] [list] [*] [h4]Q. Where do I get the TF2 SDK?[/h4] [b]A.[/b] The TF2 SDK is part of the Source SDK 2013, which is available on [url=https://github.com/ValveSoftware/source-sdk-2013]Github[/url] or via [url=steam://rungameid/243750]Steam[/url] . [*] [h4]Q. …
. [*] Documentation is available on the [url=https://developer.valvesoftware.com/wiki/KeyValues]Valve Developer Community wiki[/url] and on the [url=https://wiki.teamfortress.com/wiki/WebAPI/VDF]Official Team Fortress 2 wiki[/url]. [*] Arrays in the data are represented as a VDF array with the name of the type of the objects in the array, with a VDF array being an object with each item being prefixed with its numeric key as a quoted string. [*] Null is represented as an empty string. [*] [b]Example[/b]: [code=nohighlight] "appnews" { "appid" "440" "newsitems" { "0" { "gid" "1904306376092568991" "title" "Prince of Prolander Event " "url" "http://store.steampowered.com/news/externalpost/tf2_blog/1904306376092568991" "is_external_url" "1" "author" "" "contents" "<a href=\"http://rgl.gg/default.aspx\"><img src=\"https://steamcdn-a.akamaihd.net/steam/news/29555/prince.png?…