Analytics for Roblox games · by Novra Studios

Know where players struggle, drop out and quit.

Rostructure goes past Roblox's built-in funnel and economy tracking. It puts every death and quit on your map, measures each funnel step and how long it takes, and shows whether new players come back, and why.

What it does

One dashboard for every question about your game

Install one server module and Rostructure turns the events your game sends into these views. Show only the tabs your game needs.

Spatial

Deaths, death clusters and quits drawn on the 3D map of the exact build players saw. Compare builds side by side instead of mixing them.

Funnels

Ordered, session-scoped funnels with time per step and device and date filters. Log steps Roblox-style, start them opt-in, or build them in the dashboard from events you already send.

Retention

Day 1, 7 and N return for new players, next to what their first session looked like: length, furthest wave, losses, deaths, device and last stage.

Waves

The waves players lose at and the waves they quit after, per run, with rebirth filters. Built from stage and run events your game already sends.

Balance

Set a target difficulty band and see which stages or abilities fall outside it, so tuning starts from numbers instead of guesses.

Progress and economy

Cash, rebirths and playtime across your player base from light progress snapshots, plus opt-in revenue you can delete at any time.

Live

Who is online right now, peak concurrent players, and today compared with earlier days, minute by minute.

Players

One pseudonymous player at a time: sessions, playtime and what they did in each session, without usernames or Roblox UserIds.

Beyond built-in analytics

What you get that Roblox's own tracking doesn't show

Keep Roblox's analytics. Rostructure answers the questions it leaves open, and its funnel call works just like LogFunnelStepEvent.

  • Where, not just how many

    Every death and quit has a position on your map, tied to the build it happened in.

  • Funnels after the fact

    Build a funnel from events you already send and see it over past data. No new release needed.

  • Veterans stay out of your tutorial

    Opt-in funnels only count the players you start, so people who finished before you added tracking aren't drop-offs.

  • Time on every step

    See how long each step takes, not only how many players get through it.

  • Retention with a reason

    Returning and lost new players side by side, broken down by what happened in their first session.

  • Genre aware

    Waves, stages, runs and rebirths are first-class, so wave games and obbies read like wave games and obbies.

The SDK

Light enough to leave on

A server ModuleScript for Luau. It never slows your game down for the sake of a chart.

  • One request per server, not per player. Events queue per server and go out in batches of up to 100.
  • Gzipped batches every 30 seconds on live servers, aiming for under about 1.2 KB per player per minute.
  • Aggregated on our side. No RemoteEvent traffic for telemetry, and new views reuse data your game already sends.
  • Server only, pseudonymous. Clients can't send or alter analytics, and no usernames or Roblox UserIds are stored.
local analytics = RoStructure.init({
	projectId = "proj_…",
	ingestionKey = secrets.ingestionKey,
	buildId = "v" .. game.PlaceVersion,
})

analytics:logFunnelStep(player, "tutorial", 1, "Joined")
analytics:setStage(player, "wave_" .. wave)
analytics:track(player, "player_progress", {
	metadata = { cash = 1500, rebirths = 2 },
})

Setup

From Studio to dashboard in three steps

  1. 1

    Insert the module

    Get RoStructure from the Creator Store, or download the .rbxmx and drop it into Studio.

  2. 2

    Add your project key

    Create a project, paste its key into a server-only ModuleScript, and call init.

  3. 3

    Play and watch it fill

    Joins, deaths and quits are tracked for you. Add stages, funnels and progress when you need them.

Find out where your game loses players.

Add the module, play one session, and your first joins, deaths and quits are already in.