When you distribute your Virt-A-Mate scene as a .var file, the scene references Voxta resources (characters, scenarios, memory books) by ID. Those resources won’t be on a first-time user’s Voxta server, so you have to bundle them inside the .var. At runtime the Voxta VaM plugin detects the missing resource and auto-installs it on the user’s server.
Make sure to review the Publishing Guidelines before publishing.
How it works at runtime
- User opens your scene.
- Voxta plugin tries to start a chat with the character/scenario your scene references.
- The user’s Voxta server reports the resource as missing (since they haven’t imported it).
- The plugin looks inside the
.varfor a matching PNG (by resource ID), reads the bytes, and deploys them to the server. - The server imports the resource automatically and the chat starts.
You’ll see this line in the VaM log on success:
Voxta: Some resources are missing and will be installed: {resource-id}
If you see Could not find a scene dependency of type {Kind} with id {id}… instead, the PNG isn’t bundled correctly — see Troubleshooting.
Two ways to bundle resources
Option A — Drop-in individual resource PNGs (simplest)
Best when your scene needs only one or two resources.
-
In Voxta Studio, open the resource (character/scenario/memory book) and export it as
.png. Voxta names exports likeElara Meadowlight.character.1.0.0.png. -
Rename the file so it starts with the resource’s UUID (see Where to find the UUID below). Both of these filename forms work:
{id}.{kind}.png— e.g.916a705b-7366-9d23-ddb4-66399c773194.character.png{id}.{kind}.{version}.png— e.g.916a705b-7366-9d23-ddb4-66399c773194.character.1.0.0.png
-
Place the file in the matching folder for its kind:
Kind Folder Character Saves\PluginData\Voxta\Characters\Scenario Saves\PluginData\Voxta\Scenarios\MemoryBook Saves\PluginData\Voxta\MemoryBooks\ -
Open the Package Builder in VaM and click Add File… to include each PNG manually. VaM’s Package Builder cannot auto-detect Voxta references inside plugin data — you must add them yourself. Package Builder will mark the scene reference as FIXABLE: References local file not included in package until the PNGs are added.
-
Also add your scene JSON, then Prep Package and Finalize Package.
Where to find the UUID
For a character, open it in Voxta Studio, go to Edit Character → Assets tab. The panel shows the character’s data directory, for example:
...\Data\Users\{your-user-id}\Characters\916a705b-7366-9d23-ddb4-66399c773194\Assets
The last folder segment before \Assets is the character’s UUID — in this example, 916a705b-7366-9d23-ddb4-66399c773194. That’s the value you use in the filename.
Scenarios and memory books expose their UUIDs the same way via their own Assets tab.
As a fallback, you can also read the UUID straight from your scene JSON — inside the Voxta plugin block, look for "Character ID", "Scenario ID", etc.
Option B — Bundle multiple resources as a Voxta Package
Best when your scene uses several resources (e.g. a scenario plus multiple characters plus a memory book).
- In Voxta Studio, create a Package and add all the resources your scene needs.
- Export the package as
.png— this produces a single file containing every resource inside. - In the Voxta VaM plugin UI, set the Package fields (ID, name, version). The plugin UI shows the expected file path on the bottom right — use that to name the file.
- Place the file at
Saves\PluginData\Voxta\Packages\{PackageName}.package[.{version}].png. - In Package Builder, Add File… → select the package PNG, plus your scene. Then Prep Package and Finalize Package.
The package route installs every contained resource in one shot the first time a user opens the scene.
Testing before you publish
The only reliable test is a clean-slate round-trip:
- In Voxta Studio, delete the character/scenario/package you bundled (so your server no longer has it).
- Also delete the PNG from
Saves\PluginData\Voxta\...(leaving only the copy inside your.var). - Load your scene from
AddonPackages(not from looseSaves). - Start a chat with the character.
- Confirm the VaM log shows
Voxta: Some resources are missing and will be installed: {id}and that the resource reappears in Voxta Studio afterwards.
Troubleshooting
Could not find a scene dependency of type Character with id {uuid}…
The plugin couldn’t find a bundled PNG matching the UUID. Check:
- Filename starts with the exact UUID from the error message (not the friendly name).
- File is in the matching
Kind-folder (for exampleCharacters\, notPackages\). - File was actually Added to the package in Package Builder, not just placed on disk.
Package Builder doesn’t warn about the missing character.
Expected — Package Builder only understands VaM’s dependency graph. Voxta resource references are opaque plugin data. You must manually Add File… each PNG.
Nothing happens; chat just doesn’t start, no missing-resource message.
Check the VaM log for Voxta output. If the server already has the resource (because you previously imported it), there’s no missing-resource event — the auto-deploy path is never triggered. Do the clean-slate test above.