Engine

SoundGroup

Show Deprecated

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

SoundGroups

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

Properties

Volume

read parallel

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

SoundGroups

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

Methods

Events