skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
el4cteo/roblox-skills98 installs

roblox-audio

Sound and music - the Audio API (AudioPlayer, AudioEmitter, AudioListener, AudioDeviceOutput, Wire, effects, faders), classic Sound/SoundGroup, 2D vs 3D audio, music and SFX volume, client vs server playback, asset permissions, streaming caveats, voice routing, text-to-speech. Use when adding music, sound effects, spatial audio, mixing, or fixing sounds that don't play.

How do I install this agent skill?

npx skills add https://github.com/el4cteo/roblox-skills --skill roblox-audio
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides instructional content and code snippets for using Roblox's Audio API and classic Sound system. No security risks were identified.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Roblox audio

Two systems coexist:

  • Audio API (modular, current): AudioPlayer → Wire → (AudioEmitter … AudioListener) → Wire → AudioDeviceOutput, with effect objects inserted in the chain. Required for voice-chat processing, mixing graphs, analyzers, text-to-speech/speech-to-text.
  • Sound (classic, still supported): one object, parented to a part for 3D or to SoundService/UI for 2D; routed through SoundGroups with SoundEffect children. Fine for simple games and existing code.

Don't mix both for the same feature; follow what the project uses.

2D audio (music, UI) with the Audio API

--!strict
-- Client: build a music player once.
local SoundService = game:GetService("SoundService")

local player = Instance.new("AudioPlayer")
player.Name = "Music"
player.Asset = "rbxassetid://1843463175" -- AudioPlayer.AssetId is deprecated; use Asset
player.Looping = true
player.Volume = 0.5
player.Parent = SoundService

local fader = Instance.new("AudioFader") -- one place to control music volume (settings menu)
fader.Name = "MusicVolume"
fader.Parent = SoundService

local output = Instance.new("AudioDeviceOutput")
output.Parent = SoundService

local function wire(source: Instance, target: Instance)
	local w = Instance.new("Wire")
	w.SourceInstance = source
	w.TargetInstance = target
	w.Parent = target
end

wire(player, fader)
wire(fader, output)
player:Play()

3D audio with the Audio API

  • Put an AudioEmitter on the sound's part/attachment; wire AudioPlayer → AudioEmitter.
  • Listening: SoundService.ListenerLocation controls the default AudioListener (camera or character); wire AudioListener → AudioDeviceOutput (done automatically in default setups).
  • Distance falloff and directionality are set on the emitter/listener (AudioEmitter:SetDistanceAttenuation, the AudioInteractionGroup string property on emitters and listeners scopes who hears what).

Classic Sound quick reference

--!strict
local SoundService = game:GetService("SoundService")

local sfxGroup = Instance.new("SoundGroup")
sfxGroup.Name = "SFX"
sfxGroup.Volume = 0.8
sfxGroup.Parent = SoundService

local function playAt(part: BasePart, soundId: string)
	local sound = Instance.new("Sound")
	sound.SoundId = soundId
	sound.SoundGroup = sfxGroup
	sound.RollOffMaxDistance = 80
	sound.Parent = part -- 3D: plays from the part; parent to SoundService/UI for 2D
	sound:Play()
	sound.Ended:Once(function()
		sound:Destroy()
	end)
end

return playAt
  • SoundService:PlayLocalSound(sound) for client-only UI clicks.
  • Preload critical sounds: ContentProvider:PreloadAsync({ sound }) (not everything — slows joins).
  • Pool frequently played sounds instead of creating one per shot.

Where to play

  • Sounds started on the client are heard only by that client (UI, local feedback, music tracks the player chose). Sounds started on the server replicate to everyone (use sparingly; prefer a remote telling clients to play locally, which also lets each client apply its own volume settings).
  • With SoundService.RespectFilteringEnabled = true (default), client-played sounds don't replicate.
  • Streaming: a sound or emitter in a part that streams out stops. Keep ambient audio in persistent models or SoundService.

Assets and permissions

  • Use audio you own, uploaded to the same owner (user/group) as the experience, or Creator Store audio marked free-to-use. Private audio from other creators won't play unless shared with your experience (asset permissions). Check the Output for "failed to load" / permission errors.
  • Uploads are auto-classified as sound effects or songs; eligible songs can show on the game page.

Extras

  • Effects: AudioEqualizer, AudioCompressor, AudioReverb, AudioEcho, AudioChorus, AudioDistortion, AudioFlanger, AudioPitchShifter, AudioTremolo, AudioFilter, AudioLimiter, AudioAnalyzer (read loudness/spectrum for visualizers).
  • AudioTextToSpeech (artificial voices) and AudioSpeechToText (transcription).
  • Voice chat: each player's AudioDeviceInput can be wired through effects (radios, walkie-talkies, proximity) — see the voice chat docs; respect players' voice settings.
  • Give players separate Music/SFX volume sliders (faders or SoundGroups) and a mute option.

Related skills

roblox-ui (settings menus), roblox-architecture (client vs server), roblox-performance (audio memory).

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/el4cteo/roblox-skills/roblox-audio">View roblox-audio on skillZs</a>