Skip to content

Getting Started

  • aftman — pins the exact rojo, stylua, and selene versions the repo expects.
  • The Argon or Rojo Studio plugin, to sync the filesystem project into a place.
  • Access to the repository (private — granted individually; see the license note).
Terminal window
aftman install # once: pinned rojo/stylua/selene
argon serve # then connect the Argon plugin in Studio

Boot scripts are pre-wired. Pressing Play runs the spec suites and boots both kernels:

[TestKit] PASS — 175/175 tests across 23 specs
[TestKit] PASS — 259/259 tests across 23 specs
[ChloeKernel 0.5.0] Server booted 0 services in 0.01ms
[ChloeKernel 0.5.0] Client booted 0 services in 0.01ms

If the suites don’t pass, stop — a red boot means the framework and your Studio state disagree, and everything built on top inherits that disagreement.

Game code goes in the Bootstrap modules — each receives its kernel after boot, before start:

  • src/Server/Bootstrap.luau — services, channels, validators, kits
  • src/Client/Bootstrap.luau — input, prediction, UI wiring, client kits
-- src/Server/Bootstrap.luau
return function(kernel)
kernel:onSession(function(session)
session.Data.JoinedAt = os.clock()
session:bind(session.Player.CharacterAdded:Connect(onSpawn)) -- auto-disconnected on leave
session:bind(function()
print(session.Player.Name, "played for", os.clock() - session.Data.JoinedAt)
end)
end)
end

Main.server.luau and Main.client.luau own the boot sequence (boot() → Bootstrap → start()); you should not need to touch them. The full lifecycle is explained in Core Concepts and Kernel & Boot.

templates/ holds three complete minimal games — a team gun arena, a wizard duel, and a checkpoint obby. Each is one server module and one client module; copy the bodies into your Bootstraps and press Play. They are the fastest way to see the framework’s shape with real gameplay attached.

Tagged versions ship a built .rbxm on the GitHub Releases page — insert it into a place to pin an exact framework version instead of syncing main. Or build locally:

Terminal window
rojo build build.project.json -o ChloeKernel.rbxm

Pushing a v* tag builds the artifact and cuts the release from the matching CHANGELOG section automatically.

  1. Read Core Concepts — five primitives, five minutes.
  2. Skim the Cookbook index so you know what already exists before writing it yourself.
  3. Before shipping: run kernel:securityAudit() and read Fuzz & Security Audit.