el4cteo/roblox-skills

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 rout…

查看源码
仓库原始内容

按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。

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

luau
--!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

luau
--!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).

来自同一仓库

更多 Skills

全部 Skills
el4cteo
社区

roblox-security

Anti-exploit design - never trust the client, validate every remote argument (NaN, spoofed instances, strings), rate limiting, ProximityPrompt/ClickDetector abuse, network ownership, movement and hit validation, economy/trade duplication, code confidentiality, secure teleports, heuristics, Ban API. Use when writing server handlers for client input, combat/economy/trading, or reviewing for exploits.

安装量
2
GitHub Stars
29
最近更新
9月28日
el4cteo
社区

roblox-analytics-liveops

Analytics and live ops - AnalyticsService economy/funnel/onboarding/progression/custom events, player segments, experience configs via ConfigService, A/B experiments, badges, experience notifications, timed events, daily rewards, season passes. Use when instrumenting a game, tuning economy or onboarding, running A/B tests or feature flags, or planning live events and re-engagement.

安装量
2
GitHub Stars
29
最近更新
9月28日
el4cteo
社区

roblox-architecture

Roblox project structure and client/server model - replication, where code and assets belong (ServerScriptService, ReplicatedStorage, StarterPlayer), RunContext, service/controller bootstrapping, player/character lifecycle, CollectionService components, attributes, streaming-safe client code, library choices. Use when starting a project, deciding where code goes, or fixing replication/streaming bugs.

安装量
2
GitHub Stars
29
最近更新
9月28日
el4cteo
社区

roblox-characters-animation

Characters and animation - Humanoid properties/states, spawning (LoadCharacterAsync), health and damage, HumanoidDescription appearance, Animator/AnimationTrack playback, priorities and markers, default animation replacement, Tools, TweenService, IKControl, Character Controller Library (beta). Use when changing movement, abilities, damage, respawn, avatars, animations, tweens, or tools/weapons.

安装量
2
GitHub Stars
29
最近更新
9月28日