Stable version^, click for description.Terms of service (Open Source until you sell it)
Terms of service
You agree I have no liability over any damage incured. Use at your own risk.
You may modify and use your versions the asset(s) provided.
You may not distribute provided and/or modified -version(s) of the asset(s) provided.
Example video
Description
Say hello to the most simple- yet advanced Datastore resource you could ever get your hands on. Written with backward compatibility and other essential factors in mind, this Module is a must have for every developer.
Features
Replication
Real Time Data Replication
As the Data is parented in a Replicating Service, all applicable entities get to interact with data- all in real time.
This system is backward compatibile, allowing the Data Format to be modified without loosing or corrupting data.
Customizable (& Settings)
Customizability
It is easy to make and modify your Format and even Settings in which you can set your preferences of data saving. To go above and beyond, table keys are even allowed to contain spaces in them.. Support for “number”, “boolean”, “string” and “table” (dictionaries) are supported.
Just a Public reply, this post will receive a YouTube video for step by step documentation in the near future- if and when this gains traction, considering if I even have time. If anyone has constructive criticism, I encourage it.
ProfileService does not have an interpreter that automatically does the following.
Data Loading as Instance {[representation]}
Compatibility through version changing
2 API Calls only (Leave/Join) → Helps limit the rate of calling.
They are important factors and in my opinion the only factors that a developer requires. No data loss & access to your data as an instance.
I don’t get the whole “session locking” thing unfortunately. If you’re in two different sessions, Roblox will kick you by default.
If you’re still not convinced, the Datastore has this API called “UpdateAsync()” which reads write requests called by the server. Say Player A is in two different sessions and makes the Server somehow call the save function, the two requests go and both of them get layered, the newest one at top as far as I know.
ProfileService is not easy as this Module. It will provide you with many features though lack some in turn which I provide. Ask yourself your needs and pick a Module. This is a standalone Module that is a Prototype and will evolve over time based on the needs of the people.
RBXScriptSignal (Events) to get live updates on statistics
I meant my practices, didn’t refer to that project.
I’m unsure what you mean here, my resource is not meant to save properties of an object though you certainly could if you wanted to by using the tools I provided.
My resource shows every time the smallest of changes happen, in an organized way.
I did use ProfileService.
I believe this is subjective. My resource makes you do less for the same result but outputs more.
ProfileService and FutureDatastore both have the same task of saving data, we just do it in different ways and offer more or less.
I believe I should of made a documentation video, I’ll release it.
I don’t get the point of saving data as an instance. In ProfileService you could easily change values in a nested table. It is more efficient and is so much more realiable.
You keep mentioning this resource. The creator of the resource realized ProfileService wasn’t enough and released another Service, which I by default provide in superior lightweight techniques (faster & way less code with no compromise on the objective/goal).
I’d suggest you to learn a little more about systems you lash out against or at least your own needs, dutycall11.
I appreciate the suggestion and I have followed up yesterday when I recorded footage. I’d expect in depth and structured explanations on my videos, though this is my first. I’ll assume more than just people in devforum would be using it so it’ll be explained independently.
Unfortunately you cannot see the benefits to which I will release further explanation, I’m usually busy so I can’t find time to put effort in projects that won’t compensate me for my time & effort.
I’ll be updating this post with a video in the near future.
This module is definitely not ready for production use.
The restrictive license comparing to other alternative are most certainly unacceptable in a lot of production scenarios;
The alternatives provide much better features (auto-saving, rollback support, session locking* and outages check)
5/10 for a beginner project, wouldn’t recommend anyone to use though
*In most cases you would probably do some extra operation on the player data before saving their data, and during that period a player could join another server and will get their data overwritten.
Glad to know that. I request anyone else who makes claims to know enough.
0/10 review, no constructive criticism other than licensing issues (not accepting I’m not allowing people to sell a free project provided to the dear community), suggesting alternatives with features that I debunked (still not sure how much research you’ve done).
The current release is stable and running contrary to what you believe. I request all to post criticism with constructive means or simply a thank you.
Just a heads up to all users, I’ve had the liberty to further develop this project as I’ll be using a superior to same version of this.
On a future release, the following features will be included.
→ The Module now will show its Methods & names are simpler (Method:Save/Load(), etc)
→ The Module is now faster.
→ The Module now supports booleans completely.
→ StringValues are now dropped for Configuration & Attributes.
I really dont see the point of this. You dont really get that much customization with this and really the only reason to use this is because it’s simple(which doesn’t mean its better than other modules like DS2 or ProfileService, or even datastore service.)
Honestly, not a very good resource. It doesnt have any explanation of how it works.
Also, while the approach with using instances might seem smart, its actually not that good of an idea. It will just eat more memory, since every single player has a bunch of values that replicate for the whole server.
Another thing is that this has no real data loss prevention. Especially in games where you teleport into multiple places, your data will be overwritten left and right unfortunately.
But of course, it depends on the person, use whatever resource suits you
Attributes do not eat memory and are fast - see the attributes announcement for understanding they’re faster for calculations and a diverse array of tasks.
Replicating is not a problem, I’m sure there are harder tasks for the server.
I’m sure this proved you did not read the post entirely. It prevents data wipes due to improper practices without the hacky way of rolling back saved versions. I’m not going to respond to any other posts until the video is out unless it’s suggestions to put on the video.
Of course, they are faster than ValueBases, what I meant is that variables and arrays are still faster.
True, its just that the client would be less strained if it only received the data it actually needs (their own data, not others’, but it depends on the situation of course)
What do you mean by “improper practices”? (This is just speculation on my part, but for instance, when teleporting from one place to another, there is a possible edge case where the data on the new server is loaded before the data on the old server is saved, thus rolling back your data. Im not sure this is exactly what happens, but thats what it seems like)