After a user purchases or activates a package, the contents of that package dictate which applications or depot contents the user has permission to download and launch. [section]Types of packages[/section] Any new application created in the Steamworks system will by default be included in a new package with which that application can be sold via Steam and can have keys generated against it. [list] [*] [b]Store + CD-Key Package (Default)[/b]: All new applications in the Steamworks system come with this type of package by default. This lets you sell your app in the Steam store as well as generate CD Keys that unlock the exact same content if you wish. [*] [b]Store Package[/b]: This is a package that can only be sold on the Steam store [*] [b]CD Key Package[/b]: This is a package that can only have CD Keys generated against it [*] [b]Release Override "Beta Testing" Package[/b]: This package is automatically created along with your Application. …
You can create an independent soundtrack from your main partner landing page, the same way you would create a new game. [/list] Both types of soundtracks are fundamentally similar: they are a collection of MP3s and metadata that can optionally include other components, including high-quality/lossless audio files, associated artwork, etc. …
We recommend these be in a subdirectory like "FLAC". [*]On the [b]Depots[/b] page, create a new depot and set its type to [b]Optional high-quality/uncompressed audio[/b]. [*]Save your depot configuration changes. [*]Publish the depot configuration changes. …
[section]Actual Authority[/section] Actual Authority is a specific type of administrative rights which are handled differently than other types of permissions. Actual Authority allows the user to: [list] [*]view and make changes to bank account information [*]view and make changes to tax information [*]view and make changes to payment thresholds [*]sign legal agreements, and [*]initiate and accept transfers of applications. …
We recommend that you periodically review who has this level of rights. [section=permissions]User Permissions[/section] There are two types of user permissions on Steamworks: Partner-level permissions and Group Permissions. [subsection]Partner Permissions[/subsection] Partner-level permissions are applied for the entire Steamworks partner account. …
Returns false if the handle is invalid, or the information is not available for that type of listen socket. [subsection=GetIdentity]GetIdentity[/subsection] [code=cpp]bool GetIdentity( SteamNetworkingIdentity *pIdentity );[/code] Get the identity assigned to this interface. …
This is useful for the same reason that listening on multiple UDP ports is useful for different types of traffic. Because these allocations come from a global namespace, there is a relatively strict limit on the maximum number of ports you may request. …
[section=PostGameDataFrame]PostGameDataFrame[/section] [code=http]POST https://partner.steam-api.com/IBroadcastService/PostGameDataFrame/v1/[/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 publisher authentication key.…
. [*][b]Geographic breakdown[/b], which adds the ability to see regional breakdowns for the visitors to your store page [*][b]Visitor device category[/b], adding a split of device types for each campaign to let you see how your mobile vs. desktop audiences are learning about your game. [*][b]New vs. returning users[/b] are now break-out stats that help you see the percentage of visits to your store page that come from new versus returning players.…
Standard joystick- and mouse- driven actions will usually have two axes, X and Y, but single-axis analog actions are possible too (such as those commonly bound to analog triggers); in this case the action data will still report two axes, but the Y axis will always be zero. …
They are discovered by users via search, the [url=https://store.steampowered.com/demos/]Demo Content Hub[/url], or being part of Steam Next Fest type events. Demos can have their own separate store page or not, but either way they also appear as a button on the full game's store page. …
[docimg=2020-03-10_22-25-10.png]2020-03-10_22-25-10.png[/docimg] [*] Go to the 'Stream' configuration tab. Choose 'Custom Streaming Server' from the Stream type drop-down. This is where you enter the [b]upload server[/b] and [b]upload token[/b] that is found on the [url=https://steamcommunity.com/broadcast/upload]broadcast upload settings page[/url]. …
[section=GetGameServerPlayerStatsForGame]GetGameServerPlayerStatsForGame[/section] [code=http]GET https://partner.steam-api.com/ISteamGameServerStats/GetGameServerPlayerStatsForGame/v1/[/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 publisher authentication key.…
[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. This means that if you’re outside of the USA, you’ll most likely need a travel adapter to charge and use your dev-kit. …
Promotions may involve other Steam products, or products/brands outside of Steam. These types of promotions are encouraged and many customers find value in them. However, under no circumstances is it okay to charge other developers to participate in a bundle or to sell access to a sale page or other page on Steam. [*][subsection]Paid Advertising Outside Steam[/subsection] Developers may want to run paid advertising campaigns to drive traffic to their Steam product pages. …
To start you off, though, here are some thoughts to consider: [subsection=multiplayer]Multiplayer Games[/subsection] Depending on the multiplayer game type, information that helps a player's friends know when to jump in can vary. Some games are played in rounds that are determined by time, or by players remaining, and so that information is most useful to display. …
[b]Examples of data to show if applicable[/b] [list] [*]Time remaining [*]Time passed [*]Players still alive [*]Map or Zone name [*]Player level [*]Player Class [*]Game score [*]Difficulty [*]Game mode type [*]Spots open on the server [*]Action being taken (deck building, roster changing, on main menu etc.) [/list] [callout][b]NOTE:[/b] Keep in mind that this rich presence string will need to fit on one line, and is shown under a players name in the friends list. …
Over 60% of Steam users use it in a language other than English, so tailoring your experience for those users is important. [section]Types of localization[/section] Steam supports two separate types of localization - store page and in-game. You can use either independently of each other, but supporting both is ideal. …
[h4]Do you want your game to be Peer-to-peer based or server based?[/h4] Depending on the type of game one or the other will likely make your game more enjoyable for users. If your game is highly competitive like an esport then we recommend that you use [doclink=#gameservers][/doclink]. …
. [*]You should not enter a Doing Business As ("DBA") or "friendly name" or alias/nickname for your company name.[/list] [subsection]Company Types[/subsection] You will need to provide both the legal company name and company form to onboard to Steamworks. An example of a Company Form is "A Quebec limited liability partnership" or "A Washington State corporation" or "A Sole Proprietorship". …
If you are unsure whether your game has a USK rating, please check on their [url=https://usk.de/?s&jump=usktitle&post_type=usktitle]official website[/url]. [b]Q. Will this affect customers who already own a license to my game?[/b] A. No. If your game does not have an age rating this will affect the visibility of your game on the German Steam storefront but German customers who already own a license will be able to continue to access and play it without restrictions. …
. [*] Service is not allowed to charge more than the agreed amount in the period (so if the user agreed to $20 a month, they cannot charge more than $20 each month – but may charge less). [*] User is only allowed to cancel this type of subscription. [/list] [b]Configuration:[/b] Please see [doclink=features/microtransactions/recurring_billing][/doclink] for details on getting this set up. …
Notification of cancellations will be done through the [webapi]ISteamMicroTxn/GetReport[/webapi] Web API. If your billing agreement is set to the "Game" type, then your backend server will need to the WebAPI [webapi]ISteamMicroTxn/ProcessAgreement[/webapi] to charge the user on each recurring event. …
[h4]Recommendations[/h4] [list] [*] Let players save at any time, except during loading, or if loading the save would cause game-breaking scenarios. [*] Allow both manual saving and auto-saving, and use separate save slots for both types of saves. Don't have auto-saves overwrite manual saves. [/list] [section=audio_recommendations]Audio[/section] [subsection=volume_controls]Custom Volume Controls[/subsection] [h4]Why is this tag important to players?…
Players can look for this tag to know that they can adjust the relative levels of different types of sound in the game. [h4]Recommendations[/h4] [list] [*] Provide separate volume controls for music, sound effects, ambient audio, and character speech. [*] The more distinct volume controls you can provide, the better. …
If your game submits a suggested input binding for Meta Quest 2 controllers, SteamVR will automatically rebind most controller types so they will work. The following controller profiles should have customized bindings, due to the difficulty in automatically rebinding them: [list] [*] HTC Vive wands [*] Valve Index controllers [*] Windows Mixed Reality controllers [/list] If you build with OpenVR, your application will automatically support any current and future OpenVR-supported head-mounted displays (HMDs), such as the HTC Vive, Oculus Rift, or Windows Mixed Reality family of devices. …