Skip to content

How to Set Up Microphone

Guribo edited this page Jul 11, 2026 · 5 revisions

How to Set Up Microphone Pickup

Step-by-step guide for adding a pickupable microphone that extends voice range.

Prerequisites

  1. TLP_PlayerAudioController prefab in your scene at Packages/tlp.udonvoiceutils/Runtime/Prefabs/Core/TLP_PlayerAudioController.prefab
  2. TLP_Essentials prefab at Packages/tlp.udonutils/Runtime/Prefabs/TLP_Essentials.prefab

Quick Setup with Prefab

  1. Add the PickupMicrophone prefab at Packages/tlp.udonvoiceutils/Runtime/Prefabs/Examples/PickupMicrophone.prefab
  2. The prefab includes all required components (VRC_Pickup, PlayerAudioOverride, MicModel, PickupMicActivation, PickupMicrophone, MicView)
  3. Test immediately — pick up the object to activate the microphone

Custom Microphone Setup

1. Create the Microphone Object

  1. Create a new empty GameObject (name it e.g. Microphone)
  2. Add a VRC_Pickup component
  3. Configure pickup settings:
    • Allow Holding By: Any (or Right/Left for hand-specific)
    • Allow Teleport: Allow (for comfortable pickup)

2. Add Audio Override

  1. Add an UdonBehaviour component
  2. Set Program Source to PlayerAudioOverride
  3. Configure voice range and other settings as needed
  4. Set a Privacy Channel Id if the microphone should be channel-specific (e.g., 1)
  5. Set Priority higher than the room override so the mic takes precedence

3. Add Microphone State

  1. Add a MicModel component — holds UserId and IsOn state
  2. Add a MicActivation component — defines activation logic:
    • PickupMicActivation — activates when picked up, deactivates on drop
    • InteractMicActivation — press Use to toggle on/off, or enable HoldUseToTalk for push-to-talk behavior

4. Add PickupMicrophone Script

  1. Add a UdonBehaviour component
  2. Set Program Source to PickupMicrophone
  3. Assign fields:
    • PlayerAudioOverride → the override on this GameObject
    • MicModel → the MicModel component
    • MicActivation → the MicActivation component

5. Test

  1. Enable ClientSim
  2. Click Play
  3. Pick up the microphone — your voice range should increase
  4. Drop the microphone — voice range returns to normal
  5. If using channels, verify the microphone channel matches the room channel

Channel Configuration

  • Microphone channel ID matches room channel ID → players in the room can hear the microphone
  • Microphone channel ID differs from room channel ID → microphone is isolated from the room
  • Channel ID -1 = no privacy (audible to all)

Architecture

The microphone system uses MVC:

  • MicModel — holds UserId and IsOn state, notifies listeners on change
  • MicController — MVC controller (extends Controller)
  • MicView — MVC view for mic UI display
  • MicActivation — abstract base class for activation logic

See Also

Clone this wiki locally