Quick answer: If you want one widget that works across engines and lands next to your crash reports, use Bugnet: it ships a ready-made report form for Unity, Godot, GameMaker, Construct 3, Pygame and the web, captures crashes automatically and emails players when their bug changes status. BetaHub is strong for Discord-driven beta tests with video, Codecks suits teams that plan in Codecks, Unity User Reporting and Sentry User Feedback fit teams already on those platforms, and Luciq (formerly Instabug) is for native mobile apps rather than engines.

Most players who hit a bug never tell you. The ones who do write a Steam review, post in a Discord channel you check twice a week, or send an email that says “it broke”. An in-game bug reporter changes that: one key press, a short form, and the report arrives with a screenshot, the build number and the player's hardware attached. Here are the six options game developers compare most often in 2026, and what each is genuinely good at.

What a good in-game bug reporter does

The form itself is the easy part. What separates a reporter you will rely on from one you will rip out after launch is everything around the form:

In-game bug reporting tools at a glance

ToolEnginesWhat a report carriesCrash capturePricing
BugnetWidget for Unity, Godot, GameMaker, Construct 3, Pygame, Web; Unreal via its SDK and your own UIScreenshot, last 100 log lines, device, OS, GPU, RAM, resolution, build, performance snapshotYes, automaticFree for 100 reports; $19/mo flat for 10,000
BetaHubUnity 2022.3+, Unreal 5.3+, web widget, Discord botGameplay video, logs, device informationYesFree for 1 developer; $26 per developer/mo
Codecks User ReportsPlugins for Unity, Unreal and Godot, plus an APIText, screenshot (Unity plugin), attachments, metadata, severityNot its focusPart of Codecks plans
Unity User ReportingUnity onlyTitle, description, screenshot, metadata, events, sampled metrics, attachmentsSeparate (Unity Diagnostics)Part of Unity Gaming Services
Sentry User FeedbackUnity prefab (SDK 4.0+); API on other SDKsMessage, optional name, email and screenshot, linked to Sentry eventsYes, Sentry's core productSentry plans, free for 5,000 errors/mo
Luciq (formerly Instabug)Native iOS, Android, React Native, FlutterScreenshots, logs, device detailsYesPriced on daily active users and seats, via sales

1. Bugnet: best cross-engine reporter with crash capture

Bugnet's SDKs ship a ready-made report widget for Unity, Godot, GameMaker, Construct 3, Pygame and web games. The form has a title and description plus optional steps, category, priority and email fields, and its colours, labels and categories can be themed from the dashboard's Widget Builder (custom branding is on paid plans). The Unreal SDK files reports from your own UI with one function call.

Every submission arrives with a screenshot (switchable per project), the last 100 log lines, the platform, OS, GPU, RAM, screen resolution, game version and a performance snapshot. The same SDK also captures errors and crashes automatically, so you see the bugs players do not report next to the ones they do. Reports with the same title stack onto one bug with an occurrence count.

Two things matter after the report: if the player left an email, Bugnet emails them when their bug's status changes, and you can publish a known-issues page where players search and upvote existing bugs instead of filing them again. Studio Plus adds session replay, so a report can carry the last seconds of gameplay.

Best for: teams that want player reports and crash monitoring in one place, and anyone on Godot, GameMaker, Construct 3 or Pygame. Try it free; the free plan covers one project and 100 reports.

2. BetaHub: best for Discord-driven beta tests

BetaHub is a beta-testing platform with bug reporting at its centre. Its free, open-source plugins for Unity 2022.3+ and Unreal 5.3+ attach a clip of recent gameplay, logs and device details to each report, Unreal's built-in crash reporter can be pointed at it, and a Discord bot lets testers report from your community server. Testers and players never count as paid seats, and the free plan allows 1,000 reports every 30 days.

Paid plans are priced per developer, and there is no Godot, GameMaker or Pygame plugin. For a closer look, see BetaHub alternative.

3. Codecks User Reports: best if you already plan in Codecks

Codecks is a game-dev project management tool, and User Reports is its feedback inlet: each submission becomes a card in the deck you choose. There are plugins for Unity, Unreal and Godot and a simple HTTP endpoint for anything else. Reports can include text, a screenshot (captured automatically by the Unity plugin), log files and other attachments, metadata and a severity, and players who leave an email get a daily digest when their cards are marked done.

It is a natural fit if your team already lives in Codecks. It is a feedback form rather than a crash monitor, so pair it with crash reporting for errors players never mention.

4. Unity User Reporting: best built-in option for Unity

