The Steam overlay is a piece of the Steam user interface that can be activated over the top of almost any game launched through Steam. It lets the user access the friends list, web browser, chat, and in-game DLC purchasing.
The default key for a user to access the overlay while in a game is SHIFT+TAB, but they can change it in their Steam->Settings dialog.
Your game does not need to do anything special for the overlay to work, it automatically hooks into any game launched from Steam! While in development and running your game in a debugger, the overlay is loaded when you call SteamAPI_Init
. As such you'll need to make sure to call SteamAPI_Init
prior to initializing the OpenGL/D3D device, otherwise it won't be able to hook the device creation.
The overlay supports games that use DirectX 7 - 12, OpenGL, and Vulkan. The overlay does not currently support Metal. The overlay will not be active in software-rasterized games.
NOTE: The overlay is automatically disabled for 'Software' app types.
Activating the overlay from your app
There are a set of functions in the Steamworks API that give you direct access to triggering the game overlay.
Communication from the overlay to your game
The following signals (callbacks) are sent from Steam to your game, based on user action in the overlay:
Posted when game overlay activates or deactivates. The game can use this to pause or resume single player games.
Posted when the user selects a friends game to join, contains details about the game server to join.
Posted when the user selects a friends game to join, contains details about the lobby to join.
Frequently Asked QuestionsNOTE:
You may find additional answers on the customer facing support site such as this topic: Steam Community Overlay does not Activate
Q. Why is the Steam overlay crashing my app?A.
The Steam overlay is used in thousands of games and as such it has been very thoroughly tested and is rarely the cause of a crash. However, because of the way it injects itself into the game, it does often expose memory leaks or memory corruption in the usage of your rendering API that may not have impacted game play.
To diagnose overlay crashes with DirectX for example, try to determine how D3D got into a bad state by using the d3d debug runtime with all (info/warning/error/notice) level spew turned on. It might give some hints to orphaned d3d resources. If you don’t find anything that way there may be a more general memory corruption issue. If these always occur on shutdown then it’s likely a shutdown ordering issue with the game not cleaning up as it shuts down.
If after debugging the app is still crashing in the overlay, please notify us in the Steamworks Development Group
Q. Why isn't the Steam overlay showing up in my app?A.
First ensure that you meet the Requirements
above. If you do meet the requirements and it's still not showing up, make sure you're launching the app through the Steam client, either directly from the lobby/quick launch list, or by calling SteamAPI_RestartAppIfNecessary