COMBAT
Kill / Death Counter
Paste into ServerScriptService as a Script. Adds Kills and Deaths leaderstats. A death is counted on respawn, and a kill is counted when the victim has a creator tag from Sword, Gun, or Fireball.
-- Paste into ServerScriptService as a Script.
-- Sword Tool, Raycast Gun, and Fireball write a creator tag this script reads.
local Players = game:GetService("Players")
local function stat(player: Player, name: string): IntValue
local leaderstats = player:FindFirstChild("leaderstats")
if not leaderstats then
leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
end
local value = leaderstats:FindFirstChild(name)
if not value then
value = Instance.new("IntValue")
value.Name = name
value.Value = 0
value.Parent = leaderstats
end
return value :: IntValue
end
local function hookCharacter(player: Player, character: Model)
local humanoid = character:WaitForChild("Humanoid") :: Humanoid
humanoid.Died:Connect(function()
stat(player, "Deaths").Value += 1
local creator = humanoid:FindFirstChild("creator")
if creator and creator:IsA("ObjectValue") and creator.Value and creator.Value:IsA("Player") and creator.Value ~= player then
stat(creator.Value, "Kills").Value += 1
end
end)
end
local function hookPlayer(player: Player)
stat(player, "Kills")
stat(player, "Deaths")
player.CharacterAdded:Connect(function(character)
hookCharacter(player, character)
end)
if player.Character then
hookCharacter(player, player.Character)
end
end
Players.PlayerAdded:Connect(hookPlayer)
for _, player in ipairs(Players:GetPlayers()) do
hookPlayer(player)
end