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?
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.
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.