Should i be concerned with the datastore data limit?

I know there is a max of 260,000 characters per person or something like that but should i be concerned about going over the limit? Do big data games like jailbreak and bloxburg go over the limit?

1 Like

In most cases, no. The data store limit is not supposed to be reached unless you really have a lot of data to save, or your data saving method is just trash. If you save one table full of data, that only consumes one allocated data store update/set request.

2 Likes

I was wondering about this too, I was about to make a thread about Compressing Data for DataStore & MessagingService

Surely that Optimizing your DataSaving method would help but what if there is a lot of Data that exceeds the limit?

Are there any new Data Compression Modules available?

Most of them even the recent one is about a year old.
I’m talking about BitBuffer, LZW_Compression and Text Compression

I don’t think using multiple keys is a good idea due to DataStore’s current state of reliability.

2 Likes

Like @wevetments said, you should only worry if you have a lot of data, what is your game about. If it’s a small game with not a lot of stuff, data store isn’t a worry for you.

1 Like

What is considered alot of data?

Is it easy for your players to earn data/money inside of the game your making?

1 Like

It really depends on the kind of your game and how you structure the data you save.

If your data is just Cash, Level, Skins then you shouldn’t be worried.
However if you need to save i.e. builds created by players (like in Whatever Floats Your Boat or Retail Tycoon), that’s when you might start to worry and think of some data compression.

2 Likes

If you’re saving things like where objects are or other properties of very customisable things (e.g. in a building game etc.) then you may have to worry about it - but saving simple stats like money, levels, purchases etc. do not take up a lot of data and you should be fine with them.

1 Like

What do i do if i am building a game like that? Should i use multiple datastores?

I personally don’t have experience with this, but I’d recommend searching on the forums for threads about it. Here’s one I found.
https://devforum.roblox.com/t/custom-building-saving-any-less-data-intensive-way-to-do-this/16629

2 Likes

I feel like the need for a proper data compression tutorial is highly needed. I’ve read some posts about data compression, but they just give the module or concept without further explaining how everything works.

1 Like

I agree, that would be very helpful to the community.

When making a building game, you only need one data store. You just have to save a table with all the necessary data such as CFrame, color, etc.

local PlayerData = {
    ["Door"] = {CFrameValue,DoorColor,DoorType},
    ["Wall"] = {CFrameValue,WallColor,WallMaterial,WallType},
    ...
}
1 Like

There’s a very rare chance you’re actually going to hit that limitation. Remember that the character count is only applicable to a single key. You can save quite a lot of data - more than you expect. Such games are capable of saving large data sets in multiple ways. For example, you can partition data to scopes.

Say you have a lot of data and you want to now save item skins. The library of skins contains a lot of skins, so you’re concerned it might bloat your main data set. You can use the scope argument to open a new partition of sorts and store data there.

local MainData = DataStoreService:GetDataStore("Data")
local SkinData = DataStoreService:GetDataStore("Data", "Skins")

local PlayerData = MainData:GetAsync(-1)
local SkinData = SkinData:GetAsync(-1)

Just watch your budget, most of all.

I don’t think compression is necessary here.

2 Likes

Wait I have never heard of this, whats the scope argument?

It’s basically a sub section of that DataStore key

Think of a Mini-Table within a Table

Although with the current limitations and unstableness of DataStore I wouldn’t recommend using multiple Keys and Scopes for a set of related Data packages.

2 Likes

Scope is just a namespace. It helps you partition data. The argument defaults to the global space, but you can change it to any string and it pretty much opens a fresh scope within that DataStore.

Using scopes and keys together can make for powerful data management. You can read up on how scopes work via the DataStore article.

2 Likes

So i could save 260,000 characters per person in every data scope?

You could. It depends on how you’re setting up your data. The main takeaway to remember is that 260K is per key. Beyond that, you just have general DataStore limitations (budget, for example) to worry about.

1 Like