I dot not have enough info to troubleshoot your straf/move problem. But I will share with you some of my codes.
I have 3 check boxes to decide whether to move/straf all/alt toons

BTW, the spaces for indent is eaten up by the web...


ToonMove(strKey)
{
Global declaration

if AllMove
{
Loop thru all toons
Clonepush
}
else
{
Clonepush current toon
}
}

ToonStraf(strKey)
{
Global declaration

if AllStraf
{
ClonePush all
{
else if AltStarf
{
ClonePush alts
}
else
{
ClonePush current toon
}
}





; ******************************
; *** Toon movement *********
; ******************************
W::ToonMove("{Up down}")
W Up::ToonMove("{Up up}")
S::ToonMove("{Down down}")
S Up::ToonMove("{Down up}")
A::ToonMove("{Left down}")
A Up::ToonMove("{Left up}")
D::ToonMove("{Right down}")
D Up::ToonMove("{Right up}")
Q::ToonStraf("{Q down}") ; straf left
Q Up::ToonStraf("{Q up}")
E::ToonStraf("{E down}") ; straf right
E Up::ToonStraf("{E up}")