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

leaderstats not a valid member of player?

Im adding a datastore and ever since I added it I got this error: leaderstats not a valid member of player

local DS = game:GetService("DataStoreService")
local DS1 = DS:GetDataStore("SaveJoins")

game.Players.PlayerAdded:Connect(function(Player)
	local leaderstats = Player:WaitForChild("leaderstats")
    local Joins = Instance.new("IntValue", leaderstats)
	Joins.Name = "Joins" 
	Joins.Value = DS1:GetAsync(Player.UserId)
	Joins.Value = Joins.Value + 1
end)

game.Players.PlayerAdded:Connect(function(Player)
	DS1:GetAsync(Player.UserId, Player.leaderstats.Joins.Value)
end)

2 answers

✓ Accepted answer

You didn't create a leaderstats folder. Also you're using 2 PlayerAdded events. My advice is to consolidate everything into one event. (Note: I'll be putting --comments for anything critical.)

local DS = get:GetService("DataStoreService")
local DS1 = DS:GetDataStore("SaveJoins")

game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder") --You need to create a folder.
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player
	
	local joins = Instance.new("IntValue") --do not use the 2nd parameter of Instance.new() as it is somewhat slower, and considered deprecated.
	joins.Name = "Joins"
	joins.Parent = leaderstats
 end)

Edit: At asker's request, I sent a link to Devking's DataStoreService video. DataStoreService

It Doesn't Look Like You Made A leader stats folder. Unless You Made It in Another Script. If You Have Just Delay It. But If You Haven't Then Make A New Instance.

This Script Might Work IF You Haven't Made A leaderstats Folder

local DS = game:GetService("DataStoreService")
	local DS1 = DS:GetDataStore("SaveJoins")
	 
	game.Players.PlayerAdded:Connect(function(Player)
	    local leaderstats = Instance.new("Folder")
	    leaderstats.Name = "leaderstats"
	    leaderstats.Parent = Player

	    local Joins = Instance.new("IntValue", leaderstats)
	    Joins.Name = "Joins"
	    Joins.Value = DS1:GetAsync(Player.UserId)
	    Joins.Value = Joins.Value + 1
	end)
	 
	game.Players.PlayerAdded:Connect(function(Player)
	    DS1:GetAsync(Player.UserId, Player.leaderstats.Joins.Value)
	end)

1 comment

0

Why do you capitalise every word?

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