Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Help every time this DataStore request was added to queue?

Asked by 3 years ago

Does anyone know how to fix this   23:37:52.292 ? DataStore request was added to queue. If request queue fills, further requests will be dropped. Try sending fewer requests.Key = 318519531 (x2) - Studio

heres the script


local DataStore = game:GetService("DataStoreService") local Level1 = DataStore:GetDataStore("Levels001") local Beli11 = DataStore:GetDataStore("Beli001") local Exp1 = DataStore:GetDataStore("Exp001") local ExpNeed1 = DataStore:GetDataStore("ExpNeed001") local DefenseP1 = DataStore:GetDataStore("DefenseP001") local SwordP1 = DataStore:GetDataStore("SwordP001") local LuckP1 = DataStore:GetDataStore("LuckP001") local SpecialP1 = DataStore:GetDataStore("Special001") local Defense1 = DataStore:GetDataStore("Defense001") local Sword1 = DataStore:GetDataStore("Sword001") local Luck1 = DataStore:GetDataStore("Luck001") local Special1 = DataStore:GetDataStore("Special001") local Points1 = DataStore:GetDataStore("Points001") game.Players.PlayerAdded:Connect(function(Plr) local stats = Instance.new("Folder", Plr) stats.Name = "Data" --- Level System local Levels = Instance.new("IntValue", stats) Levels.Name = "Levels" Levels.Value = 1 local Exp = Instance.new("IntValue", stats) Exp.Name = "Exp" Exp.Value = 0 local ExpNeed = Instance.new("IntValue", stats) ExpNeed.Name = "ExpNeed" ExpNeed.Value = 200 --- Money System local Beli = Instance.new("IntValue", stats) Beli.Name = "Gold" Beli.Value = 0 --- Stats Text local DefenseP = Instance.new("IntValue", stats) DefenseP.Name = "DefenseP" DefenseP.Value = 1 local SwordP = Instance.new("IntValue", stats) SwordP.Name = "SwordP" SwordP.Value = 1 local LuckP = Instance.new("IntValue", stats) LuckP.Name = "LuckP" LuckP.Value = 1 local SpecialP = Instance.new("IntValue", stats) SpecialP.Name = "SpecialP" SpecialP.Value = 1 --- Stats System local Points = Instance.new("IntValue", stats) Points.Name = "Points" Points.Value = 0 local PointsS = Instance.new("IntValue", stats) PointsS.Name = "PointsS" PointsS.Value = 1 local Defense = Instance.new("IntValue", stats) Defense.Name = "Defense" Defense.Value = 0 local Sword = Instance.new("IntValue", stats) Sword.Name = "Sword" Sword.Value = 0 local Luck = Instance.new("IntValue", stats) Luck.Name = "Luck" Luck.Value = 0 local Special = Instance.new("IntValue", stats) Special.Name = "Special" Special.Value = 0 ---- Datastore ---- --- Levels Levels.Value = Level1:GetAsync(Plr.UserId) or Levels.Value Level1:SetAsync(Plr.UserId, Levels.Value) Levels.Changed:connect(function() Level1:SetAsync(Plr.UserId, Levels.Value) end) --- Gold Beli.Value = Beli11:GetAsync(Plr.UserId) or Beli.Value Beli11:SetAsync(Plr.UserId, Beli.Value) Beli.Changed:connect(function() Beli11:SetAsync(Plr.UserId, Beli.Value) end) --- Exp Exp.Value = Exp1:GetAsync(Plr.UserId) or Exp.Value Exp1:SetAsync(Plr.UserId, Exp.Value) Exp.Changed:connect(function() Exp1:SetAsync(Plr.UserId, Exp.Value) end) --- ExpNeed ExpNeed.Value = ExpNeed1:GetAsync(Plr.UserId) or ExpNeed.Value ExpNeed1:SetAsync(Plr.UserId, ExpNeed.Value) ExpNeed.Changed:connect(function() ExpNeed1:SetAsync(Plr.UserId, ExpNeed.Value) end) --- SwordP SwordP.Value = SwordP1:GetAsync(Plr.UserId) or SwordP.Value SwordP1:SetAsync(Plr.UserId, SwordP.Value) SwordP.Changed:connect(function() SwordP1:SetAsync(Plr.UserId, SwordP.Value) end) --- DefenseP DefenseP.Value = DefenseP1:GetAsync(Plr.UserId) or DefenseP.Value DefenseP1:SetAsync(Plr.UserId, DefenseP.Value) DefenseP.Changed:connect(function() DefenseP1:SetAsync(Plr.UserId, DefenseP.Value) end) --- LuckP ExpNeed.Value = ExpNeed1:GetAsync(Plr.UserId) or ExpNeed.Value ExpNeed1:SetAsync(Plr.UserId, ExpNeed.Value) ExpNeed.Changed:connect(function() ExpNeed1:SetAsync(Plr.UserId, ExpNeed.Value) end) --- SpecialP ExpNeed.Value = ExpNeed1:GetAsync(Plr.UserId) or ExpNeed.Value ExpNeed1:SetAsync(Plr.UserId, ExpNeed.Value) ExpNeed.Changed:connect(function() ExpNeed1:SetAsync(Plr.UserId, ExpNeed.Value) end) --- Sword Sword.Value = Sword1:GetAsync(Plr.UserId) or Sword.Value Sword1:SetAsync(Plr.UserId, SwordP.Value) Sword.Changed:connect(function() Sword1:SetAsync(Plr.UserId, SwordP.Value) end) --- Defense Defense.Value = Defense1:GetAsync(Plr.UserId) or Defense.Value Defense1:SetAsync(Plr.UserId, Defense.Value) Defense.Changed:connect(function() Defense1:SetAsync(Plr.UserId, Defense.Value) end) --- Luck Luck.Value = Luck1:GetAsync(Plr.UserId) or Luck.Value Luck1:SetAsync(Plr.UserId, Luck.Value) Luck.Changed:connect(function() Luck1:SetAsync(Plr.UserId, Luck.Value) end) --- Special Special.Value = Special1:GetAsync(Plr.UserId) or Special.Value Special1:SetAsync(Plr.UserId, Special.Value) Special.Changed:connect(function() Special1:SetAsync(Plr.UserId, Special.Value) end) --- Points Points.Value = Points1:GetAsync(Plr.UserId) or Points.Value Points1:SetAsync(Plr.UserId, Points.Value) Points.Changed:connect(function() Points1:SetAsync(Plr.UserId, Points.Value) end) end) game.Players.PlayerAdded:Connect(function(plr) wait(.1) local Exp = plr.Data.Exp local Levels = plr.Data.Levels local ExpNeed = plr.Data.ExpNeed local Points = plr.Data.Points while wait() do if Exp.Value >= (100 * (Levels.Value + 1)) and Levels.Value <= 399 then Levels.Value = Levels.Value + 1 Points.Value = Points.Value + 3 Exp.Value = Exp.Value - ExpNeed.Value ExpNeed.Value = ExpNeed.Value + 100 game.ReplicatedStorage.LevelSystem.LevelUpGui:FireClient(plr) end end end) game.Players.PlayerRemoving:connect(function(Player) Level1:SetAsync(Player.UserId, Player.Data.Levels.Value) Beli11:SetAsync(Player.UserId, Player.Data.Beli.Value) Exp1:SetAsync(Player.UserId, Player.Data.Exp.Value) ExpNeed1:SetAsync(Player.UserId, Player.Data.ExpNeed.Value) SwordP1:SetAsync(Player.UserId, Player.Data.SwordP.Value) DefenseP1:SetAsync(Player.UserId, Player.Data.DefenseP.Value) LuckP1:SetAsync(Player.UserId, Player.Data.LuckP.Value) SpecialP1:SetAsync(Player.UserId, Player.Data.SpecialP.Value) Sword1:SetAsync(Player.UserId, Player.Data.Sword.Value) Defense1:SetAsync(Player.UserId, Player.Data.Defense.Value) Luck1:SetAsync(Player.UserId, Player.Data.Luck.Value) Special1:SetAsync(Player.UserId, Player.Data.Special.Value) Points1:SetAsync(Player.UserId, Player.Data.Points.Value) end)

