A Unity editor tool that sorts the assets of a VRChat avatar into a consistent folder structure, remaps their references, and writes a scene plus an optional prefab that point at those organized copies.
Drop an avatar FBX or prefab into the window, press Organize Assets, and its meshes, materials, textures, animations, controllers, menus, and parameters are collected and filed into one output folder.
- Unity 2022.3.22f1 or newer, including Unity 6 (6000.x)
- VRChat SDK3 Avatars is optional
- Download the latest
.unitypackagefrom Releases. - In Unity, choose Assets > Import Package > Custom Package... and select the file.
- Import everything. Files land in
Assets/KaleidoVR/Editor/. - Open the tool from the menu bar: KaleidoVR > Asset Organizer.
To install from source instead, copy the Editor folder (including its .meta files) into Assets/KaleidoVR/ in your project.
Unity 2022.3.22f1 or newer. The tool only uses editor APIs that exist in the 2022.3 LTS line, so it also compiles and runs on Unity 6.
The VRChat SDK3 Avatars package is only needed for the Auto-Link FX & Menu option. Everything else — organizing, copying, moving, and prefab creation — works in a plain Unity project. If the SDK is absent, the descriptor step is skipped with a warning instead of failing.
- Set Output Directory with Select Folder. It must be inside
Assets. - Drag your avatar into Objects to Organize. Project FBX/prefab assets work, and so do scene instances — those resolve back to their source asset.
- Optionally set Scene Name and Prefab Name, and drag anything you want left out of the new prefab and scene into the Ignore List.
- Press Organize Assets.
The Scene Name and Prefab Name fields auto-fill from the first object you drop in. Organizing always writes a scene named after Scene Name. Create Prefab also writes a prefab into <output>/Prefabs/ and places that prefab into the scene.
Each asset type can be set to one of three actions:
- Copy — duplicate the asset into the output folder, leaving the original in place. This is the default and the safe choice.
- Move — relocate the original into the output folder. Use only when you intend to move your source files.
- Ignore — skip the type entirely.
Scripts, DLLs, shaders, and anything under Packages/, Assets/Editor, Assets/KaleidoVR/Editor, or Assets/KaleidoVR/Generated are always skipped, so the tool will not relocate Poiyomi, the VRChat SDK, Kaleido editor scripts, or Kaleido generated cache.
- Create Prefab — after organizing, build a prefab in
<output>/Prefabs/whose components point at the newly organized assets. - Textures are always sorted into subfolders by suffix (normal, emission, metallic, roughness, AO).
- Auto-Link FX & Menu always runs on a single organized object: add or reuse a
VRCAvatarDescriptorand assign the FX layer, expressions menu, and expression parameters.
All settings persist between sessions via EditorPrefs.
<output folder>/
├── <Scene Name>.unity
├── FBX/
├── Materials/
├── Textures/ (Normals, Emissions, Metallic, Roughness, AO)
├── Audio/
├── Prefabs/
├── Other/
└── 3.0/
├── Animations/
├── BlendTrees/
├── Avatar Masks/
├── Controllers/
├── Menus/
└── VRCExpressionParameters/
Copies are made through the Unity asset database rather than by copying files and their .meta on disk. Each copy therefore gets its own GUID, and the tool then rewrites the serialized references of the copied assets and the generated prefab to point at the new files.
This matters because duplicating a .meta file duplicates its GUID, which leaves two assets claiming the same identity and causes materials, controllers, and prefabs to resolve to the wrong file.
Every run writes a log of what was copied, moved, and ignored to Logs/KaleidoVR/Organizer/.
Prefab generation expects the avatar root as a single object. Dropping several root objects nests them all under one new parent named after Prefab Name.
Created and maintained by KaleidoVR.
Copyright (c) 2026 KaleidoVR. All rights reserved.
Free to use in your own projects, personal or commercial, including commission work. Please don't modify it, sell it, or bundle it into products or avatar downloads — link people to the repo instead so they get the current version.
