Voxta (Virt-A-Mate Plugin)

Plugins With Paid Service Voxta (Virt-A-Mate Plugin)

Download [<1 MB]
Requires a one time or recurring payment to operate.
- Do not warn on tool calling messages
- Support for Voxta Server v1.10
- Quick resume chat button in Connect tab
- Publish every context slot when a chat starts
- When an image generate, do not stop the currently spoken message
- Handle reply cancellation, avoiding locked chats
- Fix InvalidProgramException errors
Updates for Voxta Server 1.9 compatibility

- Fixes "Unknown message type" errors
- Correctly speaks the command mode voice
v2.0.2 — VaM package #99

9c6fdeae-b408-43ec-84ea-18efbc22ae30.png

Want to try Voxta? You can now do it for free. Download the free Voxta Lite build, get free Voxta Cloud credits, and see how it all works in VaM, no payment required.

Highlights​


A small follow-up to v2.0.1: the Vision tab now explains how to actually turn Continuous Vision on, so its capture toggles stop looking broken.

New: Continuous Vision setup guide​


  • A short read-only guide pinned to the top of the Vision tab walks through the whole flow in order: enable "Voxta Utilities: Vision" in Chat Augmentations, turn on Continuous Vision, set the character's Chat Style to Companion, add the Vision augmentation with only Vision.continuous, then flip the Screen/Eyes capture toggles below.
  • Clears up the most common vision question: the capture toggles do nothing on their own until vision is enabled server-side, and until now nothing in the tab said so.
Posted by: lapiro
v2.0.1 — VaM package #98

Highlights​


A small follow-up to v2.0.0 with three log-spam / animation fixes and one new in-headset niceness: a status overlay during chat startup so you stop staring at silence while the server warms up.

This release pairs with today's Voxta server hotfix — the status overlay needs that server-side change to show real loading progress.

New — Chat startup status overlay​


  • In-VR HUD that fills the previously-silent gap between Start Chat and the first audio chunk. Shows the current loading stage ("Starting chat session…", "Loading TTS voice…", etc.) plus a progress percentage when the server reports one.
  • Auto-shows on Start Chat, auto-hides when the first reply starts speaking (or when the chat goes idle / errors out / you Stop Chat).
  • Renders on its own world-space canvas anchored upper-center, below subtitles in the layering. Position and font size are independently tunable for desktop and VR.
  • Needs today's server hotfix to receive progress events. Without it the overlay still appears, but only the initial "Starting chat session…" line — no per-stage updates.

Fixes​


  • SMPL / HY-Motion animations no longer lift the character ~1 ft off the floor. Frame-0 of every clip was pasting the SMPL avatar's absolute pelvis height (~0.9 m above SMPL's ground plane) directly onto the DAZ rig, so any motion request made the character float. The retargeter now anchors against the rig's bind-pose hip and treats SMPL trans as a per-clip delta, so feet stay on the floor and longer action sequences no longer drift upward over time. PreserveHeight keeps working exactly as before.
  • Foreign-app triggers no longer spam the plugin error log. Server broadcasts every app trigger to all connected clients; web-UI-only triggers like SetAvatar and SelectView were printing "Received invalid app trigger: … (Not enough arguments)" into VaM. The plugin now silently ignores triggers it doesn't speak; genuine VaM-shape misconfigurations still log a precise error.
  • imageGenerationProgress no longer spams the plugin error log. Every sampler step (~20–40 per image) was printing "Unknown message type: imageGenerationProgress…" into VaM's error log during image generation. Now swallowed silently — the in-progress preview is the web frontend's job, not VaM's.
Posted by: lapiro
v2.0.0 — VaM package #97

Big one. A year of work since v1.9.0 / VaM package #96. Pairs with the brand new Voxta Server v1.6.0 — recommended to update both together so AI-driven animations work end-to-end.



What's new


