Unreal Engine

Unreal Engine SDK builds on top of other Sentry SDKs and extends them with Unreal Engine specific features. It gives developers helpful hints for where and why an error or performance issue might have occurred.

Features:

  • Native support for automatic crash error tracking for
    • Windows (UE 5.2+) and Linux by using the Native SDK to support C and C++ with minidumps
    • macOS by using the macOS SDK to support Objective-C, Swift, C and C++
    • iOS by using the iOS SDK to support Objective-C, Swift, C and C++
    • Android by using the Android SDK to support Java, Kotlin, C and C++
  • Compatible with Crash Reporter Client provided along with Unreal Engine
  • PlayStation, Xbox and Nintendo Switch support
  • Release health to keep track of crash free users and sessions

On this page, we get you up and running with Sentry's SDK.

Don't already have an account and Sentry project established? Head over to sentry.io, then return to this page.

Sentry captures data by using an SDK within your application’s runtime.

The Unreal Engine (UE) SDK is officially supported for the three latest UE versions. However, it is likely to be compatible with older engine versions as well depending on the specific features and functionality that you need.

We recommend downloading the latest plugin sources from the GitHub Releases page, but we also support alternate installation methods.

To integrate Sentry into your Unreal Engine project using the GitHub package, select the artifact that matches your Unreal Engine version and includes github in its name. Place the extracted files in your project's Plugins directory. On the next project launch, UE will prompt you to build the Sentry and SentryEditor modules.

To make sure the Sentry plugin has been enabled after installation has been completed, go to the editor and navigate to the Settings > Plugins > Code Plugins menu and check for the installation.

Sentry window

To access the plugin API from within C++, add Sentry support to the build script (MyProject.build.cs):

Copied
PublicDependencyModuleNames.AddRange(new string[] { ..., "Sentry" });

The minimum configuration required is the DSN of your project:

Copied
{
  "public-dsn": "https://examplePublicKey@o0.ingest.sentry.io/0"
}

Sentry can be configured using the Sentry configuration window. The window can be accessed by going to editor's menu: Project Settings > Plugins > Sentry.

Sentry settings window

By default, the SDK is automatically initialized on application startup. Alternatively, the Initialize SDK automatically option can be disabled and in this case, explicit SDK initialization is required.

To override SDK settings at runtime, use the InitializeWithSettings method of the SentrySubsystem class.

This snippet includes message capturing, so you can test that everything is working as soon as you set it up:

Copied
#include "SentrySubsystem.h"

void Verify()
{
    // Capture message
    USentrySubsystem* SentrySubsystem = GEngine->GetEngineSubsystem<USentrySubsystem>();
    SentrySubsystem->CaptureMessage(TEXT("Capture message"));
}

The same result can be achieved by calling corresponding function in blueprint:

Sentry capture message BP

To view and resolve the recorded error, log into sentry.io and select your project. Clicking on the error's title will open a page where you can see detailed information and mark it as resolved.

Minidumps may contain sensitive information about the target system, such as environment variables, local pathnames, or in-memory representations of input fields, including passwords. By default, Sentry only uses minidump files to create events and immediately drops them. All sensitive information is stripped from the resulting events.

All attachments types, including log files, screenshots and minidumps (if you enable Store Minidumps As Attachments), are stored for 30 days when sent to Sentry. Note that Sentry does not apply data scrubbing to attachments.

You can enable Store Minidumps As Attachments in your organization or project settings under Security & Privacy. By default, this setting is disabled. Determine the maximum number of crash reports that will be stored per issue; disabled, unlimited, or maximum per issue:

Store Minidumps as Attachments Configuration Example

If you set a limit per issue, as in the example above, a limit of 5, Sentry will store the first 5 attachments associated with this issue, but drop any that follow. To make room for additional attachments, delete them. Sentry will then accept attachments until the limit is reached again.

Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").