Live Roblox analytics

One script in.
Every number out.

Drop StatsTracker into ServerScriptService. CCU, revenue, retention, funnels and demographics stream to one dashboard — no SDK, no polling, no republish to reconfigure.

One file · 2-minute setup · events batched, one request a minute

navoj.xyz/dashboard
Live CCUlive
1,284

Earnings 7d

R$ 48.9k

net after fee

D1 return

34%

+3% vs last wk

Retention curve

34%
D1
26%
D2
21%
D3
14%
D7

What you get

The numbers that move a game

Live CCU, read from Roblox

Concurrent players come straight from the platform — not guessed from your events. Peak detection runs a sweep-line over real session intervals.

Funnels in one line

Define steps in a module, log them with Stats.funnel(player, "Tutorial", 2). Per-step drop-off, deduplicated per player.

Earnings you actually keep

Revenue net of the 30% marketplace fee, split by new against returning buyers, with a live purchase feed.

Retention, Roblox-defined

D1–D7 by first-visit date — the same cohort maths the Creator Dashboard uses.

First-time experience

Where new players quit in their first sixty seconds.

Demographics

190+ countries, with each one’s active hours.

Best event window

A weekday × hour heatmap of your real peaks.

Team sharing

Per-tab scopes by Discord, or a read-only link.

Setup

Live in under two minutes

01

Download the script

One personalised .rbxmx with your key already inside.

02

Drop it into Studio

ServerScriptService, enable HTTP requests. No code changes.

03

Publish

Your game appears the moment a server starts.

StatsTracker.luau
-- anywhere on the server
local ServerScriptService = game:GetService("ServerScriptService")
local Stats = require(ServerScriptService.StatsTracker)
 
Stats.funnel(player, "Tutorial", 2)
Stats.trackPurchase({
PlayerId = 10003388844,
CurrencySpent = 99,
})
POST /api/ingest● 200 OK
{ "ok": true, "processed": 87 }

Questions

Before you ask

No SDK, no packages, no build step. You get one Roblox script with your key already baked in — drop the StatsTracker folder into ServerScriptService, turn on Allow HTTP Requests, and publish. That’s the whole integration.

No. The tracker runs server-side only and every call is failure-isolated, so a hiccup can never touch gameplay. Events are queued and sent about once a minute per server instead of one request per event, so the overhead is negligible even at thousands of concurrent players.

Live CCU is read straight from Roblox, so it matches your servers exactly rather than being guessed from events. Everything else — sessions, funnels, retention, earnings — is computed from your game’s real join, leave and purchase events, counting unique players per step, not raw hits.

You choose. Share a game with a specific teammate by Discord username, scope it to certain tabs, and set a custom expiry — or hand out a read-only link that needs no login. Only you can delete the game or change who it’s shared with, and access can be revoked at any time.

Access is limited to authorized Navoj Studios accounts. Once your Discord is added to the allow-list, you sign in with Discord and your connected games appear automatically — there’s no setup beyond dropping in the script.

Ready to see your game?

Sign in with Discord. Access is granted by invitation — ask Navoj Studios to add your account.