(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

1 comment
But what is wrong with the script?