Access to the tools is still a work-in-progress and this page will be updated with more information in the coming days. [section]Proton Anti-Cheat Support[/section] Proton supports some common anti-cheat middleware, including Easy Anti-Cheat and BattlEye. [list] [*][subsection]Easy Anti-Cheat[/subsection] Proton supports Easy Anti-Cheat without requiring any recompilation, but it does require you to manually enable support for your build. …
If you cannot find the Linux module in the status dashboards, please contact EAC support. [*]Once that's done, download the EAC SDK and find the Linux library ([i]\Client\Assets\Plugins\x86_64\libeasyanticheat.so[/i]) for the SDK version integrated with your game, rename it to [i]easyanticheat_x64.so[/i], and add it to your depot next to the Windows library ([i]EasyAntiCheat_x64.dll[/i]). [*]Lastly, on the Steamworks site, publish a new build of your game containing the new depot contents. …
[section]Goals and methodology[/section] The goal of anti-cheat is to discourage users from using cheat software to negatively impact other players in multiplayer games. The ICheatReportingService allows you to ban the users account from playing your game for the duration you choose. …
[/b] Authentication must be enforced in the game client and server via the [doclink=features/auth]Steam Authentication APIs[/doclink]. [b]Enable Anti-Cheat APIs[/b] This can be done from the [url=https://partner.steamgames.com/apps/vac/]Anti-Cheat Configuration[/url] page in the App Admin panel. …
Why does my tax information show two withholding rates - one for royalty copyright and one for royalty film?[/h4] [b]A.[/b] These are separate tax rates that are applied depending on the content type of your sales. The royalty copyright rate will apply to US sourced sales on games and related DLCs. The royalty film rate will apply to US sourced sales on film and video. These rates do not accumulate for a higher rate of withholding and only one rate will be applied depending on the type of sales. [*][h4]Q. …
For an introduction to anti-cheat and general best practices, we recommend that you watch the [url=http://steamcommunity.com/devdays]Steam Dev Days[/url] talk "Anti-Cheat for Multiplayer Games" ([docfile=AntiCheat.pdf]slides[/docfile]) https://www.youtube.com/watch?…
[/olist] [section=Permissions]Required Permissions For Editing Anti-Cheat Policies[/section] [b]Who can set or edit Anti-Cheat policies for my product?[/b] Only certain publisher accounts have the necessary permissions to enable or adjust anti-cheat policies for your products on Steam. …
[/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.…
See [doclink=#other_drm][/doclink] for more information on combining the Steam DRM wrapper with other DRM or anti-tampering solutions. [section]Automated Steam DRM Wrapper[/section] The Steam wrapper can be applied from within your SteamPipe upload script. …
Try automating it using the Automated Steam Wrapper process documented above. [b]Q. An Anti-virus vendor has detected my binary as having a virus after applying the Steam DRM wrapper. What can I do?[/b] [b]A.[/b] False positives like this can happen, as the DRM injection process is modifying your binary in the same way a virus might do. …
[/td] [/tr] [tr] [td][b]wishlist_gifts[/b][/td] [td]uint32[/td] [td]How many wishlist gifts occurred across the period.[/td] [/tr] [tr] [td][b]wishlist_adds_windows[/b][/td] [td]uint32[/td] [td]How many wishlist adds occurred from users browsing for Windows games.[/td] [/tr] [tr] [td][b]wishlist_adds_mac[/b][/td] [td]uint32[/td] [td]How many wishlist adds occurred from users browsing for Mac games.…
Max size - 128 characters[/td] [/tr] [tr] [td][b]summary_actions[/b][/td] [td]CPartnerFinancials_WishlistSummary[/td] [td]The summary of all wishlist actions for this language[/td] [/tr] [/table] [b]Example response: [/b] [code] "response": { "appid": 440, "date": "2026-02-15", "wishlist_summary": { "wishlist_adds": 30, "wishlist_deletes": 15, "wishlist_purchases": 10, "wishlist_gifts": 5, "wishlist_adds_windows": 22, "wishlist_adds_mac": 3, "wishlist_adds_linux": 5 }, "country_summary": [ { "country_code": "CA", "country_name": "Canada", "region": "North America", "summary_actions": { "wishlist_adds": 20, "wishlist_deletes": 6, "wishlist_purchases": 9, "wishlist_gifts": 2, "wishlist_adds_windows": 15, "wishlist_adds_mac": 1, "wishlist_adds_linux": 4 } }, { "country_code": "FR", "country_name": "France", "region": "Western Europe", "summary_actions": { "wishlist_adds": 10, "wishlist_deletes": 9, "wishlist_purchases": 1, "wishlist_gifts": 3, "wishlist_adds_windows": 5, "wishlist_adds_mac": 2, "wishlist_adds_linux": 1 } } ], "language_summary": [ { "language": 0, "language_name": "English", "summary_actions": { "wishlist_adds": 18, "wishlist_deletes": 4, "wishlist_purchases": 7, "wishlist_gifts": 1, "wishlist_adds_windows": 14, "wishlist_adds_mac": 0, "wishlist_adds_linux": 4 } }, { "language": 2, "language_name": "French", "summary_actions": { "wishlist_adds": 12, "wishlist_deletes": 11, "wishlist_purchases": 3, "wishlist_gifts": 4, "wishlist_adds_windows": 8, "wishlist_adds_mac": 3, "wishlist_adds_linux": 1 } } ], "time_generated": 1772580513 "app_min_date": "2010-01-01" } } [/code] …
Follow the instructions below to learn how you can debug your game's Windows binaries (running via Proton) on a Steam Deck or Steam Machine. You'll need to bundle the Windows debug runtime with your game when you upload it to your developer kit, and Visual Studio & remote debugging tools running on your Windows development box. …
This will create a [code-inline]build/windows/bin/Debug[/code-inline] directory that contains the [code-inline]imgui[/code-inline] executable, the required Windows debug DLLs and the data assets. …
[/callout] [subsection]Under "Basic Info" Tab[/subsection] [list][*]Accessibility support on Steam - Helping players find games that feature accessibility support - [url=https://store.steampowered.com/news/group/4145017/view/536595840131663918]More Info[/url] [*] Controller Support for your game - Describe the devices supported by your game - [url=https://store.steampowered.com/news/group/4145017/view/3684558162504860650]More Info[/url] [*] Expanded Social Media Links - More ways for players to find their way to your social media platforms - [url=https://steamcommunity.com/groups/steamworks/announcements/detail/4592070813172257798 ]More Info[/url] [*] Anti-Cheat Declaration - Share anti-cheat information about your game - [url=https://store.steampowered.com/news/group/4145017/view/4547038620960934856]More Info[/url] [/list] [subsection]Under "Description" Tab[/subsection] [list][*]New Visual Editor - See exactly how your game description will look as you work, with a real-time preview of your text, images, and other formatting. - [url=https://steamcommunity.com/groups/steamworks/announcements/detail/7126472323852954169?…
. [*]Immediately ban a player with a 2 step process of reporting the cheating and then issuing a ban. [/list] To use this interface you must first opt in to anti-cheat support. When enabling anti-cheat support you may choose a 3rd party to grant access to the ICheatReportingService interface for your application. This can be done from the [url=https://partner.steamgames.com/apps/vac/]Anti-Cheat Configuration[/url] page in the App Admin panel. [b]NOTE:[/b] This is a Service interface, methods in this interface should be called with the [code-inline]input_json[/code-inline] parameter. …
[/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. …
[/callout] Once your package is deployed and running, the Device Output window in the editor will show you the live output logs from the game, as well as allow you to access console commands to send to the game. …
Note that if all deadzone is removed entirely, all positions will cause input. You can use Anti-DeadZone Buffer to allow for a small area where no input will be sent, even if the anti-deadzone is larger than the deadzone of the game.[/td][/tr] [tr][td]Output Anti-Deadzone Buffer[/td][td]0.0-1.0[/td][td]If an anti-deadzone has been applied, there may be no remaining actual deadzone as applied by the game, so touching anywhere will actively cause movement. …
[/i]) [/list] [b]Proton Requirements[/b] [list][*]Proton is a Windows compatibility layer. On Deck and Machine, games without native Linux builds will be run through Proton, a set of tools that will automatically take your current Windows executable and game data and run them on Steam Deck and Steam Machine's Linux-based OS. [*]Proton is a work in progress, and it's possible that your game may not yet be fully supported. …
[/b] Almost always, an [b]Unsupported[/b] rating comes from one of two issues: [list][*]Your game relies on a piece of middleware or technology that Deck/Machine doesn't currently support. Some anti-cheat providers are currently unsupported, for example, as are some media codecs used for video or audio. While we're constantly improving the range of software these devices support, if we don't yet support middleware that's required for part or all of your game to function, your game will be considered Unsupported. [*]Your game relies on a piece of Windows functionality that is not yet implemented fully in Proton. …
You can add an optional comment by calling [api]steam_api::SteamAPI_SetMiniDumpComment[/api] before you call this function. [callout=red,fixed][b]NOTE:[/b] This only supports 32bit Windows.[/callout] [b]Example:[/b] [code=cpp]#ifdef _WIN32 #include <Windows.h> void MiniDumpFunction( unsigned int nExceptionCode, EXCEPTION_POINTERS *pException ) { // You can build and set an arbitrary comment to embed in the minidump here, // maybe you want to put what level the user was playing, how many players on the server, // how much memory is free, etc... …
[/td][/tr] [tr=k_EAppType_Franchise][td][b]k_EAppType_Franchise[/b][/td][td]0x400[/td][td]A hub for collections of multiple apps, eg films, series, games.[/td][/tr] [tr=k_EAppType_Video][td][b]k_EAppType_Video[/b][/td][td]0x800[/td][td]A video component of either a Film or TVSeries (may be the feature, an episode, preview, making-of, etc.)…
[/td][/tr] [tr][td][doclink=features/anticheat][/doclink][/td][td]Steam provides several tools to help manage cheating in online videogames. Whether you choose to integrate our anti-cheat APIs or use your own solution, make sure you give your customers proper warning that such a system exists and that you have UI ingame that clearly explains the ban.…
to learn more about each field. The example below shows 5 launch options, 2 for Windows, 2 for macOS and 1 for Linux. Launch option 3 will only be shown on Windows if the user also owns the DLC specified. [docimg=updatedlaunchoptions_3.png]updatedlaunchoptions_3.png[/docimg] [*] Go to the [url=https://partner.steamgames.com/apps/depots/]Depots[/url] page and add depots as needed for this app. …
[subsection=steampipe_gui_tool]SteamPipe GUI Tool[/subsection] If you're running on Windows and would prefer a GUI tool to help create these config files and upload your builds you can use the SteamPipeGUI which is available in the tools folder of the Steamworks SDK. …
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. …
All of the [url=https://docs.microsoft.com/en-us/windows/win32/shell/csidl]standard environment variables available on Windows[/url] can be used, along with a few others specific to an install script. …
[b]Returns:[/b] [apitype]steam_api::EVoiceResult[/apitype] [subsection=GetDurationControl]GetDurationControl[/subsection] [code=cpp]SteamAPICall_t GetDurationControl();[/code] Retrieves anti indulgence / duration control for current user / game combination. [b]Returns:[/b] [apitype]steam_api::SteamAPICall_t[/apitype] to be used with a [apitype]ISteamUser::DurationControl_t[/apitype] call result. …
[b]NOTE:[/b] The URL has a very short lifetime to prevent history-snooping attacks, so you should only call this API when you are about to launch the browser, or else immediately navigate to the result URL using a hidden browser window. [b]NOTE:[/b] The resulting authorization cookie has an expiration time of one day, so it would be a good idea to request and visit a new auth URL every 12 hours. …
[/td] [/tr] [tr] [td][b]Manage Signing[/b][/td] [td]Can manage digital signing for your title. This will enable management of [doclink=features/anticheat]Anti-Cheat[/doclink] and [doclink=features/auth#encryptedapptickets] SDK Auth[/doclink] settings for an Application.[/td] [/tr] [tr] [td][b]Economy/Workshop Support[/b][/td] [td]Allows the user to view/grant economy items in the partner site economy support tool.…
The following information is based on the experience of the Valve Linux team. For those with Windows development tool experience, the easiest route to Linux development is Visual Studio on Windows and [url=https://marketplace.visualstudio.com/items?…
See [doclink=features/drm][/doclink] for more information. [b]Q: How does driver performance compare between Ubuntu and Windows?[/b] [b]A:[/b] Proprietary Nvidia drivers are comparable to Windows in terms of stability, performance, and features. Proprietary drivers for both AMD and Intel are also available but their current performance and stability are lower than equivalent Windows drivers. …