You can set up your achievement localization data in the [url=https://partner.steamgames.com/apps/loc/]Achievement Localization[/url] section of the App Admin panel. [section]Gold Master Language Support[/section] The Gold Master tool can customize the self installing package to the user language. …
Is it text heavy/lore heavy/easy to relate to globally? This can impact which translation vendor may be better suited for particular languages. [*] [b]Ask for a deck or list of games that a vendor has worked on and ask them exactly what work they did on those games.…
[/b][/callout] [section]Project Setup[/section] [list] [*][b]Enable OpenXR[/b] - (Project / Project settings / XR / OpenXR) and enable stereo shaders (Project / Project settings / XR / Shaders) [*][b]OpenXR Vendors Plugin[/b] - Optionally install the [url=https://godotengine.org/asset-library/asset/3768]Godot OpenXR vendors plugin[/url] from the AssetLib tab. …
[section]Foveated Rendering[/section] Steam Frame supports the Foveated Rendering functionality in Godot via the [url=https://godotvr.github.io/godot_openxr_vendors/]OpenXR Vendors Plugin[/url] (or releases [url=https://github.com/GodotVR/godot_openxr_vendors/releases]here[/url]). [callout]Version 4.2.x is needed for vendor extension support including foveated rendering. 4.2.3 is the minimum version with Linux Arm64 support. 5.x or newer recommended.…
[/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.…
Try automating it using the Automated Steam Wrapper process documented above. [b]Q. An Anti-virus vendor has detected my binary as having a virus after applying the Steam DRM wrapper. What can I do?[/b] [b]A.[/b] False positives like this can happen, as the DRM injection process is modifying your binary in the same way a virus might do. Feel free to contact the vendor, or use the API instead of the Steam DRM wrapper. …
[section]Overview[/section] OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting. This repository on GitHub is an SDK that contains the API and samples. …
If your solution currently isn't working, please reach out to both your vendor and Valve for support. [*]Anti-tamper / DRM: In general we don't recommend use of such solutions across any PC platforms, as they may impact disk usage and overall performance. …
With those in mind, here are some best practices: [list] [*][b]Less Can Be More[/b]: You have more space here, but don't forget: the more you write, the less likely a customer will read all of it. Avoid long paragraphs or 'walls of text.' [*][b]Make it Skimmable[/b]: Consider bolding your key features or section headers using the provided formatting tools. …
Get advice and suggestions about these questions and more from our panel, with expert perspectives from development, publishing, and legal angles. At Steam DevDays in 2016, Valve's Connor Malone hosted a panel to discuss healthy relationships with between developers and publishers. …
[table] [tr] [td]OpenVR (Depth-assisted reprojection)[/td] [td][url=https://github.com/ValveSoftware/openvr/wiki/IVRCompositor::Submit]IVRCompositor::Submit[/url] with [url=https://github.com/ValveSoftware/openvr/blob/v2.15.6/headers/openvr.h#L191]VRTextureWithPoseAndDepth_t[/url][/td] [/tr] [tr] [td]OpenVR (Depth+Motion-assisted reprojection)[/td] [td][url=https://github.com/ValveSoftware/openvr/wiki/IVRCompositor::Submit]IVRCompositor::Submit[/url] with [url=https://github.com/ValveSoftware/openvr/blob/v2.15.6/headers/openvr.h#L202]VRTextureWithMotion_t[/url][/td] [/tr] [tr] [td]OpenXR (Depth-assisted reprojection)[/td] [td][url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XR_KHR_composition_layer_depth.html]XR_KHR_composition_layer_depth[/url][/td] [/tr] [tr] [td]OpenXR (Depth+Motion-assisted reprojection) Vendor-agnostic[/td] [td][url=https://registry.khronos.org/OpenXR/specs/1.1/man/html/XR_EXT_frame_synthesis.html]XR_EXT_frame_synthesis[/url][/td] [/tr] [tr] [td]OpenXR (Depth+Motion-assisted reprojection) Oculus[/td] [td][url=https://registry.khronos.org/OpenXR/specs/1.0/man/html/XR_FB_space_warp.html]XR_FB_space_warp[/url][/td] [/tr] [/table] You can visualize the depth or motion vectors submitted by using the [doclink=steamframe/debugging#GameTextures]Draw Performance Assessment Game Textures in Headset[/doclink] option. …
If you are running under the debugger and stop the process, the clock might not advance the full wall clock time that has elapsed between calls. If the process is not blocked from normal operation, the timestamp values will track wall clock time, even if you don't call the function frequently. …
.) [*][b]Video/Audio Codecs[/b]: We recommend using standalone codecs (eg., VP9 or AV1) rather than codecs that are tied to a specific vendor (eg., WMF). [/list] [subsection]Game Features[/subsection] [list] [*][b]Clouded Saves[/b]: For games that allow saving, we recommend enabling automatic clouding of saved games: users should be able to save their game on a Deck or Steam Machine and resume on a different PC, and vice versa, without manually transferring files. …
[docimg=2020-03-10_22-20-21.png]2020-03-10_22-20-21.png[/docimg] [*] Open "Settings" in the Control Panel. [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. …
[docimg=2020-03-10_22-32-11.png]2020-03-10_22-32-11.png[/docimg] [*] You are set for streaming. You can close the setting panels and start streaming. You can return to the [url=https://steamcommunity.com/broadcast/upload]broadcast upload settings page[/url] while logged in as the streaming account to see statistics about your broadcast, any diagnostic error messages, and to find a link to the stream on Steam Community. …
This will allow your update information to appear accessible from the 'downloads' panel in the Steam client and to any customer that is following your game (which they can do from your community hub or store page), on your store page, and within the Steam library. …
Simply head to the [url=https://partner.steamgames.com/apps/installer/]Redistributables[/url] tab which is available under the "Installation" tab in the Steamworks App Admin panel and check the checkboxes for the redistributables which your game or application requires. Don't forget to publish your changes when you're done! …
[b]Enable Anti-Cheat APIs[/b] This can be done from the [url=https://partner.steamgames.com/apps/vac/]Anti-Cheat Configuration[/url] page in the App Admin panel. These APIs must be enabled to apply Game bans. [section]Secure game servers[/section] A "secure" game is one that doesn't allow convicted cheaters to play on it. …
These settings control the features that your different group member types are able to use. You can access these permissions from the Hub Admin panel by selecting [i]Edit Group Permissions[/i] [*][b]Adding moderators[/b] Once you have a good idea of what features are accessible by which member types, you'll want to promote other members of your team. You can access this tool from the [i]Manage Group Members[/i] tool in the admin panel. [url=https://partner.steamgames.com/doc/marketing/community_moderation/adding_moderators]How to Add Moderators[/url] [*][b]Read our best practices[/b] There are a huge number of considerations that your team should be aware of when interacting with and moderating your community hub. …
You can set the type of your app on the [url=https://partner.steamgames.com/apps/view]General Application Settings[/url] section of the App Admin panel. [table] [tr] [td][b]Game[/b][/td] [td]All games, including VR and non-VR titles, will be under this application type.…
Leaderboards created with this function will not automatically show up in the Steam Community. You must manually set the Community Name field in the App Admin panel of the Steamworks website. As such it's generally recommended to prefer creating the leaderboards in the App Admin panel on the Steamworks website and using [api]ISteamUserStats::FindLeaderboard[/api] unless you're expected to have a large amount of dynamically created leaderboards. …
[/td][/tr] [/table] Asynchronously fetches global stats data, which is available for stats marked as "aggregated" in the App Admin panel of the Steamworks website. [b]Returns:[/b] [apitype]steam_api::SteamAPICall_t[/apitype] to be used with a [apitype]ISteamUserStats::GlobalStatsReceived_t[/apitype] call result. …
[b]Example:[/b] [code=cpp]// Restore the user default color for controller 1: SteamInput()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamInputLEDFlag_RestoreUserDefault ); // Set the color to magenta for controller 2: SteamInput()->SetLEDColor( controller2Handle, 255, 0, 255, k_ESteamInputLEDFlag_SetColor );[/code] [subsection=ShowBindingPanel]ShowBindingPanel[/subsection] [code=cpp]bool ShowBindingPanel( InputHandle_t inputHandle );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]inputHandle[/b][/td][td][apitype]ISteamInput::InputHandle_t[/apitype][/td][td]The handle of the controller you want to bring up the binding screen for.…
In desktop mode a popup window version of Big Picture will be created and open the configuration. [b]Example:[/b] [code=cpp]SteamInput()->ShowBindingPanel( myControllerHandle );[/code] [subsection=Shutdown]Shutdown[/subsection] [code=cpp]bool Shutdown();[/code] Must be called when ending use of the [api]ISteamInput[/api] interface. …
These can be long-term lists for organizing all the titles in a franchise, or can be used for temporary purposes such as listing out the titles you are running a promotion on. To create a list, simply visit the admin panel for your Creator Page and select 'Create a list' from the left column. You can then give your list a name and description, select the format of your list, and select the titles to display in your list. …
[section=broadcast]Broadcasting to Your Page[/section] [color=yellow]Instructions for v1 homepages[/color] You can configure the Creator home page to receive live broadcast. This can be enabled on the settings page of your admin panel (Admin->Edit Creator Settings). This option is near the bottom with the section title broadcast settings. By default this feature is disabled. …