Hi, I am creating a game where the game will need to save and update the KO's. But, to accomplish that, the game needs to track KO's. How would I even BEGIN to do this?!
✓ ANSWER ACCEPTED
How to track a player's KO's in a game?
1 answer
✓ Accepted answer
Here, maybe this could help get you started:
local Players = game.Players
local Template = Instance.new 'BoolValue'
Template.Name = 'leaderstats'
Instance.new('IntValue', Template).Name = "Kills"
Instance.new('IntValue', Template).Name = "Deaths"
Players.PlayerAdded:connect(function(Player)
wait(1)
local Stats = Template:Clone()
Stats.Parent = Player
local Deaths = Stats.Deaths
Player.CharacterAdded:connect(function(Character)
Deaths.Value = Deaths.Value + 1
local Humanoid = Character:FindFirstChild "Humanoid"
if Humanoid then
Humanoid.Died:connect(function()
for i, Child in pairs(Humanoid:GetChildren()) do
if Child:IsA('ObjectValue') and Child.Value and Child.Value:IsA('Player') then
local Killer = Child.Value
if Killer:FindFirstChild 'leaderstats' and Killer.leaderstats:FindFirstChild "Kills" then
local Kills = Killer.leaderstats.Kills
Kills.Value = Kills.Value + 1
end
return
end
end
end)
end
end)
end)
So pretty much in this script, its a leaderboard for the players kills and deaths. Now, if you were wanting to just have the KO's and not have the deaths, it would look something like this:
local Players = game.Players
local Template = Instance.new 'BoolValue'
Template.Name = 'leaderstats'
Instance.new('IntValue', Template).Name = "KO's" --- Name of what you want your scoreboard to say EX: Kills, KO's
Players.PlayerAdded:connect(function(Player)
wait(1)
local Stats = Template:Clone()
Stats.Parent = Player
Player.CharacterAdded:connect(function(Character)
local Humanoid = Character:FindFirstChild "Humanoid" ---- Naming the humanoid in the game.
if Humanoid then
Humanoid.Died:connect(function() --- On the players death, these lines of code run.
for i, Child in pairs(Humanoid:GetChildren()) do
if Child:IsA('ObjectValue') and Child.Value and Child.Value:IsA('Player') then
local Killer = Child.Value
if Killer:FindFirstChild 'leaderstats' and Killer.leaderstats:FindFirstChild "Kills" then
local Kills = Killer.leaderstats.Kills
Kills.Value = Kills.Value + 1 ---- Adds 1 to the Kill value or in your case, the KO value.
end
return
end
end
end)
end
end)
end)
In this script, I removed the new instance stated deaths, and all of the death coding in the script. I also changed the name of Kills to KO's for you. Hopefully this helps you at all.
This discussion is preserved as it was. New answers, comments, and votes are closed.

1 comment
Thanks! Finally, I can continue with my game :D