Getting Started
Requirements
Section titled “Requirements”- aftman — pins the exact
rojo,stylua, andseleneversions 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).
Two commands
Section titled “Two commands”aftman install # once: pinned rojo/stylua/seleneargon serve # then connect the Argon plugin in StudioBoot 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.01msIf 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.
Where your code goes
Section titled “Where your code goes”Game code goes in the Bootstrap modules — each receives its kernel after boot, before start:
src/Server/Bootstrap.luau— services, channels, validators, kitssrc/Client/Bootstrap.luau— input, prediction, UI wiring, client kits
-- src/Server/Bootstrap.luaureturn 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)endMain.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.
Starter templates
Section titled “Starter templates”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.
Pinning a version
Section titled “Pinning a version”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:
rojo build build.project.json -o ChloeKernel.rbxmPushing a v* tag builds the artifact and cuts the release from the matching CHANGELOG section automatically.
Next steps
Section titled “Next steps”- Read Core Concepts — five primitives, five minutes.
- Skim the Cookbook index so you know what already exists before writing it yourself.
- Before shipping: run
kernel:securityAudit()and read Fuzz & Security Audit.