Learn
Engine Class
MemoryStoreQueue
Not Creatable
Not Replicated

Summary
Methods
AddAsync(value: Variant,expiration: number,priority: number):()
GetSizeAsync(excludeInvisible: boolean):number
ReadAsync(count: number,allOrNothing: boolean,waitTimeout: number):Tuple
Inherited Members

API Reference
Methods
AddAsync
Yields
Capabilities: DataStore
MemoryStoreQueue:AddAsync(
value:Variant, expiration:number, priority:number
):()
Parameters
value:Variant
expiration:number
priority:number
Default Value: 0
Returns
()

GetSizeAsync
Yields
Capabilities: DataStore
MemoryStoreQueue:GetSizeAsync(excludeInvisible:boolean):number
Parameters
excludeInvisible:boolean
Default Value: false
Returns

ReadAsync
Yields
Capabilities: DataStore
MemoryStoreQueue:ReadAsync(
count:number, allOrNothing:boolean, waitTimeout:number
Parameters
count:number
allOrNothing:boolean
Default Value: false
waitTimeout:number
Default Value: -1
Returns
Code Samples
Using a MemoryStoreQueue
local MemoryStoreService = game:GetService("MemoryStoreService")
local DataStoreService = game:GetService("DataStoreService")
local queue = MemoryStoreService:GetQueue("PlayerQueue")
local dataStore = DataStoreService:GetDataStore("PlayerStore")
while true do
pcall(function()
-- wait for an item to process
local items, id = queue:ReadAsync(1, false, 30)
-- check if an item was retrieved
if #items > 0 then
-- mark the item as processed
dataStore:UpdateAsync(items[0], function(data)
data = data or {}
data.processed = 1
return data
end)
-- remove the item from the queue
queue:RemoveAsync(id)
end
end)
end

RemoveAsync
Yields
Capabilities: DataStore
MemoryStoreQueue:RemoveAsync(id:string):()
Parameters
Returns
()
Code Samples
Using a MemoryStoreQueue
local MemoryStoreService = game:GetService("MemoryStoreService")
local DataStoreService = game:GetService("DataStoreService")
local queue = MemoryStoreService:GetQueue("PlayerQueue")
local dataStore = DataStoreService:GetDataStore("PlayerStore")
while true do
pcall(function()
-- wait for an item to process
local items, id = queue:ReadAsync(1, false, 30)
-- check if an item was retrieved
if #items > 0 then
-- mark the item as processed
dataStore:UpdateAsync(items[0], function(data)
data = data or {}
data.processed = 1
return data
end)
-- remove the item from the queue
queue:RemoveAsync(id)
end
end)
end

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.