This is the simplest one (the Wind attack). Unlike the fireball this doesn't always cause noticable lag, but sometimes does. (The fireball makes 3 helpers, so it also lags more)
[Statedef 500]
Type = S
MoveType = A
Physics = S
Anim = 310
Ctrl = 0
Facep2 = 1
PowerAdd = 30
[State 500]
Type=VarAdd
Trigger1=animelem=2
v=16
value=30
[State 4000]
Type=VarSet
Trigger1= AnimElem=2
v=56
value=50
[State 240]
Type = Helper
Trigger1 = AnimElem=2
StateNo = 3999
ID = 3999
Name = "Circle"
Pos = 0,0
PosType = P1
Ownpal = 1
IgnoreHitPause = 1
Size.xscale=0.1
Size.yscale=0.1
PauseMoveTime=9999999
[State 220]
Type= PlaySnd
Trigger1= AnimElem=2
value=7000,2
[State 220]
Type= PlaySnd
Trigger1= Time=0
Value=310,0
[State 220]
Type = Helper
Trigger1 = AnimElem=2
StateNo = 501
ID = 501
Name = "Windy"
Pos = 40,0
PosType = P1
Ownpal = 1
IgnoreHitPause = 1
Persistent = 1
Size.XScale = 0.6
Size.YScale = 0.6
[State 220]
Type = ChangeState
Trigger1 = AnimTime=0
Value = 0
Ctrl = 1
[Statedef 501]
type = A
MoveType = A
Physics = N
Anim = 10010
SprPriority = 4
[State 221]
Type = HitDef
Trigger1 = time=0
Attr = A, NP
Damage = 85,1
GetPower = 50,10
AnimType = Hard
HitFlag = MA
GuardFlag = MA
Priority = 4,Hit
PauseTime = 0,0
SparkNo = -1
Guard.SparkNo = -1
SparkXY = -25,-25
HitSound = -1
GuardSound = -1
Ground.Type = High
Air.Type = Low
Ground.SlideTime = 16
Ground.HitTime = 16
Air.HitTime = 16
Ground.Velocity = -12
Air.Velocity = 0,-4
AirGuard.Velocity = -3,-3
Air.Fall = 1
Fall.Recover = 1
ID = 501
[State 221]
Type = VarSet
Trigger1 = Time = 0
fvar(0) = 8
[State 221]
Type = VarAdd
Trigger1 = Time = [1,21]
fvar(0) = -.325
[State 221]
Type = VelSet
Trigger1 = 1
X = (fvar(0)*Cos(30*(Pi/180.0)))
Y = -fvar(0)*Sin(30*(Pi/180.0))
[State 221]
Type = DestroySelf
Trigger1 = AnimTime=0
[State 221]
Type = AssertSpecial
Trigger1 = 1
Flag = Noshadow
IgnoreHitPause = 1
[State 221]
Type = Trans
Trigger1 = 1
Trans = AddAlpha
Alpha = 136,256
I'll try cutting down on sff size (I think there are some sprites that could be resized/removed), as I had no problem with an 1MB smaller one. (I used this wind attack code on two other characters with no problems before, some to the fireball even with a version that creates 7 of them, so it must be some kind of a memory issue caused by that additional few MBs I think...)
ok...sff is now only 500k larger than before, snd is about 2mb larger. Still lags. However, out of two attacks that throw out 10+ helpers per second, one has no lag at all, while the other has a lot. It seems that helpers getting created with size.xscale and/or trans lag more, so this is the next to investigate.
Also tried removing all of state -1 and -2 only to see if those sctrls might cause it but they didn't.