Disclaimer: This tutorial was not paid for by Bugsplat, nor did I get approval from them to make this tutorial. We have been using them for Industries of Titan since our Early Access Launch in April 2020.
When an Unreal Engine game crashes, the Unreal Engine Crash Reporter is shown
to the player, and they can choose to send a report. But where does this report
go? By default, it goes to Epic, but with a few changes to an .ini
and your
build process, you can see those crash reports too!
Unreal Engine Crash Reporter
The window that players see when an Unreal Engine game crashes.
Why automatically collect crash reports?
Crashes are incredibly frustrating for players, and you cannot rely on them taking the time to join your Discord, copy and paste each crash, explain what they were doing, add log files etc.
Also you would need to include .pdb
files with your distributed game for them
to be able to show you the full stacktrace of the crash.
BugSplat
When we were preparing to release Industries of Titan on the Epic Games Store, we knew we wanted to get crash reports from players. There are a few different services out there that will collect the reports for you but ultimately we settled on BugSplat.
We've been using it for over a year and we've found it incredibly useful for finding and fixing crash bugs. One of the things we loved is that it works with a vanilla version of Unreal Engine.
This is the kind of information and screens that you can get through BugSplat:
- For each crash, a full callstack.
- The current value of (some) variables.
- Logs
- Included files: CrashContext.runtime-xml, CrashReportClient.ini, UE4Minidump.dmp
The full callstack of the crash.
The current value of variables.
Reports showing crash frequency over time.
Setup
Simply follow the steps on Bugsplat's Unreal Setup page.
The steps boil down to:
- Replace a value in
/Engine/Programs/CrashReportClient/Config/NoRedist/DefaultEngine.ini
. - Add a step to your automated build system to upload
.exes
,.dlls
and.pdbs
to BugSplat's servers. - That's it!
There's also an example Unreal Project to look through if you get stuck.
Testing your set-up
debug crash
Enter this command on the Unreal console to force your game to crash and test that your report is received after hitting Send on the crash reporter (thanks @SeanliMurmann and @torchedhill!)
Further Reading
- It's possible to customize the look of the crash reporter if you have a custom version of the engine. This isn't Bugsplat specific but they have a good tutorial explaining it
- Alternative services are provided by Backtrace and Sentry (thanks Nacho Abril for the tip!)