Install BounceTelemetry

A server ModuleScript for the Roblox place. It sends the four funnel events to this server. No dependencies, no data beyond the funnel.

Download BounceTelemetry.lua

Endpoint

https://analytics.shortscake.com/v1/events

Steps

  1. Paste the file into ServerScriptService as a ModuleScript named BounceTelemetry. It is a server script, not a LocalScript: join and session_end must be fired server-side.
  2. Set CONFIG.apiKey to the server's INGEST_KEY. It is in the deployment's .env; do not paste it into a public repo or a client script.
  3. Game Settings → Security → enable HTTP requests, then allowlist analytics.shortscake.com for the place in the Creator Dashboard.
  4. Call BounceTelemetry.tutorialStart(player, step) where the tutorial step appears, BounceTelemetry.step(player, name) at each boundary between tutorial and extraction, and BounceTelemetry.firstExtraction(player, method) when the extraction commits on the server.
  5. Publish and play one session. The dashboard's session count moves within a minute.

Where the two hooks go

The module already wires join on PlayerAdded and session_end on PlayerRemoving, with a BindToClose flush. You only add the two calls that mark the funnel:

local BounceTelemetry = require(game.ServerScriptService.BounceTelemetry)

-- when the first tutorial step is shown or taken
BounceTelemetry.tutorialStart(player, "first_move")

-- optional: each boundary between tutorial and extraction
BounceTelemetry.step(player, "opened_first_chest")
BounceTelemetry.step(player, "found_extract")

-- when the extraction COMMITS (server-side), never on client intent
BounceTelemetry.firstExtraction(player, "stairs")

Privacy

The module sends a Roblox UserId, a session id, timestamps, the place version, and the funnel event. It does not send chat, inventory, or any free text except the step and method labels you pass in. See the privacy notice for retention and deletion.