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

Why are these DataStore issues happening?

ds = game:GetService("DataStoreService")
plr = script.Parent.Parent

wait(5)

game.Players:WaitForChild(script.Parent.Parent.Name):connect(function(plrAdded)
	stats = Instance.new("IntValue", script.Parent.Parent)
	stats.Name = "leaderstats"
	
	kills = Instance.new("NumberValue", script.Parent.Parent:FindFirstChild("leaderstats"))
	kills.Name = "Kills"
	kills.Value = ds:GetASync("kills_"..script.Parent.Parent.userId)
	
	cash = Instance.new("NumberValue", script.Parent.Parent:FindFirstChild("leaderstats"))
	cash.Name = "Cash"
	cash.Value = ds:GetASync("cash_"..script.Parent.Parent.userId)
end)

wait()
cash = plr:FindFirstChild("leaderstats").Cash.Value
kills = plr:FindFirstChild("leaderstats").Kills.Value

ds:SetASync("cash_"..plr.userId, cash)
ds:SetASync("kills_"..plr.userId, kills)

Error line 6. And many other errors. Please do not just fix this script. Please explain in depth what you did because I want to learn from my mistakes not just give it to someone else to fix and not learn from it.

1 comment

0

I used same variables twice.

1 answer

✓ Accepted answer

It's a lot easier to store them into one DataStore. Also, a table could help. Here's a simplified version of what you have. The data will store into "Stats".

local ds = game:GetService("DataStoreService"):GetDataStore("Stats")
stats={"Kills","Cash"}
game.Players.PlayerAdded:connect(function(plyr)
	local a=Instance.new("NumberValue")
	a.Parent=plyr
	a.Name="leaderstats"
	for i=1,#stats do
		local stat=Instance.new("NumberValue")
		stat.Parent=a
		stat.Value=0
		stat.Name=stats[i]
	end
	local child=plyr.leaderstats:GetChildren()
	for i=1, #child do
		child[i].Value=ds:GetAsync(plyr.userId..child[i].Name)
	end
end)

game.Players.PlayerRemoving:connect(function(plyr)
	local child=plyr.leaderstats:GetChildren()
	for i=1, #child do
		child[i].Value=ds:SetAsync(plyr.userId..child[i].Name,child[i].Value)
	end
end)

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