CyberMax
CyberMax › Answers

Roblox DataStore limits: requests per minute, size per key, key names

Updated 2026-10-17 · Roblox and game developers · by CyberMax

Short answer

Per server, Roblox allows 60 + numPlayers × 40 GetAsync calls a minute, the same for SetAsync, IncrementAsync and UpdateAsync, and 5 + numPlayers × 2 GetSortedAsync calls. Each key holds up to 4,194,304 characters (4 MB) and every key across all servers has a 4 MB-per-minute write limit. Key names and data store names can be up to 50 characters.

Copy-paste code

Check the remaining budget before a burst of writes

local DataStoreService = game:GetService("DataStoreService")

local function canWrite(n)
	local left = DataStoreService:GetRequestBudgetForRequestType(Enum.DataStoreRequestType.SetIncrementAsync)
	return left >= n
end

-- UpdateAsync uses the SetIncrementAsync budget too
if canWrite(5) then
	-- safe to save five keys now
else
	task.wait(6) -- the budget refills every minute; try again shortly
end
DataStore limits (Roblox Creator docs, checked 16 Oct 2026)
LimitValue
GetAsync per server60 + numPlayers × 40 per minute
SetAsync / IncrementAsync / UpdateAsync60 + numPlayers × 40 per minute
RemoveAsync60 + numPlayers × 40 per minute
GetSortedAsync (OrderedDataStore)5 + numPlayers × 2 per minute
Data per key4,194,304 characters (stored as a JSON string)
Writes to one key, all servers4 MB per minute
Key name / data store name50 characters each

Source: https://create.roblox.com/docs/cloud-services/data-stores/error-codes-and-limits

Good to know

Size: data is JSON-encoded, so a table of 10,000 small items can reach the 4 MB limit faster than you expect. Check with #game:GetService("HttpService"):JSONEncode(data).

If you hit the per-key write limit, you are writing the same key too often (for example, saving on every coin pickup). Save on a timer and on leave instead.

Studwright: Roblox systems that never lose saves

from $12

Studwright's SaveData is tested against an engine mock with DataStore outages and request budgets, so saves keep working when Roblox throttles.

Secure checkout · 14-day fix-or-refund if it doesn't work as described (terms)

Questions

What happens when I go over the budget?

Requests are queued and then throttled; the call can wait or fail with an error code. Wrap every DataStore call in pcall.

Is there a limit on the number of keys?

Not on the count of keys in the docs' table; the limits are per request, per key size and per key write rate.

Do OrderedDataStores have the same limits?

Their sorted reads (GetSortedAsync) have a much smaller budget: 5 + numPlayers × 2 a minute, so cache leaderboard pages.

Free: the Roblox Starter Kit

7 free Luau modules (damage, pets, shop formatting, admin audit log, tycoon guards and more) plus 3 free calculators, then 5 short emails with the scripting fixes we see go wrong most often.

You get one email to confirm first. Then the kit, and 5 short emails over two weeks. One-click unsubscribe in every email; we never share your address.

Related answers

A Roblox DataStore save script that never wipes player dataCopy-paste Luau for loading and saving player data with DataStoreService: retries, UpdateAsync, BindToClose anRoblox global leaderboard: top players across every serverLuau for an all-time global leaderboard with OrderedDataStore: write scores, read the top 50, refresh within t