I've already found a somewhat cheap way to do this. I inserted an invisible uncollidable part and inserted the following script:
local debounce=false local sp=script.Parent function T(hit) local h=hit.Parent local p=h.Name local g=game:GetService("Players") local h=g:findFirstChild(hit.Parent.Name) if debounce==false then h.PlayerGui.Folder.Music2:Stop() end if debounce==false then h.PlayerGui.Folder.Music:Play() end debounce=true wait(1) debounce=false end script.Parent.Touched:connect(T)
There's a folder inside startergui that has all the music files I need. It stops all other music and starts up the one to be played.
This method works, but I'm searching for a better one. Please Help.
Use GUIs, Yes I have done this many times before.
I put the sound objects into player's GUI and then play it, This way the sound is heard only to that individual player :O