First we create the Main Menu. Create an Expressions menu asset and name it “Main menu”.Create > VRChat > Avatars > Expressions Menu

Now we create the sub menu for the toggles. Create another menu as before and let’s name it “Toggles menu”.
Go to the main menu, click Add Control, set the name to Toggles Menu and the type to Sub Menu. Then drag the Toggles menu asset to the Sub Menu parameter.

Now let’s define the parameters. Create an Expression Parameters asset and name it “Parameters”.
Select the Parameters asset and add as many parameters as you want things to toggle. (You might want to set the type to Boolean if you want to toggle visible/non visible.)
On the Toggles Menu drag the Parameters asset we just created and create one control per object you want to toggle, set the type to toggle and select the variable.


Drag and drop the Main Menu and Parameters to their corresponding variable on the Avatar Descriptor under “Expressions”.

Now we create the animations that will actually toggle the visibility. We have to create an animation clip for both the active and inactive states. Create an animation clip, add the property and leave only the frame on 0.
On the Avatar Descriptor, go to Playable Layers > FX, click on the button and look for the animator controller on Packages > VRChat SDK - Avatars > Samples > AV3 Demo Assets > Animation > Controllers , select “vrc_AvatarV3HandsLayer”, copy it to wherever you are working and let’s rename it for example to “FX_Controller” and drop it to your avatar descriptor on Playable Layers > FX.
Select the FX_Controller and (on the animator window) create one new bool parameter and one new Layer per toggle the same name as the parameters we created back on the Parameters asset.


Set the weight (clicking on the wheel next to the name on the animator window) to 1 for each new layer.
Now select the layer and drag the two animation clips (ON and OFF)
Right click on one of them, select Create Transition and connect it to the other one.
Select the transition arrow and on the inspector uncheck Has Exit Time and add a new Condition selecting the corresponding parameter.

Do the opposite for the transition the other way.
<aside> ⚠️
When Creating a Radial Puppet that will modify a Float parameter, do not put the Parameter on the parameter dropdown, only on the Rotation.

</aside>