How to give a player something if they reach a certain amount of kills

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    I want to make a system where when you get 100 kills, you get a new sword.

  2. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    Yes, I did. I tried to use"local function SwordGiver(player)if kills == 100 then game.ServerStorage.BlueSword.Parent = player.Backpack "(There’s a leaderboard script on top of that)

I am new to scripting as well as the dev forum so if I did anything wrong, please let me know!

I just need help in checking if the player has the amount of kills required, all in all.

function onHumanoidDied(humanoid, player)
local stats = player:findFirstChild(“leaderstats”)
if stats ~= nil then
local deaths = stats:findFirstChild(“Wipeouts”)
deaths.Value = deaths.Value + 1

	-- 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:findFirstChild(“leaderstats”)
if stats ~= nil then
local kills = stats:findFirstChild(“KOs”)
if killer ~= player then
kills.Value = kills.Value + 1

		else
			kills.Value = kills.Value - 1
			
		end
	end
end

end

local function SwordGiver(player)
if kills == 100 then
game.ServerStorage.BlueSword.Parent = player.Backpack
end
end

Second edit: I just realized I never called the function

Do you mind properly pasting in your current code so we can help you?
Format

--code

There, I pasted it. I hope you can see it!

Here is something that could work:

local Item = ServerStorage.Item--Item to be copied

kills.Changed:Connect(function()--Detects when kills change,
if kills == 100 then--if the kills are 100
local ClonnedItem = item:Clone()--clone the item
ClonnedItem.Parent = player.Backpack--set the item parent to the backpack
end)

This will not work copy and paste but is this something similar to what your looking for?

3 Likes

Yes, thank you. I think this’ll help me. :smiley:

Where do i place this script and do i place it as a local script as a simple script

ServerScriptService and put it in normal script, u need to make the “kills” variable too do the playeradded event and adjust it to fit