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

How can I FIX INDEX NIL WHITH LEADERSTATS?

it says in the output trying to index nil with leaderstats

Local TycoonNumber = 1

script.Parent.Touched:Connect(function(player) if player.Parent.Owner.Value == 1 then if game.Players.LocalPlayer.leaderstats.Money.Value <= 0 then game.ServerStorage.Buyable_Items.Droppers.Dropper1.Parent = game.Workspace.A end end end)

if it is impossable to fix then please tell

2 answers

✓ Accepted answer
Local TycoonNumber = 1

script.Parent.Touched:Connect(function(hit) -- this is not the player
	local player = game.Players:GetPlayerFromCharacter(hit.Parent)
	if player.Parent.Owner.Value == 1 then 
		if game.Players.LocalPlayer.leaderstats.Money.Value <= 0 then
			game.ServerStorage.Buyable_Items.Droppers.Dropper1.Parent = game.Workspace.A 
		end 
	end 
end)

Since you are using the Touched function, which can only be used for server scripts, I'm assuming you're not using a local script. If so, in line 5, you are attempting to access the LocalPlayer, which you can only access from a local script. That's why it is returning nil. You can use game.Players:GetPlayerFromCharacter() on the parent of the "player" variable, then access the leaderstats from there.

local TycoonNumber = 1

script.Parent.Touched:Connect(function(player) 
	if player.Parent.Owner.Value == 1 then 
		local plr = game.Players:GetPlayerFromCharacter(player.Parent) -- gets the player from the character
		if plr.leaderstats.Money.Value <= 0 then -- NOW YOU CAN ACCESS THE LEADERSTATS
			game.ServerStorage.Buyable_Items.Droppers.Dropper1.Parent = game.Workspace.A 
		end 
	end 
end)

Hope it helps

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