Skip to content

WorldAudio Limits Reference

Guribo edited this page Jul 11, 2026 · 4 revisions

WorldAudio Limits Reference

Technical reference for WorldAudio system limits and platform constraints.

VRChat Audio Limits

VRChat has platform-imposed limits on active audio sources:

Limit Count
Active (playing) AudioSources ~32
Virtual (pausable) AudioSources ~64
Neither playing nor virtual No automatic recovery

The WorldAudio system manages these limits via MaxActiveSources. When the limit is reached, lower-importance AudioSources are suspended.

Performance Considerations

  • Importance recalculation happens every frame for a subset of emitters
  • More emitters = more CPU per frame
  • Occlusion requires raycasting — more raycasts = more CPU
  • Use PartitionState to configure emitter partitioning. Tune update frequency with UpdatesPerFrame and ImportanceUpdatesPerFrame on WorldAudioController

AVPro Incompatibility

WorldAudio only works with Unity-based video players (e.g., Unity VideoPlayer, VRC Unity Video Player). It does not work with AVPro Video Player or other third-party video players.

Why: WorldAudio manages AudioSource components directly. AVPro bypasses Unity's audio pipeline and outputs audio through its own system, making it invisible to WorldAudio.

Workaround: Use Unity-based video players. For AVPro, use a separate audio source component on the same GameObject and configure it manually.

Direct Control Restrictions

Once an AudioSource is registered with WorldAudio, you cannot control it directly from your code. WorldAudio manages play/pause/culling state based on importance and privacy.

Why: WorldAudio calculates importance scores and decides which AudioSources should be active. Directly setting AudioSource.Play() or AudioSource.Stop() conflicts with WorldAudio's management.

Workaround: Use AudioSourceStateController (on the same GameObject) to control play/pause/stop. For manual control, do not register the AudioSource with WorldAudio.

See Also

Clone this wiki locally