(Icon retrieved through Canva Premium, 2024)
Easy Datastore V2
Easy Datastore, new and improved. The most simple and powerful datastore module.
Easy Documentaton
I know the pain !
Datastore modules can be complex, tricky, and time-consuming! Remember all those times you went to documentation-long websites? All those hour-long YouTube tutorials? I also hate that! Letâs stop this nonsense! Introducing Easy Datastore V2. It has ALL of the fancy stuff done for you!
SOOOO easy!
Easy Datastore is designed with extreme ease! Check out the simple documentation for these basic functions
Module.get()
Module.set()
Improve script clarity and reduce the amount of effort! Some key ease of use features:
- NO limits! Call module.set() as much as you want!
- Autosaving + Save-on-leave. Donât worry, we optimize saving data FOR you!
What about alternatives?
Alternative data modules such as
- Profile Service
- Datastore 2
- etc
I must admit, there are some trusted modules out there that are excellent tools. But these modules consistently have tedious setup processes, documentation, and steep learning curves. Its true the biggest limitation of Easy Datastore V2 is lack of battle testing, but it does have some experience in impoving from version 1. Throughout the months many improvements have been made such as autosaving and session locking!
Audience of EasyDatastore
While EasyDatastore is easy to use, its audience is not restricted to newer developers or smaller games.
-
Scalability: The simplicity of EasyDatastore and its reliability make it highly scalable and adaptable to different game styles. No locks here!
-
Capabilities: EasyDatastore supports saving all data types except for objects.
-
Collaboration: The simpler and easier-to-understand nature of EasyDatastore allows for easy collaboration and understanding among larger studios.
-
Debugging: Especially in larger and more complex games, having simple functions reduces errors and makes debugging simpler.
Easy Datastore V2 provides extremely complex features with practically no learning curve through a process known as Abstraction of data! Think of it as the same thing as these trusted alternatives but without redundant coding. Take Easy Datastore seriously!
Set up EasyDatastore in your game! All you have to do is add values to the data template located at the top of the EasyDatastore Module!
Learn to make a data template!
Easy Datastore is designed to be extremely robust and simple. Remember though that its really complex on the inside!
Optomization
-
Cache: Remembers users who played your game and restores their data without extra calls.
-
Compression: Compresses and decompresses all saved data through noob compressor in conjunction with HttpsService:JSONDecode and HttpsService:JSONEncode
-
Meaningful saves: only saves data if changes were made (both autosaving and save-on-leave
-
Attributes: sets numbered values as an attribute and updates the update when changes are made. This allows both server and client to connect a changed event to the desired attributes with a low learning curve.
Robustness
-
Ensuring player exists: The module prevents errors by yielding its functionalities until the player is loaded. For example, if you call get when the user is not fully loaded, it will yield your current script until the player is loaded. It will only wait so long before it terminates the yield to prevent infinite yields occurring.
-
Bind-To-Close: forces the server to wait for the game to save the data of all users before closing.
-
Anti corruption: using updateAsync, it checks that the data will not override existing data
-
Session locking: prevents sessions being created when existing sessions already exist.
-
Data recovery during run-time: Within the autosaves, if its detected that the users data is corrupted it will automatically restore the most up to date data.
-
Error handling The module manages any errors through a series of attempts. By default, the module will repeat calling for the data five times. You can adjust this inside the data script.
Global autosaving
-
Global save cycle: Goes on a global save cycle which cycles through each player. These players take turns autosaving to prevent conflict. The frequency of this save cycle is determined by the current number of players in the server as Roblox adjusts its limits based on this information. Specifically the equation is AUTOSAVE_FREQUENCY/#plrs:GetPlayers()
-
Optimized saving: Only autosaves if changes are made once it reaches its turn on the global save cycle.
Please let me know if I missed any features of the module as there is a LOT.