How to see where players drop off in your Roblox game
Instrument the steps that matter, then read funnels and an in-world heatmap to find the exact point players quit.
Roblox's own analytics tell you that retention is down. They do not tell you that 61% of new players quit at the second tutorial gate, or that everyone who dies at the first boss never comes back. To see that, you have to name the steps yourself.
1. Track the moments that matter
Pick the handful of moments that describe progress through your game and fire an event at each one. Keep the names stable - they become the columns of every chart you look at later.
local RoSignal = require(game.ServerScriptService.RoSignal)
RoSignal.Track("TutorialStarted", {}, player)
RoSignal.Track("FirstWeaponEquipped", {}, player)
RoSignal.Track("BossReached", { attempt = attempts }, player)
RoSignal.Track("ShopPurchase", { item = "Sword", robux = 199 }, player)2. Build a funnel out of them
A funnel lists those events in order and shows how many players reach each step. The step with the biggest fall is the one costing you players - and it is usually not the step you would have guessed.
3. Look at where it happens in the world
Events carry the player's position when you pass a player, so the map view draws them as a heatmap over your exported geometry. A cluster of deaths in a corridor or a dead zone nobody walks through is much easier to see on the map than in a table.
If an event's location means nothing, opt it out and save the bandwidth:
RoSignal.Track("Heartbeat", {}, player, { map = false })4. Compare before and after a change
Every live config change is stamped on the timeline, so you can line up a drop-off improvement with the exact value change that caused it, instead of guessing which of the week's edits worked.