Area Sound Kit [v5.2]
What is it?
“Area Sound Kit” is a free model that I started back in 2016, when I was still relatively new to Roblox scripting. At the time, I began making a number of modular and self-contained free model assets. The idea was that I wanted the user to be able to insert them into a game and not have to do any further setup except for fine tuning, aka an “out-of-the-box” experience.
Over the years, my scripts have either stopped working, or I’ve added new features since then. It was brought to my attention recently that Area Sound Kit [v4] (from 2019) had stopped working, and I’ve decided to completely remake it for [v5]. Why now? Even though this is a very simple system, I feel the need to keep my old assets up-to-date, even if they’re as old as some of them are.
Older Versions:
Area Sound Kit [v1-v2]
Area Sound Kit [v3]
Area Sound Kit [v4]
What does it do?
As the model description has (almost) always said:
A part that smoothly transitions between music when touched by a player.
Sound only changes for the player that touched it.Duplicate model for transitions.
Update History
What’s new with [v5]?
- Complete Overhaul (Again)
- Easier Sound Controls
- Support for multiple sound systems (Including SFX)
- Automatic sound controls (Clean + Spam Proof)
New with [v5.1]:
- PlaybackSpeed Support
- PlaybackSpeedTween Attribute
- PlaybackSpeedTransitionSpeed Attribute
New with [v5.1a]:
- Minor fix regarding TimePosition not resuming properly when KeepSoundPosition is enabled (and AutoSoundPosition is disabled).
New with [v5.2]:
- Added transition for when the SoundId of the active sound has been changed via the Sound Part’s setting’s sound instance.
Example?
Here’s a video showing the auto sound systems in action:
Higher Quality Video
The music will only start over if the trigger hasn’t been touched within a given length of time. There’s also clean spam protection to avoid awkward transitioning moments.
There was also a trigger used for a SFX that won’t interfere with the other system (as [v5] supports multiple sound systems at the same time), and also had a trigger delay so that the SFX wouldn’t be spammed.
What are the controls?
You can edit the properties of the sound object however you please. Note that the name of the sound object must be the same for all connected sound triggers. If you want multiple trigger systems, each system must use its own sound name.
Further options can be found in the Settings’ Attributes:
AutoPositionTimeout: Controls when the sound’s TimePosition is returned to 0 (for AutoSoundPosition).
AutoSoundPosition: Controls whether or not the sound’s TimePosition is handled automatically.
AutoTransparent: Controls whether or not the trigger part’s transparency is automatically set to 1 during runtime.
Enabled: Controls whether or not the trigger is active. This will also pause the sound if the current sound is the same as the trigger.
(Acts similarly to touching a different sound trigger.)
KeepSoundPosition: Controls whether or not sound is resumed instead of starting over (overwritten by AutoSoundPosition).
TransitionSpeed: Controls the speed at which the sound transitions from the last SoundId to the new one.
(The TransitionSpeed from the newly touched trigger is the only one taken into account.)
TriggerDelay: Controls the delay until when the trigger is active again (does not use “Enabled”). Example usage would be for SFX.
(It’s recommended to rename the sound object to something else, that way it doesn’t conflict with the other sound systems.)
PlaybackSpeedTween: Toggles if the PlaybackSpeed property has a tweened transition when triggering sound parts with the same SoundId but different PlaybackSpeeds.
PlaybackSpeedTransitionSpeed: Controls the transition speed of the PlaybackSpeed property.
This will be ignored if PlaybackSpeedTween is disabled.
Setting this attribute to 0 will use the TransitionSpeed attribute for the transition speed instead.
Where can I get it?
You can get it right here: https://create.roblox.com/store/asset/12868646360/Area-Sound-Kit-v5_2
(CC BY-SA)
Feel free to ask if you have any questions or if something doesn’t appear to be working correctly.