Install the module

Add the Analyse ModuleScript to ServerScriptService, turn on HttpService and start it with your API key.

Updated September 15, 20262 min read

1. Add the module

Get the module from Downloads and insert it into ServerScriptService as a ModuleScript named Analyse.

The module is four files: init.luau becomes the Analyse ModuleScript, and Transport, Experiments and Sha256 sit inside it as children. If you use Rojo, the SDK ships a default.project.json that builds exactly that.

ServerScriptService
└── Analyse          (ModuleScript)
    ├── Experiments  (ModuleScript)
    ├── Sha256       (ModuleScript)
    └── Transport    (ModuleScript)

2. Turn on HttpService

In Roblox Studio, open Game Settings, then Security, and enable Allow HTTP Requests. The module cannot send anything without it.

3. Start it with your key

Copy your API key from the game's Settings, Integration in the dashboard. Then add a server Script, for example ServerScriptService/AnalyseStart:

Luau
local ServerScriptService = game:GetService("ServerScriptService")
local Analyse = require(ServerScriptService.Analyse)

local analyse = Analyse.new({
	apiKey = "ag_live_...",
	version = "1.4.0", -- your game's version, optional
})

return analyse

That is all for joins, leaves and sessions. Publish, join the game and the dashboard shows you as online within a minute.

Options

OptionDefaultWhat it does
apiKeyRequiredYour game's API key
version""Your game's version, shown per deployment
deploymentPlaceIdWhich place this server runs
groupGameIdWhich experience the place belongs to
flushInterval5Seconds between batches
maxQueueSize10000Events kept in memory while the network is down; newer events are dropped past this
verifyInterval300Seconds between key and config checks
autoTrackPlayerstrueSend joins and leaves from PlayerAdded and PlayerRemoving
autoHeartbeattrueSend a heartbeat with players online
endpointhttps://gateway.analyse.netWhere events go. Leave it as is

Check it works

Call analyse:stats() to see what the module has done:

Luau
print(analyse:stats())
-- enqueued, sent, dropped, retried, lastStatus, queueDepth

In the dashboard, Settings, Integration shows the connection status, the last event and the module version.

Delivery and limits

  • Events are batched every 5 seconds, up to 1000 per request. A full batch is sent immediately.
  • Failed requests (network errors, rate limits, server errors) are retried with backoff from 1 to 60 seconds, for up to 10 minutes.
  • A rejected key (401 or 403) stops delivery and clears the queue. Check the key and restart the server.
  • Event names are cut to 128 characters, property keys to 64 and text values to 512.