▸ AI-driven animations (text-to-motion)
Voxta Server can now generate SMPL motion at runtime and stream it straight to VaM. The plugin retargets the SMPL skeleton to your Person atom on the fly — no FBX import, no Timeline authoring required. A brand new Animate tab gives you a scrubber, paused-mode preview, and restore-pose-on-stop. Per-clip Preserve Height toggle stops the vertical drift you get when chaining motions. Persisted motion, intro blend, and idle loop keep the character alive between generations.​
▸ Actions tab — structured editor with state machine
Build actions inline without leaving VaM. Type a name, describe when the AI should fire it, optionally pick a Timeline clip from a dropdown — the plugin compiles state into proper flag filters under the hood. Namespace-aware state slugs mean pose.sitting and outfit.dress can coexist on the same character without stomping each other. Starting State field bootstraps closed loops at chat start. Per-action cooldowns, post-speech trigger delay, validation hints. Save and import action presets to disk.​
▸ Suggestions overhaul
7 slots with per-slot enable toggles and custom tones. On-screen HUD bar with scrollable rows and auto-lifting subtitles. Import/export presets as .voxtasuggestions. One-click spawn of a UIButton interface inside a SubScene so suggestions are available without opening the plugin. Suggestions storables are now exposed to scene plugins, so scene authors can build their own dialog UIs on top of Voxta-generated lines.​
▸ Two-row tab layout
The plugin outgrew a single row. 11 tabs are now reorganized into a focused two-row layout: Connect / Chat / Subtitles / Context / Actions on row 1; Animate / Triggers / Suggestions / Vision / Inspect / Settings on row 2. Connect turns green when the server is reachable; Chat turns green while a session is running.​
▸ Inspect tab — live diagnostics
A new diagnostics surface for catching leaks and performance hiccups. Live memory and frame-time inspector with a built-in 60-second leak test. Catches the kind of slow degradation you can't see by eyeballing the chat.​
▸ Chat input bar polish
Slash command picker — click the pencil icon for a grid of /event, /story, /note, /summarize, /infer. Mic + speaker mute icons that sync live with voxta-talk — flip them anywhere and the icons update everywhere. Replay last character message as a bindable action. VR polish for the keyboard tap-to-open flow.​
▸ Reasoning-model support
Voxta Server's replyThink messages from reasoning models no longer spam the plugin log with "Unknown message type: replyThink". The plugin quietly ignores them — your character still replies, just the thinking trace stays on the server side where it belongs.​
▸ Subtitles polish
Narration events (/event, /note, /story) now render in their own orange color, distinct from character speech (pink) and your speech (blue). Whitespace flicker fixed.​
▸ Vision improvements
Screen and Eyes vision are now independent toggles — run one without the other. Quality pass and a fix for vision capture registration that didn't survive a plugin reload.​



Bug fixes


  • Service-toggle PUT through reverse proxies failed with Generic/unknown HTTP error because VaM's UnityWebRequest sends chunked-transfer PUT bodies that Caddy, Nginx, or Cloudflare Tunnel can drop on short payloads. The plugin now forces Content-Length. Direct connections were unaffected.
  • Chat hung after the bootstrap message when activating the plugin via a scene UIButton or any path other than opening the Chat tab first. Fixed; works from every activation path now.
  • Interrupting mid-speech now sends a server-side Interrupt immediately, so the server stops generating and the rest of the sentence isn't queued.
  • Activation chokepoint + chat-start NRE fixed (was breaking InterruptSpeech action wiring).
  • Default desktop positions tuned for the chat input bar and subtitles so they don't overlap on standard window sizes.
  • Vision capture registration and persistence bugs fixed; plugin reload no longer leaves orphaned vision state.
  • Subtitle whitespace flicker cleaned up.
  • Speech playback hang diagnostics — catches ImportClip exceptions and logs when audio chunks are dropped because no AudioSource is bound, so future regressions surface in the logs instead of silently stalling.



Upgrade notes


  • Server compatibility — AI-driven animations require Voxta Server v1.6.0 or later (text-to-motion scaffolding lives there). Every other feature in this release still works against older servers.
  • Tab layout changed — same features, new arrangement. If you're looking for a tab that "moved", it's now on the second row.
  • No persisted data changes — existing scenes, action presets, and subtitle settings continue to work without migration.



📦 Voxta Server v1.6.0 release notes: https://portal.voxta.ai/ · Need help? Join Discord
Posted by: lapiro
v1.9.0 — VaM package #96

