Skip to content

Project Layout

src/
├── Shared/ → ReplicatedStorage
│ └── ChloeKernel/ microkernel: Scheduler, Process, ServiceManager,
│ Logger, GcWatch, Serde, Base64, InputDriver, BonePhysics,
│ AudioKit, AnimKit, Preload, IPC/, Hooks/,
│ Net/ (NetClient, ReplicaClient, TokenBucket,
│ Packet/ — wire transport ported from Packet v1.7
│ by Suphi Kaner; CREDITS.md lists local fixes),
│ TestKit/ (+Bench), Tests/, Benches/
├── Server/ → ServerScriptService
│ ├── Main.server.luau boot → Bootstrap → start
│ ├── Bootstrap.luau YOUR game's services register here
│ ├── Simulation.server.luau 3-mode load harness (ChloeKernelSimulation attr)
│ └── ChloeKernelServer/ sessions, Net (NetDriver), Replica, BusBridge,
│ MessageDriver, Data/ (DataDriver, MemoryDriver,
│ backends), AntiExploit/ (Movement, Rewind),
│ Commerce/ (Receipts, Transactions), Kits/,
│ Pathfinding/ (AStar, ThetaStar, Direct, Roblox),
│ Settings, Analytics, Zones, Ragdoll, Simulation/,
│ Matchmaking, SoftShutdown, ActorPool/, Tests/
└── Client/
├── Main.client.luau boot → Bootstrap → start
└── Bootstrap.luau YOUR client wiring registers here

The split is the security model made physical:

  • src/Shared/ChloeKernel replicates to every client. Only genre-agnostic, non-privileged primitives live here — schedulers, signals, codecs, client-side drivers. An exploiter reading all of it learns nothing that helps them.
  • src/Server/ChloeKernelServer never leaves the server. Validators, rate limits, drop tables, data, anti-exploit heuristics — everything an exploiter would want to read.
  • Bootstrap.luau files are yours. The framework’s Main scripts own boot ordering; your game registers services and channels inside the Bootstrap it’s handed. Framework updates never collide with game code.
File Purpose
aftman.toml Pins rojo / stylua / selene versions
ChloeKernel.project.json The Rojo/Argon sync project (full dev environment: boot scripts, tests)
build.project.json Folder-rooted model build for the released .rbxm artifact
selene.toml, stylua.toml, .luaurc Lint, format, and strict-typing configs enforced in CI
templates/ Starter templates — reference code, never synced