# Glitchless for Godot

> Glitchless (glitchless.gg) is a free, open-source addon for Godot 4.5 and later. It records frame times with each hitch's cause (pipeline compiles, scene changes, node bursts), errors with script backtraces, player bug reports and where players quit, and gives coding agents the same data over MCP.

Website: https://www.glitchless.gg/godot.html · Read the addon guide: https://github.com/glitchless-gg/glitchless/blob/main/godot/addons/glitchless/README.md

An addon that records how your Godot game runs for the people playing it: every stutter with its cause, every error with its backtrace, and where players quit. Your coding agent reads the same data over MCP and fixes what they hit.

## What it records in a Godot game

- **Stutters, with a cause.** Every frame is timed from wall-clock time, so delta smoothing can't hide a stutter. Each hitch names its likely cause: a pipeline (shader) compile, a scene change, a burst of new nodes, slow `_process` code, physics or rendering.
- **Errors.** Through Godot 4.5's custom loggers, with script backtraces and the last game events as breadcrumbs.
- **Leaks.** Draw calls, objects, nodes and orphan nodes in every frame window. A level where orphan nodes only climb is the commonest Godot leak, and the findings point it out.
- **Bug reports from playtesters.** F8, or your own button, opens a short form. The report carries the player's note, a screenshot, where they were and what had just happened.
- **Levels, deaths and quits.** The level funnel, deaths, rage quits, your own events and gauges.
- **Phones too.** Built for the Mobile renderer: sessions pause in the background, resume on return, and batches wait offline until there's a network.

## Set it up

Copy the addon, add the autoload, call `init` once.

1. Copy `addons/glitchless/` into your project's `addons/`.
2. Turn the plugin on (or add the autoload) and call `Glitchless.init` in your first scene.
3. Run the game: sessions show on your dashboard.

project.godot, then your first scene:

```gdscript
# project.godot, under [autoload]
Glitchless="*res://addons/glitchless/glitchless.gd"

# your first scene
func _ready() -> void:
	Glitchless.init("my-game", "", "prod", "https://api.glitchless.gg", {"client_token": "gl_pub_..."})
```

## Built for working with a coding agent

Glitchless's MCP server gives Claude Code, Codex, Cursor or any other agent the findings, frame times, errors and bug reports from your players, so it can find what to fix and check the result.

A build measures itself for an agent: `--glitchless-measure=10` prints frame stats as JSON and quits, for a before-and-after comparison. In GDScript, `await Glitchless.measure(5.0)` does the same.

The addon adds no global class names and works in a project that has never been opened in the editor, so an agent can install it from the command line.

## Tested

- The end-to-end test runs the demo game headless against a local server and checks offline saving, privacy modes, errors, background and resume, measuring and bug reports (58 checks).
- Its frame-time sketch matches the JavaScript SDK's bucket for bucket.

## Not yet

- Godot 4.5 or later: the Logger class came in 4.5.
- Web exports are untested. A web game is better served by the [browser SDK](https://www.glitchless.gg/web.md).

## Frequently asked questions

### Which Godot versions does it support?

Godot 4.5 and later. It's built for 4.7 and the Mobile renderer.

### Is it free?

The addon and the server are open source under the MIT licence. Glitchless Cloud is free for 5,000 play sessions a month, or you can run the server yourself with Docker. See [pricing](https://www.glitchless.gg/pricing.md).

### How is it different from Talo?

Talo is a game backend (players, saves, leaderboards) with analytics. Glitchless measures how the game runs and plays, and gives that to your agent. Many games could use both: [Glitchless vs Talo](https://www.glitchless.gg/glitchless-vs-talo.md).

### What does it send about players?

Nothing that identifies them by default. Install mode adds a saved random player ID for retention, and [PRIVACY.md](https://github.com/glitchless-gg/glitchless/blob/main/godot/addons/glitchless/PRIVACY.md) lists every field.
