Hi Nick, Welcome to the community.
Luckily this TCP.UDP.SendMixed action lets you encode characters using their hex code (even if they are normal ascii, despite the action description), so you can just replace & with \x26
For example:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.1.0-->
<command id="1180" name="send udp tellvox" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>TCP.UDP.SendMixed</cmdType>
<params>
<param>VC.TellVox\x26\x26pay attention</param>
<param>33000</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</command>
Another option is to use the EventGhost actions. If you aren't using EventGhost then this is a handy way, since adding optional payloads appends them to the UDP message along with the && delimiter.
It should also be pretty easy for me to add another action for the TCP.UDP.* which will do something similar.
If you want to share data "on the fly" while two VCs are both active you will probably need to use your own files. You can either use text files, or the payloadXML actions, or set up some kind of web server that can store and return values.