Avatar Impostors And Performance For VRChat Creators
VRChat avatar visibility is not only about whether an upload succeeds. Other players may see the full avatar, a performance-filtered version, an impostor, or a fallback depending on platform, safety settings, performance rank, and whether an impostor exists.
Use this page when you want more people to see a usable version of your avatar, especially across PC, Quest, Android, and crowded events.
Optimize first, then use impostors as a visibility safety net.
- Open Avatar Stats and compare the avatar against the PC or mobile thresholds below.
- Fix the largest over-limit numbers first: texture memory, meshes, material slots, bones, PhysBones, contacts, constraints, and particles.
- Generate or regenerate an impostor after the avatar is uploaded so blocked users can still see a useful representation.
Impostors are avatar body doubles. They help bridge visibility gaps when the normal avatar cannot be shown, including cross-platform and performance-blocked situations.
What Avatar Impostors Are
An avatar impostor is a simplified body double generated for an uploaded avatar. It gives other users something closer to your avatar when they would otherwise see a fallback or robot-style replacement.
Impostors are especially useful when:
- An avatar was uploaded for Windows but not Android.
- Another user blocks the full avatar by performance rank.
- Mobile users need a lighter representation.
- The creator wants better fallback visibility without rebuilding everything immediately.
Impostors are not a license to ignore performance. They are a safety net for visibility.
Performance Rank Still Matters
Performance rank affects whether people see your avatar, how much of it they see, and what components may be filtered. VRChat's Performance Ranks page is the primary reference for the numbers below.
Stats that usually decide the rank:
- Triangles.
- Texture memory.
- Skinned Mesh Renderer count.
- Basic Mesh Renderer count.
- Material slots.
- Bones in the rig.
- PhysBone components, affected transforms, colliders, and collision checks.
- Contacts.
- Constraint count and constraint depth.
- Particle systems, active particles, trails, and particle collision.
- Lights, cloth, physics components, and audio sources.
Mobile platforms are stricter than PC. If your audience includes Quest, Android, or mobile users, test that path directly and aim for Medium or better on mobile, because mobile users cannot see Poor or Very Poor avatars by default.
Concrete Performance Limits To Check
These tables condense VRChat's official avatar performance rank values so creators can quickly see the numbers that matter most.
PC Targets
For PC avatars, Good is a practical public-use target. Poor is the last bounded rank; going above the Poor value puts that stat into Very Poor territory.
| Stat | Good target | Avoid Very Poor by staying at or below |
|---|---|---|
| Triangles | 70,000 | 70,000 |
| Texture memory | 75 MB | 150 MB |
| Skinned Mesh Renderers | 2 | 16 |
| Basic Mesh Renderers | 8 | 24 |
| Material slots | 8 | 32 |
| Bones | 150 | 400 |
| PhysBone components | 8 | 32 |
| PhysBone affected transforms | 64 | 256 |
| PhysBone colliders | 8 | 32 |
| PhysBone collision checks | 128 | 512 |
| Contacts | 16 | 32 |
| Constraint count | 250 | 350 |
| Constraint depth | 50 | 100 |
| Particle systems | 4 | 16 |
| Active particles | 300 | 2,500 |
| Lights | 0 | 1 |
Mobile, Quest, And Android Targets
For mobile avatars, Medium or better is the practical visibility target because mobile blocks Poor and Very Poor avatars by default. To avoid Very Poor, stay at or below the Poor value. For several mobile-only component caps, exceeding the limit removes the component behavior even if the user selects Show Avatar.
| Stat | Medium-or-better target | Avoid Very Poor by staying at or below |
|---|---|---|
| Triangles | 15,000 | 20,000 |
| Texture memory | 25 MB | 40 MB |
| Skinned Mesh Renderers | 2 | 2 |
| Basic Mesh Renderers | 2 | 2 |
| Material slots | 2 | 4 |
| Animators | 1 | 2 |
| Bones | 150 | 150 |
| PhysBone components | 6 | 8 |
| PhysBone affected transforms | 32 | 64 |
| PhysBone colliders | 8 | 16 |
| PhysBone collision checks | 32 | 64 |
| Contacts | 8 | 16 |
| Constraint count | 120 | 150 |
| Constraint depth | 35 | 50 |
| Particle systems | 0 | 2 |
| Active particles | 0 | 200 |
| Mesh particle active polys | 0 | 400 |
| Trail Renderers | 0 | 1 |
| Line Renderers | 0 | 1 |
For an Excellent mobile avatar, some things really are zero: PhysBone components, PhysBone affected transforms, PhysBone colliders, PhysBone collision checks, particle systems, active particles, mesh particle active polys, trail renderers, line renderers, particle trails, and particle collision. Excellent mobile also allows only 1 Skinned Mesh Renderer, 1 Basic Mesh Renderer, 1 material slot, 1 animator, 75 bones, 7,500 triangles, and 10 MB texture memory.
Mobile Hard Caps And Removed Components
On mobile, the following avatar component caps are hard limits:
- 8 PhysBone components.
- 64 PhysBone affected transforms.
- 16 PhysBone colliders.
- 64 PhysBone collider checks.
- 16 contacts.
- 150 constraint components.
- 50 constraint dependency depth.
If a mobile avatar exceeds those caps, VRChat removes the limited components. A user's Show Avatar override does not bypass that behavior.
VRChat also disables some avatar component types on Android and Quest. Do not rely on these for a mobile avatar:
- Lights.
- Cloth.
- Physics colliders.
- Physics rigidbodies.
- Audio sources.
- Unity constraints; use VRChat Constraints instead.
Upload Size Limits
Performance rank is not the only gate. VRChat also enforces avatar size limits:
| Platform | Download size | Uncompressed size |
|---|---|---|
| Android | 10 MB | 40 MB |
| PC | 200 MB | 500 MB |
If the SDK says the avatar is over the platform size limit, fix textures, audio, animation clips, blend shapes, and unused assets before publishing.
Practical Creator Workflow
Use this order:
- Upload a private avatar build.
- Check SDK warnings and in-client Avatar Stats.
- Compare the avatar against the PC or mobile table above.
- Confirm the avatar still behaves correctly.
- Reduce the largest over-limit numbers first.
- Generate or regenerate impostors from the VRChat website.
- Preview the impostor in VRChat.
- Ask a Quest, Android, or mobile user to check visibility if that audience matters.
Test visibility before an event or public release, especially if the avatar is meant for mixed PC and mobile audiences.
PC Avatar, Mobile Audience
If you only have a PC upload, make a deliberate choice:
| Goal | Better move |
|---|---|
| PC avatar with no Android upload | Generate an impostor. |
| Best mobile experience | Create and test a dedicated Android avatar version. |
| Event-ready avatar | Target Good on PC and Medium or better on mobile, then generate impostors. |
| Marketplace or public avatar | Plan PC, Android, thumbnails, description, and visibility checks together. |
The best result is often both: an optimized avatar plus an impostor.
Common Problems
Help! My avatar uploaded, but people still see a fallback.
Check performance rank, platform support, user safety settings, and whether an impostor has been generated. Upload success does not guarantee full visibility for every player.
Help! Quest users cannot see my PC avatar.
Create an Android avatar variant if you need full mobile support. At minimum, generate an impostor so Quest and Android users have a better fallback representation.
Help! My performance rank got worse after adding polish.
Review new material slots, texture memory, mesh renderers, PhysBones, contacts, constraints, particles, and extra bones. Compare the changed avatar against the PC or mobile thresholds above before publishing.
Official References
- VRChat Avatar Impostors
- VRChat Avatar Performance Ranks
- VRChat Avatar Optimization Tips
- VRChat Avatar Size Limits
- VRChat Android Content Limitations
Related Reading
- Avatar Optimization Checklist
- Quest Compatibility Checklist
- Phys Bones
- VRChat Avatar Impostors
- VRChat Avatar Performance Ranks
Final Advice
Think about avatar visibility as a user experience problem. Your upload is only successful if the people you care about can see a reasonable version of the avatar on the platforms they use.
Make Sure Other Players Can Actually See The Avatar
A beautiful avatar is not useful if it is blocked, filtered, or replaced for the people you want to reach. Performance rank, mobile limits, and impostors all affect visibility.
Suggested Order
- Check performance rank Use the SDK and in-client Avatar Stats view to compare the avatar against VRChat performance limits.
- Generate or update impostors Use impostors as a better visibility fallback when players cannot load the full avatar.
- Build a mobile plan Quest and Android users face stricter avatar limits, so plan a mobile variant or at least a useful impostor.
Related VRCreators Guides
Reference Links
- VRChat Avatar Impostors Official impostor documentation.
- VRChat Avatar Performance Ranks Official performance rank and mobile blocking documentation.
- VRChat Avatar Optimization Tips Official avatar optimization advice.
- VRChat Avatar Size Limits Official download and uncompressed size limits.
- VRChat Android Content Limitations Official Android and Quest component limitations.
Common Questions
Do impostors replace avatar optimization?
No. Impostors help visibility when the full avatar cannot be shown, but the original avatar should still be optimized for the audience and platform.
Why can mobile users not see my avatar?
Mobile VRChat blocks Poor and Very Poor avatars by default, and hard mobile component caps can remove PhysBones, contacts, and constraints. The avatar may need a dedicated Android version, fewer costly components, or a generated impostor.