[VRCSDK3-AVATAR-2021.07.12.18.52] Expression Menu may still hold references to Sub Menu assets when the control is not a Sub Menu, causing irrelevant "VRCExpressionMenu uses a parameter that is not defined" messages that prevent upload
tracked
Haï~
When an Expression Menu control is changed from a Sub Menu to another type of control, the reference to the Sub Menu asset is still evaluated for the validity of the Expression Menu of the avatar, despite it not being used.
This was still true as of VRCSDK3-AVATAR-2021.07.12.18.52 and U2019-VRCSDK3-AVATAR-2021.07.15.13.44.
This can create confusing "VRCExpressionMenu uses a parameter that is not defined" messages pointing to menu assets and parameters that are not actively being used by the active avatar.
How to reproduce:
- (In a new scene, create the minimum required for an avatar)
- Create a new Expression Parameters asset
- Create a new Expression Menu asset, and name it "Main"
- In the Avatar Descriptor, in the Expressions, click customize.
- Assign the Expression Parameters asset to the avatar
- Assign the "Main" Expression Menu asset to the avatar
- Open the VRChat SDK Control panel, and verify that the avatar is in an upload-able state (no grayed out buttons, and no error messages)
- Create another Expression Menu asset, and name it "Inner"
- In the "Inner" Expression Menu asset, click Add Control
- In the newly added control, set the Parameter field on the right to the letters "Abc"
- In the "Main" Expression Menu asset, click Add Control
- In the newly added control, set the Type to Sub Menu
- In the newly added control, set the Sub Menu to point to the "Inner" asset
- Open the VRChat SDK Control panel, and verify that the avatar is in an NON upload-able state, with a message "VRCExpressionMenu uses a parameter that is not defined. Parameter: Abc"
- In the "Main" Expression Menu asset, change the control Type to Button
- Open the VRChat SDK Control panel
Observed:
- The avatar is in an NON upload-able state (grayed out buttons), with a message "VRCExpressionMenu uses a parameter that is not defined. Parameter: Abc"
- Clicking the "Select" button next to that message will select the "Inner" Expression Menu asset.
Expected:
- The avatar should be in an upload-able state (no grayed out buttons, and no error messages)
- There should NOT be a warning message saying that "VRCExpressionMenu uses a parameter that is not defined. Parameter: Abc"
- The "Inner" Expression Menu asset should not be taken into consideration in the evaluation of the validity of the "Main" Expression Menu, as it is no longer visibly referenced.
Log In
Dexvoid
Merged in a post:
Error in Expression Menu Validation
Hackebein
- Create an expression menu
- Create sub menu with toggle for parameter which doesn't exist
- create menu item in main expression menu and link submenu
- change menu item type from submenu to toggle
Current behaviour:
VRChat SDK shows "VRCExpressionMenu uses a parameter that is not defined. Parameter: <your parameter name>" and blocks upload
Expected behaviour:
No warning/error in SDK window
SDK: 3.7.1
Dexvoid
Merged in a post:
Replaced submenu prohibits uploading
s
stickypaw
If you change the type of a menu option from submenu to something else, the submenu reference remains and will prevent uploading if the submenu references parameters that don't exist. This can happen in a normal workflow by duplicating and modifying an existing menu, or just by removing functionality from an existing avatar by repurposing the submenu control.
Reproduce steps:
On an existing avatar, create a control of type submenu. Reference an existing submenu (or make a new one) that controls a parameter that isn't on the avatar.
Observe on the SDK window that upload is prevented with the message:
"VRCExpressionsMenu uses a parameter that is not defined." This is expected behaviour.
Next, change the type of control you added from submenu to toggle.
Observe that the SDK still prevents you from uploading, as the submenu is still referenced, but the field is hidden from the user, as the control type is now toggle.
Requesting to have the submenu reference cleared when the control type is changed from submenu to something else.
Hackebein
This post was marked as
tracked
Are_
This is still an issue. For those of us who know about it, we can easily fix it. But for users who don't know about sub-parameters or how they linger and prevent upload even when unused, it can be a real headache that takes hours to figure out.
Simple fix for the issue: If this error would appear, first check if the parameter is a sub-parameter that isn't in use by the menu item type. If true, just clear it and continue without an error. Also check if the submenu field is assigned, if it is and the menu item isn't of type submenu, then clear that field and continue without an error.
Chdata
I just got this error in 2025
KibbieKatt
I think I was having a related issue, but I'm new to working on avatars so I'm not sure.
I was trying to remove a tail which has submenus for parameters. I deleted the parameters as well as the submenu for "2 axis puppet" for tail control, but the uploader still complained that the menu was using an undefined parameter. When editing the Menu.asset file in a text editor, I can still see the subParameters despite them not showing up in the unity inspector. Removing them using the text editor seemed to fix the issue.
Riceballer3D
ya this happened to me last month, drove me up the wall till I found a 3 year old message in a discord server.
Lilyyy6_
This bug is still present in sdk 3.7.5 (the most current sdk). I need the other menu it thinks is on the avatar because it is attached to another avatar in the project, so I can't delete it. Very annoying bug that fills my parameter list with many useless parameters, please fix soon VRChat.
Photo Viewer
View photos in a modal
Load More
→