Skip to content

SoundService

Supported Class Services NotCreatable Service

A service that determines various aspects of how the audio engine works. Most of its properties affect how Sounds play in the experience.

7 Nova members · 36 modern Roblox members not implemented yet

Description

A service that determines various aspects of how the audio engine works. Most of its properties affect how Sounds play in the experience, while others affect the behavior of instances in the advanced audio system such as AudioPlayers and AudioEmitters.

SoundService is also often used to store SoundGroups, although this is not mandatory for groups to work.

Inheritance

Object → Instance → SoundService

Nova inheritance: Instance → SoundService

Properties

AmbientReverb Supported Property The ambient sound environment preset applied to all Sounds.
AmbientReverb: ReverbType

The ambient sound environment preset applied to all Sounds.

A reverb preset that should be applied to all Sounds in the experience.

Each ReverbType option for this property corresponds to a preset available in the FMOD sound engine. For example, when AmbientReverb is set to ReverbType.Hangar, Sounds will have reverb applied to simulate being in a large enclosed space.

Note that this only affects Sounds and not instances in the advanced audio system such as AudioPlayers and AudioEmitters. See AudioReverb for a way to apply reverb in that system.

Roblox documentation

DistanceFactor Supported Property The number of studs to be considered a meter by SoundService when simulating the Doppler effect for Sounds.
DistanceFactor: float

The number of studs to be considered a meter by SoundService when simulating the Doppler effect for Sounds. This impacts any Sound parented to a BasePart or Attachment.

By default, this property is 3.33, meaning that a meter is considered 3.33 studs for the purposes of simulating the Doppler effect. The greater the DistanceFactor, the faster the listener has to travel relative to Sounds in order to experience the same Doppler shift.

It's recommended that you only change this property if the objects in your experience are scaled differently from what they represent. For example, if your character is meant to be very small (but is normal-sized in the engine), you may want to increase SoundService.DistanceFactor.

Note that this does not impact the behavior of instances in the advanced audio system, such as AudioPlayer or AudioEmitter.

Roblox documentation

DopplerScale Supported Property Degree to which the pitch of a Sound varies due to the Doppler effect.
DopplerScale: float

This property determines the degree to which the pitch of a Sound varies due to the Doppler effect. This impacts any Sound parented to a BasePart or Attachment.

The Doppler effect is a phenomenon whereby the pitch of a sound changes as the source and observer of the sound move further away or closer together, which is stronger the more quickly they are moving. Increasing SoundService.DopplerScale exaggerates the impact of this effect, whereas decreasing it minimizes it. By default, the value of this property is 1.

Note that this does not impact the behavior of instances in the advanced audio system, such as AudioPlayer or AudioEmitter.

Roblox documentation

RolloffScale Supported Property Determines how fast the volume of a Sound attenuates beyond its Sound.RollOffMinDistance.
RolloffScale: float

Determines how fast the volume of a Sound attenuates beyond its Sound.RollOffMinDistance.

Determines how fast the volume of a spatialized Sound attenuates. This impacts any Sound parented to a BasePart or Attachment.

A higher RolloffScale means the volume of a Sound will attenuate more rapidly as the distance between the listener and the Sound grows. More precisely, the volume of the Sound will still start attenuating at a distance equal to Sound.RollOffMinDistance, but the attenuation curve will be steeper or more gradual based on the value of RolloffScale. Note that the Sound will still be inaudible past its the Sound.RollOffMaxDistance regardless of the value of SoundService.RolloffScale.

Note that this property does not affect the behavior of instances in the advanced audio system, such as AudioEmitter. See AudioEmitter.SetDistanceAttenuation for a way to apply custom attenuation in that system.

Roblox documentation

Methods

GetListener Supported Function Returns the current listener type used by Sounds, as well as what that listener is currently set to.
SoundService:GetListener(): Tuple

Returns the current listener type used by Sounds, as well as what that listener is currently set to.

Returns the current listener type used by Sounds and what object or position that listener is currently set to. This is the point from which Sound audio in the experience is heard by the player. By default, the listener is set to Workspace.CurrentCamera. The listener can be changed using SetListener().

Note that this does not affect the listener location when using the advanced audio system. See AudioListener for a way to set the listener location in that system.

Roblox documentation

PlayStockSound Supported Function
SoundService:PlayStockSound(SoundType sound)

No description available.

Security: RobloxScriptSecurity

Roblox documentation

SetListener Supported Function Sets the listener used by Sounds.
SoundService:SetListener(ListenerType listenerType, Tuple listener)

Sets the listener used by Sounds.

Sets the listener type for any Sounds in the experience, which defines the point from which Sound audio in the experience is heard by the player. For Sounds parented to a BasePart or Attachment, the listener influences the volume and left/right balance of a playing sound. By default, this listener is set to Workspace.CurrentCamera.

Note that this does not affect the listener location when using the advanced audio system. See AudioListener for a way to set the listener location in that system.

Roblox reference signature
SoundService:SetListener(listenerType: ListenerType, listener: Tuple): null

Roblox documentation

Inherited members

Inherited from Instance: 8 properties, 36 methods, 7 events. They are documented on the base class page.

36 modern Roblox member(s) are not implemented yet — expand to inspect