New Actions tab. Author AI-driven actions directly inside VaM. No more bouncing to the web scenario editor or hand-writing JavaScript for the common case. Add an action, describe when the AI should fire it, optionally type a Timeline animation name, and you're done.

Timeline integration. Each action has an Animation field that auto-plays a Timeline clip when fired. The Wait for animation to finish toggle defers the state change until Timeline auto-progresses to the next clip, so closed loops like sit/stand stay perfectly in sync with the visual state, with no more glitchy mid-transition firing.

State machine, no flag expressions. Use Available when character is in state and After firing, character is in state per action. Type standing, sitting, or anything else. The plugin compiles everything to flag filters under the hood. A Starting state field at the top bootstraps closed loops at chat start.

Per-action controls. Use Disable action after first use for one-shots, the Cooldown (character messages) slider, Trigger action after speech finishes so animations don't fire mid-sentence, and a Context field that is pushed to the LLM only while the action's state is active.

Live status. Last Action, Current State, a scrollable Available Actions chip flow showing what the AI is currently picking from, and a Configure Triggers (N) count so you don't have to open the panel to see if triggers are wired. The Connect tab turns green when reachable, and the Chat tab turns green while a session is running.

Validation hints. A red warning appears under an action's Available when field if it references a state that nothing else sets. This catches the most common state-machine authoring mistake.

Bug fixes

- Service-toggle PUT through reverse proxies failed with Generic/unknown HTTP error because VaM's UnityWebRequest sends chunked-transfer PUT bodies that Caddy, Nginx, or Cloudflare Tunnel can drop on short payloads. The plugin now forces Content-Length. Direct connections were unaffected.
- Available Actions stayed empty until the Voxta web UI's Inspector tab was opened. The server only fills that field when Inspector mode is on. The plugin now auto-enables Inspector at chat start, so the readout populates from the first frame.
- flagsFilter shape. It was being sent as an array, but the server expects a string. System.Text.Json's strict parsing silently dropped the entire Actions payload. Fixed by sending a single string with && joins for compound filters.
- setFlags location. State-change effects are now correctly nested inside effect.setFlags server-side ActionEffect.SetFlags instead of at the action level, so they actually fire.

SNAG-0508.png
Posted by: lapiro
v1.8.1 — VaM package #95

**InterruptSpeech action.** Stop a character mid-sentence with a single click or hotkey. Wire a scene UIButton or Keybindings binding to the new `InterruptSpeech` action under `# Voxta Actions:`, and the character will go silent immediately. The chat continues normally — STT re-arms within a few hundred milliseconds, the chat history shows the truncated message with the server's `…interrupted by {{user}}` template, and any queued sentences for the interrupted reply are dropped before they play.

**More actions for scene scripting.** `RefreshRemoteLists` and `ReplayLastCharacterMessage` are now bindable `JSONStorableAction`s, so they can be wired to UIButtons, Keybindings hotkeys, or Triggers like any other Voxta action.

## Bug fixes

- **Chat hung after the bootstrap message** when activating the plugin via a scene UIButton (or any path other than opening the Chat tab first). The chat input bar stayed stuck on *"Start a chat to send messages…"* and the workaround was to toggle Active off then on. Fixed.
- **Auto-lipsync didn't apply on most activation paths.** Only the in-plugin Start Chat button ran the auto-lipsync setup; UIButton triggers, Keybindings actions, and saved-scene auto-start all silently skipped it. Lipsync now applies on every activation path.

## Upgrade notes

No breaking changes. Existing scenes continue to work as-is.
Posted by: lapiro
v1.8.0 — VaM package #94

Highlights


The AI now sees your scene cleanly — no more red dots, blue lines, or floating bulbs polluting its view. Vision toggles remember what you set them to. Chat input works on the first try when you trigger it from VaM buttons. A bunch of "should just work" stuff that wasn't quite working — now does.

