Hi there I know this is many years late but I thought I'd try my luck and get a response.
Everything you guys talked about works just fine, except if the attribute is part of a character set. Being part of a character set seems to force the attribute to evaluate regardless of whether -ae is set properly. haha curses!
This is a pretty niche Maya problem so any help would be greatly appreciated.
EDIT/SOLVED. Making sure the enums that trigger the scriptNodes are NOT part of the character set (or even on another control with attributes that are in the character set) solves the evaluation problem for me. Maya apparently treats character sets a little bit differently when you scrub the timeline.
Also to anyone attempting this I would recommend putting everything in a ScriptNode instead of a ScriptJob so that it gets saved with the file. Go into the Expression Editor and go to Select>By Script Node Name. When you create your scripts as Script Nodes they will be saved with the file and your animator will never have to load a ScriptJob. For an example, my script ended up looking something like this:
global proc lARMFKproc()
{
int $v_lArmFK = `getAttr global_CTRL.LArmFKIK`;
if ( $v_lArmFK == 0){
$v_l_arm_fk_to_ik = `xform -query -a -ws -rotation l_arm_ik`;
$v_l_forearm_fk_to_ik = `xform -query -a -ws -rotation l_forearm_ik`;
$v_l_hand_fk_to_ik = `xform -query -a -ws -rotation l_hand_ik`;
xform -a -ws -rotation $v_l_arm_fk_to_ik[0] $v_l_arm_fk_to_ik[1] $v_l_arm_fk_to_ik[2] l_arm_fk_CTRL;
xform -a -ws -rotation $v_l_forearm_fk_to_ik[0] $v_l_forearm_fk_to_ik[1] $v_l_forearm_fk_to_ik[2] l_forearm_fk_CTRL;
xform -a -ws -rotation $v_l_hand_fk_to_ik[0] $v_l_hand_fk_to_ik[1] $v_l_hand_fk_to_ik[2] l_hand_fk_CTRL;
}
}
scriptJob -attributeChange "global_CTRL.RArmFKIK" "lARMFKproc";
Hope this helps anyone in this decade, haha