ResoniteUnityExporter
A Unity Plugin to easily export Avatars or Worlds from Unity into Resonite. Scroll down for tutorial
Install / Use
/learn @Phylliida/ResoniteUnityExporterREADME
ResoniteUnityExporter
A Unity Plugin to easily export Avatars or Worlds from Unity into Resonite.
It does this by:
- Grabbing the raw mesh, material, blendshape, bone, dynamic bone, etc. data directly from unity,
- Sends that to Resonite via inter-process communication (using a memory mapped file),
- Decodes directly in Resonite
This lets us avoid any of the limitations of converting to an intermediate file first.
Tutorial
Installing the unity package
(If you have the old version, go to Assets and delete the ResoniteUnityExporter folder)
Click Window at the top of the screen, then select Package Manager.

Press the + in the top left, and click add package from git URL...

Then add the url from the package repo:
https://github.com/Phylliida/ResoniteUnityExporterPackage.git
and press Add.

Click the new ResoniteUnityExporter tab at the top of the screen and click Open Unity Resonite Exporter.

You should see a menu pop up.
Adjust the Avatar/World Name as needed, and follow the instructions to set your near clip.

A correctly set near clip should be as small as possible while having nothing in the way.
For example:

Now you are ready to export your content to Resonite.
There are two options from here:
Run ResoniteUnityExporterStandalone.exe
This is a standalone program that uses Resonite libraries to convert your avatar/world into a .resonitepackage.
You can later copy paste the .resonitepackage in game to import your avatar.
This is easier to get setup and does not require any mods.
See Running Resonite Unity Exporter Standalone
Install ResoniteUnityExporterMod
This is a ResoniteModLoader mod for Resonite.
This mod allows Resonite to communicate directly with Unity.
When you press "Export to Resonite" your avatar/world will pop up in the world you are in.
See Installing Resonite Unity Exporter Mod
Running Resonite Unity Exporter Standalone
Go to the releases page
https://github.com/Phylliida/ResoniteUnityExporter/releases
- Pick the most recent release
- Scroll down unitil you see
Assets, expand it - Download
ResoniteUnityExporterStandalone.exe

- Run it.
- It'll ask for your Resonite location, select
Resonite.exeand press Ok.
(It needs this to use Resonite's libraries. This helps it be hopefully more forward compatible)
Now it should print out lots of text as it initializes things.
Eventually the text should calm down, once it does that you are ready to export your avatar/world!
Go to Exporting to Resonite
Installing Resonite Unity Exporter Mod
Go to the releases page
https://github.com/Phylliida/ResoniteUnityExporter/releases
- Pick the most recent release
- Scroll down unitil you see
Assets, expand it - Download
rml_mods.zip

Now you need to install Resonite Mod Loader. The easiest way is to use Resolute.
Once it is installed, navigate to your Resonite directory. It's probably something like:
C:\Program Files (x86)\Steam\steamapps\common\Resonite
In there, create a rml_mods folder if it doesn't already exist.
Now unzip rml_mods.zip and still all the .dll files into rml_mods.
It should look like this when you are done:

(there may be more files if you also have other mods installed)
Now Unity can talk to Resonite. Go to Exporting to Resonite
Exporting to Resonite
You are ready to export to Resonite if, either:
ResoniteUnityExporterStandalone.exeis running, or- You've installed
Resonite Unity Exporter Modand are running Resonite
The Unity Plugin will then be able to connect to Resonite. It should look something like this

Press Export to Resonite to export your content!
This may take some time, be patient.
Material mappings
Because Resonite does not have custom materials, your materials will need to be converted to standard resonite ones.
See the Materials tab to choose how you'd like this conversion to be done.
Stuff supported
- Worlds and Avatars
- Mesh Renderer
- Skinned Mesh Renderer
- Blend shape values
- Relative transforms and names of all slots
- Bones, including:
- Auto-rename to help Resonite (modified from ResoniteImportHelper)
- Null bones are supported (they just get a default bone made for them on the Resonite side)
- Dynamic Bone Chains and Colliders
- VRIK/Humanoid rig import
- Auto create and use Avatar Creator (including better auto-hand align)
- VRChat build hooks (including VRCFury hooks)
- Non-Destructive Modular Avatar Framework hooks
- Position and Scale Constraints
- Most material properties (including textures), and you can choose which supported Resonite material to map to
- Lights (mostly, as much as I can with Resonite, baked lighting todo)
- LODGroups
- Colliders
Todo
- Aim, Parent, LookAt, and Rotation constraints
- Baked lighting
- Reflection probes
- Toggles
- Animations
- Better liltoon support (see 18)
- Linux Support
- Option to put tooltip anchor on tip of first finger
- Particles
- Sounds
- Why hips rotated on certain avatars with null bones but only for Standalone? (maybe has to do with hack to avoid discord crash?)
- Asset bundle not working?
- Skybox
- Remember last resonite package save location
- Dynamic bone plane colliders (not sure how to do this...)
Project Structure
ExampleUnityProject is a Unity project that has everything installed that you'll need,
feel free to open it up and add your avatar's unitypackage.
ResoniteUnityExporterShared contains the data structures used to represent mesh, texture, etc. data.
This library is used by the unity library and also by the mod and standalone.
ImportFromUnityLib is the library used in the Mod/Standalone, it contains the core of the code
to take the data and import it into Resonite.
ResoniteUnityExporterMod is the code for the Resonite mod, that uses ImportFromUnityLib to make the
avatar appear in whatever world you are in.
ResoniteUnityExporterStandalone is a standalone custom headless server, you can't connect to it and it's
anonomyous. This also uses ImportFromUnityLib, it's used to load resonite libraries needed to make a .resonitepackage.
This is also useful for debugging since startup time is much faster.
https://github.com/Phylliida/ResoniteBridgeLib is a dependency of this library, it contains the inter-process communication and serialization code.
I want to suggest a change
Feel free to submit a PR! Contributions are welcome.
Also feel free to make a gh issue if you encounter an issue and I'm happy to help u debug.
Credits
ResoniteImportHelper's kisaragi marine was helpful for figuring out how to call VRChat hooks and bone NOIK issues
Cloud_Jumper helped me address the issue when bones were null and a few other issues
yoshi1123_ helped me address non-symmetric hands/avatars that are holding something, and a few other issues (see releases)
AlphaNeon helped me get VRChat World api support working
Venport pointed me to constraints and helped me with those
troyBORG helped with some of the head position debugging and many other things
ariel_emerald helped me with initial idea generation, some brainstorming, encouragment, and finding many various issues
Related Skills
node-connect
339.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
