Please do not paraphrase exceptions/warnings, instead post the actual content. By paraphrasing it, you’ve only made it harder to understand, and you’ve missed potentially useful information.
this is the only warn/error i get if u want the script( i don’t think it can help u):
function DataModule:SaveValue(plr,key,name,ValueToSave)
for Name, Key in pairs(DataAndValues) do
warn(Name..' key is '..Key)
if name == tostring(name) and Key == tostring(key) then
DSS:GetDataStore(key):SetAsync(plr.UserId, ValueToSave)
break
end
end
end
the ‘oficial’ warn: DataStore request was added to queqe. if request queqe fills , further requests will be dropped. Try sending fewer requests . Key =43567332
but it is only one save, one player and only one SetAsync()
this is how the script is called (ik if there is more players it will give the warn):
local AutoSave = coroutine.create(function()
for _, Player in ipairs(game.Players:GetPlayers()) do
local Stats = Player:FindFirstChild('leaderstats')
if Stats then
warn('Saving '..Player.Name..' Values')
DataModule:SaveAllValues(Stats,Player)
else
Player:WaitForChild('leaderstats')
warn('Saving '..Player.Name..' Values')
DataModule:SaveAllValues(Stats,Player)
end
end
end)
From your error it seems as if you’re sending too many SetAsync requests to the key 43567332. This is causing roblox to rate limit you and start to drop from even processing requests.
How do I check what my limit is?
It’s very simple, roblox has a rate limit that is stated in their wiki as [60 + numPlayers × 10] per minute.
Is there a solution?
Yes, a very easy solution is to create a Datastore module that cache’s the data so that you can SetAsync() and GetAsync() all you want without the worry of being rate limited.
There are some modules that do this and are open sourced.
The PlayerDataStore module isn’t really maintained anymore and @Maximum_ADHD started updating it but I can’t seem to find the link. If I do find it I’ll update this.