Skip to content

Screenshots Examples

This section provides practical examples of using the Steam Screenshots subsystem to capture screenshots, add custom images to the Steam screenshot library, and react to screenshot-related events.

All examples below are shown using Blueprint nodes, with equivalent functionality available through the C++ API.


Triggering a Steam Screenshot

This example demonstrates how to trigger a standard Steam screenshot.

The Trigger Screenshot node initiates the default Steam screenshot flow, equivalent to the user pressing the Steam screenshot hotkey.

Steam handles image capture, storage, and UI feedback automatically. The game does not need to manage image data or file paths when using this approach.

This method is typically used when implementing a custom in-game screenshot button or alternative input binding while preserving the expected Steam behavior.


Adding a Custom Screenshot

This example shows how to add a custom screenshot to the Steam screenshot library.

The Add Screenshot From File node registers an existing image file as a Steam screenshot. The node returns a FSteamScreenshotHandle that uniquely identifies the screenshot.

After the screenshot is added, the Set Screenshot Location node is used to assign a custom location string. This string is displayed by Steam and can be used to describe the in-game context where the screenshot was taken, such as a level name or scene identifier.

This approach is commonly used when the game renders screenshots manually, applies post-processing, or captures images outside of the default Steam screenshot flow.


Reacting to Screenshot Events

This example demonstrates how to react to screenshot-related events using explicit subscriptions.

The Subscribe to Screenshot Requested node listens for screenshot requests initiated by Steam. This event is triggered when Steam expects the game to provide a screenshot manually, instead of capturing it automatically.

Subscribing to this event switches Steam into a manual screenshot mode. In this mode, Steam does not capture the screen on its own and waits for the game to supply a screenshot using one of the Add Screenshot nodes.

This approach is typically used in games that require full control over screenshot capture, such as projects with custom rendering pipelines, photo modes, post-processing effects, or scenarios where UI elements need to be hidden before capture.

When this event is received, the game is responsible for generating the screenshot image and submitting it to Steam. If no screenshot is provided, no Steam screenshot will be created.

The Subscribe to Screenshot Ready node listens for notifications when a screenshot has been processed by Steam. The callback provides a screenshot handle and a result value defined by ESteamScreenshotResult.

This event can be used to confirm that a screenshot was successfully added to the Steam library or to handle error cases when submission fails.

When screenshot events are no longer needed, the stored listener handles are passed to the corresponding Unsubscribe nodes.

Unsubscribing restores the default Steam screenshot behavior and ensures that callbacks are no longer triggered, preventing outdated or unintended screenshot handling.


Important Notes

  • Trigger Screenshot uses the standard Steam screenshot flow and does not return a screenshot handle
  • Custom screenshots must be explicitly registered using Add Screenshot nodes
  • Screenshot location strings are optional but recommended for better context in Steam