From install to your first bug report in 10 minutes (Godot 4)

Playtest feedback usually arrives as “it crashed lol” plus a blurry screenshot in Discord. Ten minutes from now, your game will have a bug-report button: your testers press F8, type what broke, and you get a structured report with a screenshot, the log file, and the exact scene, build and environment it happened in.

This is the fast path. For every setting and the full public API, see the Godot plugin reference.

What you need

Step 1 — Install the plugin (2 min)

In the editor open the AssetLib tab, search “Forge Logger”, then Download → Install. (Manual alternative: copy addons/forge_logger/ into your project.)

Then open Project → Project Settings → Plugins and enable Forge Logger. This registers the ForgeLogger autoload and the forge_logger_report input action (default key F8).

Step 2 — Create a project & token (3 min)

Sign in at forgelogger.dev and create a project for your game. Open Project → Tokens → New token, scope it to the project, and copy the flg_… value. That token is all the plugin needs — it identifies your project, so there’s no separate project ID to configure.

Step 3 — Point the plugin at your project (2 min)

Open Project → Project Settings, turn on Advanced Settings, and scroll to the forge_logger/ section:

  • api_key = the flg_… token from Step 2
  • game_version = e.g. 0.3.1 — you’ll thank yourself when triaging
  • enable_screenshot = On (off by default)

Privacy: the device model and locale are sent only if you opt in via collect_device_info (off by default). Self-hosting? Point base_url at your own ingest backend and no report data reaches Forge Logger’s servers.

Step 4 — Send your first report (1 min)

Run the game, press F8, type a title (“Fell through floor near spawn”) and a short description, then Submit. The popup confirms with a report ID.

If the F8 popup isn’t wired to anything yet, this is the smallest possible integration:

func _unhandled_input(event: InputEvent) -> void:
    if event.is_action_pressed("forge_logger_report"):
        ForgeLogger.show_report_popup()

Step 5 — Triage in the dashboard (2 min)

Open the dashboard — your report is there with the screenshot, scene, build and environment attached, plus an AI summary and suggested reproduction steps. Filter by build or scene, set severity, and export to GitHub with one click when it’s a real bug.

Bonus — report from code

Fire a report from an error handler instead of waiting for a player to notice:

func _on_shop_error(err):
    ForgeLogger.capture_bug({
        "title": "Shop failed to open",
        "description": str(err),
        "severity": "high",
        "custom_data": { "scene": get_tree().current_scene.name },
    })

Drop breadcrumbs onto the session timeline and they line up next to every report from that session:

ForgeLogger.record_event("level_started", { "level": "forest_02" })

What it deliberately doesn’t do (yet)

Forge Logger is player-triggered reporting — it does not auto-capture hard crashes or stack traces. Reports queued before an unclean shutdown are re-sent on the next launch, and automatic error capture is on the roadmap.


Next: the Godot plugin reference covers every setting, the full public API, and how to run the plugin against your own backend.