{"id":25836037,"url":"https://github.com/bugsplat-git/bugsplat-unreal","last_synced_at":"2025-03-01T01:38:57.548Z","repository":{"id":46751491,"uuid":"480597041","full_name":"BugSplat-Git/bugsplat-unreal","owner":"BugSplat-Git","description":"⚙️👾🤯 BugSplat's Unreal Engine plugin for configuring top-notch crash reporting!","archived":false,"fork":false,"pushed_at":"2025-02-24T21:44:09.000Z","size":372441,"stargazers_count":36,"open_issues_count":10,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-24T22:31:39.847Z","etag":null,"topics":["bugsplat","crash-reporting","hacktoberfest","minidump","ue4","ue4-plugin","ue5","ue5-plugin","unreal-engine"],"latest_commit_sha":null,"homepage":"https://docs.bugsplat.com/introduction/getting-started/integrations/game-development/unreal-engine/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BugSplat-Git.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-12T00:26:48.000Z","updated_at":"2025-02-15T20:23:21.000Z","dependencies_parsed_at":"2024-12-10T16:33:40.658Z","dependency_job_id":"43216917-0190-4494-b2f2-879b30e76972","html_url":"https://github.com/BugSplat-Git/bugsplat-unreal","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fbugsplat-unreal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fbugsplat-unreal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fbugsplat-unreal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BugSplat-Git%2Fbugsplat-unreal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BugSplat-Git","download_url":"https://codeload.github.com/BugSplat-Git/bugsplat-unreal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241304302,"owners_count":19941100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bugsplat","crash-reporting","hacktoberfest","minidump","ue4","ue4-plugin","ue5","ue5-plugin","unreal-engine"],"created_at":"2025-03-01T01:38:56.959Z","updated_at":"2025-03-01T01:38:57.534Z","avatar_url":"https://github.com/BugSplat-Git.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![bugsplat-github-banner-basic-outline](https://user-images.githubusercontent.com/20464226/149019306-3186103c-5315-4dad-a499-4fd1df408475.png)](https://bugsplat.com)\r\n\u003cbr/\u003e\r\n# \u003cdiv align=\"center\"\u003eBugSplat\u003c/div\u003e \r\n### **\u003cdiv align=\"center\"\u003eCrash and error reporting built for busy developers.\u003c/div\u003e**\r\n\u003cdiv align=\"center\"\u003e\r\n    \u003ca href=\"https://twitter.com/BugSplatCo\"\u003e\r\n        \u003cimg alt=\"Follow @bugsplatco on Twitter\" src=\"https://img.shields.io/twitter/follow/bugsplatco?label=Follow%20BugSplat\u0026style=social\"\u003e\r\n    \u003c/a\u003e\r\n    \u003ca href=\"https://discord.gg/K4KjjRV5ve\"\u003e\r\n        \u003cimg alt=\"Join BugSplat on Discord\" src=\"https://img.shields.io/discord/664965194799251487?label=Join%20Discord\u0026logo=Discord\u0026style=social\"\u003e\r\n    \u003c/a\u003e\r\n\u003c/div\u003e\r\n\u003cbr\u003e\r\n\r\n## 👋 Introduction\r\n\r\nBugSplat's Unreal Editor plugin makes adding crash reporting to your game a breeze! With [BugSplat](https://bugsplat.com), you'll get a crash notification containing a full call stack with function names, line numbers, as well as many other invaluable insights into the issues tripping up your users.\r\n\r\nBefore diving into the plugin, please complete the following tasks:\r\n\r\n* [Sign Up](https://app.bugsplat.com/v2/sign-up) as a new BugSplat user\r\n* Complete the [Welcome](https://app.bugsplat.com/v2/welcome) workflow and make a note of your BugSplat database\r\n* Review our [MyUnrealCrasher](https://github.com/BugSplat-Git/my-unreal-crasher) sample application to jump-start your evaluation of BugSplat\r\n\r\n## 🏗 Installation \r\n\r\nYou may choose to add BugSplat through the Unreal Marketplace or add the plugin to your Unreal project manually.\r\n\r\n### Install from Marketplace\r\n\r\n[Install BugSplat from the Unreal Marketplace](https://www.unrealengine.com/marketplace/en-US/product/bugsplat)\r\n\r\n### Install Manually\r\n\r\n1. Navigate to your project folder containing your `[ProjectName].uproject` file.\r\n2. Create a `Plugins` folder if it does not already exist.\r\n3. Create a `BugSplat` folder in the `Plugins` folder and copy the contents of this repo into the `BugSplat` folder. Please note, if you're cloning this repo on macOS or Linux, you'll need to use [Git LFS](https://git-lfs.com/) and `git lfs fetch --all` to download our [symbol-upload](https://github.com/BugSplat-Git/bugsplat-unreal/tree/main/Source/ThirdParty/SymUploader) tool.\r\n4. In the Unreal Editor, ensure you can access the BugSplat plugin via `Edit \u003e Project Settings` and scroll to the `BugSplat` section under `Plugins`.\r\n\r\n## ⚙️ Configuration\r\n\r\nBugSplat's Unreal plugin currently supports adding crash reporting to Windows, macOS, Linux, Android, and iOS games. With a few clicks, the BugSplat plugin can be configured to automatically upload symbol files so crash report stack traces display function names and line numbers.\r\n\r\nTo get started, generate a Client ID and Client Secret via the [Integrations](https://app.bugsplat.com/v2/settings/database/integrations) page.\r\n\r\nNext, open the BugSplat plugin menu in the Unreal Editor via `Edit \u003e Project Settings`. Scroll to the `BugSplat` section of `Project Settings` and add values for `Database`, `Application`,  `Version`, `Client ID`, and `Client Secret`:\r\n\r\n\u003cimg width=\"1126\" alt=\"BugSplat Unreal Plugin Settings\" src=\"https://github.com/BugSplat-Git/bugsplat-unreal/assets/2646053/c386a288-31e7-475d-adb8-9bef0506272b\"\u003e\r\n\r\n### Windows, macOS, and Linux\r\n\r\nBugSplat leverages Unreal's `CrashReportClient` to provide crash reporting for Windows, macOS, and Linux games. Be sure to update your project settings and enable `Include Crash Reporter` and `Include Debug Files in Shipping Builds`:\r\n\r\n\u003cimg width=\"1126\" alt=\"BugSplat Unreal Project Settings\" src=\"https://github.com/BugSplat-Git/bugsplat-unreal/assets/2646053/55680b90-58fb-4afe-9169-a953f756f4d5\"\u003e\r\n\r\nTo configure `CrashReportClient` to post to BugSplat, the `DataRouterUrl` value needs to be added to `DefaultEngine.ini`. The `bugsplat-unreal` plugin automatically updates the value for `DataRouterUrl` when the `Update Engine DefaultEngine.ini` option is enabled. Please note the `DataRouterUrl` value is global and is shared across all packaged builds created by the affected engine. To override the `DataRouterUrl` value a package build uses, you may optionally use the `Update Packaged Game INI` button under the `Tools` section.\r\n\r\nIn order to get function names and line numbers in crash reports, you'll need to upload your game's `.exe`, `.dll`, and `.pdb` files. To upload debug symbols for reach build, ensure that the `Enable Automatic Symbol Uploads` option is selected. When selected, a script to execute [symbol-upload](https://github.com/BugSplat-Git/symbol-upload) will be added to the `PostBuildSteps` field in `BugSplat.uplugin`. The symbol upload script will run automatically when your game is built.\r\n\r\n### iOS and Android\r\n\r\nBefore attempting to use the BugSplat plugin to capture crashes on Mobile, please ensure you've completed the [iOS](https://docs.unrealengine.com/5.0/en-US/setting-up-an-unreal-engine-project-for-ios/) and [Android](https://docs.unrealengine.com/5.0/en-US/android-support-for-unreal-engine/) quickstart guides.\r\n\r\nIn order to get function names and line numbers in your iOS crash reports, please make the following changes in the `iOS` section of `Project Settings`.\r\n\r\n| Option | Value |\r\n|--------|-------|\r\n| Generate dSYMs for code debugging and profiling| true |\r\n| Generate dSYMs as a bundle for third-party crash tools | true |\r\n| Support bitcode in shipping | false |\r\n\r\nTo enable crash reporting, ensure the `Enable iOS Crash Reporting` and `Enable Android Crash Reporting` options are selected. Also ensure that `Enable Automatic Symbol Uploads` is checked so that your crash reports contain function names and line numbers.\r\n\r\nNote that sometimes iOS applications won't crash while the USB cable is connected. If this happens, disconnect the USB cable and re-run the application to trigger a crash.\r\n\r\n### Xbox and PlayStation\r\n\r\nBugSplat can provide instructions for implementing Unreal crash reporting on Xbox and PlayStation. Please email us at [support@bugsplat.com](mailto:support@bugsplat.com) for more info.\r\n\r\n## 🏃 Usage\r\n\r\nOnce you've installed the plugin, add the following C++ snippet to your game to generate a sample crash.\r\n\r\n```cpp\r\nUE_LOG(LogTemp, Fatal, TEXT(\"BugSplat!\"));\r\n```\r\n\r\nRun your application and submit a crash report.\r\n\r\nOn Desktops, submit a crash report via the Unreal CrashReportClient dialog that appears at crash time. We have developed a handy guide on how you can customize the Unreal CrashReportClient dialog that is available [here](https://www.bugsplat.com/blog/game-dev/customizing-unreal-engine-crash-dialog/). \r\n\r\nOn iOS, after a crash occurs, restart the game and tap the `Send Report` option when prompted. On Android, crashes are submitted automatically at crash time.\r\n\r\nOnce you've submitted a crash report, navigate to the [Crashes](https://app.bugsplat.com/v2/crashes) page. On the Crashes page, click the link in the ID column.\r\n\r\nIf everything is configured correctly, you should see something that resembles the following:\r\n\r\n\u003cimg width=\"1728\" alt=\"BugSplat Crash Page\" src=\"https://github.com/BugSplat-Git/bugsplat-unreal/assets/2646053/e577b6e9-4b8e-4b9a-8a56-556909c58069\"\u003e\r\n\r\n## 🧑‍💻 Contributing\r\n\r\nBugSplat ❤️s open source! If you feel that this package can be improved, please open an [Issue](https://github.com/BugSplat-Git/bugsplat-unreal/issues). If you have an awesome new feature you'd like to implement, we'd love to merge your [Pull Request](https://github.com/BugSplat-Git/bugsplat-unreal/pulls). You can also send us an [email](mailto:support@bugsplat.com), join us on [Discord](https://discord.gg/K4KjjRV5ve), or message us via the in-app chat on [bugsplat.com](https://bugsplat.com).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugsplat-git%2Fbugsplat-unreal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbugsplat-git%2Fbugsplat-unreal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbugsplat-git%2Fbugsplat-unreal/lists"}