Crash Detection
Learn how to configure Sentry crash reporting in S2-Launcher to capture crash dumps, logs, and plugin call breadcrumbs.
S2-Launcher ships with built-in Sentry integration for crash detection and reporting. When enabled, it automatically sends crash dumps to your Sentry backend, along with logs and a full callstack of any plugin calls captured as breadcrumbs. By default, Sentry is disabled and must be opted into by editing the sentry.jsonc configuration file.
Configuration
The sentry.jsonc file is located alongside the crashpad-handler executable:
- Windows:
bin/win64/sentry.jsonc - Linux:
bin/linuxsteamrt64/sentry.jsonc
Open the file and make the following changes to enable crash reporting.
Enable Sentry
Set "enabled" to true:
Set Your DSN
Replace the placeholder DSN with your own project's DSN from sentry.io. You can find this under Project Settings → Client Keys (DSN):
What Gets Reported
Once enabled, Sentry will capture the following for each crash:
- Crash dumps: Full minidump files sent to your Sentry project, viewable in the Issues dashboard.
- Logs: Session logs from the path configured in
logs_path. - Plugin call breadcrumbs: The callstack of any plugin function calls leading up to the crash, recorded as Sentry breadcrumbs. This makes it easy to trace which plugin triggered a fault.
Full Configuration Reference
Below is the complete sentry.jsonc with all available options. Required fields are at the top; advanced options are commented out and can be uncommented as needed.
Key Options Explained
| Option | Default | Description |
|---|---|---|
enabled | false | Master switch. Must be true for any reporting to occur. |
dsn | (placeholder) | Your Sentry project DSN. Required for sending events. |
database_path | (game-relative) | Where crash dumps are stored locally before upload. |
logs_path | (game-relative) | Session log files attached to crash reports. |
sample_rate | 1.0 | Fraction of events to send (1.0 = 100%). Lower to reduce volume. |
symbolize_stacktraces | true | Resolves raw addresses into function names in stack traces. |
auto_session_tracking | true | Tracks session health (crashed vs. healthy) in Sentry. |
debug | false | Enables verbose Sentry SDK output for troubleshooting. |
logs_with_breadcrumbs | false | Includes plugins callstack output in breadcrumbs. |
Troubleshooting
- Crashes not appearing in Sentry:
- Confirm
"enabled": trueis set insentry.jsonc. - Verify the DSN is correct and the project exists on sentry.io.
- Check that
crashpad_handler.exe(Windows) orcrashpad_handler(Linux) is present in the same directory as the launcher.
- Confirm
- Breadcrumbs missing:
- Plugin calls are only recorded if the plugin manager was loaded before the crash. Ensure Plugify initialized successfully (
plg --versionin console).
- Plugin calls are only recorded if the plugin manager was loaded before the crash. Ensure Plugify initialized successfully (
- Local crash dumps not being written:
- Verify the process has write permissions to the
database_pathdirectory. - The directory is created automatically, but the parent path must exist.
- Verify the process has write permissions to the