Couple things come to mind.
First if this is an effect script, you really want to stick to the three real effect script blocks. Gamemode isn't quite right.
If its a block of code you want to run just once, you put it in
begin scripteffectstart
Second thing is, IF this is REALLY a gamemode block being used in an effect script, you must build code to limit it to run once, because it'll run like 3 times. Like:
scn TheGordonCritEffeckScriptshort doonceBegin GameModeif doonce == 0 set doonce to 1 if IsSneaking == 1 player.SetWeaponCritEffect NONE WeapUniqueTheGordon else player.SetWeaponCritEffect MS13HeadExplodeSpell WeapUniqueTheGordon endifendifend
You can also make a scripteffectupdate block have a one-time-run block embedded in it this way.
Even if you set NO DURATION on an effect, gamemode and scripteffectupdate blocks still get a couple of iterations in. The one that always runs once, cleanly, for me, is scripteffectstart.