DevSuiteDevSuite

Errors

Unhandled server errors are captured automatically once the SDK is initialized. For errors you catch yourself — inside a pcall, for example — report them explicitly with DevSuite.captureException.

InventoryService.server.lualua
local ok, err = pcall(function()
    return player.Inventory.Items
end)

if not ok then
    DevSuite.captureException(err, {
        system = "Inventory",
    })
end

Grouping

Errors are grouped into a single error group by a fingerprint derived from the message shape and the top stack frame — so the same bug from a thousand players shows up once in the Errors dashboard, with an occurrence count and affected-player total.

Metadata

The second argument to captureException accepts arbitrary tags that appear on the error detail page — useful for filtering by subsystem, map, or game mode.

Client-side errors

LocalScript errors are captured automatically by the client SDK — no setup required. Every uncaught error is hooked via ScriptContext.Error, forwarded to the server SDK, and reported through the same pipeline as server errors, tagged origin: "client".

Turn it off if you'd rather report client errors explicitly:

StarterPlayerScripts/Init.client.lualua
local DevSuite = require(game:GetService("ReplicatedStorage").DevSuiteClient)

DevSuite.config.autoCaptureLuaErrors = false

You can still call DevSuite.captureException manually from any LocalScript — it works the same way as the server API, just without a project-key requirement:

ShopUI.client.lualua
DevSuite.captureException("ui exploded", {
    screen = "Inventory",
})