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. …
Kernel-space solutions are not currently supported and are not recommended. Note: we have been working with most anti-cheat technology providers to provide Proton compatibility. If your solution currently isn't working, please reach out to both your vendor and Valve for support. [*]Anti-tamper / DRM: In general we don't recommend use of such solutions across any PC platforms, as they may impact disk usage and overall performance. …
[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. …
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.…
[subsection]Early Access Store Page[/subsection] If you are releasing in Early Access, you will need to check the box under the Early Access tab and answer all the questions in that section. You can check out the [doclink=store/earlyaccess][/doclink] documentation for more specific information about Early Access on Steam. …
[/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?…
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. …
. [*]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. …
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. …
[docimg=Editions_PackageSelect.jpg]Editions_PackageSelect.jpg[/docimg] Click the boxes to select editions of your game. By doing so, these packages will be displayed above other purchase options on your page that don’t contain the base game. …
There are more appropriate spots on Steam to show this information and this information can quickly become outdated. [*]Keep the asset as simple and easy to understand as possible. Avoid including unnecesary box art or key art. Keep in mind that due to the image size small text may be difficult to read. [*]Avoid including developer logos or unnecessary art [*]Remove unnecessary legal text. …
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. …
[docimg=steamworks_steam_input_optin_settings.png]steamworks_steam_input_optin_settings.png[/docimg] Checking these boxes will cause those controller types to make use of Steam Input rather than their standard gamepad input protocols. [subsection]Updating your official configurations[/subsection] There are two ways to update your configuration. …
Please use the key art and logo that is being used for any retail boxes or marketing. Do not include quotes or other strings of text beyond the title of your game. The art should immediately tell the customer something important about your product. …
For best results, use the logo that is being used for any retail boxes or marketing. You’ll want to ensure the logo is both visible and legible against the hero graphic background. The PNG image should have a transparent background. …
[b]Design:[/b] For best results, please use the key art and logo that is being used for any retail boxes or marketing. The art used for them should immediately tell the customer something important about the game. It should be graphically-centric and give the user some sense of the game-play. …
For best results, please use the same artwork that you use for any retail box or marketing and make sure the logo is clearly legible. [b]Size:[/b] 707px x 232px …
v=PShS32hcing [section]Building and Testing[/section] For general help with building depots and preparing content, please see [doclink=sdk/uploading][/doclink] [olist] [*] In the Steamworks Settings for your application, create [doclink=store/application/depots]depots[/doclink] for the new operating systems in the Creating & Adding Depots section (under the "SteamPipe" tab>Depots). Save this change. [b]NOTE:[/b] Don't check the boxes under [b]Supported Operating Systems[/b] on the General Application Settings tab yet, that will be done when you're ready to release. [*] Create a Steam build for these new depots. [*] Set that build to a beta branch with a password. [*] Update your autogrant package to contain these new depots so Steam will let you download the files. …
You can see all packages associated with your application on the [url=https://partner.steamgames.com/apps/associated/]Associated Packages & DLC[/url] page. [*] In the [url=https://partner.steamgames.com/apps/view/]Steamworks Settings for your app[/url], check the appropriate operating system boxes under [b]Supported Operating Systems[/b]. [*] Edit your store page and check the appropriate operating system boxes on the Basic Info tab. [*] Then scroll down and enter the corresponding system requirements. …
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. [callout]This feature is still under development. Please leave any feedback / issues on the [url=https://steamcommunity.com/groups/steamworks/discussions/27/]Steam Deck Developer Forums[/url]. …
In order to have the remote debugging tools available, when you install Visual Studio, be sure to include a development Workload like the "Desktop development with C++" [docimg=VirtualBox_Win_10_05_08_2021_18_05_44.png]VirtualBox_Win_10_05_08_2021_18_05_44.png[/docimg] [section]Usage[/section] [subsection]Vulkan Examples[/subsection] The project [url=https://gitlab.steamos.cloud/jupiter/vulkan-examples]Vulkan Examples[/url] is a good starting point for getting used to remotely debug games uploaded to the Steam Deck or Steam Machine. …
[section]Steamworks printed materials examples[/section] The following is available for you to use as an example when printing instructions for printed Steamworks materials. For instance, a card insert for a retail box copy, or a printed Steam key for promotional distribution at a live event. See the Steam Subscriber Agreement (SSA) section above for localized versions of the required text. [docimg=SteamPhysicalKeyExample.png]SteamPhysicalKeyExample.png[/docimg] Steamworks boxed game [docfile=SteamDiscInsertExample.pdf]quick start guide[/docfile] …
Or use this link: https://partner.steamgames.com/pub/users [*]Hover over the row with the user you wish to apply the permission to and click the edit symbol on the far right. [*]In the pop-up dialog, tic the box for "Receive Steamworks Communication" and click save. [*]This will send an invitation to the user. The user will need to click the button in the email and confirm their email address in order to start receiving emails. …
[section]Android Project Settings[/section] For the best results and optimizations out of the gate, we recommend starting with the VRTemplate project as your base. Since the VR Template already targets Android out of the box, it can run directly with no changes. However, to get the best performance, we want to make a few modifications. [list] [*]In [b]Project Settings > Platforms - Android[/b]: [list] [*]Check [b]Support Vulkan[/b], and ensure that [b]Detect Vulkan device support[/b] is also checked. [*]Ensure that [b]Package for Valve Steam Frame devices[/b] is checked, and [b]Package for Meta Quest devices[/b] is unchecked. [*]Then under [b]Advanced Build[/b] set [b]Disable libc++_shared dependency validation[/b] on all dependencies, to ensure that you can successfully build with the recommended Android toolchain. [/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. …
[/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.…
. [*]If you have more than one purchase option, you will be prompted to pick which of your purchase options (and price) you wish your widget to display. [*]You will also see a box that is pre-populated with the first part of your product description. You can edit this to say whatever you want about your product. [*]Hit "Create Widget". [*]You will now see a preview of your widget along with the HTML, which you will need to copy and paste into your website or blog where you wish to display it. …
[/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.…