BLOXBUILDS
Discord
Back
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