It does not. It always saves player data to the same key, and relies on session locking to prevent data deletion/duplication
Thank you for this! Though Iâd prefer to wait until after the BETA stage, I donât want to ruin my game lol. Keep us updated please!
Update, out of curiosity I play tested this on studio, it didnât even load my data
What was the thing that changed again regarding limits?
The requests per minute?
Or like, how much storage there can be for all players in an experience in total?? or like huh?
And does numPlayers
scale with the amount of players in total within the experience?
Hey! Please see this post for the specifics - DataStores Access and Storage Updates.
As a high-level summary:
- #(Requests per minute) is now per-experience rather than per-server, and as a result both the base limit and per-active-player (across the entire experience) limit have been changed accordingly
- There will be a total storage limit of
100 MB + 1 MB * Lifetime Players
.
To compare it with, what was the previous limit?
OhâŚ
Â
So, should one assume that a good rule of thumb would be to have data styled so that it covers maximum 1 MB per player?
While the rest of the 100 MB, is for other Experience things?
Isnât 100 MB + (1 MB * lifetime user count)
a better way to read it?
Â
Does DataStore even come with a built-in feature to measure that?
I guess the new DataStore manager thing.
Oh, I didnât realize that. Thanks!
Alright, thanks! shoot me a ping or DM once you have an answer, Iâd appreciate it a lot.
If there is one player on a server, the CCU is 1, right?
So, if I look at this right, you can basically send a little bit more requests per minute.
Â
Now, the total storage limit, is that per data store or all data stores in an experience?
Like, letâs say you have a Data Store named Store1
and then Store2
.
Do both have a separate limit, or do they all share the same one?
Â
Is it per experience or universe? Like the wording is correct, right?
iirc itâs across all datastores.
Forgive me, but I am going to answer these a bit out of order!
Is it per experience or universe? Like the wording is correct, right?
The new limits will all be per-experience. So yes, if you have multiple experiences, they will each have their own set of limits.
If there is one player on a server, the CCU is 1, right?
Yes, for the current request limits. An important distinction though is that in the future limits, since the request limits will be at an experience-level rather than server-level, âCCUâ refers to the total number players across the experience rather than the number of players on a server.
Now, the total storage limit, is that per data store or all data stores in an experience?
Like, letâs say you have a Data Store named Store1 and then Store2.
Do both have a separate limit, or do they all share the same one?
For the total storage limit, all data stores within an experience will share the same pool. So, all Data Storesâ sizes within the experience will be summed and compared to the total storage limit.
So what this essentially means is weâll be using the Players UserIds as the Datastores to store their values rather than using regular datastore identifiers that have player userids as the values?
Like
Levels > PlayerId > {1,2,3}
to
PlayerId > Level: {1,2,3}
?
Iâm not sure I quite follow, but Iâll try my best to clarify the migration process here, using your example of âlevelsâ you provided above.
Before (âBerezaa Methodâ):
- 1 Ordered Data Store and 1 Standard Data Store for every player, named something like âlevels/â
- The Ordered Data Store saves entries that have a key-value of
<anything> : <version / timestamp>
. - The Standard Data Store saves entries that have a key-value of
<version / timestamp> : <level value>
After:
- Only 1 standard data store for levels named âlevelsâ.
- The data is saved as a key-value pair of
<player id> : <level value>
So with your format above, I believe it should be this instead:
Level > PlayerId: {1, 2, 3}
Just for anyone planning on using this statistic, if the player deletes the badge from their inventory and re-joins; theyâll get the badge again and (at least the last time I checked, it could have changed since) the total awardee count will still increment again. Players can also do this multiple times which could unfortunately make the stat a bit less than reliable depending on your particular experience and how many people are deleting your badges.
A bit off topic to this, but I also wanted to comment on the 100 datastore max limit in order to display more metrics on the âdata store managerâ. I use a seperate datastore per-player for logging Robux transaction logs; this allows for easily listing a particular playerâs transactions but it came with the cost of being over the 100 datastore limit. In-hindsight I should have probably used the UserId as a key prefix instead but I unfortunately didnât at the time. Is this a limitation which is presumed to change in the future or do I need to plan an eventual data format migration if I want to make use of it?
Im not 100% sure if this provides full feature parody but worth checking it out.
Okay, wait I think I didnât think this through well.
Experience can only be a Universe.
So, sub-places share and inherit the same thing.
To get 100 MB, youâd have to make a new experience and not sub-place, thatâs probably a rare use case and a funny workaround to accomplish something.
I got confused with the words âExperienceâ and âUniverseâ, for a second.
Â
I was probably once thinking about making a test game that focuses on cross-experience datastorage. I believe, Iâve seen a test game somewhere before related to some RCC Fast Flag.
Now, in the documentation thereâs rccPlayer
. Wonder what that exactly means. https://create.roblox.com/docs/cloud-services/data-stores/error-codes-and-limits#server-limits
Â
But all of this makes me think whether there will be methods that return remaining space, that you can display in-game.
wonât work forever, people are limited to 200 active experiences iirc
youâre better off asking for people to just donate to you because if your game actually needs tons of data because people build in it, it probably will have a dedicated enough playerbase to pay for storage
So, i do have to do this at some point? and do i have to rewrite much code to use normal datastores?
I think itâs some compressed way to reduce file scale
I can run out of test games and bug reproduction games?
Whenever that happens, I will complain.
They should merge the experience limit with the friends limit
All users are able to build as many experiences as they want, though accounts are limited to 200 public experiences (able to be played by others)
https://en.help.roblox.com/hc/en-us/articles/203313950-Creating-and-Making-Experiences-Public
hmm
Â
It says âable to be played by othersâ, so maybe it doesnât count for private experiences.
So basically you save everything in a single key, reverting to the buggy system Berezza had fixed?