Im trying to make an zone system using teleport pads It's in an Script it gives me : Workspace.Zones.Portal1.TeleportPads.Part1.Script:7: attempt to index nil with 'leaderstats'
--By zamsongod.
--Unlike Clockwork's teleporter, this one teleports ANYTHING not just people!
--Make sure the Part to teleport to is in the same group as this Part.
--Feel FREE to Copy, Abuse and Covet!
local player = game:GetService("Players")
local plr = player.LocalPlayer
local leaderstats = plr.leaderstats
local Teleport = "Part2" --Put the name of the Part between the ""s.
function Touch(hit) --Indicates that the Part has been Touched.
if leaderstats.Prestige.Value >= 1 then
if script.Parent.Locked == false and script.Parent.Parent:findFirstChild(Teleport).Locked == false then script.Parent.Locked = true script.Parent.Parent:findFirstChild(Teleport).Locked = true --Checks Debounce.
local Pos = script.Parent.Parent:findFirstChild(Teleport) --Gets the Part to teleport to.
hit.Parent:moveTo(Pos.Position) wait(1) script.Parent.Locked = false script.Parent.Parent:findFirstChild(Teleport).Locked = false end end --Takes you there and Ends the Function.
end
script.Parent.Touched:connect(Touch) --Listens out for Touchers.

4 comments
Is this a LocalScript?
It Index's as a nil because there is no 'leaderstats' within plr. If there is a leaderboard you'll need to specify it as "leaderstats" and if it is already it needs to be within the StarterPlayerScripts. You can also rewrite and create an Instance where you can create a leaderboard within the script.
i already have an leaderstats, and it's in a Script not localscript
If you already have a leaderboard system in-game change the leaderstats variable to local leaderstats = game:FindFirstChild("Leaderboard") -- Leaderboard being whatever the leaderboard name is