All guides

VRChat

VRChat avatar

Prepare a rigged humanoid, export PC or Quest, then set up, test and upload in Unity with the VRChat SDK.

Open VRChat export

Reading this guide is free. The linked tools explain their own sign-in and usage requirements.

Before you start

  • A model you have permission to use, with a supported Humanoid rig. An unrigged GLB must be rigged first.
  • VRChat Creator Companion, its supported Unity version and an Avatars project with the SDK installed. Use VCC's current instructions rather than an arbitrary Unity version.
  • A VRChat account eligible to upload avatars. SDK account access is separate from your Crateyard account.
  1. 1

    Choose and inspect the character

    Have only an idea or image? Create a character in Asset Studio first. Use a full-body neutral pose with separated limbs. Open the model in Mesh Editor to check scale, geometry and materials. Simplify or remesh before rigging; topology changes can require a new rig.

  2. 2

    Rig and check bending

    For an unrigged character, choose Auto-Rigger, set the front direction and place the joint markers. Choose five fingers, mitten or none to match the actual mesh. Play an animation and inspect shoulders, elbows, knees and hands. Keep the original model and rigged GLB.

    Finger bones alone do not guarantee tracking. Separated fingers, weights, Unity mapping and the user's controllers all matter.

  3. 3

    Export a PC or Quest package

    Open the rigged model in Mesh Editor. Choose Export, then VRChat PC or VRChat Quest. Export requires the supported Humanoid bones. Quest export also blocks models above 20,000 measured triangles, uses mobile materials and limits imported textures to 1024 pixels. Check the SDK's full performance report, not just this export limit.

    The download includes avatar.fbx, available textures/materials, AvatarExport.json and an editor setup tool. The SDK is not bundled. The package is not an upload or an SDK compatibility guarantee.

  4. 4

    Create the Unity project and import everything

    In Creator Companion, create an Avatars project and open it in the supported Unity version. Choose Assets > Import Package > Custom Package and import every asset from the .unitypackage. Let scripts compile. Open Assets/CrateyardAvatar/AvatarScene.unity. If setup does not run automatically, choose Crateyard > VRChat > Build Upload-Ready Avatar.

    PC and Quest packages use the same asset paths. Use separate Unity projects or working copies so importing one variant does not overwrite the other.

  5. 5

    Check the rig, descriptor and materials

    Select avatar.fbx, inspect the Rig tab and confirm the Avatar is valid and Humanoid. Inspect the generated Avatar.prefab: it should have an SDK3 Avatar Descriptor, PipelineManager, default animation layers and a viewpoint. Adjust the viewpoint between the eyes and check scale and materials. The setup tool refuses to create an upload prefab when Unity's Avatar is invalid.

    Configure and test custom expressions, lip sync, eye movement and accessories yourself where needed. Default animation layers do not create custom expression menus or repair the mesh.

  6. 6

    Select Windows or Android

    Use Windows for the PC variant. For Quest, install Android build support through the supported Unity setup and switch the project to Android. Recheck all shaders and textures after switching; unsupported PC shaders do not become mobile-compatible just because the target changed.

  7. 7

    Validate, test and publish with the SDK

    Open VRChat SDK > Show Control Panel, sign in to your VRChat account and select Builder. Resolve errors and review warnings and the full performance report. Use Build & Test for local checks where the SDK supports it, then Build & Publish. Test bending, hands, viewpoint and materials in VRChat before treating the avatar as finished.

    For one cross-platform avatar, the PC and Quest variants must share the same avatar blueprint ID in the PipelineManager. Publish the first variant, then attach the other to that same avatar ID using the SDK workflow. A second independent upload creates a different avatar.

Troubleshooting

Humanoid export is blocked

Open the rigged result, not the original static mesh. Missing required bones must be fixed. Re-rig a copy with Auto-Rigger or inspect and correct an existing rig in Unity; do not rename random bones to bypass the check.

Rigging guide
Quest exceeds the triangle limit or has a poor rank

Reduce geometry before rigging and inspect the result. Passing the 20,000-triangle export limit does not guarantee a good rank. Materials, texture memory, bones and additional components also affect performance and visibility.

Inspect performance estimates
The scene or setup menu is missing

Import all files into a VCC Avatars project. Wait for compilation and fix the first Unity Console error. Confirm the SDK is installed, then run the package's setup menu. Do not install a second SDK from an old package.

Pink materials or missing textures

Check that every package asset was imported, textures are assigned and the shader exists for the selected platform. For Android use supported VRChat mobile shaders. Do not fix a missing shader by ignoring the SDK error.

The rig bends badly or hands do not track

Inspect bone mapping and skin weights. Separate fingers are needed for individual finger bones. Reposition markers and re-rig a copy if necessary. Test with the actual controller configuration; a valid Humanoid rig is not proof of good deformation.

Upload is unavailable or the avatar duplicates

Check SDK login, upload eligibility and Builder errors. For PC/Quest pairing check the PipelineManager blueprint ID. Use the same ID for both platform variants, not two new-avatar uploads.

Crateyard generation and conversion run on our servers; Unity and the VRChat SDK run on your computer. Rigging and export use no app tokens. AI generation and provider usage are separate costs.

Creator Companion setup Official avatar creation guide Official performance ranking Android platform requirements