diff --git a/docs/platforms/unreal/index.mdx b/docs/platforms/unreal/index.mdx index 88ede25d8fd44..1ab1992bb4125 100644 --- a/docs/platforms/unreal/index.mdx +++ b/docs/platforms/unreal/index.mdx @@ -34,10 +34,39 @@ Don't already have an account and Sentry project established? Head over to [sent ## Install -Sentry captures data by using an SDK within your application’s runtime. +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. +There are three common ways to install an SDK to use with Unreal Engine: +1. Install from the [Epic Games Fab](https://www.fab.com/) ([formerly known as the marketplace](https://www.unrealengine.com/en-US/blog/fab-epics-new-unified-content-marketplace-launches-today)) +2. Download a pre-built SDK that you install (for example, from a [GitHub Releases page](https://github.com/getsentry/sentry-unreal/releases)) +3. Clone and build the SDK yourself and install + +While you can use any of the three methods to install Sentry, each has its own limitations, as described below. + +### Overview of SDK Versions + +The table below highlights some key differences between different versions of the SDK: + +| Feature | __GitHub Releases__* | Fab | Build Yourself | +|----------------------------|----------------------|---------------------|----------------| +| Supported engine versions | 4.27 and newer | 5.1 and newer | 4.27 and newer | +| Supported UE project types | C++ only | Blueprint and C++ | C++ only | +| Backend (Windows) | Crashpad | Breakpad | Crashpad | +| `on_crash` hook (Windows) | Supported | Not supported | Supported | +| Sentry CLI ** | Included | Manual download | Included | + +Legend: +`*`: Recommended version of the SDK +`**`: Sentry CLI is a standalone tool that the plugin uses under the hood to automatically upload debug information files upon game build completion. + +### Installing from GitHub Releases (Recommended) + +The [GitHub Releases page](https://github.com/getsentry/sentry-unreal/releases) provides two plugin packages: `github` and `marketplace`. The key difference between the two is the crash capturing backend, which is used under the hood on Windows. + +We recommend using the `github` version, because it uses `Crashpad`, an out-of-proc handler that sends the crash report right away. The `marketplace` version relies on `Breakpad`, an in-proc handler which requires the UE application or game to be relaunched before any crash reports can be sent to Sentry. + To install the SDK, download the most up-to-date sources from the [Releases page](https://github.com/getsentry/sentry-unreal/releases) and add them to your project's `Plugins` directory. On the next project launch, UE will prompt you to build the Sentry and SentryEditor modules. @@ -46,22 +75,32 @@ Currently, this method is available only for C++ UE projects. Blueprint projects - +### Installing from Fab -The [Releases page](https://github.com/getsentry/sentry-unreal/releases) provides two plugin packages: `github` and `marketplace`. The key difference between the two is the crash capturing backend, which is used under the hood on Windows. +Sentry SDK can be downloaded via the [standard installation process](https://dev.epicgames.com/documentation/en-us/unreal-engine/working-with-plugins-in-unreal-engine#installingpluginsfromtheunrealenginemarketplace) from its [Epic Games Fab page](https://www.fab.com/listings/eaa89d9d-8d39-450c-b75f-acee010890a2). -We recommend using the `github` version which uses `Crashpad`, an out-of-proc handler that sends the crash report right away. The `marketplace` version relies on `Breakpad`, an in-proc handler which requires the UE application or game to be relaunched in order to send the crash reports to Sentry. +This method is recommended only for Blueprint UE projects. If you already have a C++ UE project or don't mind converting an existing Blueprint UE project to a C++ one, consider downloading the plugin from GitHub instead. - +### Build Yourself -Alternatively, the Sentry SDK can be downloaded via the [standard installation process](https://docs.unrealengine.com/5.2/en-US/working-with-plugins-in-unreal-engine/#installingpluginsfromtheunrealenginemarketplace) from its [UE Marketplace](https://www.unrealengine.com/marketplace/en-US/product/sentry-01) page within the Epic Games Launcher. +To get started, we recommend cloning the [Unreal SDK repository](https://github.com/getsentry/sentry-unreal) and running the initialization script: - +* `./scripts/init.sh` on macOS/Linux +* `./scripts/init-win.ps1` on Windows -This method is recommended only for Blueprint UE projects. If you already have a C++ UE project or don't mind converting an existing Blueprint UE project to a C++ one, consider downloading the plugin from GitHub instead. + +Initialization scripts require [GitHub CLI](https://cli.github.com/) to be installed. + + +If the initialization script fails due to errors on Windows, check your PowerShell version by printing the built-in variable `$PSVersionTable`. If the version is `5.x`, upgrading to a newer version of [PowerShell](https://github.com/powershell/powershell) may resolve these errors. +This script links the checked out version of the plugin (the [plugin-dev](https://github.com/getsentry/sentry-unreal/tree/b67076ad5dc419d46b4be70a0bd6e64c2357a82d/plugin-dev) directory) to the [sample app](https://github.com/getsentry/sentry-unreal/tree/b67076ad5dc419d46b4be70a0bd6e64c2357a82d/sample) and downloads the latest builds of native SDKs from our GitHub CI. + +After successful initialization, copy the contents of the `plugin-dev` directory to `/Plugins/Sentry`. This will allow you to use Sentry in your Unreal Engine project. + +### Confirm Installation 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](./img/unreal_plugins_window.png)