Users must own the product and have at least two hours worth of playtime in it before they can redeem Steam Points for emoticons or static profile backgrounds. [b][i]There is also a separate set of assets and items available for direct sale via Points Shop. You can add those items after you've already shipped Trading Cards. See [doclink=marketing/pointsshopitems]Points Shop Items[/doclink] for information on this topic. [/i][/b] [section]Templates[/section] Valve has provided a set of PSD templates to assist with the creation of Trading Cards. You can download them [url=https://steamcdn-a.akamaihd.net/steam/partner/tradingcards/tradingcard_templates.zip]here[/url]. …
k_ESteamNetConnectionEnd_Remote_Timeout = 4001, // Something was invalid with the cert or crypt handshake // info you gave me, I don't understand or like your key types, // etc. k_ESteamNetConnectionEnd_Remote_BadCrypt = 4002, // You presented me with a cert that was I was able to parse // and *technically* we could use encrypted communication. // But there was a problem that prevents me from checking your identity // or ensuring that somebody int he middle can't observe our communication. // E.g.: - the CA key was missing (and I don't accept unsigned certs) // - The CA key isn't one that I trust, // - The cert doesn't was appropriately restricted by app, user, time, data center, etc. // - The cert wasn't issued to you. // - etc k_ESteamNetConnectionEnd_Remote_BadCert = 4003, // We couldn't rendezvous with the remote host because // they aren't logged into Steam k_ESteamNetConnectionEnd_Remote_NotLoggedIn = 4004, // We couldn't rendezvous with the remote host because // they aren't running the right application. …
k_ESteamNetworkingGetConfigValueResult__Force32Bit = 0x7fffffff }; [/code] [subsection=SteamNetworkingConfigValue_t]SteamNetworkingConfigValue_t[/subsection] In a few places we need to set configuration options on listen sockets and connections, and have them take effect [i]before[/i] the listen socket or connection really starts doing anything. Creating the object and then setting the options "immediately" after creation doesn't work completely, because network packets could be received between the time the object is created and when the options are applied. …
[/list] [section]Frequently Asked Questions[/section] [b]Q. Can I track conversions from external marketing campaigns?[/b] A. Yes, you can use our UTM solution to measure conversions to wishlists, purchases, or activations. …
We may offer refunds to Free-to-Play customers if they haven’t had the opportunity to get value out of their in-game purchases. [b]Q: What if I need to temporarily disable purchases or new installs of my game?[/b] A: If your game is in a state where you simply can’t handle more new customers, such as overloaded game servers, we can temporarily hide the purchase or play option on your store page. …
This happens in the normal course of business due to things like late settlement of transactions. - Partner X would then [i]remove[/i] their local entries for 2025/05/03 and 2025/05/04 and [i]replace[/i] these values with the results from new calls of GetDetailedSales. …
To generate a list of AppIDs for your partner account, you can use [url=https://partner.steamgames.com/doc/webapi/ISteamApps#GetPartnerAppListForWebAPIKey]GetPartnerAppListForWebAPIKey[/url] with a [i]normal[/i] (ie. non-Financial permission) WebAPI key. If the API is called for a date outside of the available range for an app, the response will be empty except for the [b]app_min_date[/b] field. …
[/callout] [docimg=AddingSharedDepot.png]AddingSharedDepot.png[/docimg] Shared depots will inherit properties of the Master App from which they originate i.e. Language, OS, Architecture and DLC. [docimg=sharedDepotProperties.png]sharedDepotProperties.png[/docimg] Once the depots are configured as shared, you can set the install folders to be the same between the two apps. …
If you make use of the 'Broadcasting" tab to configure your whitelist of accounts to live-stream to your page, those streams will be prioritized above any of the streams from individual games that are streaming during your event. [b]Q. Do I need to publish the announcement portion of the event in order to make my sale page live?[/b] A. Yes, you need to hit the 'publish' button in order for your sale landing page to become publicly visible, and the announcement will also go public at the same time. So please fill in the 'description' tab with thoughtful content as well. [b]Q. How can I show/hide my creator home widget? Can I control where it appears?[/b] A. Yes to all. This feature is enabled the default location (near top of the page) via the 'General Page Configuration' panel within the right hand panel 'Show creator capsule for this event'. …
Please access all previous session recordings [url=https://www.youtube.com/playlist?list=PLckFgM6dUP2iCWK3VkvB8YZI9b7HHCj8m]via this YouTube playlist[/url]. [subsection=contact]Need Help?[/subsection] [url=https://help.steampowered.com/en/wizard/HelpWithPublishing?…
The formula is provided in the [code-inline]exchange[/code-inline] field of the target item. The formula is specified as a set of one or more [i]recipes [/i] separated by semicolons. Each recipe is a set of required [i]material[/i] items, separated by commas. Required materials can be given explicitly by itemdefid, or by tag. …
[subsection=SteamGameServer_Init]SteamGameServer_Init[/subsection] [code=cpp]inline bool SteamGameServer_Init( uint32 unIP, uint16 usSteamPort, uint16 usGamePort, uint16 usQueryPort, EServerMode eServerMode, const char *pchVersionString );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]unIP[/b][/td][td]uint32[/td][td]The IP address you are going to bind to. (This should be in host order, i.e 127.0.0.1 == 0x7f000001). You can use INADDR_ANY to bind to all local IPv4 addresses.[/td][/tr] [tr][td][b]usSteamPort[/b][/td][td]uint16[/td][td]The local port used to communicate with the steam servers.…
[/list] [subsection]Integrations[/subsection] Steam Audio includes the following integrations with game engines and audio middleware: [list] [*] Unity 2017.3 or later [url=https://valvesoftware.github.io/steam-audio/doc/unity/index.html](documentation)[/url] [*] Unreal Engine 4.27 or later [url=https://valvesoftware.github.io/steam-audio/doc/unreal/index.html](documentation)[/url] [*] FMOD Studio 2.00 or later [url=https://valvesoftware.github.io/steam-audio/doc/fmod/getting-started.html](documentation)[/url] [*] C/C++ SDK to allow integrating Steam Audio with any other game engine or audio middleware [url=https://valvesoftware.github.io/steam-audio/doc/capi/index.html](documentation)[/url] [/list] [subsection]Supported Platforms[/subsection] Steam Audio supports the following platforms: [list] [*] Windows 7 or later (32-bit and 64-bit) [*] Linux (32-bit and 64-bit, tested with Ubuntu 18.04 LTS) [*] macOS 10.7 or later (64-bit Intel) [*] Android 5.0 or later (32-bit ARM, 64-bit ARM, 32-bit Intel, and 64-bit Intel) [*] iOS 11.0 or later (64-bit ARM) [/list] The C/C++ SDK and various plugins are built using the cross-platform [url=https://cmake.org/]CMake build system[/url], allowing it to be ported to other platforms as needed. …
[/list] [*]Steam Keys shouldn't be given away for free if you aren't also offering the same deal (i.e., give the game away for free) to Steam customers. This includes giveaways for promotional purposes, unless that giveaway is very small (under 100 Steam Keys). …
[/list] [section]FAQ[/section] [b]Q: How many Steam Keys can I get for my game?[/b] A:Games and applications launching on Steam may receive up to 5,000 Default Release Steam Keys to support retail activities and distribution on other stores. …
"Assassin's Creed" is also a franchise made up of a number of games that share gameplay style and also share a narrative story line that runs across all the titles. [url]https://www.youtube.com/watch?v=i9NMgyMDV4Q[/url] [subsection]Why create a franchises page?[/subsection] Similar to [doclink=store/creator_homepage]Developer and Publisher Homepages[/doclink], setting up a franchise page allows you to organize your titles in logical formats and allows fans to follow your entire franchise to be notified of future releases. …
You can edit the package name by clicking on the package and selecting "Edit Package Name" from the right-hand column on the package landing page. [subsection]Why do I see all my upcoming DLC listed?[/subsection] By default, any DLC that has been created for your application will be in beta mode and appear listed on your store page you while viewing your page in beta mode. …
Unlike Session Tickets, verifying Encrypted Application Tickets does [i]not[/i] require that the secure server can make HTTPS requests. Instead, a C++ library and a private, symmetric key are used by the secure server to verify the ticket. …
[subsection=GetFileNameAndSize]GetFileNameAndSize[/subsection] [code=cpp]const char * GetFileNameAndSize( int iFile, int32 *pnFileSizeInBytes );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]iFile[/b][/td][td]int[/td][td]The index of the file, this should be between 0 and [api]ISteamRemoteStorage::GetFileCount[/api].…
[b]Example:[/b] [code=cpp]int32 fileCount = SteamRemoteStorage()->GetFileCount(); for ( int i = 0; i < fileCount; ++i ) { int32 fileSize; const char *fileName = SteamRemoteStorage()->GetFileNameAndSize( i, &fileSize ); // Do something with fileSize and fileName }[/code] [subsection=GetFileSize]GetFileSize[/subsection] [code=cpp]int32 GetFileSize( const char *pchFile );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]pchFile[/b][/td][td]const char *[/td][td]The name of the file.…
[section]Example: Repeat "Down" on Hold[/section] Have you ever played, say, a menu-driven RPG and gotten frustrated that you had to repeatedly push "down" to scroll through a list of hundreds of items, one at a time? Activators let you define simple macros like, "If I hold DOWN for 1 second, repeat DOWN every 0.1 seconds thereafter until release." Ta-da! Now you can scroll through that list in a jiffy just by holding down the button, even though the developers never implemented it! …
[b] What you shouldn’t publish on Steam:[/b] [olist] [*]Hate speech, i.e. speech that promotes hatred, violence or discrimination against groups of people based on ethnicity, religion, gender, age, disability or sexual orientation [*]Nude or sexually explicit images of real people [*]Adult content that isn’t appropriately labeled and age-gated [*]Libelous or defamatory statements [*]Content you don’t own or have adequate rights to [*]Content that violates the laws of any jurisdiction in which it will be available [*]Content that is patently offensive or intended to shock or disgust viewers [*]Content that exploits children in any way [*]Applications that modify customer’s computers in unexpected or harmful ways, such as malware or viruses [*]Applications that fraudulently attempts to gather sensitive information, such as Steam credentials or financial data (e.g. credit card information) [*]Video content not directly related to a product that has shipped on Steam. [*]Non-interactive 360 VR Videos [*]Applications built on blockchain technology that issue or allow exchange of cryptocurrencies or NFTs. [*]Applications with advertising-based business models. [*]Content that may violate the rules and standards set forth by Steam’s payment processors and related card networks and banks, or internet network providers. …
[/td][/tr] [tr][td][b]unIPServer[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td]The IP of the game server in host order, i.e 127.0.0.1 == 0x7f000001.[/td][/tr] [tr][td][b]usPortServer[/b][/td][td][apitype]steam_api::uint16[/apitype][/td][td]The connection port of the game server, in host order.…
[/td][/tr] [tr][td][b]bSecure[/b][/td][td]bool[/td][td]Whether or not the client thinks that the game server is reporting itself as secure (i.e. VAC is running.)[/td][/tr] [/table] This starts the state machine for authenticating the game client with the game server. …
We cite specific examples in the Steam Dev Days presentation, but a good starting point is a product designed around a simple concept: "I celebrate when the player next to me makes a purchase." This is feasible for games of all genres and styles, and we encourage you to run experiments around such products in your own games. [*] [h4]Allow your users to create value for one another.…