[/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.…
[b]Returns:[/b] bool [b]true[/b] if the Steam client current has a live connection to the Steam servers; otherwise, [b]false[/b] if there is no active connection due to either a networking issue on the local machine, or the Steam server is down/busy. [subsection=BSetDurationControlOnlineState]BSetDurationControlOnlineState[/subsection] [code=cpp]bool BSetDurationControlOnlineState( EDurationControlOnlineState eNewState );[/code] Allows the game to specify the offline/online gameplay state for steam china duration control. …
Steam will continue to send DurationControl_t notifications to the game. If the game later calls BSetDurationControlOnlineState to remove the OnlineHighPri state, then Steam will force exit the game soon thereafter. [table] [tr][th]Name[/th][th]Value[/th][th]Description[/th][/tr] [tr=k_EDurationControlOnlineState_Offline][td][b]k_EDurationControlOnlineState_Offline[/b][/td][td]1[/td][td]Offline play[/td][/tr] [tr=k_EDurationControlOnlineState_Online][td][b]k_EDurationControlOnlineState_Online[/b][/td][td]2[/td][td]Online play[/td][/tr] [tr=k_EDurationControlOnlineState_OnlineHighPri][td][b]k_EDurationControlOnlineState_OnlineHighPri[/b][/td][td]3[/td][td]Online play - game requests that steam not force exit the game[/td][/tr] [/table] [b]Associated Functions:[/b] [api]ISteamUser::GetDurationControl[/api] [api]ISteamUser::BSetDurationControlOnlineState[/api] [section=constants]Constants[/section] These are constants which are defined for use with ISteamUser. …
For this reason it is very important that your game has [url=https://partner.steamgames.com/doc/features/cloud]Steam Cloud[/url] enabled or has a separate online save system of its own. If your game does not have either online save system, players of your game may lose their progress and saves when playing a game through a Steam Cloud Play service. …
You need to sign the addendum, opt each game into the program and ensure your game has either Steam Cloud enabled or its own online save system. Most of the time these are the only requirements. When testing your game, if another issue comes up we will reach out to you to help fix any specific issues. …
In addition to the Rules & Guidelines, content you publish on Steam must comply with the Steam Distribution Agreement, the [url=http://store.steampowered.com/subscriber_agreement/]Steam Subscriber Agreement[/url], [url=http://store.steampowered.com/online_conduct]Steam Online Conduct guidelines[/url] and the [url=http://store.steampowered.com/privacy_agreement/]Steam Privacy Policy[/url][/callout] [section]Recouping The Steam Direct Fee[/section] The Steam Direct Fee is not refundable, but will be recoupable in the payment made after your product has at least $1,000.00 Adjusted Gross Revenue for Steam Store or in-app purchases. …
To enable it, ensure that the plugin is enabled by going to [b]Window > Plugins[/b] in the Editor and making sure [b]Online Subsystem Steam[/b] is enabled. With that enabled, update your application’s DefaultEngine.ini file with the following, being sure to replace the SteamDevAppId with your own AppId: [code] [/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [OnlineSubsystem] DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=12345 ; If using Sessions bInitServerOnClient=true [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] bDisableLibCppSharedDependencyValidation=True bSkipLibCpp=false [/code] [callout]For [b]Steamworks 1.64[/b] (adds 16KB page alignment for Android) you can cherry pick: https://github.com/Valve-VR/UnrealEngine/commit/be15c597a54371a3480d75694ddfed9a56e84de4[/callout] [section]Debugging and Profiling[/section] Please see the main [doclink=steamframe/debugging][/doclink] page for general information on the options available for debugging games on Steam Frame. …
. [*] [b]Multi-Player Authentication (VAC Ban handling)[/b] -- If your game is an online multi-player game then you'll want to confirm that users own the game before you let them join an online server. You'll find callback handlers and calls to the [api]ISteamGameServer[/api] API used within [code-inline]SpaceWarServer.cpp[/code-inline] for these purposes. …
[/b] API Usage shown: [list] [*] [b]Matchmaking via Lobbies[/b] -- In your online games you may wish to include matchmaking via lobbies in addition to, or instead of, the Server Browser. You'll find examples of using the lobby code and callbacks via the [api]ISteamMatchmaking[/api] interface inside of [code-inline]SpaceWarClient.cpp[/code-inline]. …
Dev kit supplies are limited, so we'll be reviewing requests via the online form on a case by case basis and will be shipping them out as quickly as possible. [b]Notes for developers receiving dev-kits[/b] [list] [*]Your kit may arrive with little / no power – if that’s the case you’ll need to plug it in so it can get some charge and boot up. [*]Speaking of power, all of our dev-kits come with a US plug type 45W power supply. …
In addition to the items below, content you publish on Steam must comply with the Steam Distribution Agreement, the [url=http://store.steampowered.com/subscriber_agreement/]Steam Subscriber Agreement[/url], [url=http://store.steampowered.com/online_conduct]Steam Online Conduct guidelines[/url] and the [url=http://store.steampowered.com/privacy_agreement/]Steam Privacy Policy[/url]. …
If they instead purchased their second copy only 1 week after the first copy, both purchases could be refunded provided there was less than 2 combined hours of playtime on the licenses. [*][h4]Will my location need to be online all the time?[/h4] Yes, the PC Café Server and the clients need to be able to communicate with Steam for it to manage the licenses and allow users to play. …
[section=Overview]Overview[/section] Steam provides several tools to help manage cheating in online video games. 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. …
The license allows you to copy SteamVR for your company’s or government entity's own internal use without having Steam installed or having access to the Internet. This license is only available online, by clicking the link above. Changes to the license are not allowed. [/list][section]Installation/use of SteamVR in an environment without internet access[/section] Many enterprise or government users are unable to use the Steam client to access the SteamVR Runtime, particularly due to restricted internet access behind corporate firewalls or on PCs without any internet connection. …
[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. For the Epic Online Services version of EAC, see instructions [url=https://dev.epicgames.com/docs/services/en-US/GameServices/AntiCheat/index.html#linuxwine/protonsupport]here[/url]. …
We suggest enhancing the value of legitimate copies of your game by using Steamworks features which won't work on non-legitimate copies (e.g. online multiplayer, achievements, leaderboards, trading cards, etc.). See [doclink=#other_drm][/doclink] for more information on combining the Steam DRM wrapper with other DRM or anti-tampering solutions. …
[/td][/tr] [tr][td][b]pnOnline[/b][/td][td]int *[/td][td]Returns the number of members that are online.[/td][/tr] [tr][td][b]pnInGame[/b][/td][td]int *[/td][td]Returns the number members that are in game (excluding those with their status set to offline).…
[b]Example:[/b] [code=cpp]void ListSteamGroups() { int nGroups = SteamFriends()->GetClanCount(); printf( "Listing %d Steam Groups\n", nGroups ); for ( int i = 0; i < nGroups; ++i ) { CSteamID groupSteamID = SteamFriends()->GetClanByIndex( i ); const char *szGroupName = SteamFriends()->GetClanName( groupSteamID ); const char *szGroupTag = SteamFriends()->GetClanTag( groupSteamID ); int nOnline, nInGame, nChatting; bool success = SteamFriends()->GetClanActivityCounts( groupSteamID, &nOnline, &nInGame, &nChatting ); printf( "Group %d - ID: %lld - Name: '%s' - Tag: '%s'\n", i, groupSteamID.ConvertToUint64(), szGroupName, szGroupTag ); printf( " - Online: %d, In Game: %d, Chatting: %d\n", nOnline, nInGame, nChatting ); } }[/code] [subsection=GetClanName]GetClanName[/subsection] [code=cpp]const char * GetClanName( CSteamID steamIDClan );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]steamIDClan[/b][/td][td][apitype]steam_api::CSteamID[/apitype][/td][td]The Steam group to get the name of.…
. [*][b]Offline Mode[/b]: We strongly recommend all singleplayer content is accessible without an Internet connection. You can test your game without any online connectivity, including the first run on a new Steam account. This feature is especially valuable for Deck customers, who may have more sporadic network access than a standard gaming PC. [*][b]Launchers[/b]: We recommend putting all required functionality into your game client rather than requiring users to navigate a launcher before running your game. …
[/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]steamid_to_remove[/b][/td][td]uint64[/td][td]✔[/td][td]SteamID of the user to remove. If the user is not online when called, this will remove their reserved slot in the lobby.[/td][/tr] [tr][td][b]steamid_lobby[/b][/td][td]uint64[/td][td]✔[/td][td]Lobby ID[/td][/tr] [tr][td][b]input_json[/b][/td][td]string[/td][td][/td][td][doclink=webapi_overview#3]Json data[/doclink]. …
[/h4] The Steam PC Café Program safely manages games through a concurrent seat format that is meant to discourage traditional piracy found around the world where Cafés are trying to minimize the cost of licensing every Café seat. This program requires the Cafés to be online all the time to have access to the legitimate commercial licenses they subscribed to. [*][h4]Can visitors of a Café purchase in-game content and DLC while using the commercial game license?…
That said, many third-party event organizers are actively looking for games to join their events and may post their contact info online. A little bit of research, outreach and networking can go a long way in this area. We also recommend connecting with your local game developer association or any genre-related groups to stay up to date on any plans they may have. …
[url=https://partner.steamgames.com/doc/store/reviews]Managing User Reviews[/url] [/list] [subsection]Social Media Linking[/subsection] [docimg=socialmedia]socialmedia[/docimg] In addition to being featured on your game's storefront, your community homepage will also feature all of the online communities that your team is using. You can set up these links from your game's Steamworks Storefront Admin under the 'Basic Info' tab under the 'External Links' section. …