Da playSound3D sowieso nur Client-seitig ist, macht es keinen großen Unterschied ob du getLocalPlayer() benutzt oder in deinem Argument source den Client übermittelst.
Edit// Ich nehme an das Argument source ist nicht richtig übertragen worden,da ich auch annehme,dass du die function button1func mit dem eventHandler('onClientGUIClick'....) verbunden hast und bei diese eventHandler die source nicht der Spieler ist,sondern das GUI-Element auf welches geklickt wurde .