This guide explains how to install and use the official Indigauge Godot addon in a Godot 4 project.
The addon gives you session tracking, structured event logging, session metadata, heartbeats, and an in-game feedback panel with optional screenshot upload.
For a complete playable reference, open the example project in
godot-addon/example/.
godot-addon/Use the public key for the game you want to track. The key is safe to ship in a client build because it only identifies the game for ingest.
Copy the addon into your Godot project under addons/indigauge/:
Then enable it in Godot:
IndigaugeClient node to your main scene, or register the client as
an autoload.
If you use an autoload, name it Indigauge. Avoid naming the autoload
IndigaugeClient, because that name is already used by the script class.
There are three common ways to start Indigauge. Use the scene-node setup when you want the client to live beside the rest of your game scene. Use an autoload when you want global access from many scripts. Use Inspector setup for a low-code startup path.
Add a Node to your main scene, attach
res://addons/indigauge/client.gd, and start the session from your scene
script:
Register res://addons/indigauge/client.gd as an autoload named Indigauge.
Then start it from your main scene or boot script:
For a no-code startup path:
IndigaugeClient node.public_key, game_name, and game_version.mode as AUTO.auto_start_session.The addon resolves empty game_name and game_version values from the Godot
project settings when possible.
AUTO is the recommended default. It uses DEV mode in the Godot editor and
debug exports, and LIVE mode in release exports.
| Mode | Behavior | Use it for |
|---|---|---|
AUTO | Uses DEV in editor/debug builds and LIVE in release builds | Normal projects |
DEV | Starts a local session and logs activity in the Godot Output panel | Local testing |
LIVE | Sends sessions, events, heartbeats, metadata, and feedback to Indigauge | Production and live QA |
DISABLED | Skips telemetry work | Opt-out, privacy toggles, internal builds |
To force live telemetry while running from the editor:
If dashboard data does not appear while testing in the editor, check the mode
first. In AUTO, editor sessions are intentionally local DEVsessions.
Events are queued after a session starts and flushed automatically. In DEV
mode, event batches are printed locally instead of being sent to the API.
Event names must follow the same format as the Rust SDK:
namespace.event.Good event names:
Invalid event names:
See the Event Naming guide for more detail.
Session metadata describes the whole play session. Use it for state that you want to inspect alongside sessions and events, such as level, difficulty, region, build channel, character class, matchmaking mode, or experiment assignment.
When a session is active, metadata changes are sent with the next flush or as
soon as the client can send them. In DEV mode, the update is logged locally.
The addon includes a feedback panel. By default, players can press F2 to
toggle it.
You can also open it from your own UI:
The panel supports categories, optional question/context text, message validation, Escape-to-close behavior, and optional screenshot upload.
To submit feedback directly:
The fourth argument controls whether the addon captures and uploads a screenshot.
Accepted feedback categories are:
Unknown or empty categories are sent as other.
Set these exported properties before calling start(...), or configure them in
the Inspector.
| Property | Type | Default | Description |
|---|---|---|---|
public_key | String | "" | Indigauge project public key |
game_name | String | Project name or GodotGame | Game name sent with session startup |
game_version | String | Project version or 1.0.0 | Game/client version sent with session startup |
api_base | String | https://ingest.indigauge.com | Override for custom ingest environments |
auto_start_session | bool | false | Starts a session when the node enters the scene tree |
feedback_hotkey_enabled | bool | true | Enables the feedback panel hotkey |
feedback_key | int | KEY_F2 | Key used to toggle the feedback panel |
feedback_canvas_layer | int | 128 | Canvas layer used by the feedback overlay |
mode | IndigaugeTypes.Mode | AUTO | Runtime telemetry mode |
log_level | IndigaugeTypes.LogLevel | INFO | Minimum SDK log level |
After setup(...) or start(...), advanced batching settings are available on
client.config:
| Property | Default | Description |
|---|---|---|
batch_size | 64 | Maximum events sent per batch |
flush_interval_sec | 10.0 | Event flush and heartbeat interval in seconds |
max_queue | 10000 | Maximum queued events before new events are dropped |
request_timeout_sec | 10.0 | HTTP request timeout setting reserved for API requests |
Example:
Use start(...) for normal integrations. Use setup(...); start_session()
when you need to adjust client.config before the first session request.
| Signal | Arguments | Description |
|---|---|---|
session_started | session_token: String | Emitted when a session is ready |
session_failed | http_code: int, error_message: String | Emitted when session startup fails |
feedback_sent | feedback_id: String | Emitted after feedback is accepted, or immediately in DEV mode |
The repository includes an importable Godot project at godot-addon/example/.
It demonstrates a small Breakout-style game with gameplay events, session
metadata, and feedback.
godot-addon/example/project.godot.A/D, Left/Right, Space, or the mouse.F2 or click Feedback to test the feedback panel.The example uses Mode.AUTO, so it runs as a local DEV session from the
editor. Replace YOUR_PUBLIC_KEY before creating a release export.
public_key.game_name.game_version from your release or build pipeline.mode as AUTO unless you need to force a specific mode.addons/indigauge/.session_failed and log the returned message during QA.LIVE mode. AUTO is local DEV mode in
the editor and debug exports.public_key is set before start(...).session_failed and inspect the returned message.namespace.event format.DEV mode, events are logged locally instead of sent to the API.feedback_hotkey_enabled is true.F2 first.indigauge.show_feedback_panel() directly to verify the panel loads.feedback_canvas_layer.show_feedback_panel(parent).