devlensDashboard →
SDK DOCS

Devlens SDK

Drop Devlens into any Roblox game in under 5 minutes. Track sessions, custom events, and player behavior — all in real time.

Quickstart

Three lines to go live:

Luau
local Devlens = require(game.ServerScriptService.Devlens)
Devlens.init("dlk_live_YOUR_SDK_KEY")

-- Track your first event
Devlens.track(player, "session_start")
Find your SDK key: Dashboard → your game → Settings → SDK Key

Installation

1
Download the SDK files

Download all 3 files and place them inside a folder called Devlens in ServerScriptService.

Make sure init.server.lua is a Script (not ModuleScript) and the other two are ModuleScripts.

2
Create a server Script to initialize Devlens
Luau
-- ServerScriptService/DevlensInit (Script)
local Devlens = require(game.ServerScriptService.Devlens)

Devlens.init("dlk_live_YOUR_SDK_KEY")
print("[Devlens] Initialized")
3
Verify connection

Play the game. If initialized correctly, you'll see [Devlens] Connected in the output. Live CCU on your dashboard will update within 60 seconds.

Tracking Events

Call Devlens.track(player, eventType, metadata?) from any server Script.

Built-in events

Devlens auto-tracks these when you call Devlens.init() — no extra code needed:

session_startPlayer joins the game
session_endPlayer leaves the game
new_playerFirst time this player has joined

Custom events

Luau
-- Track any game event with optional metadata
Devlens.track(player, "purchase", {
    item = "sword_legendary",
    price_robux = 299,
})

Devlens.track(player, "level_complete", {
    level = 5,
    time_seconds = 142,
    deaths = 3,
})

Devlens.track(player, "boss_killed", {
    boss = "dragon_king",
    players_in_server = #game.Players:GetPlayers(),
})
Free plan: up to 3 custom event types. Pro: 10 types. Enterprise: unlimited.

API Reference

Devlens.init(sdkKey: string)

Initialize the SDK. Call once at server startup. Auto-tracks session_start, session_end, and new_player.

sdkKeystringYour SDK key from the dashboard
Devlens.track(player, eventType, metadata?)

Track a custom event for a player.

playerPlayerRoblox Player instance
eventTypestringEvent name (e.g. "purchase", "level_complete")
metadatatable?Optional key-value pairs (strings, numbers, booleans)

Full Example

A complete server script covering sessions, purchases, and level events:

Luau
-- ServerScriptService/GameAnalytics (Script)
local Players = game:GetService("Players")
local Devlens = require(game.ServerScriptService.Devlens)

-- Initialize (auto-tracks session_start / session_end / new_player)
Devlens.init("dlk_live_YOUR_SDK_KEY")

-- Track purchases via MarketplaceService
local MPS = game:GetService("MarketplaceService")
MPS.ProcessReceipt = function(receiptInfo)
    local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
    if player then
        Devlens.track(player, "purchase", {
            product_id = receiptInfo.ProductId,
            price_robux = receiptInfo.CurrencySpent,
        })
    end
    return Enum.ProductPurchaseDecision.PurchaseGranted
end

-- Track level completions (call from your game logic)
local function onLevelComplete(player, level, timeSecs)
    Devlens.track(player, "level_complete", {
        level = level,
        time_seconds = timeSecs,
    })
end
Questions? support@devlens.io
Open dashboard →