| |
|
| | local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
| | local SoundConfig = require(ReplicatedStorage:WaitForChild("Shared"):WaitForChild("SoundConfig"))
|
| | local SoundEvent = ReplicatedStorage:WaitForChild("Events"):WaitForChild("SoundEvent")
|
| |
|
| | local function playSound(soundName, position)
|
| | local soundId = SoundConfig[soundName]
|
| | if not soundId then return end
|
| |
|
| | local sound = Instance.new("Sound")
|
| | sound.SoundId = soundId
|
| | sound.Volume = SoundConfig.SFXVolume or 1
|
| | sound.RollOffMaxDistance = 100
|
| |
|
| | if position then
|
| | local att = Instance.new("Attachment")
|
| | att.WorldPosition = position
|
| | att.Parent = workspace.Terrain
|
| | sound.Parent = att
|
| | sound:Play()
|
| | sound.Ended:Once(function() att:Destroy() end)
|
| | else
|
| | sound.Parent = workspace
|
| | sound:Play()
|
| | sound.Ended:Once(function() sound:Destroy() end)
|
| | end
|
| | end
|
| |
|
| | SoundEvent.OnClientEvent:Connect(function(soundName, position)
|
| | playSound(soundName, position)
|
| | end)
|
| |
|