Avatar validation error HELP!

i tried uploading but keep getting this problem
Avatar validation failed
UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
(wrapper dynamic-method) UnityEngine.Debug:UnityEngine.Debug.LogError_Patch1 (object,UnityEngine.Object)
VRC.Core.Logger:LogError (string,string,UnityEngine.Object)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/d__152:MoveNext () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:3370)
System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Start<VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/d__152> (VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/d__152&)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder:BuildError (object,string)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/d__143:MoveNext () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:3042)
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<System.Exception>:Start<VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/d__143> (VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/d__143&)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder:HandleBuildError (System.Exception)
VRC.SDK3A.Editor.VRCSdkControlPanelAvatarBuilder/d__141:MoveNext () (at ./Packages/com.vrchat.avatars/Editor/VRCSDK/SDK3A/VRCSdkControlPanelAvatarBuilder.cs:2927)
UnityEngine.UnitySynchronizationContext:ExecuteTasks ()

The cause of your avatar validation resulting in a failure can be found from the SDK builder alerts or the previous console log error messages.

If you need more help, can you provide a screenshot of the whole Unity Editor window with SDK builder alerts shown and all the console errors?

is this what you need?

VRCExpressionsMenu uses a parameter that is not defined.
Parameter: AvatarLeash/Scale

Your Expression Parameters (VRCExpressionParameters) file is missing the AvatarLeash/Scale parameter while it’s referenced from an Expression Menu (VRCExpressionsMenu) file.

I assume from the name AvatarLeash/Scale is meant to be a float, synced.

You can remove the menu item used to adjust the scale of the leash on the avatar, or add the expression parameter back into your avatar to keep the leash depending on what you want.


To demonstrate and recreate the issue, I’ve created two asset files: an Expression Menu named Demo menu.asset, and an Expression Parameters named Demo parameters.asset.

In my scenario, these are setup in the avatar root under VRC Avatar Descriptor (Script), but yours could be located in a VRCFury or Modular Avatar component somewhere on the avatar.

image

If the avatar uses a VRCFury Full Controller component, it could look something like this:

In Demo menu, to recreate the issue for a demonstration I’ve added an Expression Menu item named “Leash scale” and given it the parameter AvatarLeash/Scale as a rotation value to demonstrate. This menu has the Demo parameters Expression Parameters file set.

Notice how the AvatarLeash/Scale parameter is missing from the Demo parameters Expression Parameters asset in my setup.

This will cause the error in the SDK builder.


Option 1: Removing the leash scale menu item

Locate your Expression Menu with the leash scale. In this demonstration, it’s this thing:

image

  1. Open your Expression Menu (Demo menu.asset in this example) in the inspector by double clicking on it.
  2. Select the “Leash scale” submenu.
  3. Remove the “Leash scale” submenu by pressing the “-” button.
Before

After

Save the changes by pressing Ctrl + S.

Option 2: Adding the missing synced parameter for the leash scale to the VRC Expression Parameters file

This is a two-step process: Finding what parameter type you’re dealing with (if you don’t want to guess), and adding it to the Parameters Expression file.

It’s best to find out first what type of a parameter you’re dealing with. Find the FX controller which handles the animator logic for the leash. Mine is in an Animator Controller named “Demo FX” for this demonstration.

image

Double click it to open it in the Animator window/tab.

Navigate to the Parameters subtab in the Animator window. Find the AvatarLeash/Scale parameter. (If you can’t find it from the correct Animator Controller file, your Animator Controller may be non-functional too and you may choose to do Option 1 above instead, or add the parameter back to the controller if you understand what you’re doing.)

In this demo, we find that AvatarLeash/Scale is a float value (0.5). Something like AFK is a boolean value in this example.

Next, find the Expression Parameters file from your VRC Avatar Descriptor, assets directory, or VRCFury Full Controller. It’s this thing again (mine’s named Demo parameters if you remember):

image

Double click it to open it in the Inspector.

Press the “+” button, name the newly added synced parameter as AvatarLeash/Scale, and change its type to Float (or whatever you found it to be from the Animator Controller above). Set its value to your desired preference or whatever was defined in the Animator Controller (Demo FX).

Before

After

You may want the synced parameter to save the desired scale value between worlds, and sync between you and remote users. In this case I assume so, so I’ve left the checkboxes enabled.

Save the changes by pressing Ctrl + S.


If all is done correctly, your missing synced parameter should now be defined or you’ve removed the menu item which was previously referencing a parameter which doesn’t exist.

Note I’ve not touched any underlying Animator Controller (FX controller) logic or animation clips here for actually scaling the leash based on the AvatarLeash/Scale parameter’s float value. I consider implementing the logic and animations to be out of scope for this demonstrative post to resolve the underlying SDK builder error.

Your parameter could also be misnamed/typo’d, if that’s the case then renaming the parameter in the Expression Menu or Expression Parameters asset file would also resolve the underlying issue.