2 answers

Log in to vote
0
Answered by
sayer80 457 Moderation Voter
3 years ago

This is extremely unefficient and will overload the Datastore system entirely, you should save everything inside a table, i would recommend using Profile Service by Loleris for that https://devforum.roblox.com/t/save-your-player-data-with-profileservice-datastore-module/667805

Ad
Log in to vote
0
Answered by
MattVSNNL 620 Moderation Voter
3 years ago
Edited 3 years ago

Not only is your code very messy, but You've also done a bunch of data stores you can add all the stats you need to just one data store bro

Requirements: Make a script in the server script service and name it SaveData

Try this code

local ds = game:GetService("DataStoreService"):GetDataStore("SaveData")
game.Players.PlayerAdded:Connect(function(plr)
    wait()
    local plrkey = "id_"..plr.UserId
    local save1 = plr.leaderstats.Stage -- Change this to the name of your stat if you want add more 
    local save2 = plr.leaderstats.Coins

    local GetSaved = ds:GetAsync(plrkey)
    if GetSaved then
        save1.Value = GetSaved[1]
        save2.Value = GetSaved[2]
    else
        local NumberForSaving = {save1.Value, save2.Value}
        ds:GetAsync(plrkey, NumberForSaving)
    end
end)

game.Players.PlayerRemoving:Connect(function(plr)
    ds:SetAsync("id_"..plr.userId, {plr.leaderstats.Stage.Value, plr.leaderstats.Coins.Value})
end)

Answer this question