The floors and lights are settled. But stepping in, it's oddly quiet.
You want to add sound, and here you need to separate two kinds: BGM that plays at the same volume wherever you are in the room, and ambient sound that grows as you approach its location. Get the settings wrong and a waterfall roars in your ear while you're standing in a corner.
This article separates the two and settles on a volume that doesn't get in the way of conversation.
What You'll Learn
- How to build 2D sound and 3D sound separately
- How to decide how far a sound carries
- A volume target that doesn't interfere with conversation
- Import settings for audio files
Start from a scene with a floor. If you don't have one, build it in your first world.
Sound that plays everywhere, and sound that belongs to a place
There are two ways to place sound. The only difference is whether distance changes it.

- 2D sound: The same volume wherever you are in the room. For BGM and overall atmosphere
- 3D sound: Louder near the source, quieter far from it. For fountains, campfires, machines, speakers
In Unity you switch between these with the AudioSource's Spatial Blend setting. 0 is 2D, 1 is 3D.
In VRChat you also add a VRC Spatial Audio Source component. It exists to use VRChat's own distance falloff, and adding it brings an AudioSource with it.
One more thing makes volume easier to decide. A player's voice carries 25m by default. BGM and ambience belong below that voice. VRChat is a place where conversation is the main event, so music that asserts itself makes it hard to stay.
Hands-On: Separate BGM and a fountain
Use the same audio file to hear the difference between 2D and 3D.
1. Import a test sound
A comparison sound is provided. Download the test WAV (mono, 44.1kHz, 16-bit PCM)
Create an Assets/Audio folder in Project and drag the downloaded file in.
If you use your own audio, check the rights. The distribution site's terms decide whether it may be used in a world. Commercial tracks and audio ripped from other games can't be used.
2. Place 2D BGM
Create WorldBGM with "Create Empty" and set its Position to (0, 1, 0).
Add VRC Spatial Audio Source via "Add Component," which brings an AudioSource along.
| Field | Setting |
|---|---|
| AudioClip | The sound you imported |
| Play On Awake | Enabled |
| Loop | Enabled |
| Volume | 0.12 |
| Spatial Blend | 0 (fully 2D) |
On the VRC Spatial Audio Source side, disable Use Spatialized Audio.
Change both of these. Changing only Spatial Blend, or only the spatialization toggle, and concluding "distance no longer matters" leads to a mismatch later.
Press Play and walk the room's center, corners, and entrance. Success is the volume not changing wherever you stand.
Once you've confirmed it, disable WorldBGM's AudioSource for now, so it doesn't overlap the next sound.
3. Place 3D ambience
Create RoomSpeaker with "Create Empty" and set its Position to (0, 1.2, 1.5). Picture a fountain or a campfire there.
Add VRC Spatial Audio Source the same way.
| Field | Setting |
|---|---|
| AudioClip | The same sound |
| Play On Awake | Enabled |
| Loop | Enabled |
| Volume | 0.25 |
| Spatial Blend | 1 (fully 3D) |
| Doppler Level | 0 (unneeded for a stationary source) |
On the VRC Spatial Audio Source side, enable spatialization and set this.
| Field | Setting | Meaning |
|---|---|---|
| Gain | 0 dB | No extra amplification |
| Near | 0 m | The distance within which there's no falloff |
| Far | 4 m | The distance at which it becomes inaudible |
| Volumetric Radius | 0 m | Treat it as a point source |
So you can see where the source is, place a Cube as SpeakerMarker at (0, 1.2, 1.5), Scale (0.3, 0.3, 0.3). It's a marker — nothing about the sound requires it.
4. Check the distance

Press Play and move toward and away from the source.
| Movement | Expected result |
|---|---|
| Stand right beside the source | Clearly audible |
| Step back three paces | Quieter |
| Go to the opposite corner | Nearly inaudible |
| Circle around the source | Left and right balance shifts |
Change Far from 4 to 10 and walk again. Now it carries to the corner of the room. Far is "the distance at which it becomes inaudible." The default is 40m, which is far too wide for a small room.
Near is "the distance within which there's no falloff." Leaving it at 0 is enough in most cases. Use Volumetric Radius only when the source itself has physical extent, like a waterfall or a large machine.
Set volume by "can you talk without raising your voice"
This measure is more reliable than any number.

Starting points look like this.
| Use | Volume target |
|---|---|
| BGM (2D) | 0.08 – 0.15 |
| Near ambient sound (3D) | 0.2 – 0.35 |
| Gain | Leave at 0 |
Don't raise Gain first. It's strong amplification, and even 10dB feels considerably louder. Consider it only when raising Volume toward 0.5 still isn't enough.
The process:
- Set Volume low and enter with Build & Test
- Speak out loud yourself (better still with a friend)
- If you can talk without raising your voice, it passes
Putting the judgment into words:
- Too loud: The track asserts itself the moment you walk in and conversation snags on it
- Just right: You notice it, but it recedes once you start talking
- Good as ambience: Near the source you can tell "there's a fountain here," and two or three steps away it's out of conversation's way
One more thing: sound adds up. A campfire, rain, insects, and BGM all at 0.3 may each be fine alone but is too much in the room. When you add sound, pull everything down another notch.
Editor headphones and VRChat don't sound the same. Always do the final check in VRChat itself.
Common Pitfalls
- No sound → Check that an AudioClip is assigned, Play On Awake is on, Volume isn't 0, and Mute isn't checked
- Set to 3D but the volume is the same everywhere → Check that Spatial Blend is
1and that VRC Spatial Audio Source's spatialization is enabled. Both - Loud even from far away → Far is too large. Or it's actually still 2D
- Quiet even up close → Raise Volume. If it's still quiet, the source file itself may be quiet
- The sound distorts → You've added Gain on top of Volume 1. Lower the Volume
Bonus: Good to Know Up Front
- Make 3D sounds mono: Enabling Force To Mono in the import settings stabilizes the direction and cuts size. 2D BGM can stay stereo
- Stream long files: For long files like BGM, setting Load Type to
Streamingsaves memory. Short effects suitDecompress On Load - Sometimes Play On Awake should be off: Sounds triggered by a button shouldn't fire the moment someone walks in. Covered in toggling with a button
- Quest and phones limit AudioSources: Cut the number playing at once and go easy on constant loops. Compress long files more aggressively
- Let visitors control the volume: A slider in the world for BGM volume is a kindness. Covered in building world-space UI
Summary
Sound splits in two, by whether distance changes it.
- 2D is the same volume everywhere; 3D grows as you approach
- Line up both Spatial Blend and VRC Spatial Audio Source's spatialization
- Far is "the distance at which it becomes inaudible." 4–10m for a small room
- Set volume by "can you talk without raising your voice," not by a number
The question to ask after placing it is: "With this sound running, can people hold a normal conversation?" If not, turn it down, however good the track is.
Once the sound is settled, go to building a wall that reacts to music with AudioLink to make things light up with the audio, or the path from entrance to seat to arrange where people settle.