Allow parenting SoundEffect instances to the SoundService to apply effects globally

Right now, applying effects to every sound in a place requires adding the sounds to a SoundGroup instance, and applying the effects to that group. This is a difficult method to apply to an existing game where there are dozens of sounds already created. I have to procedurally iterate through the entire game’s hierarchy and add every sound to a single group, and then put the effects I need in the group.

My primary use cases are for things like status effects in the game, for example, when critically harmed, all of the sounds in the game should be muffled out. This isn’t very easy to do right now, and being able to do effects like this would greatly improve immersion in my game.

14 Likes

This is pretty funny, because I tried doing this in the past assuming that it would work. It feels like it should be a common-sense method a developer can carry out, but that’s not quite the case.

However, would this apply to all sounds, or just those under SoundService and Workspace?

1 Like

I believe it should apply to all sounds personally. In a sense, the effect would apply to the result audio just before it’s sent to the audio device.

For consistency’s sake, it might be a good idea to have exclusions e.g. in PlayLocalSound (which doesn’t apply effects, though that might actually be a bug) so that certain specific sounds can still be played without the effect.

4 Likes