DevSuiteDevSuite

Installation

DevSuite ships as a package containing three instances: a server ModuleScript, a client ModuleScript, and the RemoteEvent that connects them. All three come together as a single drop-in Model — insert it once and both SDKs are wired up.

DevSuite.rbxm

Server SDK, client SDK, and the Report RemoteEvent — pre-wired.

Download

What's in the package

LocationInstancePurpose
ServerScriptService.DevSuiteModuleScriptServer SDK — the only place the project key lives
ReplicatedStorage.DevSuiteClientModuleScriptClient SDK, for LocalScripts
ReplicatedStorage.DevSuiteRemotes.ReportRemoteEventClient → server bridge (auto-created)

The client SDK never talks to the network directly and never sees your project key — it forwards events over the Report RemoteEvent, and the server SDK validates, batches, and ships them.

Insert the package

In Studio, use File → Insert from File… and pick the downloaded DevSuite.rbxm. It unpacks as a single Model — move the DevSuite ModuleScript into ServerScriptService, and DevSuiteClient plus the DevSuiteRemotes folder into ReplicatedStorage.

Initialize on the server

ServerScriptService/Init.server.lualua
local DevSuite = require(game:GetService("ServerScriptService").DevSuite)

DevSuite.init({
    projectKey = "proj_live_xxxxx"
})

Use it from a LocalScript

No init call needed on the client — it starts forwarding as soon as it's required.

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

DevSuite.track("button_click", { id = "shop_open" })

The server SDK initializes lazily and queues events until init resolves, so require order relative to other systems doesn't matter.