Thanks for the digging. Here is what I have ended up with. It’s mostly a summary of the previous posts, but with some additional background.
When Unreal Engine packages things, most of [Game project location]\Config\* goes into the game’s .pak file, and [Unreal Engine location]\Programs\CrashReportClient\Config\*.ini + …\Config\Windows\*.ini goes into CrashReportClient.pak.
When CrashReportClient starts up, it will attempt to read configuration files from a large number of locations. It reads them and applies the settings in the following order:
- Programs\CrashReportClient\Config\DefaultEngine.ini
- Programs\CrashReportClient\Config\ShippableEngine.ini
- Programs\CrashReportClient\Config\NotForLicensees\DefaultEngine.ini
- Programs\CrashReportClient\Config\NotForLicensees\ShippableEngine.ini
- Programs\CrashReportClient\Config\NoRedist\DefaultEngine.ini
- Programs\CrashReportClient\Config\NoRedist\ShippableEngine.ini
- Programs\CrashReportClient\Config\Windows\WindowsEngine.ini
- Programs\CrashReportClient\Config\Windows\ShippableWindowsEngine.ini
- Programs\CrashReportClient\Config\Windows\NotForLicensees\WindowsEngine.ini
- Programs\CrashReportClient\Config\Windows\NotForLicensees\ShippableWindowsEngine.ini
- Programs\CrashReportClient\Config\Windows\NoRedist\WindowsEngine.ini
- Programs\CrashReportClient\Config\Windows\NoRedist\ShippableWindowsEngine.ini
When CrashReportClient runs as part of a packaged build, it will fetch .ini files first hand from CrashReportClient.pak, and for any file that is not present there, it will fetch from the corresponding location under [Game exe location]\Engine\Programs\CrashReportClient\Config\…
The current Unreal distribution has a .ini file at [Programs\CrashReportClient\Config\DefaultEngine.ini but no other of the previously mentioned locations.
This gives us a number of options for overriding crash reporter settings.
1 - Make the change once, before packaging.
1a) Modify the Unreal Engine installation: change the contents of [Unreal Engine location]\Programs\CrashReportClient\Config\DefaultEngine.ini.
1b) Modify the Unreal Engine installation: Add a file at [Unreal Engine location]\Programs\CrashReportClient\Config\DefaultEngine.ini (or the two Shippable locations).
For people that build Unreal Engine from source, both these options should work fine. One change in source control and it’s all grand.
For people that use pre-built Unreal Engine versions, these options are not so great. This requires local changes on each developer machine / build machine. The changes also risk being lost when updating to a newer UE version and when repairing the UE installation.
2 - Make the change after each packaging.
2a) Inject a config change partway after the packaging process, for non-pak builds: After packaging, modify either [Staging folder location]\Engine\Programs\CrashReportClient\Config\DefaultEngine.ini or create [Staging folder location]\Engine\Programs\CrashReportClient\Config\Windows\WindowsEngine.ini .
2b) Inject a config change partway after the packaging process, for pak builds: After packaging, create [Staging folder location]\Engine\Programs\CrashReportClient\Config\Windows\WindowsEngine.ini .
(Adding a new file at [Staging folder location]\Engine\Programs\CrashReportClient\Config\DefaultEngine.ini will not work, because the corresponding file already exists within CrashReportClient.pak, and the UE framework will not attempt to access a file on-disk if it already has found it within the .pak.)
Options 2a & 2b seem to require automation outside of UAT/UBT; if there’s a build machine that generates all builds, that could copy the .ini file to the location mentioned in 2b once UBT has staged the build.
If there is a desire to get crash reports from within the editor, well – I haven’t looked into it, but options 2a & 2b do not apply; options 1a / 1b might work.