Skip to main content

Don'ts of Avatars and Optimization

Don’ts of Avatars

Don’t put automatically playing audio on your avatar (like music that plays when it loads in). That audio will also replay any time a player reloads avatars, like every time they change their safety settings. It’s one of the most obnoxious components you can put on an avatar, it’s completely unsolicited, and everyone in the world hears it at an equal unspatialized volume, so please don’t use it.

Don’t put real-time lights on your avatar.

Avoid gratuitous particle effects; they are extremely obnoxious, tank the framerate, and are often nausea, epilepsy, and anxiety inducing.

DO NOT PUT SCREEN WARPING EFFECTS ON YOUR AVATAR. This is the single worst component type you can apply to an avatar, as it is usually unsolicited and the effect is literally sickening, as in nausea, epilepsy, and anxiety inducing.

Avatar Optimization Tips

Read the limits
Read the documentation
Use the Blender CATS Plugin!
Pumkin’s Avatar Tools can make it super easy to remove unnecessary stuff from your avatar!

Avatar download size

  1. On each texture file (image, typically .jpg or .png), in the inspector window,
    under compression, select normal quality (if it isn’t already)
  2. Enable crunch compression
  3. Click apply

(You can do this with multiple textures selected to expedite the process)

Polygon count

The total number of triangles on your model via decimation. You can either use quick decimation via CATS, or for better results you can use CATS to separate the model (like by loose parts) and apply decimate modifiers to those parts individually.

Material Count

Combine identical materials via CATS Optimization dropdown, Material tab.
Create atlases of different materials. This will merge multiple textures/materials into one (reducing draw calls & increasing performance).


Bone count

The fewer the better. You can reduce the number of bones by merging their weights into their parents. Many MMD models come with far too many bones on parts like clothing than is optimal for VRChat. CATS has a bone merging section.

Dynamic bones

Dynamic bones are from a paid Unity add-on that allows for bones to delay their return to their neutral position using physics. It is mostly used for hair or animal ears. They are often the single most performance-intensive component you can put on an avatar, so if you choose to use them, keeping their number to a minimum is essential. Merge bone chains!!!

Note that Oculus Quest does not support dynamic bones.

Dynamic bone component

This is put on the parent bone of the to-be-affected child bones. The fewer the better. For example, if you want dynamic bones on your hair, you can put a single dynamic bone component on the head bone (and exclude all the non hair bones) instead of putting a separate dynamic bone component on each chain of hair bones.

Dynamic bone collider

Allows collision of dynamic bones on your own avatar. Generally doesn’t work well and is horrendous for performance. Ideally avoid, if you need them then have a maximum of 2, one for each hand.

Note that the collider shape is a capsule, not a sphere.

The colliders can be easily removed though Pumkin’s Avatar Tools.

There is a feature in Performance options in Safety settings called Limit Dynamic Bone Usage, enabled by default. This limits the number of Dynamic bones to 32 and the maximum dynamic bone components to 8. Try to stay below this threshold by merging bone weights and using fewer Dynamic bone components, but putting exclusions on them (e.g. put one on the head bone for the hair but exclude all the non-hair components).

Quest Optimization

You can view all of the restrictions here.
Quest Content Optimization

The Sins of Avatar Stats (review)


  • Unassigned dynamic bone collision checks

  • Gratuitous dynamic bone colliders / collision checks

  • Gratuitous dynamic bone components

  • Gratuitous dynamic bones (MERGE THESE CHAINS VIA CATS!!!)

  • Cancerous effects

  • Absurd polygon count

  • Absurd particle count

  • Realtime lights