[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. …
We’ve seen some games that have had that kind of format on mobile switch to a premium model on PC where all the content is unlocked and unrestricted, which seems to work better. Where it makes sense, there are options on Steam to sell additional content as [doclink=store/application/dlc]DLC or expansions[/doclink] but the core game should be a full experience without requiring an additional purchase. …
[/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.…
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. …
[/b] A: Over time we've seen games utilize a wide variety of approaches to pricing. Traditionally our charts have only included premium games, but that was obscuring the hugely popular free or inexpensive games in which players go on to purchase season passes, huge expansions, or other forms of new content. …
[b]If you are including a Season Pass as part of a pre-purchase option, the Season Pass store page must be visible.[/b] [section]Including a Season Pass in a Deluxe/Premium Edition of Your Game[/section] You can include a Season Pass in a Deluxe or other premium edition of your game. To do this, you'll need to create the Season Pass DLC using the same steps outlined in this documentation page. …
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. …
[/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. …
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. …
[/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.…
[/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.…
There is no need for the game to do any more authentication steps with lobby users, unless it's looking to see if they're VAC banned (see Valve Anti-Cheat Technology). If a user tries to log in from a second location with the same account, their prior login will automatically be removed from any existing lobbies. …
[/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=k_EAuthSessionResponseVACCheckTimedOut][td][b]k_EAuthSessionResponseVACCheckTimedOut[/b][/td][td]5[/td][td]VAC has been unable to perform anti-cheat checks on this user.[/td][/tr] [tr=k_EAuthSessionResponseAuthTicketCanceled][td][b]k_EAuthSessionResponseAuthTicketCanceled[/b][/td][td]6[/td][td]The ticket has been canceled by the issuer.…
[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. …
[/td][/tr] [tr][td][b]m_uReason[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td][/td][/tr] [/table] [subsection=DurationControl_t]DurationControl_t[/subsection] Sent for games with enabled anti indulgence / duration control, for enabled users. Lets the game know whether the feature applies to the user, whether the user needs to exit the game soon, and the remaining daily playtime for the user. …
[/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. …
[/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. …
The new system requires port 80 (HTTP) and all other Steam ports, listed [url=https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711]here[/url]. [*] Temporarily disable local Anti-Virus or Spam-Blocker programs. [*] Check the Steam download region under [b]Settings[/b]->[b]Downloads[/b]. It should match your location. [*] Stop the download, uninstall, and reinstall the game (clear manifest caches). [*] Exit Steam, delete the two folders appcache and depotcache in your Steam install folder. [*] Try to set your Steam download region to some other location far away. …