Repository navigation
Scribe v2.6.0 - The Reliability Update
Big currencies in purchases, safer saves, and more reliable derived fields, replication and session cleanup.
Behavior Changes
- Reserved roots, derived fields and server-store names now have stricter write guards. Updating the whole player-data root is refused.
OnPlayerInitno longer exposes_Scribe. Finish edits inside the hook; attempts to replace the ledger are discarded and logged.- Autosave intervals are capped at 300 seconds. Overdue profiles receive additional save attempts.
- The wipe guard now detects missing ledger tables and schema versions moving backwards, including on small profiles.
- Purchase types accept Big amounts. roblox-ts purchase-history amounts now require narrowing between a number and a stored Big pair.
- Commands normally send the caller’s data and store changes before replying. Snapshot repair can briefly delay replies.
Added
- Big currency purchases:
Data.PurchasesupportsScribe.Big, with number, numeric-string or Big amounts. Includes Luau and roblox-ts types. Big’s 15-digit precision still applies, so small debits can round away or up at large balances. CommandRepliesHeldandCommandReplyHoldsExpiredmetrics for replies waiting on snapshot repair.
Fixed
ServerStoreno longer runs player-derived computations against store data or vice versa. Existing stray profile keys need a cleanup migration after upgrading old servers.- Clients preserve server-computed derived values when inputs are hidden. Record replacement and transaction rollback no longer produce temporary or stale derived values.
- Writes with
replicate = falsecorrectly mark profiles dirty for saving. - Departing players no longer stretch remaining profiles’ autosave schedules. Saves during initialization preserve save tracking and wipe-guard checks.
- Failed handshakes retry correctly, queued store changes survive snapshot failures, and loading clients no longer receive store updates before initialization.
- Named and wrapped DataStore throttles receive correct health handling instead of falsely escalating each affected key toward an outage.
- Names such as
Count,GetandMaxwork correctly across purchases, ownership, leaderboards and exchanges. - Unload errors no longer interrupt remaining cleanup or leak sessions. Connected players whose sessions ended receive
"not-ready"instead of request timeouts.
Changed
- Updated Lune, StyLua, selene, Rojo and Jest development dependencies.
Documentation
- Clarified offline retries, version-history failures, Big precision, migration safety and retired-product handling.
- Updated npm installation guidance, simplified comments and guides, and corrected simulation coverage documentation.
Full Changelog: v2.5.0...v2.6.0