So I have this "perfect" code:
--Define your player
local plr = game.Players.LocalPlayer
script.Parent.Handle.Touched:connect(function(hit)
--Checks to make sure it's a player
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
if plr then
--Create the tag, place it in their Humanoid
local tag = Instance.new('ObjectValue',hit.Parent.Humanoid)
tag.Name = 'creator'
-- value = player instance
tag.Value = plr
wait(.5)
local holder = game.Players:GetPlayerFromCharacter(script.Parent.Parent)
local holderLevel = holder.leaderstats.Level
if tag.Parent.Died:connect(script.Parent.Parent) then
holderLevel.Value = holderLevel.Value + 1
--Tag Expire
wait(.5)
tag:Destroy()
end
end
end)
It works fine but the problem is it's awarding level + 1 whenever the person comes in contact with the object. Could you please help solve this? Thanks.

2 comments
Technically it is not perfect because their is a problem; but nothing is perfect.
Why do you have an event inside the if statement? That may be the reason.