You didn't set var(1) and var(2) so you are setting your velocity to 0. Obviously it won't move.
Same goes for your var(0) at your changestate, it's 0 so it never triggers.
Helpers have their own variables, that start as 0 when the helper is created, and you never set them to any other value.
And if you want gravity, use Type=Gravity. And make sure to destroy your projectile when it hits the ground.
That's odd. The other projectiles have var(0) as well, and the changestate works...
...also, var(1) and var(2) has been used already as well, without set these vars...
Here's an example:
[Statedef 1100]
Type = U
Movetype= A
Physics = N
Anim = 1100
Velset = 0, 0
Ctrl = 0
sprpriority = 1
[State 1001, PlaySnd]
type = PlaySnd
trigger1 = AnimElem = 2
value = S100,21
[State 210, PSND]
type = playsnd
trigger1 = time = 0
value = 220,0 ;1100,1
channel = 0
[State 1100, PA]
type = poweradd
trigger1 = time = 0
trigger1 = var(10) = 3
value = -500
[State 1100, ChargeSound]
type = PlaySnd
trigger1 = time = 0
trigger1 = var(10) = 3
value = 3,0
[State 1100, PP]
type = playerpush
trigger1 = time >= 13
value = 0
ignorehitpause = 1
[State 1100]
type = velset
trigger1 = AnimElem = 5
X = 4
Y = -5.7
[State 1100]
type = varrandom
trigger1 = AnimElemTime(5) >= 0
v = 1
range = -30, 15
[State 1100]
type = varrandom
trigger1 = AnimElemTime(5) >= 0
v = 2
range = 70, 110
[State 1100]
type = varset
trigger1 = AnimElemTime(5) >= 0
fvar(3) = 0.6 + 0.01*ceil(Random%21)
[State 1100]
type = Explod
trigger1 = AnimElemTime(5) >= 0
trigger1 = Random%2 = 0
anim = 1105 + Random%4
ID = 1105
pos = -6+Random%25,-48+Random%25
postype = p1
bindtime = 1
removetime = -2
ownpal = 1
sprpriority = 5
facing = IfElse(Random%2 = 0, 1,-1)
vfacing = IfElse(Random%2 = 0, 1,-1)
scale = fvar(3), fvar(3)
vel = 0.1*var(1), 0.1*var(2)
accel = 0.01*var(1), 0.01*var(2)
ignorehitpause = 1
trans = add
[State 210, 2]
type = HitDef
trigger1 = var(6) > 0 || var(3) > 0
trigger1 = var(3)<4+var(4);4
attr = A, SA
animtype = Hard
priority = 7,hit
damage = 17+7*(var(10)>1)-4*(var(10)=3), 3;26-8*(var(10)=3), 3
Hitflag = MAF
guardflag = MA
pausetime = 10,12
sparkno = S8015+(random%2)
guard.sparkno = S8030
sparkxy = -30,-50
hitsound = s1,3
guardsound = s2,0
ground.type = High
ground.slidetime = 25
ground.hittime = 25
air.hittime = 25
ground.velocity = -1.5-1.0*(var(10)=3),-5-1.0*(var(10)=3)
air.velocity = -1-1.0*(var(10)=3),-5-1.0*(var(10)=3)
fall = 1
fall.recover = 1
getpower = 34*(var(10)!=3),17*(var(10)!=3)
givepower = 17,17
nochainid = 3002
p2facing = 1
[State -2, ComboLimit Add]
type = varadd
trigger1 = movehit = 1
persistent = 0
v = 6
value = -4;-1
ignorehitpause = 1
[State 2502, Hitcount]
type = VarAdd
trigger1 = movecontact = 1
v = 3
value = 1
ignorehitpause = 1
[State 2502, Hitcount]
type = VarAdd
triggerall = movecontact = [1,5]
trigger1 = command = "x" || command = "y" || command = "z"
v = 4
value = 1
;ignorehitpause = 1
[State 2502, reset]
type = Movehitreset
trigger1 = movecontact = 1
ignorehitpause = 1
[State 2502, Hitcount]
type = VarSet
trigger1 = Var(3) >= 6
v = 3
value = 6
ignorehitpause = 1
[State 2502, Hitcount]
type = VarSet
trigger1 = Var(4) >= 3
v = 4
value = 3
ignorehitpause = 1
[State 1100, ChangeState]
type = ChangeState
;trigger1 = AnimTime = 0
trigger1 = time >= 30;45;+10*(var(10)=3)
value = 1101
ctrl = 0
And, in case, if it should help, here's the first part of the var list:
; var(1) - Used in kfm.cmd for combo condition (updated every tick)
; var(2) - Used in state 800 (also works elsewhere).
; var(3) - Miasma Sweep Hit Counter
; var(4) - Miasma Sweep Max Hit Counter (BUGGED)
; var(5) - Custom Juggle Points
; var(6) - Custom Juggle Points
; var(7) - AI Jump Flag
; var(8) - Air Dash Identifier
; var(10) - Variation Identifier (for moves with multiple versions)
; var(11) - Recovery "Roll" (Teleport?)
Also, the projectiles don't need to be affected by gravity.