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

Leaderboard Script Broke?

game.Players.PlayerAdded:connect(function(Player)

	function Leaderstats()
		leaderstats = Instance.new("IntValue")
		leaderstats.Parent = Player
		leaderstats.Name = "leaderstats"
	end

	function PowerLevel()
		PowerLevel = Instance.new("IntValue")
		PowerLevel.Parent = Player:FindFirstChild("leaderstats")
		PowerLevel.Name = "Power Level"
	end

	function Attack()
		Attack = Instance.new("IntValue")
		Attack.Parent = Player:FindFirstChild("leaderstats")
		Attack.Name = "Attack"
		Attack.Value = 25
	end

	function Defense()
		Defense = Instance.new("IntValue")
		Defense.Parent = Player:FindFirstChild("leaderstats")
		Defense.Name = "Defense"
		Defense.Value = 25
	end

	function Agility()
		Agility = Instance.new("IntValue")
		Agility.Parent = Player:FindFirstChild("leaderstats")
		Agility.Name = "Agility"
		Agility.Value = 25
	end
	
	function Energy()
		Energy = Instance.new("IntValue")
		Energy.Parent = Player:FindFirstChild("leaderstats")
		Energy.Name = "Energy"
		Energy.Value = 25
	end

	function Rank()
		Rank = Instance.new("StringValue")
		Rank.Parent = Player:FindFirstChild("leaderstats")
		Rank.Name = "Rank"
		Rank.Value = ""
	end
	
	function SetValue()
		leaderstats = Player:FindFirstChild("leaderstats")
		PowerLevel = Player.leaderstats:FindFirstChild("PowerLevel")
		Attack = Player.leaderstats:FindFirstChild("Attack")
		Defense = Player.leaderstats:FindFirstChild("Defense")
		Agility = Player.leaderstats:FindFirstChild("Agility")
		Energy = Player.leaderstats:FindFirstChild("Energy")
		Rank = Player.leaderstats:FindFirstChild("Rank")
		
		PowerLevel.Value = Attack.Value + Defense.Value + Agility.Value + Energy.Value
	end
	
	Leaderstats()
	PowerLevel()
	Attack()
	Defense()
	Agility()
	Energy()
	Rank()	
	SetValue()
		
end)

The output focuses more on

	function SetValue()
		leaderstats = Player:FindFirstChild("leaderstats")
		PowerLevel = Player.leaderstats:FindFirstChild("PowerLevel")
		Attack = Player.leaderstats:FindFirstChild("Attack")
		Defense = Player.leaderstats:FindFirstChild("Defense")
		Agility = Player.leaderstats:FindFirstChild("Agility")
		Energy = Player.leaderstats:FindFirstChild("Energy")
		Rank = Player.leaderstats:FindFirstChild("Rank")
		
		PowerLevel.Value = Attack.Value + Defense.Value + Agility.Value + Energy.Value
	end
	
	Leaderstats()
	PowerLevel()
	Attack()
	Defense()
	Agility()
	Energy()
	Rank()	
	SetValue()
		
end)

Output:

zars15's CFrame loaded 22:16:03.684 - ServerScriptService.Leaderboard:59: attempt to index global 'PowerLevel' (a nil value) 22:16:03.685 - Stack Begin 22:16:03.686 - Script 'ServerScriptService.Leaderboard', Line 59 - global SetValue 22:16:03.687 - Script 'ServerScriptService.Leaderboard', Line 69 22:16:03.688 - Stack End 22:16:03.689 - Disconnected event because of exception 22:17:32.284 - Auto-Saving...

2 answers

I dont know if this is going to help but when you define PowerLevel as a child of Player you are finding it in game.Players.PLAYERNAME.PowerLevel and unless this is your proper intention to have it here there that is why it has a nil because it might not exist there. This is just an answer for the first problem.

2 comments

0

Im finding it in game.Players.leaderstats How do I fix it?

0

Well did you want it to put it there or are you wanting it to be in the game.Workspace.PLAYERNAME.PowerLevel?

I highly suggest you do not create a function for each value. Instead, create one function for all of them. Also, I suspect that you get the PowerLevel output error because you are searching for PowerLevel before it actually comes into existence. Before I provide a code fix, may I ask whether or not the script actually inserts the values into the Player or not? (If you don't know how to check, start a Solo Server, not play solo, and then go into the Player in the players menu and check if the values are there or not.)

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