(Disclaimer) The Value points, is the child of player, not leaderstats.
function onHumanoidDied(humanoid, player) local stats = player if stats ~= nil then local deaths = stats:findFirstChild("Points") if deaths then deaths.Value = deaths.Value - 10 end -- do short dance to try and find the killer local killer = getKillerOfHumanoidIfStillInGame(humanoid) handleKillCount(humanoid, player) end end function onPlayerRespawn(property, player) -- need to connect to new humanoid if property == "Character" and player.Character ~= nil then local humanoid = player.Character.Humanoid local p = player local h = humanoid humanoid.Died:connect(function() onHumanoidDied(h, p) end ) end end function getKillerOfHumanoidIfStillInGame(humanoid) -- returns the player object that killed this humanoid -- returns nil if the killer is no longer in the game -- check for kill tag on humanoid - may be more than one - todo: deal with this local tag = humanoid:findFirstChild("creator") -- find player with name on tag if tag ~= nil then local killer = tag.Value if killer.Parent ~= nil then -- killer still in game return killer end end return nil end function handleKillCount(humanoid, player) local killer = getKillerOfHumanoidIfStillInGame(humanoid) if killer ~= nil then local stats = killer if stats ~= nil then local kills = stats:findFirstChild("Points") if kills then if killer ~= player then kills.Value = kills.Value + 10 else kills.Value = kills.Value - 10 end else return end end end end
nothing appears in script analysis or output