Where is the documentation page that tells you the read/write limits? I can’t find it on a quick search, and any links I am finding through the forums no longer exist.
I am suddenly having issues when advancing through my ordered datastores, and the only thing I can imagine the issue being is some change in the last 3-4 days to Limits.
DataStore request was added to queue. If request queue fills, further requests will be dropped. Try sending fewer requests. Data Store = PlayTimeJanuary2025
What is the code associated with it? It’s possible that there are just too many players with data now to have it done in the way you have implemented it.
It is 6 separate ordered datastore, with only 2 entries in one of them and 1 entry in another two of them.
This script has worked smoothly for a long time, there has been no new data added to it in a while.
In my game, players can register a guild, under various guild categories. Each category is a different ordered datastore, displaying guilds by a member count. The game is in development, but has been regularly played/tested for over a year with no new entries to the ordered datastores.
I find it interesting that I suddenly can’t find the document page for limits. If anyone can find it, I would be very appreciative.
@SeargentAUS This may sounds really stupid, but I do not believe I am using " Open Cloud APIs", instead I am using “DataStoreService”. Are these two different things?
At the very bottom of this link, there is an example listed for “Ordered data stores”. I used this exact code for testing purposes, including their data, and it will not page advance. I believe this is similar to the issue I am experiencing in my script.
The bottom of the page does have a note, stating that “the limit for requests is the same as the maximum page size”. I’m not sure if this is somehow part of the issue too, as I never recall seeing this note in the past. I also believe there was a “read/write” limit for these that was based on the amount of players in the game. I don’t see this anywhere. I am not sure if the information @SeargentAUS shared pertains to this and replaces it.
You are simply sending too many requests, I believe nothing other than your playerbase changed. You’ll need to make a more effective datastore if you don’t want data loss.
I don’t know how exactly you’re doing it, but working with one DataStore only is very effective usually.
How the person above already said, i recommend you to put all your data in one datastore, you can use attributes as a example to assign/get the data.
local DataStoreService = game:GetService("DataStoreService")
local PlayerDataStore = DataStoreService:GetDataStore("PlayerData") -- Combined DataStore
local function savePlayerData(player)
local data = {
Level = player:GetAttribute("LEVEL") or 1,
XP = player:GetAttribute("XP") or 0,
XPRequired = player:GetAttribute("XPREQUIRED") or 100,
totalXP = player:GetAttribute("TOTALXP") or 0,
previousXP = player:GetAttribute("PREVIOUSXP") or 0,
}
The part of the script shown above, gets the attributes and puts them into a table, this table saves in the datastore.
@LLukasVx@LiamSternenstei1 The code below is taken directly from the DataStores Documentation page.
If you put this into a fresh place and run the code, it endlessly advances. Printing the first 3 characters, then the next 2, and then repeating. Does this seem normal to either of you? I believe my code is experiencing the same problems.
I thought if you were at the last page and try to advance, it would error. However, it seems to be going back to the first page.
pages.IsFinished seems to always be false. Never breaking the loop.
@SeargentAUS Thank you very much for providing that to me. Also, if you have any insight on what I said above, I would appreciate the help.
local DataStoreService = game:GetService("DataStoreService")
local characterAgeStore = DataStoreService:GetOrderedDataStore("CharacterAges")
-- Populates ordered data store
local characters = {
Mars = 19,
Janus = 20,
Diana = 18,
Venus = 25,
Neptune = 62
}
for char, age in characters do
local success, errorMessage = pcall(function()
characterAgeStore:SetAsync(char, age)
end)
if not success then
print(errorMessage)
end
end
-- Sorts data by descending order into pages of three entries each
local success, pages = pcall(function()
return characterAgeStore:GetSortedAsync(false, 3)
end)
if success then
while true do
-- Gets the current (first) page
local entries = pages:GetCurrentPage()
-- Iterates through all key-value pairs on page
for _, entry in entries do
print(entry.key .. " : " .. tostring(entry.value))
end
-- Checks if last page has been reached
if pages.IsFinished then
break
else
print("----------")
-- Advances to next page
pages:AdvanceToNextPageAsync()
end
end
end
This seems like the exact same issue I am experiencing. Thank you for finding this. I did like the post, as I am hoping maybe it will help it get attention to be fixed?
I do not use the forums often, should I close this thread? Or should I wait to make sure this is resolved first?
Usually these kinds of bugs are quickly noted to be fixed by roblox, and a bug of this gravity will probably get fixed quite fast. It is surprising it took this long for people to notice
¯\_(ツ)_/¯
doesn’t really matter I don’t think. Well it would tell other users that this thread had an answer, so yeah maybe mark it as solved
Idk if you can reopen it later (or unmark a solution reply to get more solutions)
Honestly, i never used the Documentation page.
But yeah it seems like a bug, and i recommend you to rewrite your script and try another method if the issue still persists.
Also if your datastore script looks kind of the same as the one from the Documentation page you maybe should use a different approach.
I tried marking your comment as a solution also, but unfortunately I can only mark one solution.
Thank you for helping me solve the first question of my post.
What other approach is there? @LiamSternenstei1
I’m unsure on what else I can do as I am using an OrderedDataStore, and I need to pageadvance through the datastore. I don’t know that there is an alternative.
Well, how You mentioned you are using an “OrderedDataStore”, Im only a beginner scripter so I actually don’t know how your way works and what exactly is different, in the current game Im working on I created a datastore which saves mostly all the users data using a table and attributes, when the player joins the data is set to the attributes, when the player leaves the attributes data gets saved, this allows for easier loading of the datastores in the scripts, and avoids filling the datastore requests, I also got another datastore which however only saves for each player the first time they join and after that never again, I use that for things like the date when the player has first joined the game.