Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How do I fix this "DataStore was added to queue error"?

In my game, I keep getting this error that says "DataStore request was added to queue. If request queue fills, further requests will be dropped. Try sending fewer requests." I've tried many things but none of them seem to work. Is there anyway to fix this? I really need help. Thanks.

local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local SaveDataStore = DataStoreService:GetDataStore("SaveData", 1)

local function SavePlayerData(player)

	local success,errormsg = pcall(function()

		local SaveData = {}

		for i,stats in pairs(player.leaderstats:GetChildren()) do

			SaveData[stats.Name] = stats.Value
		end 
		SaveDataStore:SetAsync(player.UserId,SaveData)
	end)

	if not success then
		return errormsg
	end         
end 



Players.PlayerAdded:Connect(function(player)

	local Stats = Instance.new("Folder")
	Stats.Name = "leaderstats"
	Stats.Parent = player

	local Stage = Instance.new("NumberValue")
	Stage.Name = "Stage"
	Stage.Parent = Stats
	Stage.Value = 0

	local Data = SaveDataStore:GetAsync(player.UserId)

	if Data then

		print(Data.Stage)

		for i,stats in pairs(Stats:GetChildren()) do

			stats.Value = Data[stats.Name]      
		end         
	else        
		print(player.Name .. " has no data.")           
	end


	player.CharacterAdded:Connect(function(character)

		local Humanoid = character:WaitForChild("Humanoid")
		local Torso = character:WaitForChild("HumanoidRootPart")

		wait()

		if Torso and Humanoid then
			if Stage.Value ~= 0 then

				local StagePart = workspace.Stages:FindFirstChild(Stage.Value)
				Torso.CFrame = StagePart.CFrame + Vector3.new(0,1,0)                    
			end 
		end 
	end)        
end)


Players.PlayerRemoving:Connect(function(player)

	local errormsg = SavePlayerData(player)

	if errormsg then    
		warn(errormsg)      
	end 
end)

game:BindToClose(function()
	for i,player in pairs(Players:GetPlayers()) do  

		local errormsg = SavePlayerData(player)
		if errormsg then
			warn(errormsg)
		end         
	end
	wait(2) 
end)

3 comments

0

can you accept the answer @NotANinja_9210?

0

i did it

0

kk

1 answer

✓ Accepted answer

The problem is that you are saving data way too often.

https://developer.roblox.com/en-us/articles/Datastore-Errors

game:BindToClose(function()
   for i,player in pairs(Players:GetPlayers()) do  
 
        local errormsg = SavePlayerData(player)
        if errormsg then
            warn(errormsg)
        end        
    end
    wait(2)
end)

Don't do an auto save like that, saving when players leave or join is enough. Delete lines 78-87 (the lines above) completely and your problem is gone!

1 comment

0

Thank you so much!! The error is not popping up anymore!

This discussion is preserved as it was. New answers, comments, and votes are closed.