New — Clean vision captures

  • Editor handles and gizmos are hidden from the AI — no more red/green free-controller dots, blue parent-link lines, atom bulbs, or selection rings showing up in what the character "sees". Scene only.
  • Subscene connection lines are hidden too — those long blue lines spanning rooms while you're building.
  • Face accessories stop blocking the Eyes camera. Thick lashes, glasses, brow piercings, or fancy iris add-ons that used to bump right up against the camera and ruin the view get cleanly clipped now.
  • New "Eyes Near Clip" slider — fine-tune the cutoff for ultra-close-up scenes. Default catches all the typical face chrome out of the box.
  • Per-source chrome toggles for both Screen and Eyes — turn the cleanup off if you ever want the editor look back. Screen one is on by default because clean captures are what you almost always want.

New — Things that just work now

  • Vision toggles remember your scene save. Saved with "Let Character See Eyes" turned on? It stays on when you load. Used to silently flip off and need a manual reset on every load.
  • Plugin reload no longer auto-starts a chat you stopped — your scene loads quiet, the chat begins when you click Start.
  • VaM button triggers actually start the chat properly. If you triggered Active = true from a UI button, the character would speak but you couldn't reply until you opened the plugin manually and toggled something. Fixed — your buttons now fully kick off chat with no extra clicks.
  • Better Eyes camera defaults — wider field of view, refined position, smarter clipping. All dialed in on real scenes so it just works the moment you turn it on.
  • Tuned default positions for the chat input bar and subtitles so they sit where readers expect on a fresh scene. Custom positions you've already saved are untouched.

Tiny touches

  • Save Capture Now now dumps both Eyes and Screen JPGs in a single click instead of just the most recent one.
  • Show Live Previews toggle shows the latest capture instantly when turned on — no more stale or empty image.
  • Connection Status field is now tall enough to display multi-line error messages without you having to scroll.
  • Log Layer Diagnostics debug button for the curious — peek under the hood at what the Eyes camera is rendering.

SNAG-0016.png
Posted by: lapiro
v1.7.0 — VaM package #91

Highlights


Character POV vision, a full debug toolkit for tuning it, and live preview panels right in the Settings tab so you can actually see what the AI sees — no more guessing.

New — Eyes vision (POV)

  • Let Character See Through Eyes — new independent toggle. A POV camera parented to the character's head bone captures what they see, complementing the existing screen-share mode.
  • Fully independent from Screen. Two separate toggles: "Let Character See Screen" and "Let Character See Through Eyes". Turn either on, both on, or neither — the server-side "Continuous Vision Source" setting (Screen / Eyes / Both) drives which ones get requested.
  • On-demand render. The POV camera is disabled by default and only renders when the server asks for a capture, so there's basically zero FPS cost even with both sources active.
  • VR-safe. POV camera forced to mono (stereoTargetEye = None) so offscreen captures don't come back stereo-skewed in VR sessions.

New — Vision Debug section

  • Eyes FOV slider (30–120°, default 60°) — tweak the POV camera's field of view live.
  • Eyes Offset Forward / Up / Right sliders — reposition the POV camera relative to the head bone in real time. Fix framing without editing code.
  • Exclude UI Layer toggle (default on) — keeps VaM's UI layer out of Eyes captures so the plugin's own panel doesn't bleed into what the AI sees.
  • Info readout — live text field showing the last capture's source, resolution, head bone name, FOV, offset, and culling mask. Answers "what was in that frame?" at a glance.
  • Auto-save captures to disk toggle (opt-in per session) — each capture gets written to Saves/PluginData/Voxta/VoxtaVisionDebug-Eyes.jpg and ...-Screen.jpg. Open in any image viewer with auto-refresh for a live ground-truth window.
  • Save Capture Now button — dumps the most recent capture to disk on demand.

New — Live Previews

  • Show Live Previews toggle (default off) — when on, reveals two image panels on the right side of the Settings tab: one for Eyes, one for Screen. Each updates per capture from its own source, so they never fight or flicker even with both vision toggles active.
  • Zero-cost when off. Hidden previews skip the JPG-decode work entirely.

Fixes

  • Plugin now advertises both Screen and Eyes sources to the server, so each incoming visionCaptureRequest is routed by its actual source field instead of being force-labeled as Screen.
  • POST URL correctly sends source=Eyes vs source=Screen so the server associates each capture with the right source on the AI side.

SNAG-3916.png
Posted by: lapiro
Back
Top Bottom