.) [*] [b]steamworksexample[/b] - [doclink=sdk/api/example][/doclink] [*] [b]tools[/b] [list] [*] [b]ContentBuilder[/b] - [doclink=sdk/uploading][/doclink] [*] [b]ContentServer[/b] - [doclink=sdk/uploading/local_content_server][/doclink] [*] [b]drm[/b] - [doclink=features/drm][/doclink] [*] [b]goldmaster[/b] - [doclink=sdk/goldmaster][/doclink] [*] [b]linux[/b] - Build instructions. See: [doclink=store/application/platforms/linux][/doclink] [*] [b]ContentPrep.zip[/b] - Deprecated. …
Steam Machine is a gaming device that enables powerful PC gaming in a small form-factor. It runs SteamOS, Valve's operating system that's optimized for gaming, with fast suspend / resume and cloud saves. Steam Machine has a discrete semi-custom AMD desktop class CPU and GPU, and is roughly 6 times more powerful than Steam Deck. …
It is also included with Android Studio. Lepton is a container for running Android apps on Linux devices such as Steam Frame. There is no Lepton container running by default on Steam Frame, so adb will not have anything to connect to until we start one. …
[/i] [/olist] [h3]Connecting via USB[/h3] By default, adb over USB will connect to the native Linux OS, while Lepton instead listens on tcp port 5555. So to connect to Lepton over USB using adb you first need to forward that port and then explicitly connect to it. …
(We can’t guarantee it’ll charge with anything other than the included power supply at this stage) [*]To connect your development PC to your Steam Deck, you’ll need the SteamOS Devkit Client software from Steam. You can download this directly from this link: [url]steam://install/943760[/url] – just make sure Steam is running when you click that. …
[section]Getting Started[/section] [b]NOTE:[/b] The Steamworks API officially supports C++, using Microsoft Visual Studio 2008+ on Microsoft Windows, GCC 4.6+ and Clang 3.0+ on macOS and SteamOS / Linux. If you're using a third party engine or a programming language other than C++ then you should first look at [doclink=#thirdparty][/doclink] to see if there are more specific instructions to get started with your engine or language of choice. …
See [url=https://developer.apple.com/documentation/xcode/customizing-the-build-phases-of-a-target#Copy-files-to-the-finished-product]Xcode documentation[/url] for additional details. [*] [b]Linux[/b] [code-inline]libsteam_api.so[/code-inline] You must both link to and ship this along side your executable. [/list] [/list] [section=initialization_and_shutdown]Initialization and Shutdown[/section] [subsection=SteamAPI_Init]SteamAPI_Init[/subsection] After you have the Steamworks API set up within your project you can start using it by calling [api]steam_api::SteamAPI_Init[/api] function to initialize the API. …
[/td] [/tr] [tr] [td][b]wishlist_adds_mac[/b][/td] [td]uint32[/td] [td]How many wishlist adds occurred from users browsing for Mac games.[/td] [/tr] [tr] [td][b]wishlist_adds_linux[/b][/td] [td]uint32[/td] [td]How many wishlist adds occurred from users browsing for Linux games.[/td] [/tr] [/table] [b]CPartnerFinancials_CountryWishlistSummary[/b] [table] [tr] [th]Name[/th] [th]Type[/th] [th]Description[/th] [/tr] [tr] [td][b]country_code[/b][/td] [td]string[/td] [td]The ISO 3166-1 alpha-2 country code where the item was whishlisted. …
Max size - 128 characters[/td] [/tr] [tr] [td][b]summary_actions[/b][/td] [td]CPartnerFinancials_WishlistSummary[/td] [td]The summary of all wishlist actions for this language[/td] [/tr] [/table] [b]Example response: [/b] [code] "response": { "appid": 440, "date": "2026-02-15", "wishlist_summary": { "wishlist_adds": 30, "wishlist_deletes": 15, "wishlist_purchases": 10, "wishlist_gifts": 5, "wishlist_adds_windows": 22, "wishlist_adds_mac": 3, "wishlist_adds_linux": 5 }, "country_summary": [ { "country_code": "CA", "country_name": "Canada", "region": "North America", "summary_actions": { "wishlist_adds": 20, "wishlist_deletes": 6, "wishlist_purchases": 9, "wishlist_gifts": 2, "wishlist_adds_windows": 15, "wishlist_adds_mac": 1, "wishlist_adds_linux": 4 } }, { "country_code": "FR", "country_name": "France", "region": "Western Europe", "summary_actions": { "wishlist_adds": 10, "wishlist_deletes": 9, "wishlist_purchases": 1, "wishlist_gifts": 3, "wishlist_adds_windows": 5, "wishlist_adds_mac": 2, "wishlist_adds_linux": 1 } } ], "language_summary": [ { "language": 0, "language_name": "English", "summary_actions": { "wishlist_adds": 18, "wishlist_deletes": 4, "wishlist_purchases": 7, "wishlist_gifts": 1, "wishlist_adds_windows": 14, "wishlist_adds_mac": 0, "wishlist_adds_linux": 4 } }, { "language": 2, "language_name": "French", "summary_actions": { "wishlist_adds": 12, "wishlist_deletes": 11, "wishlist_purchases": 3, "wishlist_gifts": 4, "wishlist_adds_windows": 8, "wishlist_adds_mac": 3, "wishlist_adds_linux": 1 } } ], "time_generated": 1772580513 "app_min_date": "2010-01-01" } } [/code] …
This directory contains the following sub-directories: [list] [*] [b]builder[/b] - This directory initially contains just steamcmd.exe which is the command line version of Steam. [*] [b]builder_linux[/b] - The linux version of steamcmd. [*] [b]builder_osx[/b] - The macOS version of steamcmd. [*] [b]content[/b] - This directory contains all game files that will be built into depots. [*] [b]output[/b] - This directory will be the location for build logs, chunk cache, and intermediate output. …
This might work if a content server near you is serving bad data. [/list] [h4]My Mac and/or Linux Builds aren't installing any files. Why?[/h4] If you're testing via Steam the installation of your game or application across multiple platforms, you may run into a situation where the build deploys on Windows but doesn't deploy any files on Mac or Linux despite your SteamPipe process being setup to upload Mac and/or Linux depots. …
. [*] If you need to specify another port then 80, it must be "ip:port" in quotes [*] Don't add "http://" in front, HTTPS is not supported [/list] Note: The default location of the Steam executable is: [list] [*] [b]For Windows[/b]: [code]C:\Program Files (x86)\Steam\[/code] [*] [b]For macOS[/b]: [code]Steam.app/contents/macOS/[/code] [*] [b]For Linux[/b]: [code]~/.local/share/Steam/[/code] [/list] [b]Note[/b] As of September 2026, Steam will begin requiring newly-created "local" app branches to be [b]password-protected[/b]. …
To help troubleshoot transient frame time issues with your game, you can look at the [b]perfcriteria.txt[/b] file in the SteamVR logs folder ([b]/home/steamos/.local/share/Steam/logs[/b], or accessible through the alias [b]cdl[/b] from a shell). The first 2 lines recapitulate the Application Name, Steam Application ID, target frame time, effective resolution, etc. …
[/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. …
Remember to add the Steam Frame Controller to the list of Enabled Interaction Profiles on the Windows/Mac/Linux tab for the bindings to be the same as when on Android. [section]Building to Steam Frame[/section] Building to Steam Frame is similar to building to other standalone headsets or mobile devices using adb. …
[/td][/tr] [tr=k_unServerFlagDedicated][td][b]k_unServerFlagDedicated[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td]0x04[/td][td]This game server is dedicated.[/td][/tr] [tr=k_unServerFlagLinux][td][b]k_unServerFlagLinux[/b][/td][td][apitype]steam_api::uint32[/apitype][/td][td]0x08[/td][td]This game server is running on linux.…
. [*] "noplayers" Server passes the filter if it doesn't have any players. [*] "linux" Server passes the filter if it's a linux server. [*] "popularamongfriends" Server passes the filter if it is popular among friends as long as the game is not private, the friend profiles are not private, and the friend state is not offline/invisible during play. …
[callout] [h3]NOTE: These are the typical controller_config locations for each platform:[/h3] Windows: C:\Program Files (x86)\Steam\controller_config macOS: ~/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS/controller_config Linux: ~/.steam/steam/controller_config [/callout] Now open up the file in your favorite text editor. The file is in a standard Valve format called KeyValues, which is a simple & easily read format. …
The Steamworks SDK includes 32-bit and 64-bit versions of this library for Windows and Linux under the [code-inline]public/steam/lib[/code-inline] directory. Before using Encrypted Application Tickets, you must generate a private key for each title. …
[/td][/tr] [tr=k_ERemoteStoragePlatformPS3][td][b]k_ERemoteStoragePlatformPS3[/b][/td][td](1 << 2)[/td][td]This file will download on the Playstation 3.[/td][/tr] [tr=k_ERemoteStoragePlatformLinux][td][b]k_ERemoteStoragePlatformLinux[/b][/td][td](1 << 3)[/td][td]This file will download on SteamOS/Linux.[/td][/tr] [tr=k_ERemoteStoragePlatformReserved2][td][b]k_ERemoteStoragePlatformReserved2[/b][/td][td](1 << 4)[/td][td]Reserved.…
[list] [*] On Windows the Steam Overlay will hook traditional gamepad input APIs such as XInput, DirectInput, RawInput, and Windows.Gaming.Input and inject an emulated Xbox controller device. On macOS and Linux emulated controller input is provided by a driver. [*] The controller will show up in your game as an Xbox controller which means that controllers with extra inputs will have some of them duplicated, ex: PlayStation trackpad click and the options button both mapping to XInput's Start button. [*] In addition to normal gamepad input it's possible to bind Switch, PlayStation, and Steam Controller gyro inputs to mouse emulation and provide motion controls. …
[/td][/tr] [tr][td][b]platforms_to_sync[/b][/td][td]string[/td][td]✔[/td][td]List of platforms for which this file is valid. Possible values: All, Windows, MacOS, linux, Android, iPhoneOS, Switch. Case-insensitive.[/td][/tr] [tr][td][b]upload_batch_id[/b][/td][td]uint64[/td][td]✔[/td][td]The [code-inline]batch_id[/code-inline] returned by [code-inline]BeginAppUploadBatch[/code-inline] above[/td][/tr] [/table] Call this API to initiate uploading a new file (or new version of an existing file) to Steam Cloud for the user. …
It may also return a configuration value for 3rd party hardware that has similar performance characteristics to Steam hardware, such as returning [code-inline]k_ESteamHardwareDefaultConfigSteamDeck[/code-inline] when running on 3rd party handheld gaming devices running SteamOS. You can also change what value the Steam Client returns per device through the Steamworks Partner Site. This allows you to customize the default configuration used on future Steam hardware without recompiling your game. …
[table] [tr][th]Name[/th][th]Value[/th][th]Description[/th][/tr] [tr=k_EMarketingMessageFlagsNone][td][b]k_EMarketingMessageFlagsNone[/b][/td][td]0[/td][td][/td][/tr] [tr=k_EMarketingMessageFlagsHighPriority][td][b]k_EMarketingMessageFlagsHighPriority[/b][/td][td]1 << 0[/td][td][/td][/tr] [tr=k_EMarketingMessageFlagsPlatformWindows][td][b]k_EMarketingMessageFlagsPlatformWindows[/b][/td][td]1 << 1[/td][td][/td][/tr] [tr=k_EMarketingMessageFlagsPlatformMac][td][b]k_EMarketingMessageFlagsPlatformMac[/b][/td][td]1 << 2[/td][td][/td][/tr] [tr=k_EMarketingMessageFlagsPlatformLinux][td][b]k_EMarketingMessageFlagsPlatformLinux[/b][/td][td]1 << 3[/td][td][/td][/tr] [tr=k_EMarketingMessageFlagsPlatformRestrictions][td][b]k_EMarketingMessageFlagsPlatformRestrictions[/b][/td][td]=[/td][td]aggregate flags[/td][/tr] [/table] [subsection=ENotificationPosition]ENotificationPosition[/subsection] Possible positions to have the overlay show notifications in. …