SoundGroup
A SoundGroup is used to manage the volume and effects on multiple Sounds at once. Every sound in the sound group will have its volume adjusted by the group's SoundGroup.Volume property. If the SoundGroup has any SoundEffects as children, those effects will be applied to all of the Sounds in the group.
The SoundGroup.Volume property acts as a multiplier, and thus sounds in a SoundGroup will retain their relative volumes when it is set. This means if a sound's volume is 0.5 and it is assigned to a SoundGroup with a volume of 0.5, its effective volume will be 0.25.
Grouping sounds of the same category has several uses for developers. One common usage of a sound group is to assign all of the music that can play in game to a SoundGroup called "music." Players could then easily toggle all music on or off.
Setting sound groups
A Sound is added to a SoundGroup by setting the Sound.SoundGroup property of the Sound. A Sound can only be in one SoundGroup at a time. Whilst they can be parented elsewhere, it is recommended to keep SoundGroups parented to the SoundService. In the below example, a sound is parented to a SoundGroup called 'Music'.
Sound.SoundGroup = game:GetService("SoundService"):FindFirstChild("Music")
Code Samples
local SoundService = game:GetService("SoundService")
-- create a sound group
local soundGroup = Instance.new("SoundGroup")
soundGroup.Parent = SoundService
-- create a sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.PlaybackSpeed = 2
sound.SoundGroup = soundGroup
sound.Parent = workspace
-- play the sound
sound:Play()
task.wait(10)
-- change the volume
soundGroup.Volume = 0.1
task.wait(3)
-- return the volume
soundGroup.Volume = 0.5
task.wait(4)
-- add a sound effect
local reverb = Instance.new("ReverbSoundEffect")
reverb.Parent = soundGroup
Summary
Properties
The volume multiplier applied to Sounds that are in the SoundGroup. This value ranges from 0 to 10.
Properties
Volume
The volume multiplier applied to Sounds that are in the SoundGroup. This value ranges from 0 to 10.
This property acts as a multiplier, and thus sounds in a SoundGroup will retain their relative volumes when it is set. This means if a sound's Sound.Volume is 0.5 and it is assigned to a SoundGroup with a volume of 0.5, its effective volume will be 0.25.
Code Samples
local SoundService = game:GetService("SoundService")
-- create a sound group
local soundGroup = Instance.new("SoundGroup")
soundGroup.Parent = SoundService
-- create a sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.PlaybackSpeed = 2
sound.SoundGroup = soundGroup
sound.Parent = workspace
-- play the sound
sound:Play()
task.wait(10)
-- change the volume
soundGroup.Volume = 0.1
task.wait(3)
-- return the volume
soundGroup.Volume = 0.5
task.wait(4)
-- add a sound effect
local reverb = Instance.new("ReverbSoundEffect")
reverb.Parent = soundGroup