Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How do I pass name of part that killed player trought events?

I have event called "PlayerDiedTo" that is supposted to pass names of things that killed the player to local script so it can check if the thing that killed player was named "CorrectPart"

I tried this but I just started learning about events and dont know how this works

local

local event = game.ReplicatedStorage.PlayerDiedTo
event.OnClientEvent:Connect(function(CorrectPart)
       if CorrectPart then
             print("Correct")
       else
             print("False")
       end
end)

server

script.Parent.Touched:Connect(function(Hit)
	if Hit and Hit.Parent and Hit.Parent:FindFirstChild("Humanoid")then
		if Hit.Parent:FindFirstChild("NPC") then --ignore this it just detects if hit parent is not an npc
			
		else
			Hit.Parent.Humanoid.Health = 0
			local event = game.ReplicatedStorage.PlayerDiedTo
			local CorrectPart= script.Parent
			event:FireAllClients(CorrectPart)
		end
	end
end)

1 answer

✓ Accepted answer

There is no need to pass it through events, just do this

--Script inside the tool you are using to kill someone (a sword for example)

Tool = script.Parent
Handle = Tool.Handle
local Player = game.Players:GetPlayerFromCharacter(Tool.Parent) or Tool.Parent.Parent --1. checks if there is a character (so if they are equipped the tool), if no then 2. checks the tool parent which is the backpack, and the backpack is parented to the player

Handle.Touched:Connect(function(hit)
	local Tagged = Instance.new("ObjectValue")
	Tagged.Name = "creator"
	Tagged.Value = Player
	Tagged.Parent = hit.Parent.Humanoid
	game:GetService("Debris"):AddItem(Tagged, 2)
end)



--Script inside the character (place inside startercharacterscripts)

local Character = script.Parent
local Humanoid = Character:WaitForChild("Humanoid")

Humanoid.Died:Connect(function()
	local creator = Humanoid:FindFirstChild("creator)
	if creator then
		local plr = creator.Value
		if plr and plr.leaderstats then
			plr.leaderstats.Kills.Value +=1 --replace with whatever you want to change, may be cash or something
		end
	end
end)

This discussion is preserved as it was. New answers, comments, and votes are closed.