Unity User Reporting is Unity's own in-game report package. Its built-in form collects a title, description and screenshot, and reports can carry metadata, events, sampled metrics and file attachments, browsable and filterable in the Unity Dashboard. Unity has confirmed it is not deprecated: it continues as a standalone package alongside the new Diagnostics service that replaces Cloud Diagnostics in Unity 6.2.

It is Unity-only and lives in Unity's dashboard, separate from wherever your team triages work. Our guide to the Cloud Diagnostics deprecation covers how the pieces now fit.

5. Sentry User Feedback: best if you already run Sentry

Sentry's Unity SDK ships a user-feedback prefab from version 4.0: a feedback button and form with an optional name, email and automatic screenshot, and a CaptureFeedback API if you would rather build your own UI. Feedback can be linked to the error event it relates to, which is useful when your game already reports to Sentry.

Outside Unity you build the form yourself on top of the API, and feedback lives in Sentry's dashboard alongside your services. If you want a ready-made widget on other engines, a public known-issues page and Steam reviews in the same place, Bugnet can sit beside Sentry and link player reports to your Sentry issues.

6. Luciq (formerly Instabug): best for native mobile apps

Instabug popularised shake-to-report on mobile, and since rebranding as Luciq in 2025 it has positioned itself as an AI-driven mobile observability platform. Its SDKs target native iOS, Android, React Native and Flutter, where it is very capable. Those are not game engines, so for a Unity, Godot or Unreal game, or anything on PC, it is the wrong shape. See Instabug alternative for game developers.

What about building your own?

A form that posts to a Discord webhook or a Google Form takes an afternoon. A reporter you can trust at launch takes much longer: screenshot capture on every platform, uploads that do not stall the game, log buffering, device and GPU detection, spam and rate limiting, deduplication, a place to triage the results and a way to tell players their bug is fixed. That is why most teams only build their own when they have unusual requirements. If you do, our guide to building an in-game bug report button covers the parts people forget.

Adding Bugnet's widget in a few lines

After you create a free project and copy its API key, initialise the SDK once and bind the widget to a key or a menu button.

Unity (C#)
// Any startup script; the SDK creates its own persistent GameObject
void Start() {
    BugnetSDK.Instance.Init("YOUR_API_KEY", "https://api.bugnet.io");
}

void Update() {
    // Legacy Input Manager; with the Input System, call ShowWidget() from an action
    if (Input.GetKeyDown(KeyCode.F8)) BugnetSDK.Instance.ShowWidget();
}
Godot 4 (GDScript)
# BugnetSDK.gd is registered as an autoload named "Bugnet"
func _ready() -> void:
    Bugnet.bugnet_init("YOUR_API_KEY", "https://api.bugnet.io")

func _unhandled_input(event: InputEvent) -> void:
    if event is InputEventKey and event.pressed and event.keycode == KEY_F8:
        Bugnet.show_widget()
Web / HTML5 (JavaScript)
<script src="https://bugnet.io/sdks/web/bugnet-sdk.js"></script>
<script>
  Bugnet.init({ apiKey: 'YOUR_API_KEY', serverUrl: 'https://api.bugnet.io', gameVersion: '1.0.0' });
  document.getElementById('report-bug').onclick = () => Bugnet.showWidget();
</script>

GameMaker, Construct 3, Pygame and Unreal follow the same pattern; the SDK docs have the exact calls for each engine.

Frequently asked questions

How do I let players report bugs from inside my game?

Add an SDK that ships a report form, bind it to a key or menu button, and send the reports to a dashboard. Bugnet, BetaHub, Codecks and Unity User Reporting all provide ready-made forms; Bugnet covers Unity, Godot, GameMaker, Construct 3, Pygame and web games and also captures crashes automatically.

Which in-game bug reporters support Godot?

Bugnet has a GDScript SDK with a built-in report widget for Godot 4, and Codecks offers a Godot plugin for its User Reports feature. BetaHub's plugins cover Unity and Unreal, and Unity User Reporting is Unity-only.

Is Unity User Reporting deprecated?

No. Unity is retiring legacy Cloud Diagnostics in favour of a new Diagnostics service in Unity 6.2, but has said User Reporting is not deprecated and continues as a standalone package.

Should in-game bug reports include screenshots?

Usually yes: a screenshot answers half the questions you would otherwise ask the player. Make it switchable for games that may show personal content, and always attach the build number, platform and hardware so you can reproduce the bug.

Do players need an account to report a bug?

They should not. Requiring an account is the fastest way to lose reports. Bugnet's widget needs no player account, and an email field is optional for players who want to hear back.

Every player who presses the report key instead of the refund button is worth the five minutes it takes to add one.