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

How to get this savable leaderboard working?

I am creating a game and i really needed a a savable leaderboard i finally found one but since i started using it this error message came up saying i have to break or kill the script and its crashing roblox studio.

local datastore = game:GetService("DataStoreService")
local ds1 = datastore:GetDataStore("GemSaveSystem")
local ds2 = datastore:GetDataStore("CashSaveSystem")

game.Players.PlayerAdded:connect(function(plr)
 local folder = Instance.new("Folder", plr)
 folder.Name = "leaderstats"
 local gems = Instance.new("IntValue", folder)
 gems.Name = "Gems"
 local cash = Instance.new("IntValue", folder)
 cash.Name = "Cash"
 
 gems.Value = ds1:GetAsync(plr.UserId) or 0
 ds1:SetAsync(plr.UserId, gems.Value)
 
 cash.Value = ds2:GetAsync(plr.UserId) or 0
 ds2:SetAsync(plr.UserId, cash.Value)
 
 gems.Changed:connect(function()
  ds1:SetAsync(plr.UserId, gems.Value)
 end)
 
 cash.Changed:connect(function()
  ds2:SetAsync(plr.UserId, cash.Value)
 end)
end)

1 comment

0

free model eh

1 answer

The reason your script is crashing is because without a wait() it lets the script run a lot of times very quickly which will cause studio to crash so you will need to add a wait into it somewhere like this:

local datastore = game:GetService("DataStoreService")
local ds1 = datastore:GetDataStore("GemSaveSystem")
local ds2 = datastore:GetDataStore("CashSaveSystem")

game.Players.PlayerAdded:connect(function(plr)
 local folder = Instance.new("Folder", plr)
 folder.Name = "leaderstats"
 local gems = Instance.new("IntValue", folder)
 gems.Name = "Gems"
 local cash = Instance.new("IntValue", folder)
 cash.Name = "Cash"

 gems.Value = ds1:GetAsync(plr.UserId) or 0
 ds1:SetAsync(plr.UserId, gems.Value)

 cash.Value = ds2:GetAsync(plr.UserId) or 0
 ds2:SetAsync(plr.UserId, cash.Value)

 gems.Changed:connect(function()
  ds1:SetAsync(plr.UserId, gems.Value)
 end)

 cash.Changed:connect(function()
  ds2:SetAsync(plr.UserId, cash.Value)
wait()
 end)
end)

If this doesn't work, I didn't try it so.

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