# Connect Roblox to Glitchless

> Glitchless (glitchless.gg) connects a Roblox experience by its address, a place ID or its universe ID: players now, thumbs up and down, favorites and visits with no key, and with a read-only Open Cloud key Roblox's own daily and new users, Robux, paying users, D1, D7 and D30 retention, and crash rate and frame rate by place version and platform, next to what the Roblox SDK measured.

Website: https://www.glitchless.gg/roblox-integration.html · Read how it works: https://github.com/glitchless-gg/glitchless/blob/main/docs/SPEC.md#3k-roblox-robloxs-own-numbers-next-to-the-roblox-sdk-glitchless-cloud

The Roblox SDK keeps players anonymous, so it can't tell a player who came back from a new one. Roblox can: it counts people by their Roblox account. Connect your experience and Roblox's own retention, daily users and Robux sit next to what the SDK measured, with Roblox's crash rate and frame rate beside Glitchless's, place version by place version. Your coding agent reads the same numbers.

## What it reads from Roblox

- **Players now and thumbs up, with no key.** How many are playing right now, read every hour, and once a day the experience's thumbs up and down, favorites and visits. Anyone can see these on Roblox, so the experience is all it needs.
- **Daily users and new users.** Roblox's daily active users, and its new users (their first day in the experience), next to the sessions the Roblox SDK measured each day.
- **Retention.** How many players came back 1, 7 and 30 days after their first day, by that day. The SDK sends no player IDs, so this is the retention your Roblox game has: on its Roblox page and in any board's retention panel.
- **Robux.** Robux earned each day, how many players paid and the share of daily users who did, with what the Robux would be worth through Roblox's Developer Exchange.
- **Crash rate and frame rate by place version.** The share of sessions the Roblox app crashed in, how many crashes, and the frame rate of the median player and of the slowest tenth, for each place version, next to what Glitchless measured on the same version, with a line where the two disagree.
- **By platform.** The same for Computer, Phone, Tablet, Console and VR over Roblox's last 7 days, next to the sessions Glitchless measured on each.

## Connect it

In Glitchless Cloud. The experience is enough to start; a read-only Open Cloud key adds Roblox's own analytics.

1. In Glitchless, open **Integrations**, choose **Add integration**, then **Roblox**. Paste the experience's roblox.com address, a place ID or its universe ID (on its overview in the Creator Dashboard). Glitchless finds the universe, which covers all the experience's places.
2. In the [Creator Dashboard](https://create.roblox.com/dashboard/credentials?activeTab=ApiKeysTab), open **Open Cloud → API Keys** and choose **Create API Key**. Name it Glitchless.
3. Under **Access Permissions**, pick **universe-analytics** in **Select API System**, choose this experience, and in **Select Operations** turn on `universe.analytics:read` and nothing else. Leave **Restrict IP addresses** off: Glitchless asks from its own servers.
4. Choose **Save & Generate key** and copy the key straight away: Roblox shows it once.
5. Back in Glitchless, paste it under **Open Cloud API key** and save. Glitchless tries it with one small query, and if Roblox refuses it, says what the key is missing.
6. It syncs straight away, reading back as far as your plan keeps data, then every hour, with Roblox's analytics once a day. A Roblox page and a Revenue page in Robux join your dashboard.

Then ask your agent:

```
Did fewer new players come back the next day after the last update? Show Roblox's day 1 retention for the last two weeks, then put Roblox's crash rate and frame rate for the new place version next to what Glitchless measured on it, and tell me which platform got worse.
```

## What your agent does with it

`glitchless_store` with show `vitals` gives your agent Roblox's crash rate, crashes and frame rates for each place version and each platform, next to what the Roblox SDK measured on the same version and platform, with a line wherever the two disagree and why. Roblox's D1, D7 and D30 retention comes with it. Ask about one place version with `version`.

`glitchless_revenue` with source `roblox` gives Robux earned by day and what they'd be worth through Developer Exchange, paying players and the share who paid, daily and new users next to the sessions Glitchless measured, play time, and retention by the day players first joined. Roblox doesn't split Robux by place version, so money is compared week by week, not version by version.

So when fewer players come back after an update, your agent can open that place version's frame times with `glitchless_performance`, its errors with `glitchless_triage` and where new players quit with `glitchless_player_funnel`, fix what it finds, and check the next version against Roblox's numbers and Glitchless's.

## What it never does

- Change anything on Roblox: every call is a read, and the key needs only `universe.analytics:read`.
- Tie Roblox's numbers to a player: Roblox gives totals for the whole experience, and the SDK stays anonymous.
- Show the key again: it's encrypted when it arrives, and the dashboard keeps only its last four characters.

## Limits

- Roblox keeps crash rate and frame rate for 28 days, so those start 27 days back when you connect.
- Of what anyone can see, a private experience shows only its thumbs up and down: players now, favorites and visits come once it's public.
- A new or small experience may have no crash rate or frame rate yet. Roblox answers “Query is not available for Universe”, which Settings shows as a note under **Last sync**, not a failure, and Glitchless asks again the next day.
- Roblox's Analytics Query API is in beta, so what it answers may change.
- Roblox doesn't split Robux or retention by place version: those are the whole experience's.

## Frequently asked questions

### Why connect Roblox if I already use the Roblox SDK?

They count different things. The SDK records each session on players' devices and your servers without anything that identifies a player, so it can't tell a returning player from a new one. Roblox counts people by their Roblox account, so its daily users, new users and retention are your game's. Connected, the game's Roblox page and any board's retention panel show Roblox's retention. The SDK still tells you why: which version and device lag, which errors came first, and where new players quit.

### Do I need the Open Cloud key?

Not to start. Without it, Glitchless reads what anyone can see on Roblox: players now, thumbs up and down, favorites and visits. The key adds Roblox's own analytics: daily and new users, retention, Robux, and crash rate and frame rate by place version and platform.

### Why do Roblox's crash rate and Glitchless's differ?

Both count sessions, so they differ on what a crash is. When the Roblox app itself crashes or runs out of memory, the session just ends, and to your server that looks like the player leaving: Roblox counts it, Glitchless can't. A script error a player leaves right after is a crash to Glitchless, while to Roblox the app kept running. Frame rates differ too: Roblox reads every player's client, and Glitchless the sessions that send it data, while the window is in front.

### What does “Query is not available for Universe” mean?

It's Roblox's answer when it has no numbers for the experience yet, seen for a new private experience's crash rate and frame rate. Glitchless takes it as no data yet: the sync stays ok, Settings says under **Last sync** that Roblox doesn't have the experience's crash rate and frame rate yet, the key stays saved, and Glitchless asks again the next day.

### Are Robux shown as money?

No, as Robux. The Revenue page says what they'd be worth through Roblox's Developer Exchange at its standard rate, $0.0038 an Earned Robux, which takes 30,000 Earned Robux and Roblox's approval. If your game sends its own purchase events in Robux, they sit next to Roblox's count, and add up to more: Roblox counts what the experience earned after its share of each sale.

### What if the key stops working?

Roblox stops a key on its expiration date, if you set one, and a key nobody has used for 60 days, which a connected key never is: Glitchless uses it every day. If Roblox refuses the key, Settings says so under **Last sync** and the numbers anyone can see keep coming. Make a new key and paste it in.

### How often does it sync, and which plans include it?

Players now every hour, and Roblox's analytics once a day, on every Glitchless Cloud plan including Free. The first sync reads back as far as your plan keeps data: 14 days on Free, 90 on Indie, 400 on Studio. **Sync now** runs one straight away.
