Getting Started
This module can be obtained using Pesde, a package manager for Roblox, or the Roblox Asset Store.
Pesde Configuration
Once Pesde is installed, run pesde init
on your project directory, and then add this module by using pesde add dancodesrbx/soundmanager --alias SoundManager
To install, run pesde install
within your project. Pesde will create a roblox_packages folder in your directory with the dependency.
Rojo Configuration
The roblox_packages folder created by Pesde should be synced into Roblox Studio through your Rojo configuration. For instance, a Rojo configuration might have the following entry to sync the roblox_packages folder into ReplicatedStorage:
{
"name": "sound-manager-example",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"$className": "ReplicatedStorage",
"Packages": {
"$path": "roblox_packages"
}
}
}
}
Usage Examples
Client
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Require SoundManager
local SoundManager = require(ReplicatedStorage.Packages.SoundManager)
-- Locate sounds
local Sounds = ReplicatedStorage.Packages.Sounds
-- Play sounds
SoundManager.Play(Sounds.Pop)
SoundManager.PlayAt(Sounds.Whack, Vector3.zero)
Server
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
-- Require SoundManager
local SoundManager = require(ReplicatedStorage.Packages.SoundManager)
-- Locate sounds
local Sounds = ReplicatedStorage.Packages.Sounds
-- An optional player list
local playersToSendTo = {Players.wastbo}
-- Play sounds
SoundManager.Play(Sounds.Pop, playersToSendTo)
SoundManager.PlayAt(Sounds.Whack, Vector3.zero, playersToSendTo)
Optimization
SoundManager uses buffers alongside a caching system to deliver optimal network usage.
Using an UnreliableRemoteEvent
ensures that sounds won't have a heavy impact on ping.