AudioRouter is a flexible, user-friendly audio control plugin for Virt-A-Mate that allows you to load, organize, and route external audio clips (MP3, WAV, OGG) directly to a Person's HeadAudioSource or AudioSource in your scene. It can be added on an Empty Atom or a Person Atom.
This allows you to easily drag and drop your MP3/WAV/OGG audio files or folders into your VAM/Custom/Sounds folder, and just load them into any VAM scene as background music or HeadAudioSource audio for lipsync playback.
Full trigger mapping instructions are below on how to create your own custom button triggers for an audio player with play, pause, stop, play previous, play next, loop, and play random or shuffle. You can use this with something like VamStoryActions, CanvasButton, or on VAM's default Triggers/UIButton to create your own custom audio player in your scene.
Key Features
• Audio Playback Modes – Choose from a variety of playback styles: PlayRandom, PlayNow, PlayIfClear, Loop, and more.
• Folder & File Support – Load an entire folder or individual audio files using Virt-A-Mate's native file browser.
• Autoplay Options – Supports Shuffle or Next play modes.
• Delay Customization – Set a configurable delay (1–60 seconds) between automatically played sounds.
• Avoid Repetition – Smart shuffle logic prevents repeats until all available sounds have played once.
• Target Routing – Route audio to any AudioSource in the scene, including a person's HeadAudioSource.
• Trigger-Friendly – PlaySpecific, PlayPrevious, PlayNext, Stop, PlayRandom, Loop. (instructions below)
• Preset System – Save Preset and Load Preset option that restores your Sound list and settings.
• UI Sound List with Removal – Each loaded sound has its own entry and [X] button for quick removal.
--
Important Note 1
Certain autoplay + playback mode combinations behave differently depending on how layering is handled.
• Autoplay: Shuffle
• Mode: PlayNow
→ Sounds will play immediately, even overlapping other plugins like Vammoan.
• Autoplay: Shuffle
• Mode: PlayIfClear
→ Sounds will wait for audio to clear before playing, which is useful for layering dialogue or responses.
Important Note 2
The [+ Folder] button opens a folder directly (opens blank) and loads all supported audio files in it.
→ To browse and select individual files, use the [+ File] button instead.
Important Note 3
Plugins can add audio by referencing files, but they don’t have access to remove or modify the Scene Audio list directly as far as I am aware of. This limitation exists for stability and security — preventing plugins from unintentionally breaking shared audio references used by other atoms, plugins, or Timeline clips. If you're including this plugin in a scene you plan to release:
• Deleting audio from the list in AudioRouter does not remove it from the Scene Audio tab.
• Scene Audio items may still be packaged as dependencies unless you manually remove them.
• Always check the Scene Audio tab and clear unused entries before saving or packaging your scene.
For casual use, this is not a concern—but for clean VAR releases, it's important.
--
Plugin Comparison — AudioRouter vs AudioMate
--
Common Button Triggers
⏵ Play / Play Start
Select the first song in the list and it will play through in order.
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter (atom name)
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlaySpecific
• Choice: First Song In List 1.wav
⏮ Play Previous
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayPrevious
⏭ Play Next
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayNext
⏹ Stop
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: Stop or StopAndClearQueue
--
⏸ Pause
You can leave the settings in the plugin the same as whatever you use for Play or can use the following...
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
You can Pause it directly on the AudioSource:
On UI Button:
• Receiver Atom: AudioSource
• Receiver: AudioSource
• Receiver Target: Pause
You can create a Toggle Button with Pause and Play. If you click Pause it shows Play button, if you click Play, it then shows the Pause button. This allows you to Play and Pause using same Button location, or you can map them to two separate buttons if you prefer.
⏵ UnPause or Play
You can leave the settings in the plugin the same as whatever you use for Play or can use the following...
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
You can UnPause it directly on the AudioSource:
On UI Button:
• Receiver Atom: AudioSource
• Receiver: AudioSource
• Receiver Target: UnPause
--
⏯ Play (One Time)
Play a specific audio clip once.
In Plugin:
Autoplay: Off, Mode: PlayNow or PlayIfClear
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlaySpecific
• Choice: How was work today missed you 1.wav
Play and Loop
Great for ambience or looping a favorite audio file.
In Plugin:
Autoplay: Off, Mode: PlayNowLoop
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlaySpecific
• Choice: Rain Ambience 1.wav
Play Random (One Time)
Selects a random file from the loaded list and stops. Commonly used with triggers in animations.
In Plugin:
Autoplay: Off, Mode: PlayNow or PlayNowClearQueue or PlayIfClear
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayRandom
Play Random Shuffle
Selects a random file from the loaded list and continues playing randomly.
In Plugin:
Autoplay: Shuffle, Mode: PlayNow or PlayNowClearQueue or PlayIfClear
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayRandom
--
AudioRouter uses, adapts and/or found inspiration from these awesome resources, which it would not be possible without:
Credits
MacGruber.LogicBricks.14.var
everlaster.SoundFromAssetBundle.1.var
dub.AudioMate.20.var
This allows you to easily drag and drop your MP3/WAV/OGG audio files or folders into your VAM/Custom/Sounds folder, and just load them into any VAM scene as background music or HeadAudioSource audio for lipsync playback.
Full trigger mapping instructions are below on how to create your own custom button triggers for an audio player with play, pause, stop, play previous, play next, loop, and play random or shuffle. You can use this with something like VamStoryActions, CanvasButton, or on VAM's default Triggers/UIButton to create your own custom audio player in your scene.
Key Features
• Audio Playback Modes – Choose from a variety of playback styles: PlayRandom, PlayNow, PlayIfClear, Loop, and more.
• Folder & File Support – Load an entire folder or individual audio files using Virt-A-Mate's native file browser.
• Autoplay Options – Supports Shuffle or Next play modes.
• Delay Customization – Set a configurable delay (1–60 seconds) between automatically played sounds.
• Avoid Repetition – Smart shuffle logic prevents repeats until all available sounds have played once.
• Target Routing – Route audio to any AudioSource in the scene, including a person's HeadAudioSource.
• Trigger-Friendly – PlaySpecific, PlayPrevious, PlayNext, Stop, PlayRandom, Loop. (instructions below)
• Preset System – Save Preset and Load Preset option that restores your Sound list and settings.
• UI Sound List with Removal – Each loaded sound has its own entry and [X] button for quick removal.
--
Important Note 1
Certain autoplay + playback mode combinations behave differently depending on how layering is handled.
• Autoplay: Shuffle
• Mode: PlayNow
→ Sounds will play immediately, even overlapping other plugins like Vammoan.
• Autoplay: Shuffle
• Mode: PlayIfClear
→ Sounds will wait for audio to clear before playing, which is useful for layering dialogue or responses.
Important Note 2
The [+ Folder] button opens a folder directly (opens blank) and loads all supported audio files in it.
→ To browse and select individual files, use the [+ File] button instead.
Important Note 3
Plugins can add audio by referencing files, but they don’t have access to remove or modify the Scene Audio list directly as far as I am aware of. This limitation exists for stability and security — preventing plugins from unintentionally breaking shared audio references used by other atoms, plugins, or Timeline clips. If you're including this plugin in a scene you plan to release:
• Deleting audio from the list in AudioRouter does not remove it from the Scene Audio tab.
• Scene Audio items may still be packaged as dependencies unless you manually remove them.
• Always check the Scene Audio tab and clear unused entries before saving or packaging your scene.
For casual use, this is not a concern—but for clean VAR releases, it's important.
--

