FutureDatastore

FutureDatastore (click me)

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.


Backwards/Forwards Compatible

Past/Present/Future Proof

This system is backward compatibile, allowing the Data Format to be modified without loosing or corrupting data.

Example of Compatibility Example of Compatibility (2)


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.

Format Example


INSTRUCTIONS - simplicity

All you need to do

1. Set up your format

2. Run the Module


I’ve realized many users are too undereducated (lack of scripting in general).

In response, I will be making a “Human” solution.

It will not be disclosed until stable launch.

The tutorial will be out when it is released.

5 Likes

Love the background song, but you could say how this is better then other datastore services other then saying its “simple” to use.

1 Like

Literally has no actual description of what it does and poor documentation.

6 Likes

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.

This is a really cool resource!! I will consider using this! Thank you very much

Don’t listen to everyone else. This is a really cool resource and you should be proud of it :smiley:

I do not see any advantages over ProfileService in this module. ProfileService includes so many different easy to use tools such as session locking.

3 Likes

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.

is it something like ProfileService?

  • Isn’t this really simple to do? And what would be the point of serializing an entire Instance? Doesn’t even make sense for saving a player’s build, since you could only save the basic color and properties of a object (ID, Color, position/rotation, etc) and get the same result
  • ProfileService also only does 2 API calls in total, profiles are loaded and are kept and modified in server memory until the associated player leaves, instead of saving to a datastore everytime the smallest change happens (like how some people do without any of those datastore abstractions), please do some research before posting

ProfileService is easy, all you really have to do is manage when a profile is loaded and where it’ll be stored. Everything else is handled by the module (please actually do some research before trying to convince people your module is better)

1 Like

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.

1 Like

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.

1 Like

While this is cool and all, Traditional datastore is going to be simpler to use, because of a far better documentation, and more customisability.

While some might be able to understand what you mean, you should really elaborate, and explain the steps in a clear, easy-to-follow manner.

e.g.
“Set up your format” is incredibly vague to the point of frustration which may lead people away from this resource

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.

1 Like

ProfileService does not makes 2 API calls it has an AutoSave every 30 seconds

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.

3 Likes

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.

Current

Current (Before)

Future Update (Video Release)

New (After)

:wink:
Until next time’

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.)

4 Likes

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 :man_shrugging:

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.