Scribe¶
Persistent, typed, auto-replicated player data for Roblox, built on ProfileStore. You write down the shape of your data once. Scribe saves it, locks it so two servers cannot fight over it, streams a copy to the client, and gives you a typed accessor for every field.
Get started Wally Roblox model Studio plugin GitHub
Where to start¶
-
New to Scribe
Install it, meet the full Emberfall template, and get a player's data saving in about ten minutes. Then learn what you can call on a field, and how a session begins and ends.
-
Building a real game
Inventories and sets, numbers past
2^53, cooldowns, fields computed from other fields, who is allowed to see what, and client-to-server commands. -
Shipping it
Sell products and passes without ever eating a Robux payment, rank players globally, and watch the whole thing from a live Studio plugin.
-
Already have saved data
Adopt an existing ProfileStore, DataStore2 or hand-rolled database in place, without a wipe and without a migration window.
What you get¶
-
Typed end to end
A type-solver-generated accessor tree types every read and write, including nested containers, arrays, and Roblox datatype fields, all checked at compile time.
-
Replication for free
Schema-compressed batched diffs stream to clients over a pluggable transport. Read player data on the client with the same accessor API, with no RemoteEvents to write.
-
Serialization built in
Vector3, CFrame, Color3, and raw buffer fields pack into compact binary while your code keeps the real datatype. A Vector3 is 12 bytes and an axis-aligned CFrame is 13. Containers pack too, and 32 named booleans fold into one field.
-
Numbers past 2^53
A big field carries an idle or prestige currency far past the point a Luau number stops being exact, and past 1.8e308 where it stops existing. It ranks on a leaderboard exactly, with no separate rank field.
-
Production persistence
Migrations, a wipe guard, version history, and GDPR export and erase all sit on ProfileStore session locking, and they all fail closed.
-
Monetization and gifting
Products, gamepasses, gifting, and perks live in the config table. Receipts are idempotent and fail closed, so Robux are never eaten.
-
Testable without a live store
One
Modeoption swaps the whole stack onto an in-memory store, so a play-test or a CI run never touches real player data and leaderboards never write a real score. -
Observable
Structured logs with stable codes, a health status machine, per-player save state, and a companion Studio plugin that renders it all live.