I already get how to do the script it's just I don't get how to make it only for a client.. when a player touches the the part a sound appears instead of getting it viral it only shows for that cilent.
This is in terms of FE
, I suggest you use RemoteEvents
to gain your desired end-game. ROBLOX has pushed FE
as a requirement as of recently, therefore I highly suggest you read up on this as it is quite useful, yet should be something familiar with.
For the following Code below, please make sure to have inserted a RemoteEvent
in ReplicatedStorage
--// ServerScript - Child of Part. local ReplicatedStorage = game:GetService("ReplicatedStorage") local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent") local Part = workspace.Part local Sound = workspace.Sound Part.Touched:Connect(function(PartTouched) if (PartTouched.Parent:FindFirstChildOfClass("Humanoid")) then RemoteEvent:FireAllClients(Sound) --// Sends a signal to everyone end end) --// LocalScript - Child of StarterPlayerScripts local ReplicatedStorage = game:GetService("ReplicatedStorage") local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent") RemoteEvent.OnClientEvent:Connect(function(Sound) --// Receives the signal Sound:Play() end)
Though there is a simpler way with the Laws of FE
. Since the Server broadcasts to all Clients, have the Server play the Sound.
--// ServerScript - Child of Part. local Part = workspace.Part local Sound = workspace.Sound Part.Touched:Connect(function(PartTouched) if (PartTouched.Parent:FindFirstChildOfClass("Humanoid")) then Sound:Play() end end)
Yes, this is simpler, though I suggest the use of example one. As it can be applied in other scenarios this method cannot. It's also best to stretch out your idea of something new before taking the easier route.
Hope this helps! Remember to accept and upvote this answer if so! Have a nice day