I can't seem to figure out how to detect if a certain npc touched a part and then send a message (Not a player) Please Help! (Can't Use Discord)
✓ ANSWER ACCEPTED
How to detect if a npc touched a part?
1 answer
✓ Accepted answer
you can try this Add a remote event called "NPCPrint" or whatever you would like to the replicatedstorage.
game.Workspace.Part.Touched:Connect(function(Hit) --Event touch
if Hit.Parent.Name = "MyNPC" then --Check if the one who touched is the npc
print("MyNPC touched my párt") --Send a message that the npc has touched the part
game.ReplicatedStorage.NPCPrint:FireAllClients() --The server fires the remote event to all players on the server
script.Disabled = true
--Type the following two lines if you want the event to happen again
wait(10)
script.Disabled = false
end
end)
Then, go to StarterPlayer > StarterPlayerScripts. In there, add a LocalScript, type the following:
game.ReplicatedStorage.NPCPrint.OnClientEvent:Connect(function()
game.StarterGui:SetCore("ChatMakeSystemMessage", { --It will add a server message to all players with the following proterties:
Text = "The NPC has touched the part!" --Or change to whatever text the message will display
Color = Color3.fromRGB(0,0,0) --Or change to another color you would like
Font = Enum.Font.GothamBold --Or other font
TextSize = 18 --Or other size
})
end)
I think we are done! Hope it helps.
This discussion is preserved as it was. New answers, comments, and votes are closed.

5 comments
Do i correct the = "MyNPC" to == "MyNPC"?
Nevermind Got it working
How do I make it so that it will only run once because when it touches it now it will log it mutiple times
And how would i make it send a message in chat
Let me try to do it