Members declared by Roblox's SoundService class (or by a missing base class) that Nova does not expose. Use this list to scope a migration; the compatibility guide has the recommended workaround.

Properties

Member Signature Status Notes Flags
AcousticSimulationEnabled AcousticSimulationEnabled: bool Not yet Determines whether acoustic simulation is enabled globally in the advanced audio system. —
CharacterSoundsUseNewApi CharacterSoundsUseNewApi: RolloutState Not yet Determines whether the default character sounds will use instances in the advanced audio system vs. Sounds. read None / write PluginSecurity
DefaultListenerLocation DefaultListenerLocation: ListenerLocation Not yet Determines where (if anywhere) to place an AudioListener by default. PluginSecurity
DiffractionEnabled DiffractionEnabled: bool Not yet — —
ListenerCFrame ListenerCFrame: CFrame Not yet The CFrame that is used as the listener's position if ListenerType is set to [ListenerType.CFrame](../enums/Lis… —
ListenerObject ListenerObject: Instance Not yet The Instance whose translation or coordinate frame is used as the listener's position if ListenerType is set to [ListenerT… —
ListenerType ListenerType: ListenerType Not yet The current listener type used by 3D Sounds to determine where they will be heard from. —
OcclusionEnabled OcclusionEnabled: bool Not yet — —
RespectFilteringEnabled RespectFilteringEnabled: bool Not yet Sets whether Sound playback from a client will replicate to the server. —
ReverbEnabled ReverbEnabled: bool Not yet — —

Methods

Member Signature Status Notes Flags
BeginRecording SoundService:BeginRecording(): bool Not yet — RobloxScriptSecurity
EndRecording SoundService:EndRecording(): Dictionary Not yet — Yields, RobloxScriptSecurity
GetAudioApiByDefault SoundService:GetAudioApiByDefault(): bool Not yet — RobloxScriptSecurity
GetAudioInstances SoundService:GetAudioInstances(): Array Not yet — RobloxScriptSecurity
GetInputDevice SoundService:GetInputDevice(): Tuple Not yet — RobloxScriptSecurity
GetInputDevices SoundService:GetInputDevices(): Tuple Not yet — RobloxScriptSecurity
GetMixerTime SoundService:GetMixerTime(): double Not yet Returns a number in seconds which increases as the audio engine mixes. —
GetOutputDevice SoundService:GetOutputDevice(): Tuple Not yet — RobloxScriptSecurity
GetOutputDevices SoundService:GetOutputDevices(): Tuple Not yet — RobloxScriptSecurity
GetRecordingDevices SoundService:GetRecordingDevices(): Dictionary Not yet — Yields, RobloxScriptSecurity
GetSoundMemoryData SoundService:GetSoundMemoryData(): Dictionary Not yet — RobloxScriptSecurity
InsertAsset SoundService:InsertAsset(assetId: ContentId, assetName: string, useSelection: bool = true): Instances Not yet — RobloxScriptSecurity
OpenAttenuationCurveEditor SoundService:OpenAttenuationCurveEditor(selectedCurveObjects: Instances): null Not yet Opens the attenuation curve editor in Studio for the provided AudioEmitter or AudioListener instances. PluginSecurity
OpenDirectionalCurveEditor SoundService:OpenDirectionalCurveEditor(selectedCurveObjects: Instances): null Not yet Opens the directional curve editor in Studio for the provided AudioEmitter or AudioListener instances. PluginSecurity
PlayLocalSound SoundService:PlayLocalSound(sound: Instance): null Not yet Plays a copy of a Sound locally, such that it will only be heard by the client calling this method. —
SetAudioApiByDefault SoundService:SetAudioApiByDefault(enabled: bool): null Not yet — RobloxScriptSecurity
SetInputDevice SoundService:SetInputDevice(nameOrInstance: Variant, guidOrPin: string): null Not yet — —
SetOutputDevice SoundService:SetOutputDevice(name: string, guid: string): null Not yet — RobloxScriptSecurity
SetRecordingDevice SoundService:SetRecordingDevice(deviceIndex: int): bool Not yet — RobloxScriptSecurity
SetSoundEnabled SoundService:SetSoundEnabled(enabled: bool): null Not yet — RobloxScriptSecurity

Events

Member Signature Status Notes Flags
AudioInstanceAdded AudioInstanceAdded(instance: Instance) Not yet — RobloxScriptSecurity
DeviceListChanged DeviceListChanged(newDevices: Tuple) Not yet — RobloxScriptSecurity
OpenAttenuationCurveEditorSignal OpenAttenuationCurveEditorSignal(selectedCurveObjects: Instances) Not yet — RobloxScriptSecurity
OpenAudioCompressorEditorSignal OpenAudioCompressorEditorSignal(selectedCompressorObjects: Instances) Not yet — RobloxScriptSecurity
OpenAudioEqualizerEditorSignal OpenAudioEqualizerEditorSignal(selectedEqualizerObjects: Instances) Not yet — RobloxScriptSecurity
OpenDirectionalCurveEditorSignal OpenDirectionalCurveEditorSignal(selectedCurveObjects: Instances) Not yet — RobloxScriptSecurity

Roblox reference: SoundService

Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.