DataStore v2.0 - Now Officially Launched!

I’ve been waiting for this feature, thanks for launching it!

Yay

8 Likes

DataStore2 is a community-made module that takes advantage of DataStore v1.0 to make it more reliable, while DataStore v2.0 is an official Roblox implementation of a new API.

10 Likes

Looks great, will use it in my new games.

3 Likes

Firstly, I know you specifically reached out to a lot of my feature requests and I want to say that I appreciate you having the time to address my complaints and turn them into solid features.

Secondly, all these features are really good. If you’re a developer and you hate datastores, these features will make life so much easier.

All we need is an some sort of API for external use (so that we don’t have to be in a studio session to input or mess with data), utility and I’m fully sold.

Edit: A few more features would be nice.

  • Being able to have a development datastore (i.e some sort of internal tag for 'dev) that can be deleted so it doesn’t mess with data that is in production.

  • A way to visually see my tables, keys and the relationship between them. i.e primary keys, composite keys, types that each data field accepts, etc.

  • Development datastores that are temporary for studio play sessions. As of right now, it’s really hard to test datastores without going into a production game environment. This is really bad and promotes really bad habits for new users.

  • Being able to compare two tables and seeing if duplicates exist with an option to merge. I wrote a custom plugin for this and I do actually find it very useful enough to be in the hands of most developers.

  • Being able to clone / copy a datastore and tag it into dev. (Less messy for non-technical users).

  • Categorizing datastores by date, time of save or by tag.

  • Being able to lookup keys (regex, exact, matching, etc) in multiple tables and returning results.

  • Being able to archive a datastore as means to better save data if player-base is huge.

27 Likes

So the new listing APIs allow you to find all data assigned to a certain key? (For example, If i searched for a user ID that requested a right-to-be-forgotten, I could find and delete all of their data?)

edit: Nvm, the listing API allows you to find all the keys in a datastore and filter through them, which is basically the same result but with a different journey.

4 Likes

This post should interest you:

9 Likes

Pretty much yes. ProfileService is a way nicer solution to datastoring than DS2.
DS2 handles things fine on Standard mode too, but it’s too simple, doesn’t do much other than just handle things properly.

I personally after seeing the private beta period getting announced and them saying on the invite post that it would have versioning, it was pretty much just ‘DS2 byebye!’ as the first thought. I was personally discouraging DS2 use because of that. DS2’s ordered backups method is expensive, as heck. DSV2 gives you what the berezaa method gave you with some differences and being less expensive to achieve.

If you would wanna move stuff to DSV2, then it would be expensive to do that as well, as you need to ListDataStores then get the ordered data store version of that, list the versions there, get the key, and then set to an actual datastore, and it’s just hard.
I personally say you should just stay with DS2 now if it’s not causing you any issues.

7 Likes

I’m very happy with the arrival of a new api for the old DataStore, but I still don’t think it’s very good to use a direct connection to the database, besides being slow it ends up having limitations that can only be corrected within the game itself.
Anyway I am very happy about the DataStore 2 update, I see that I will have more things to implement in my DataBase modules.

3 Likes

This seems great. However, is this a whole new way of saving data or just some additions to the previous data store version?

8 Likes

I am so happy about this! Thank you Roblox!

Not having to manage our own backup system is one less thing to keep me up at night :slight_smile:

5 Likes

Thank you roblox, finally I am able to actually use the roblox datastores without any fear of corruptions, as long as it keeps up the hype of beta I’m so hyped for this.

4 Likes

Thanks Roblox! Now I won’t have to create a backup everytime a game of mine needs a datastore :slight_smile:

2 Likes

Thanks, Roblox! I guess it is time for me to convert my datastores to the newer version.

3 Likes

Just use an another datastore?

Datastore Editor plugin by @sleitnick If i remember right

4 Likes

When this was still in beta if v2 features were enabled then DataStoreService | Roblox Creator Documentation would return a DataStore | Roblox Creator Documentation instead of a GlobalDataStore | Roblox Creator Documentation. However, since this update is now live does this mean that it won’t return a GlobalDataStore again? The only reason I’m confused about this is because of the DataStoreService | Roblox Creator Documentation function.

Will the GetGlobalDataStore method be updated to return a DataStore object instead of a GlobalDataStore? If so, then what will become of the GlobalDataStore object? Will it be deprecated and replaced with the DataStore object? Or will it become the base for the DataStore object to inherit from, sort of like PVInstance | Roblox Creator Documentation?

In short, I’m asking this; Once this update is processed by the community and becomes the norm, will the GlobalDataStore object have any relevance anymore? The reason I’m asking is because I’m making an module that’s just an abstraction layer of `DataStoreService’ and the answer to this is relevant to the development of it.

5 Likes

You can use the scope variable for this when retrieving the datastore. If you don’t know what that is, it’s basically the “Folder” the datastore saves the data too. All you’d have to do for this is replace an example like this:

local DataStore = DataStoreService:GetDataStore("Example") -- the in-game production data used

with this:

local DataStore = DataStoreService:GetDataStore("Example", "development") -- a different scope that the data is saved too.

It’s still the same datastore but just saving the data in a different area or scope.

6 Likes

I don’t know if I’ll use it much but I might give it a try!

2 Likes

I don’t think you have to convert them. The functionality should just work for any existing datastores: “You can now directly use the new functionality for both your existing data and new data!”

2 Likes

Oh, I needed that for my games, I love this update

1 Like

Hmm…looks good to me…hoping to come out very soon !

2 Likes