Feature | AudioRouter | AudioMate | ||
---|---|---|---|---|
Supports .mp3, .wav, .ogg | ![]() | ![]() | ||
Folder-based sound loading (+ Folder) | ![]() | ![]() | ||
Single audio file loading (+ File) | ![]() | ![]() | ||
UI for Play, Stop, Clear | ![]() | ![]() | ||
PlayRandom with full-cycle shuffle | ![]() | ![]() | ||
Playback modes (PlayNow, Next, Shuffle, etc.) | ![]() | ![]() | ||
Custom AudioSource routing (HeadAudioSource + AudioSource) | ![]() | ![]() | ||
Supports Triggers (VAM actions) | ![]() | ![]() | ||
Scene Save/Load last session sounds | ![]() | ![]() | ||
Shuffle avoids repeats until full cycle | ![]() | ![]() | ||
Preset System (Save Preset/Load Preset) | ![]() | ![]() | ||
Triggers Available to Create Full Audio Player ⏮ ⏵ ⏸ ⏹ ⏭ ![]() ![]() | ![]() | ![]() | ||
| ![]() | ![]() |
--
Common Button Triggers
⏵ Play / Play Start
Select the first song in the list and it will play through in order.
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter (atom name)
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlaySpecific
• Choice: First Song In List 1.wav
⏮ Play Previous
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayPrevious
⏭ Play Next
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayNext
⏹ Stop
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: Stop or StopAndClearQueue
--
⏸ Pause
You can leave the settings in the plugin the same as whatever you use for Play or can use the following...
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
You can Pause it directly on the AudioSource:
On UI Button:
• Receiver Atom: AudioSource
• Receiver: AudioSource
• Receiver Target: Pause
You can create a Toggle Button with Pause and Play. If you click Pause it shows Play button, if you click Play, it then shows the Pause button. This allows you to Play and Pause using same Button location, or you can map them to two separate buttons if you prefer.
⏵ UnPause or Play
You can leave the settings in the plugin the same as whatever you use for Play or can use the following...
In Plugin:
Autoplay: Next, Mode: PlayNow or PlayNowClearQueue
You can UnPause it directly on the AudioSource:
On UI Button:
• Receiver Atom: AudioSource
• Receiver: AudioSource
• Receiver Target: UnPause
--
⏯ Play (One Time)
Play a specific audio clip once.
In Plugin:
Autoplay: Off, Mode: PlayNow or PlayIfClear
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlaySpecific
• Choice: How was work today missed you 1.wav

Great for ambience or looping a favorite audio file.
In Plugin:
Autoplay: Off, Mode: PlayNowLoop
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlaySpecific
• Choice: Rain Ambience 1.wav

Selects a random file from the loaded list and stops. Commonly used with triggers in animations.
In Plugin:
Autoplay: Off, Mode: PlayNow or PlayNowClearQueue or PlayIfClear
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayRandom

Selects a random file from the loaded list and continues playing randomly.
In Plugin:
Autoplay: Shuffle, Mode: PlayNow or PlayNowClearQueue or PlayIfClear
On UI Button:
• Receiver Atom: AudioRouter
• Receiver: plugin#0_VamEssentials.AudioRouter
• Receiver Target: PlayRandom
--
AudioRouter uses, adapts and/or found inspiration from these awesome resources, which it would not be possible without:
Credits
MacGruber.LogicBricks.14.var
everlaster.SoundFromAssetBundle.1.var
dub.AudioMate.20.var