I didn't assign the puppet to PC. The drone is running a script in heartbeat and test the presence of an item in hidden slot, presence of pc and presence of drone (as should not be more than one drone in map).
object oCurHide = GetItemInSlot( INVENTORY_SLOT_CARMOUR, oPC );
if ( !GetIsObjectValid( oCurHide ) && !GetIsObjectValid(GetObjectByTag("pc_remote")))
As for the armband, it only test if the hidden item is equipped or not and change the state.