Skip to content
Guribo edited this page Jul 11, 2026 · 4 revisions

FAQ

Can I use MeshColliders for occlusion?

Yes. MeshColliders work for occlusion. Make sure they are on the Environment layer.

How can I change the default/globally active settings?

  1. Navigate to your PlayerAudioController prefab in the scene
  2. Find Configuration/LocalConfiguration inside it
  3. Change its settings — this holds the active settings
  4. When using the menu: apply the same settings to Configuration/DefaultConfiguration
    • This allows resetting global settings back to your defaults

What VRChat SDK version do I need?

3.10.3 or higher. See Installation for details.

Does this work on Quest/Android?

Yes. UdonSharp runs on both PC and Quest. Quest has stricter performance limits — keep MaxActiveSources low and tune partition counts for best results.

Can I use multiple PlayerAudioControllers?

No. UVU is designed for exactly one PlayerAudioController per scene. FindPlayerAudioController() uses GameObject.Find() which returns the first match. Multiple controllers would conflict.

How many players can it handle?

There is no hard player cap. Player updates are time-sliced via PlayerUpdateRate — the system processes a configurable number of players per frame rather than all at once. Increase the rate for faster updates at higher CPU cost.

Can I use AVPro video players with WorldAudio?

No. The WorldAudio system only works with Unity-based video players (e.g., Unity VideoPlayer, VRC Unity Video Player). AVPro bypasses Unity's AudioSource pipeline and is invisible to WorldAudio.

Workaround: Use Unity-based video players, or add a separate AudioSource on the same GameObject for manual control. See WorldAudio Limitations for details.

Can I control AudioSources registered with WorldAudio directly?

Not with AudioSource.Play()/Stop() directly — WorldAudio manages play/pause/culling state based on importance. Direct manipulation conflicts with culling and importance sorting.

Use AudioSourceStateController methods (Play(), Pause(), Stop()) on the same GameObject instead. Or, if you need full manual control, do not attach OccludedEmitter to that AudioSource.

See WorldAudio Limitations for details.

Where can I find the example prefabs?

In Packages/tlp.udonvoiceutils/Runtime/Prefabs/Examples:

Prefab Purpose
VoiceOverrideTriggerZone Zone-based voice override
VoiceOverrideRoom Room with enter/exit
PickupMicrophone Mic pickup item
InteractMicrophone Microphone variants (toggle, hold)
AudioSource_Controlled_by_WorldAudioController AudioSource managed by WorldAudio
Bathroom, ConcertHall, Pool Environment examples
OpenDoorExample Door interaction example

See How to Set Up Voice Channels for setup guide.

Clone this wiki locally