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