[docimg=daily_deal_updated.jpg]daily_deal_updated.jpg[/docimg] [section]Daily Deal Eligibility[/section] Since Daily Deals appear prominently in the Steam Store and are visible to broad swaths of customers, we need to have confidence that these offers will be interesting to a broad set of customers. Therefore, we judge eligibility for daily deals based on demonstrated customer interest or trending momentum in revenue over the past few months. …
[/list] [subsection]Visibility & Duration[/subsection] Two or more Daily Deals are displayed on the front page of Steam and may also be featured on appropriate tag pages (RPG, Simulation, VR, etc). From the set of active Daily Deals, Steam will prioritize which ones are surfaced first to each user depending on each players' play history and selected language. …
If the user is playing a shared copy, the response field "permanent" will be set to false and the field "ownersteamid" will contain the original owners SteamID, different from the caller provided SteamID. …
If you'd like to distribute your driver on Steam, you can become a Steamworks developer and set up your driver for distribution as an application. [b]Q. OpenVR does not support a feature of my device. Can Valve help?[/b] [b]A.…
[subsection]Platform Breakdown[/subsection] You'll notice a section labeled 'Platform-specific wishlisting' on the right-hand side of your Wishlist reporting. This indicates the platform that players have explicitly set in their Steam preferences. This will almost always be a subset of total wishlists, as not every player has selected a specific platform. …
As an example, Web API methods are commonly used by a secure publisher server to: [list] [*] Verify a Steam user's credentials with that server [*] Check if a user owns a particular application [*] Set or retrieve a user's stats, achievements or leaderboard scores [*] Execute an in-game purchase [/list] You can find a complete list of everything offered by the Steamworks Web API in the [doclink=webapi][/doclink]. …
To pass in data as JSON, invoke the web API method with the [code-inline]input_json[/code-inline] parameter set like: [code]?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&input_json={"steamid":76561197972495328}[/code] Note that the JSON will need to be URL-encoded. …
One alternative is to call SteamAPI_RunCallbacks from the main thread only, and call [api]steam_api::SteamAPI_ReleaseCurrentThreadMemory[/api] regularly on other threads. [subsection=SteamAPI_SetMiniDumpComment]SteamAPI_SetMiniDumpComment[/subsection] [code=cpp]S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]pchMsg[/b][/td][td]const char *[/td][td]The message to attach to the minidump. …
[/td][/tr] [tr=k_EBroadcastUploadResultRelayFailed][td][b]k_EBroadcastUploadResultRelayFailed[/b][/td][td]9[/td][td]Relay dropped the upload.[/td][/tr] [tr=k_EBroadcastUploadResultSettingsChanged][td][b]k_EBroadcastUploadResultSettingsChanged[/b][/td][td]10[/td][td]The client changed broadcast settings.[/td][/tr] [tr=k_EBroadcastUploadResultMissingAudio][td][b]k_EBroadcastUploadResultMissingAudio[/b][/td][td]11[/td][td]Client failed to send audio data.…
When creating and publishing new events using the Steam Event tools, you will be required to supply a set of graphical assets for your event. These assets are used on the event page, as well as various places on Steam, including your store page, Community Hub, and in the Steam Library. …
You can enter your discount for each via the [url=https://partner.steamgames.com/promotion/discounts/dashboard/]Discount Management page[/url]. Every game on Steam can join a seasonal sale and any discount set to 20% or greater will automatically trigger email notifications to players with your game on their wishlist. Discounted titles are eligible to appear in various 'specials' sections throughout Steam, based on your game's tags, popularity of your game, and to users that it is recommended. …
[/td][/tr] [/table] Structure of the [code-inline]lobby_metadata[/code-inline] property: [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key_name[/b][/td][td]string[/td][td][/td][td]Key name[/td][/tr] [tr][td][b]key_value[/b][/td][td]string[/td][td][/td][td]Key value[/td][/tr] [/table] When using the CreateLobby WebAPI, you'll probably want to set lobby_type to 4 (k_ELobbyTypePrivateUnique). This lobby type is a private, unique lobby that does not get deleted when emptied, and only one will exist per unique appid/lobby_name. …
You can update the list of members by calling CreateLobby with the same lobby_name and new complete set of steamIDs. Any steamIDs that were previously in the lobby and not included in the new call will be removed from the lobby. Lobby_metadata is completely optional, but can be used to send general lobby data that needs to be communicated to users in the client. …
[url=https://store.steampowered.com/news/group/4145017/view/668369251018476379]Learn more and set a reminder here[/url]. [/list] [b]January 2027[/b] [*][b]January 10, 11:59pm PST - Registration Deadline[/b] [list] [*]This is also when we recommend you have your marketing materials up-to-date to ensure you can be considered for potential inclusion in official Steam Next Fest marketing materials, in particular the official event trailer. …
All demos that have opted in to be available for press preview will be included. [*][b]February 22[/b] -[b] Steam Next Fest: February 2027 begins at 10am PST[/b]; set your demo live (or opt out if your plans have changed) before 10am PST. [*][b]March 1[/b] - Steam Next Fest: February 2027 concludes. [*][b]March 1[/b] - Steam Next Fest: February 2027 Wrap-Up (featuring games with the most played demos of the Fest) launches. …
Examples of Roadmap assets: [docimg=arcraidersroadmap]arcraidersroadmap[/docimg] [docimg=spacemarine2roadmap.jpg]spacemarine2roadmap.jpg[/docimg] [docimg=percentagebasedapproach]percentagebasedapproach[/docimg] [section]Setting up a Roadmap[/section] To start, navigate to your game's app landing page, and click on "Edit Store Page". [olist] [*]Select the "Description" tab [*]Scroll down to "Special Announcement Section" and add a new section [*]Select from the pre-defined string drop-down for "Roadmap" to give the section the title of Roadmap [*]Drag your roadmap image into the text field [*]Save and publish your store page [/olist] [docimg=roadmapsection.png]roadmapsection.png[/docimg] [section]Best Practices[/section] [list] [*]Upload an image that is at least 1600px wide. …
However, the Steam Input configurator is able to fix this; the player may set a threshold that distinguishes a "full pull" from a "soft pull." [docimg=xbox360_controller_triggers.png]xbox360_controller_triggers.png[/docimg] [subsection=DPAD]Digital pad[/subsection] [b]Digital[/b] The Xbox 360 controller features a fairly standard digital pad, or DPAD. …
You can do this yourself by visiting the "All Associated Packages, DLC, Demos and Tools" section for your app and clicking "Create new Tool" button. [*] Inside that new App, click Edit Steamworks Settings. Go to Installation -> Redistributables and turn on Dedicated Server Redistributables. This will add the various Steam SDK Redist depots to the application. [*] Switch to the publish tab and publish the change. …
[/td][/tr] [tr][td][b]pnBufferSize[/b][/td][td][apitype]steam_api::int32[/apitype] *[/td][td]This should be set to the size of [code-inline]pchBuffer[/code-inline], and returns the number of bytes written to [code-inline]pchBuffer[/code-inline].…
The size of the OPF string varies, but at this time 48,000 bytes should be sufficient to contain the full string. If it is not, [code-inline]pnBufferSize[/code-inline] will be set to the size required. In that case, make a second call with the correct buffer size. [b]NOTE:[/b] The data returned in a successful call to GetOPFStringForApp() can only be retrieved once. …
Once the Cafe Distribution Addendum is signed, you will be able to create a Commercial package, and continue with the process of setting a price. We recommend offering the commercial license at the same price as the regular end user version. [docimg=cafe_commercial_packages.JPG]cafe_commercial_packages.JPG[/docimg] Prices will then get approved by Valve. …
[/h4] The [url=https://store.steampowered.com/steam_refunds/]refund policy[/url] is set up to closely mimic the consumer version (2 weeks/2 hours). [*][h4]Can I see if a player is in a Café?[/h4] You can make use of our webAPI ownership calls to find out if the player is accessing a license from the Café they're in and provide them with special items or content. …
[section]Setup[/section] To run a Free Weekend, you'll first need approval from the Steam Team as described in the [doclink=marketing/discounts/freeweekends#1]Overview[/doclink] above. If approved, here are few set up steps and best practices: [subsection]Steam Team Setup:[/subsection] [list] [*] The Steam Team will create a special Free Weekend package that grants players access to your game during the event. …
[/list] [subsection]Best Practices:[/subsection] To make the most of your Free Weekend, we recommend the following:[list] [*]Pair your Free Weekend with a compelling discount on your paid package to encourage conversions. [*]Extend your discount a few days beyond the end of the Free Weekend to give players extra time to upgrade after trying the game. [*]Ensure your game servers are ready for a temporary influx of new players. [*]If you're messaging your Free Weekend off of Steam, consider pointing those communications at your base game's Store Page and using [doclink=/marketing/utm_analytics]UTM analytics[/doclink] to measure the impact. [*]To help message your Free Weekend on Steam, consider: [list] [*]Creating a [doclink=/marketing/event_tools]News Event[/doclink] to let your current players know about the Free Weekend and that they can invite their friends to play for free while it's active. [*]Setting up a temporary [doclink=store/assets/overrides]Artwork Override[/doclink] about your Free Weekend. Be sure to align the override’s start and end times with the Free Weekend dates. …
Once they've done so, you should see their event name and the organizer's contact info appear in your Steamworks dashboard. [subsection]2. Set Your Discount (Optional)[/subsection] Consider whether you'd like your game to be on discount during the event. This can be a good idea since events can often bring extra visibility to your game. If interested, you may set up your own discount event that includes some or all of the dates of the event, or, for your convenience, the event organizer may be able to share a (purely optional) custom discount event that will appear directly in your Discount Management Tool. …
[/introblock] [section]Table of Contents[/section] [list] [*][doclink=#dates]Important Dates[/doclink] [*][doclink=#changes]Changes from Previous Next Fest[/doclink] [*][doclink=#eligibility]Eligibility[/doclink] [*][doclink=#asset]Asset Kit[/doclink] [*][doclink=#faq]Frequently Asked Questions[/doclink] [*][doclink=#contact]Contact / Help[/doclink] [/list] [section=dates]Important Dates[/section] [b]August 2026:[/b] [list] [*][b]August 18, 10am – 11am PDT on Zoom:[/b] Live virtual Q&A session: [url=https://store.steampowered.com/news/group/4145017/view/717902598999377015]Learn more and set a reminder here[/url]. [*][b]August 31 - Registration Deadline (11:59pm PDT)[/b] [list] [*]This is also when we recommend you have your marketing materials up-to-date to ensure you can be considered for potential inclusion in official Steam Next Fest marketing materials (main event trailer, genre trailers, etc). …
All demos that have opted in to be available for press preview will be included. [*][b]October 19[/b] -[b] Steam Next Fest: October 2026 begins at 10am PDT[/b]; set your demo live (or opt out if your plans have changed) before 10am PDT. [*][b]October 26[/b] - Steam Next Fest: October 2026 concludes. [*][b]October 26[/b] - Steam Next Fest: October 2026 Wrap-Up (featuring games with the most played demos of the Fest) launches. …
[/td][/tr] [tr][td][b]appdata[/b][/td][td]uint64[/td][td][/td][td](Optional) App specific data about the type of cheating set by developer. (ex 1 = Aimbot, 2 = Wallhack, 3 = Griefing)[/td][/tr] [tr][td][b]heuristic[/b][/td][td]bool[/td][td][/td][td](Optional) Extra information about the source of the cheating - was it a heuristic.…
[/td][/tr] [tr][td][b]severity[/b][/td][td]uint32[/td][td][/td][td](Optional) Level of severity of bad action being reported. Scale set by developer.[/td][/tr] [/table] ReportPlayerCheating is designed to gather community reports of cheating, where one player reports another player within the game. …
Reviews are an easy way for customers to share their experience with your product, and to describe how your game or software has matched their expectations. Customer expectations can be set any number of ways—through the marketing on the product page itself, through gameplay videos or stills, and through pre-release copies sent to press, etc. It can be helpful to use reviews as a feedback channel to understand if expectations are being set and met correctly. [section]Developer Usage Rules[/section] We’re pretty confident in the data we’re getting from user reviews on products across Steam. …