Skip to content

Limits

The memory bar and an Outfits submenu of nine toggles: 1 the bar, 2 its legend, 3 the submenu's row, 4 the More page, 5 the places used.12345
  1. The memory bar.
  2. Its legend: the bits of the avatar, the bits of AvatarDoc and the bits still free.
  3. The row of the Outfits submenu.
  4. The More (page 2) row: the controls that did not fit on the page.
  5. The line that says how many places the submenu uses.

This page lists what limits an avatar, and what AvatarDoc does when you reach a limit. Fit in VRChat's parameter memory shows how to save bits.

VRChat shows at most eight controls on one page of the menu. When a page holds more than eight, AvatarDoc keeps the first seven where they are and moves the rest onto a More page that takes the eighth place. A More page that is itself full chains to another. The tree shows these pages as More (page 2), More (page 3) and so on, so what you see there is what is built. A note tells you which submenu was split, and moving some controls into a submenu of their own avoids the extra page. A submenu's row shows a count such as 8 of 8 once it is nearly full.

An avatar has 256 bits of synced parameter memory in total, shared by everything on it. A synced Bool costs 1 bit. A synced Int or a synced Float costs 8. A parameter that is not synced costs nothing. An exclusive group is one Int, so it costs 8 bits however many toggles it holds. The memory bar in the header shows the avatar's own bits, the bits AvatarDoc adds and the bits still free. Triggers, overrides and presets cost no synced bits.

Over the limit, the bar says by how many bits and an error stops the upload. When VRCFury is installed, it is a warning instead, because VRCFury makes the parameters smaller at upload until they fit.

VRChat's upload check rejects a menu icon that is larger than 256 pixels on a side while its import size allows more, or that is not compressed. An error names the control. Icons made by Capture icon are always 256 by 256 pixels and pass the check.

A condition trigger has three caps: at most 4 groups, at most 4 conditions in a group, and at most 64 ways to turn it off again. The ways to turn it off are the group sizes multiplied together, because the trigger must leave its On state once every group stops being true and each combination of one broken condition per group is its own way out.

GroupsConditions in eachWays to turn it offResult
42, 2, 2, 216Builds
34, 4, 464Builds
43, 3, 3, 381Refused
44, 4, 4, 4256Refused

So 4 groups of 3 conditions are refused although each cap on its own is respected, and 4 groups of 2 build. Two things count extra: a comparison of a float parameter with one exact value can be false in two ways, so it counts twice in its group, and a menu switch in Only while adds its own way out. A trigger close to 64 can be refused because of them. When the 64 cap trips, an error names the trigger, the number of groups and the number of ways. Remove conditions from the biggest groups first, or split the trigger in two. See A trigger has too many conditions.

Each entry adds the layers its Builds line names. A toggle, a radial, a preset and a condition trigger add one layer each. A toggle or a trigger that holds a shape with Pin, or a shape set rule, adds one more layer when it also writes other things. An exclusive group shares one layer between its toggles. A blend shape trigger, a Fade trigger and a contact in Flip mode add one layer each. A toggle or radial that only drives a parameter adds none. A merged animator adds the layers of its controller. The tracking pauses of Fade triggers and held shapes share a few layers between entries.

AvatarDoc Shapes writes into the FX controller only, and only into the clips that exist right after Modular Avatar. A clip that VRCFury adds later in the build is not seen, and a Gesture or Action clip is left alone. See AvatarDoc Shapes.

An override rewrites the animations that exist when its two passes run: right after Modular Avatar, and again at the end of the build. It cannot reach a layer that some other tool adds after both. See Overrides.

The Capture icon window reads the scene exactly as it is, so a blend shape or a material effect shows its value in the scene, not the toggle's On state. A piece that is switched off in the scene is drawn anyway. See Icon capture.

Convert offers only a hand made layer that is one simple on and off layer with a plain animation clip, and only the Toggle features of VRCFury. A Modular Avatar item under a Merge Animator is offered as a toggle or a radial, and a Button there only as a parameter control. Anything else is listed with its reason. See What Convert brings over.

AvatarDoc builds contact receivers only. It cannot make a contact sender. A receiver is always a sphere, with no capsule. In Hold mode, Closer than is a threshold: the effects switch on and off at the fraction you set and are not blended by distance. Only the Fade mode blends by distance. See Touch triggers.

The Outfit set window finds shrink shapes by name only. Nothing checks that a suggested shape is the right one. See Outfit sets.

The check that a PC copy and a Quest copy of one avatar have the same parameter list compares only with another copy of the same avatar that is open in a scene right now. It cannot see a copy in a closed scene or in another project.

Docs for AvatarDoc 0.7.1