ok, what i have is a long set of commands and variables dictating movement. I'm trying to make the player have a wide variety of movement (first person), where crouching slows you down, you can toggle between fast and slow, all the good stuff. so far its all nice, but what i can't get to work is the toggling between fast and slow
If keystate(29) and slow=1 then fast=1 : slow=0
If keystate(29) and fast=1 then slow=1 : fast=0
if upkey()=1 and stand=1 and fast=1 then move camera 10.0 : notmoving=0 : moving=0 : movingfast=1
if downkey()=1 and stand=1 and fast=1 then move camera -10.0 : notmoving=0 : moving=0 : movingfast=1
if leftkey()=1 and stand=1 and fast=1 then angley#=wrapvalue(angley#-2.0) : notmoving=0 : moving=0 : movingfast=1
if rightkey()=1 and stand=1 and fast=1 then angley#=wrapvalue(angley#+2.0) : notmoving=0 : moving=0 : movingfast=1
if upkey()=1 and crouch=1 and fast=1 then move camera 7.0 : notmoving=0 : moving=0 : movingfast=1
if downkey()=1 and crouch=1 and fast=1 then move camera -7.0 : notmoving=0 : moving=0 : movingfast=1
if leftkey()=1 and crouch=1 and fast=1 then angley#=wrapvalue(angley#-2.0) : notmoving=0 : moving=0 : movingfast=1
if rightkey()=1 and crouch=1 and fast=1 then angley#=wrapvalue(angley#+2.0) : notmoving=0 : moving=0 : movingfast=1
if upkey()=1 and prone=1 and fast=1 then move camera 2.0 : notmoving=0 : moving=0 : movingfast=1
if downkey()=1 and prone=1 and fast=1 then move camera -2.0 : notmoving=0 : moving=0 : movingfast=1
if leftkey()=1 and prone=1 and fast=1 then angley#=wrapvalue(angley#-1.0) : notmoving=0 : moving=0 : movingfast=1
if rightkey()=1 and prone=1 and fast=1 then angley#=wrapvalue(angley#+1.0) : notmoving=0 : moving=0 : movingfast=1
if upkey()=1 and stand=1 and slow=1 then move camera 6.0 : notmoving=0 : movingfast=0 : moving=1
if downkey()=1 and stand=1 and slow=1 then move camera -6.0 : notmoving=0 : movingfast=0 : moving=1
if leftkey()=1 and stand=1 and slow=1 then angley#=wrapvalue(angley#-2.0) : notmoving=0 : movingfast=0 : moving=1
if rightkey()=1 and stand=1 and slow=1 then angley#=wrapvalue(angley#+2.0) : notmoving=0 : movingfast=0 : moving=1
if upkey()=1 and crouch=1 and slow=1 then move camera 4.0 : notmoving=0 : movingfast=0 : moving=1
if downkey()=1 and crouch=1 and slow=1 then move camera -4.0 : notmoving=0 : movingfast=0 : moving=1
if leftkey()=1 and crouch=1 and slow=1 then angley#=wrapvalue(angley#-2.0) : notmoving=0 : movingfast=0 : moving=1
if rightkey()=1 and crouch=1 and slow=1 then angley#=wrapvalue(angley#+2.0) : notmoving=0 : movingfast=0 : moving=1
if upkey()=1 and prone=1 and slow=1 then move camera 1.0 : notmoving=0 : movingfast=0 : moving=1
if downkey()=1 and prone=1 and slow=1 then move camera -1.0 : notmoving=0 : movingfast=0 : moving=1
if leftkey()=1 and prone=1 and slow=1 then angley#=wrapvalue(angley#-1.0)
if rightkey()=1 and prone=1 and slow=1 then angley#=wrapvalue(angley#+1.0)
if keystate(45) then position camera camera position x(),50,camera position z() : stand=0 : prone=0 : crouch=1
if keystate(46) then position camera camera position x(),75,camera position z() : stand=0 : crouch=0 : stand=1
if keystate(44) then position camera camera position x(),15,camera position z() : crouch=0 : stand=0 : prone=1
if upkey()=0 then notmoving=0 : movingfast=0 : moving=1
if downkey()=0 then notmoving=0 : movingfast=0 : moving=1
fast and slow are what matters with what i'm doing. any help?

"Death Before Dishonor"
"Vengance Before Death"