Here's the script : it is placed in an union in Workspace.
script.Parent.Touched:connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") and game.Players[hit.Parent.Name].PlayerGui.Sound1.IsPlaying==false then
game.Players[hit.Parent.Name].PlayerGui.Sound1:Play()
end
if hit.Parent:FindFirstChild("Humanoid") and game.Players[hit.Parent.Name].PlayerGui.Sound2.IsPlaying==true then
game.Players[hit.Parent.Name].PlayerGui.Sound2:Stop()
end
end)
Studio Play & Play Here : works Local Server | 1 Player : does not works InGame Does not works
With a output script I managed to see this : Sound1 is not a valid member of PlayerGui
BTW : before doing an anti virus scan and removing models in my game : the script above was entirely replaced by :
69
Now it no longer does it.

6 comments
You might wanna put use the :waitforchild?
And why would i use it anyway ? If someone touch the part and I do find first child humanoid then it will continue the stack if it finds the humanoid, else it won't continue...
Is FilteringEnabled on? If the sounds were created by a local script, then the server won't recognise that. Otherwise, try using WaitForChild.
Yes, FE is on and the sounds are placed in StarterGui, i'll try WaitForChild...
You should be using RemoteEvents for communicating with the server and client.
You need a server and client script for FE