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

How do you check the name of the part another part touched?

This is my script so far; it is set as the child of a hitbox:

local debounce = false

script.Parent.Touched:connect(function(hit)
	if debounce == false then
		print("1")
		if not script.Parent.Name == hit.Parent.Name then
			print("2")
			if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
				print("3")
				debounce = true
				hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - 10
				hit.Parent.Humanoid.WalkSpeed = 8
				wait(1)
				hit.Parent.Humanoid.WalkSpeed = 16
				debounce = false
			end
		end
	end
end)

In line 6, I try to check if the script's parent's name is equal to the part it hit's name, but i think i did "hit.Parent.Name then" wrong. Any suggestions?

1 answer

✓ Accepted answer

It looks like the checks are to make sure that it's a player you're touching. In that case, try this:

local debounce = false

script.Parent.Touched:Connect(function(hit)
	if not debounce then -- make sure debounce is set to false
		debounce = true
		local player = game.Players:GetPlayerFromCharacter(hit.Parent)
		if player then -- make sure we don't work with a nil value, so the next part can only be performed when it's a player we are touching
			print(player.Name) -- This will print the player's name
			local character = player.Character -- this is the player's avatar in Workspace
			
			character.Humanoid.Health -= 10 -- take away 10 from health
			character.Humanoid.WalkSpeed = 8
			wait(1)
			character.Humanoid.WalkSpeed = 16

			debounce = false
		end
	end
end)

1 comment

0

Thanks.

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