Datastore request limits not consistent

So I wrote this quick script on an empty baseplate to test datastores:

local DSService = game:GetService("DataStoreService")
local DS = DSService:GetDataStore("DS")

for i = 1, 500, 1 do
	local x = DS:GetAsync(tostring(i))
	print("Datastore requests left:" .. DSService:GetRequestBudgetForRequestType(Enum.DataStoreRequestType.GetAsync))
	print(tostring(i) .. ": " .. tostring(x))
end

Why is this not throttling? Is this documentation wrong?

GetRequestBudgetForRequestType is returning 2500 in studio and 580 in game, but that’s not consistent with 60 +numplayers*10.

I tested it in game and it’s warning me at the 221st request.

I don’t understand, could anyone explain to me why the budget is way higher than 70?

The data request budget dynamically updates depending on Roblox servers. You can’t really control it, only preserve requests. This is why it’s important to check the data request budget and also allow extra time to save when the budget is exceeded to throttled requests go through.

1 Like

The documentation only states how many requests per minute you’re allowed. It doesn’t state how many you start with or what the max amount of requests are at any given time.

Print the budget at the start of the server and print it again one minute later without any DataStore calls. The increase should be consistent with that.