Skip to content

v1.1.0

Choose a tag to compare

@Distracted-Games Distracted-Games released this 07 Nov 05:11
· 8 commits to master since this release
490cead

refactor(player-data): optimize PlayerDataService lifecycle, add messaging, and unify shared libraries

  • Lifecycle Separation: Moved player connection and profile loading logic from Setup() to Start() in PlayerDataService, ensuring dependent modules can safely register event listeners before profiles begin loading.
  • Async Data Fetching: Added WaitForDataAsync() and WaitForData() with safe timeout and thread-cancellation guards.
  • Offline & Cross-Server Messaging: Added RegisterMessageHandler() and SendProfileMessageAsync() with an internal unhandled message queue for resilient delivery.
  • Nested Mutations & Optimizations: Enhanced UpdateData() with nested mutation support, O(1) cached frozen snapshots, and loading guards (_loadingPlayers) to prevent duplicate session loads.
  • Client Optimizations: Updated DataController with cached frozen projections and an IsLoaded() query method.
  • Library Prototype Unification: Routed ProfileStore2 dependencies through ReplicatedStorage's shared LeanPromise and Signal, eliminating prototype identity mismatches and removing ~1,200 lines of duplicated library code.
  • Moved ClientStart.client.luau into ReplicatedFirst.Source to prevent unwanted warnings when using Roblox Script Sync with non-script instances in ReplicatedFirst.