Skip to main content

Build and Upload

After reading this page you will know when and where MLC creates the menu, and you will be able to choose an attachment mode, get through the upload, and read the failure messages.

The authored avatar is never changed​

MLC installs nothing into the avatar you are editing. Not the Expressions menu, not the Expression Parameters, not the FX animator, not the animation clips, not an attachment child object — none of them appear on the avatar saved in the scene. The component inspector and the MLC window only edit and validate serialized settings.

A button like Validate Settings (No Source Changes) means exactly what it says. It validates and leaves no output behind.

Assets are created on the NDMF build clone only​

MLC creates real assets only inside the throwaway avatar clone that NDMF builds. Two paths go through it.

  • Play Mode preview that runs through NDMF
  • The VRChat upload build

On top of the clone it builds the menu, parameters, clips, and FX controller, attaches them the way you chose, and then removes the MLC component itself from the finished clone. The authored avatar, and the FX, menu, and parameter assets it already had, stay as they were.

MLC's build step runs before Modular Avatar. That is why the Modular Avatar components that only exist on the clone are consumed normally by the later steps.

There is no permanent fallback path

Called without NDMF, MLC does not create a generated folder or attach anything to the authored avatar; it reports a diagnostic and stops preparing. This is intended behavior.

Choosing an attachment mode​

  1. Select the avatar root. If it has no component yet, use GameObject > Studio Raming > Ming Light Controller > Add or Configure Component.
    • This is correct. A Ming Light Controller component is attached to the avatar root and the cards appear in the inspector.
  2. Expand the Advanced Options card in the inspector.
    • This is correct. Attachment · Advanced Catalog · Target Synced Bits · Target Parameter Entries · Force Install With Unknown Budget · Allow Build Clone Preparation · Play Mode Preview · Show Diagnostics appear together as one group, in that order.
  3. Choose an Attachment mode.
    • This is correct. The choice is saved immediately, and if you picked a mode whose package is missing, a warning is shown alongside it.
  4. Press Validate Settings (No Source Changes).
    • This is correct. Validation complete is shown. If a failure message appears, see When it fails.
    • If the button is greyed out and will not press, you picked VRCFury as the Attachment mode and its provider could not be found. Choose another mode or install VRCFury.

The order Auto picks in​

Auto picks the first available mode in this order.

  1. Modular Avatar
  2. VRCFury
  3. Direct Descriptor
  4. Standalone

Every attachment operation below happens on the clone only.

Modular Avatar​

Creates a temporary child object on the clone and attaches only the components needed for menu installation, parameters, and animator merging. If it fails partway through, it removes the half-built object itself.

VRCFury​

Hands clone attachment over to VRCFury's public API. If you chose VRCFury explicitly and its provider is missing, it fails and does not fall through to another mode. The currently supported version is VRCFury 1.1426.0 or newer.

Direct Descriptor​

Assigns the menu, parameters, and FX controller MLC built directly to the clone's avatar descriptor.

It refuses to merge into an avatar that already uses any of an FX controller, an Expressions menu, or Expression Parameters. Use Modular Avatar or VRCFury on such an avatar. If attachment fails, the clone is rolled back to its previous state.

Standalone​

Attaches nothing to the avatar. It is an endpoint for taking the result out to something else, and on its own it puts no controls on the avatar.

Play Mode preview​

Turning off Play Mode Preview in Advanced Options means no controls are built on the Play Mode clone. The MLC component is removed from the clone and that is all that happens.

Disabling the component itself has the same effect. Only the component is removed from the clone and nothing is built.

If build clone preparation is off​

Turning off Allow Build Clone Preparation detaches only the MLC component from the clone and attaches no payload. The upload goes through, but the avatar has no MLC menu.

When every feature is off​

With no feature enabled the build succeeds as usual. There is simply nothing to build and nothing to attach, so the avatar gets no MLC menu.

When it fails​

MessageWhat it means
Validation completeThe current configuration can be generated
Validation failed: ...The configuration itself broke a rule. Read the reason that follows
Material binding validation failed: ...The problem is on the registered material group side
MLC compile plan is missing.No plan was produced. Check the enabled features and the menu layout first

If the NDMF build-clone pass never ran at all during the upload, the following error is left in the Console and the upload is stopped. Check that NDMF is in the project and that it is running in VRChat build processing.

Ming Light Controller was not prepared by the NDMF build-clone pass. Enable NDMF for VRC build processing.

Right before upload, the VRChat parameter asset is inspected once more. Anything caught here leaves an error in the Console starting with Ming Light Controller final VRC parameter validation failed: and the upload is stopped. The common reasons are these.

  • The Expression Parameters entry count exceeds the VRChat limit
  • The synced bit total exceeds the VRChat limit
  • The installed VRChat SDK reports limits different from the ones MLC expects
  • A parameter default value falls outside the range allowed for its type

Cases that upload fine but may behave unexpectedly — such as an empty or duplicated parameter name — are left as warnings, not errors.

Symptom-by-symptom fixes are collected in Troubleshooting.