The VRChat SDK includes a few State Behaviours. State Behaviours are small Scripts which you can put on Animator States to perform an action once the Animator State has been entered. They can be added to a state by clicking the Add Behaviour button in the State’s Inspector and clicking on the right one, and they can be removed by, clicking Right Click → Remove on the name of the State Behaviour.
<aside> ⚠️ Contrary to what Unity’s documentation says: State Behaviours still run even when the layer’s weight is set to 0.
</aside>
Note: every State Behaviour has a Debug String field. The string put in this field gets logged to the Logs whenever this State Behaviour runs. I won’t elaborate on these in the specific State Behaviour sections.
This State Behaviour is the most popular State Behaviour for creating systems. It allows setting VRC Expression Parameters and Playable Layer Animator Controller Parameters.
You can select multiple operations for this State Behaviour to take, and it will perform them top to bottom.
The Local Only toggle lets the Parameter Driver only run locally.
The Add, Up, Down and Delete buttons can be used to add, move and delete operations
This State Behaviour gets used for all sorts of things, mostly Systems that require changing the parameters as they appear in the Expression Menu, and systems that need to Count things (like gun ammo).
<aside> ⚠️ Synced Parameters are clamped between their Sync bounds. This is [0, 255] for int and [-1, 1] for float
</aside>
<aside> ⚠️ You can’t use this to copy from and/or change Built-In VRC Parameters and Animated Animator Parameters (AAP).
</aside>
Note that for all operations, Expression Parameter Mismatching applies, based on the type in the controller, and the input type being a float.

A VRC Avatar Parameter Driver State Behaviour
The Set operation sets a value across all Playable Layers and in the Expression Parameters List.
The Destination field is the parameter that will be set, and the Value field is the value that will be used.

A VRC Avatar Parameter Driver Set Operation
The Add operation adds a set number to a value across all Playable Layers and in the Expression Parameters List.
The Destination field is the parameter that will be set, and the Value field is the value that will be used.
This parameter is best applied locally, and the resulting value synced over the network.

A VRC Avatar Parameter Driver Add Operation
The Random operation sets a value to a random number between the Min Value and the Max Value. Note that these values are inclusive, so [0, 6] can roll both a 0 and a 6. Across all playable layers, the rolled value will be the same.
The Destination field is the parameter that will be set, and the Min and Max Value fields are the value that will be used for the randomization.
This parameter is best applied locally, with the resulting value synced over the network.

A VRC Avatar Parameter Driver Random Operation
The Copy operation allows you to copy a value to another value across all Playable Layers and in the Expression Parameters List, including remapping.
This is the most useful Parameter Driver operation to use Expression Parameter Mismatching with, as it allows us to map a value from one type to another.
The Source and Destination are the source and target parameters that will be used.
If Convert Range is enabled, the source parameter will be mapped from the source range to the destination range.
For example, you are copying a Float to an Int with value 2.1, source range [0, 10] and target range [0, 20].
Then this value will be remapped from [0, 10] to [0, 20], giving us a value of 4.2. This value will be converted to an Int, which means chopping off the decimal part, giving us a final value of 4.

A VRC Avatar Parameter Driver Copy Operation