Even with the hitonce parameter, it seems the problem still persists. I'm beginning to wonder if something else is causing this so I'll post the entire code
Spoiler, click to toggle visibilty
;---------------------------------------------------------------------------
; Lunacy Ray FX
[Statedef 22100]
type = A
movetype= A
physics = N
velset = 0,0
anim = 22100
ctrl = 0
sprpriority = 5
[State 22001, BTR]
type = bindtoroot
trigger1 = root,stateno = 2100
trigger1 = !(root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger1 = !(root,animelemtime(19)>=0)
pos = 12,-65
ignorehitpause = 1
[State 22001, BTR]
type = bindtoroot
triggerall = root,stateno = 2100
trigger1 = (root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger2 = (root,animelemtime(19)>=0)
pos = -15,-72
ignorehitpause = 1
[State 22100, VS]
type = null
trigger1 = animelemtime(1) = 0
trigger1 = (var(20):=0)||1
trigger2 = animelemtime(10)=0
trigger2 = (var(20):=-10)||1
[State 1010, NHB]
type = nothitby
trigger1 = 1
value = SCA,AA,AP,AT
ignorehitpause = 1
[State 1010, HitOverride]
Type = HitOverride
Trigger1 = 1
Attr = SCA,AA,AP,AT
slot = 0
time = -1
Stateno = 22102
IgnoreHitPause = 1
[State 21000, ASS]
type = assertspecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 21000, T]
type = trans
trigger1 = 1
trans = addalpha
alpha = 256,256
ignorehitpause = 1
[State 21300, CS]
type = changestate
trigger1 = 1
value = 22101
;---------------------------------------------------------------------------
; Lunacy Ray FX
[Statedef 22101]
type = A
movetype= A
physics = N
velset = 0,0
;anim = 1998
ctrl = 0
sprpriority = 5
movehitpersist = 1
[State 22001, BTR]
type = bindtoroot
trigger1 = root,stateno = 2100
trigger1 = !(root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger1 = !(root,animelemtime(19)>=0)
pos = 12,-65
ignorehitpause = 1
[State 22001, BTR]
type = bindtoroot
triggerall = root,stateno = 2100
trigger1 = (root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger2 = (root,animelemtime(19)>=0)
pos = -15,-72
ignorehitpause = 1
[State 22100, VS]
type = null
trigger1 = animelemtime(1) = 0
trigger1 = (var(20):=0)||1
trigger2 = animelemtime(10)=0
trigger2 = (var(20):=-10)||1
[State 22100, VA]
type = varadd
trigger1 = animelemtime(10)>0
var(20)=10
[State 22100, AS]
type = angleset
trigger1 = 1
value = var(20)
[State 22100, AD]
type = angledraw
trigger1 = time
trigger1 = var(20)<60
scale = 3.0,1.826087
ignorehitpause = 1
[State 22100, AD]
type = angledraw
trigger1 = time
trigger1 = var(20)>=60
scale = 3.0,1.826087-(1.826087*var(0)/9.0)
ignorehitpause = 1
[State 22100, T]
type = trans
trigger1 = 1
trans = addalpha
alpha = 256,256
ignorehitpause = 1
[State 0, Explod]
type = Explod
trigger1 = var(20)<60
anim = 21201+1*(animelemtime(1)%6>3)
ID = 21200
pos = 0,0
postype = p1 ;p2,front,back,left,right
facing = 1-2*(random%2)
vfacing = 1-2*(random%2)
bindtime = -1
removetime = 1
pausemovetime = 9999
scale = cond(animelemtime(1)%6<2,1.25,cond(animelemtime(1)%6<4,0.45,0.4)),cond(animelemtime(1)%6<2,1.25,cond(animelemtime(1)%6<4,0.45,0.4))
sprpriority = 5
ownpal = 1
removeongethit = 1
[State 1010, NHB]
type = nothitby
trigger1 = 1
value = ,AA,AT
ignorehitpause = 1
[State 1010, HitOverride]
Type = HitOverride
Trigger1 = 1
Attr = SCA,AA,AP,AT
slot = 0
time = -1
Stateno = 22102
IgnoreHitPause = 1
[State 200, Safeguard]
type = varset
triggerall = movecontact
triggerall = numtarget(2100)
trigger1 = target(2100),ishelper=0
var(30) = 1
ignorehitpause = 1
;persistent = 0
[State 22100, Zeeky]
type = changestate;destroyself
trigger1 = var(30)=1
value = 22103
[State 22000, MHR]
type = movehitreset
trigger1 = var(30)=0
;ignorehitpause = 1
[State 1010, HitDef]
type = Hitdef
trigger1 = time && var(30)=0
trigger1 = movecontact = 0; && movereversed = 0
attr = S,HP
animtype = Hard
damage = ceil(135*root,fvar(11)),24
hitonce = 1
priority = 4,Hit
;guard.kill = 0
hitflag = MAFDP
guardflag = MA
pausetime = 0,6
sparkno = s8020+(random%2)
guard.sparkno = s8030
sparkxy = -10,0+cond(numenemy,floor(enemynear,const(size.mid.pos.y))+floor(p2dist y),0)
p1sprpriority=5
hitsound = s1,11
guardsound = s2,0
ground.type = High
ground.slidetime = 24
ground.hittime = 24
air.hittime = 24
guard.slidetime = 21
guard.hittime = 21
ground.velocity = -2.0,-8.0
guard.velocity = -2.0
air.velocity = -2.0,-8.0
airguard.velocity = -2.0,-8.0
down.velocity = -2.0,-8.0
yaccel = 0.5
fall = 1
fall.recover = 0
getpower = 0,0
givepower = 150,150
ground.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
air.cornerpush.veloff = 0
ID = 2100
[State 200, Damage Dampen]
type = parentvarset
trigger1 = movehit
fvar(10) = (root,fvar(10))*0.80
ignorehitpause = 1
persistent = 0
[State 0, Hard Knockdown]
type = TargetState
trigger1 =p2statetype= A && movehit && (p2stateno!=[6020,6110])
value =6020
ID = 2100
ignorehitpause =1
[State 22100, Zeeky]
type = changestate;destroyself
trigger1 = var(0)>=9
value = 999
[State 22100, VA]
type = varadd
trigger1 = var(20)>=4
var(0) = 1
[State 22100, Zeeky]
type = destroyself
trigger1 = root,stateno != 2100
;---------------------------------------------------------------------------
; Lunacy Ray Projectile
[Statedef 22102]
type = A
movetype= I
physics = N
velset = 0,0
sprpriority=5
ctrl = 0
movehitpersist = 1
[State 22001, BTR]
type = bindtoroot
trigger1 = root,stateno = 2100
trigger1 = !(root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger1 = !(root,animelemtime(19)>=0)
pos = 12,-65
ignorehitpause = 1
[State 22001, BTR]
type = bindtoroot
triggerall = root,stateno = 2100
trigger1 = (root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger2 = (root,animelemtime(19)>=0)
pos = -15,-72
ignorehitpause = 1
[State 1010, NHB]
type = nothitby
trigger1 = 1
value = SCA,AA,AP,AT
ignorehitpause = 1
[State 21000, ASS]
type = assertspecial
trigger1 = 1
flag = noshadow
ignorehitpause = 1
[State 200, Safeguard]
type = varset
triggerall = movecontact
triggerall = numtarget(2100)
trigger1 = target(2100),ishelper=0
var(30) = 1
ignorehitpause = 1
;persistent = 0
[State 22100, AD]
type = angledraw
trigger1 = 1;time
trigger1 = var(20)<60
scale = 3.0,1.826087
ignorehitpause = 1
[State 22100, AD]
type = angledraw
trigger1 = 1;time
trigger1 = var(20)>=60
scale = 3.0,1.826087-(1.826087*var(0)/9.0)
ignorehitpause = 1
[State 22100, T]
type = trans
trigger1 = 1
trans = addalpha
alpha = 256,256
ignorehitpause = 1
[State 22100, Zeeky]
type = changestate;destroyself
trigger1 = var(30)=1
value = 22103
[State 21302, CS]
type = changestate
trigger1 = 1
value = 22101
;---------------------------------------------------------------------------
; Lunacy Ray FX
[Statedef 22103]
type = A
movetype= I
physics = N
velset = 0,0
;anim = 1998
ctrl = 0
sprpriority = 5
movehitpersist = 1
[State 22001, BTR]
type = bindtoroot
trigger1 = root,stateno = 2100
trigger1 = !(root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger1 = !(root,animelemtime(19)>=0)
pos = 12,-65
ignorehitpause = 1
[State 22001, BTR]
type = bindtoroot
triggerall = root,stateno = 2100
trigger1 = (root,animelemtime(10)>=0 && root,animelemtime(14)<0)
trigger2 = (root,animelemtime(19)>=0)
pos = -15,-72
ignorehitpause = 1
[State 22100, VS]
type = null
trigger1 = animelemtime(1) = 0
trigger1 = (var(20):=0)||1
trigger2 = animelemtime(10)=0
trigger2 = (var(20):=-10)||1
[State 22100, VA]
type = varadd
trigger1 = animelemtime(10)>0
var(20)=10
[State 22100, AS]
type = angleset
trigger1 = 1
value = var(20)
[State 22100, AD]
type = angledraw
trigger1 = time
trigger1 = var(20)<60
scale = 3.0,1.826087
ignorehitpause = 1
[State 22100, AD]
type = angledraw
trigger1 = time
trigger1 = var(20)>=60
scale = 3.0,1.826087-(1.826087*var(0)/9.0)
ignorehitpause = 1
[State 22100, T]
type = trans
trigger1 = 1
trans = addalpha
alpha = 256,256
ignorehitpause = 1
[State 0, Explod]
type = Explod
trigger1 = var(20)<60
anim = 21201+1*(animelemtime(1)%6>3)
ID = 21200
pos = 0,0
postype = p1 ;p2,front,back,left,right
facing = 1-2*(random%2)
vfacing = 1-2*(random%2)
bindtime = -1
removetime = 1
pausemovetime = 9999
scale = cond(animelemtime(1)%6<2,1.25,cond(animelemtime(1)%6<4,0.45,0.4)),cond(animelemtime(1)%6<2,1.25,cond(animelemtime(1)%6<4,0.45,0.4))
sprpriority = 5
ownpal = 1
removeongethit = 1
[State 1010, NHB]
type = nothitby
trigger1 = 1
value = ,AA,AT
ignorehitpause = 1
[State 1010, HitOverride]
Type = HitOverride
Trigger1 = 1
Attr = SCA,AA,AP,AT
slot = 0
time = -1
Stateno = 22102
IgnoreHitPause = 1
[State 200, Safeguard]
type = varset
triggerall = movecontact
triggerall = numtarget(2100)
trigger1 = target(2100),ishelper=0
var(30) = 1
ignorehitpause = 1
;persistent = 0
[State 0, Hard Knockdown]
type = TargetState
trigger1 =p2statetype= A && movehit && (p2stateno!=[6020,6110])
value =6020
ID = 2100
ignorehitpause =1
[State 22100, Zeeky]
type = changestate;destroyself
trigger1 = var(0)>=9
value = 999
[State 22100, VA]
type = varadd
trigger1 = var(20)>=4
var(0) = 1
[State 22100, Zeeky]
type = destroyself
trigger1 = root,stateno != 2100