Here a copy-paste code of a buster shot (Austin X base, but I've changed a bit)
CNS, basic buster projectiles, you can use helpers if you want as well:
;---------------------------------------------------------------------------
; Standing Buster Shot (strong punch)
[Statedef 220]
type = S
movetype= A
physics = S
juggle = 4
poweradd= 10
ctrl = 0
velset = 0,0
anim = 220
;sprpriority = -1
[State -2, Effect]
type = Explod
trigger1 = time = 5
anim = 221
pos = 0,0
vel = 0,0
removetime = 15
ontop = 5
sprpriority = 2
[State 220, 0]
type = ChangeState
value = 220
triggerall = Time > 12
triggerall = NumProj < 3
triggerall = command = "z"
triggerall = command != "holddown"
trigger1 = statetype = S
[State 220, 0] ;Level 1 Buster Sound
type = Playsnd
triggerall = var(1) < 30
trigger1 = time = 0
value = 0,10
[State 220,4] ;Level 1 Buster Shot
type = Projectile
triggerall = var(1) < 30
trigger1 = Time = 12
projid = 222
projanim = 222
projhitanim = 900
projsprpriority = 1
offset = -10,0
velocity = 7
;HitDef
attr = S, SP
animtype = Light
damage = 15
getpower = 20
givepower = 20, 20
hitflag = MAFD
guardflag = MAF
pausetime = 0,0
sparkno = 0
sparkxy = 0,0
hitsound = s0,2
guardsound = s120,0
ground.type = High
ground.slidetime = 3
ground.hittime = 0
ground.velocity = -5
airguard.velocity = -5
air.velocity = -5
air.juggle = 9
air.fall = 1
[State 220, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
;---------------------------------------
[Statedef 221]
type = S
movetype= A
physics = S
juggle = 4
poweradd= 65
ctrl = 0
velset = 0,0
anim = 220
;sprpriority = -1
[State -2, Effect]
type = Explod
trigger1 = time = 5
anim = 223
pos = 0,0
vel = 0,0
removetime = 12
sprpriority = 2
ontop = 5
[State 221, 0] ;Level 2 Buster Sound
type = Playsnd
triggerall = var(1) >= 30
triggerall = var(1) < 60
trigger1 = time = 0
value = 0,5
[State 221,4] ;Level 2 Buster Shot
type = Projectile
triggerall = var(1) >= 30
triggerall = var(1) < 60
trigger1 = Time = 0
projsprpriority = 1
projid = 224
projanim = 224
projhitanim = 901
supermovetime = 1000
pausemovetime = 1000
projhits = var(0)
offset = -10,0
velocity = .1
accel = .50,0
; HitDef
attr = S, SP
animtype = Medium
damage = 20,10
hitflag = MAFD
guardflag = MAF
pausetime = 3,6
sparkno = 1
sparkxy = 0,0
hitsound = s0,2
guardsound = s120,0
ground.type = High
ground.slidetime = 3
ground.hittime = 20
ground.velocity = -5
airguard.velocity = -5
air.velocity = -5
air.juggle = 9
air.fall = 1
[State 221, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
;------------------------------------
[Statedef 222]
type = S
movetype= A
physics = S
juggle = 4
poweradd= 65
ctrl = 0
velset = 0,0
anim = 220
;sprpriority = -1
[State -2, Effect]
type = Explod
trigger1 = time = 5
anim = 223
pos = 0,0
vel = 0,0
removetime = 12
ontop = 5
sprpriority = 2
[State 212,0] ;Level 3 Buster Sound
type = Playsnd
triggerall = var(1) >= 60
triggerall = var(1) < 120
trigger1 = time = 0
value = 0,5
[State 212,4] ;Level 3 Buster Shot
type = Projectile
triggerall = var(1) >= 60
triggerall = var(1) < 120
trigger1 = Time = 0
projid = 224
projanim = 224
projhitanim = 902
supermovetime = 1000
pausemovetime = 1000
projsprpriority = 1
projhits = var(0)
offset = -20,0
velocity = .1
accel = .50,0
; HitDef
attr = S, SP
animtype = Medium
damage = 20,10
hitflag = MAFD
guardflag = MAF
pausetime = 3,6
sparkno = 2
sparkxy = 0,0
hitsound = s0,2
guardsound = s0,1
ground.type = High
ground.slidetime = 3
ground.hittime = 20
ground.velocity = -5,-5
airguard.velocity = -5
air.velocity = -5,-5
air.juggle = 9
air.fall = 1
[State 212, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
;-------------------------------------
[Statedef 223]
type = S
movetype= A
physics = S
juggle = 4
poweradd= 65
ctrl = 0
velset = 0,0
anim = 225
;sprpriority = -1
[State -2, Effect]
type = Explod
trigger1 = time = 0
anim = 226
pos = 0,0
vel = 0,0
removetime = 18
sprpriority = 2
ontop = 5
[State 223,0] ;Level 4 Buster Sound
type = Playsnd
triggerall = var(1) > 120
trigger1 = time = 0
value = 200,6
[State 1, Sound]
type = PlaySnd
trigger1 = var(1) > 120
trigger1 = time = 0
value = 250, 2
[State 223,4] ;Level 4 Buster Shot
type = Projectile
triggerall = var(1) > 120
trigger1 = Time = 0
projid = 227
projanim = 227
projhitanim = 903
projsprpriority = 1
supermovetime = 1000
pausemovetime = 1000
projhits = var(0)
offset = -20,0
velocity = .1
accel = .50,0
; HitDef
attr = S, SP
animtype = Hard
damage = 20,10
hitflag = MAFD
guardflag = MAF
pausetime = 3,6
sparkno = 2
sparkxy = 0,0
hitsound = s0,2
guardsound = s0,1
ground.type = High
ground.slidetime = 3
ground.hittime = 20
ground.velocity = -5,-5
airguard.velocity = -5
air.velocity = -5,-5
air.juggle = 9
air.fall = 1
[State 223, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
CNS, statedef -3 (you can use -2 if you want), this code defines the explods, and sounds, and Austin's custom hit counter on charge (chare for enough time can make a 1000 damage buster shot, you can disable it removing the very first 4 var codes, and the vars related on the attack code:
[State -2, Reset Hits]
type = VarSet
triggerall = Command != "hold_z"
trigger1 = numproj != 0
trigger2 = Var(2) > 0
var(0) = 0
[State -2, Charge X-Buster Hits]
type = VarAdd
triggerall = timemod = 50,10
trigger1 = Command = "hold_z"
trigger1 = Var(2) = 0
trigger1 = ctrl
var(0) = 1
[State -2, Charge Reset]
type = VarSet
triggerall = Command != "hold_z"
trigger1 = numproj != 0
trigger2 = Var(2) > 0
var(1) = 0
[State -2, Max Charge]
type = VarSet
trigger1 = Var(1) >= 400
var(1) = 399
[State -2, Charge X-Buster]
type = VarAdd
trigger1 = Command = "hold_z"
trigger1 = Var(2) = 0
trigger1 = ctrl
var(1) = 1
[State -2, X-Buster]
type = Playsnd
trigger1 = Var(1) = 30
value = 210,0
channel = 1
[State -2, X-Buster]
type = Playsnd
trigger1 = Var(1) = 135
value = 200,1
channel = 2
[State -2, X-Buster Loop]
type = Playsnd
trigger1 = Var(1) = 135
value = 210,1
channel = 1
loop = 1
[State -2, Stop Loop]
type = Stopsnd
triggerall = Command != "hold_z"
trigger1 = numproj != 0
channel = 1
[State -2, Remove Charge]
type = RemoveExplod
trigger1 = Command != "hold_z"
id = 900
[State -2, Remove Charge]
type = RemoveExplod
trigger1 = Command != "hold_z"
id = 901
[State -2, Remove Charge]
type = RemoveExplod
trigger1 = Command != "hold_z"
id = 902
; -| Charge Level 1 |----------
[State -2, 1st Blue]
type = PalFX
triggerall = var(1) >= 30
triggerall = var(1) <= 60
trigger1 = TimeMod = 4,0
time = 2
add = 0,0,250
[State -2, 1st Charge]
type = Explod
triggerall = var(1) >= 30
triggerall = var(1) <= 60
triggerall = numexplod = 0
trigger1 = TimeMod = 1,0
anim = 228
id = 228
pos = 1,-5
bindtime = -1
ownpal = 1
ontop = 5
[State -2, Remove Charge]
type = RemoveExplod
trigger1 = command != "hold_z"
trigger2 = var(1) = 100
id = 228
; -| Charge Level 2 |----------
[State -2, 2nd Flash]
type = PalFX
triggerall = var(1) >= 60
triggerall = var(1) <= 120
trigger1 = TimeMod = 4,0
time = 2
add = 0,0,250
[State -2, 2nd Charge]
type = Explod
triggerall = var(1) >= 60
triggerall = var(1) <= 120
triggerall = numexplod = 0
trigger1 = TimeMod = 1,0
anim = 228
id = 228
pos = 0,-5
bindtime = -1
ownpal = 1
ontop = 5
[State -2, Remove Charge]
type = RemoveExplod
trigger1 = command != "hold_z"
trigger2 = var(1) = 300
id = 228
; -| Charge Level 3 |----------
[State -2, 3rd Flash]
type = PalFX
triggerall = var(1) >= 120
;triggerall = var(1) <= 180
trigger1 = TimeMod = 4,0
time = 2
add = 0,0,250
[State -2, 2nd Charge]
type = Explod
triggerall = var(1) >= 120
triggerall = numexplod = 0
trigger1 = TimeMod = 1,0
anim = 228
id = 228
pos = 0,-5
bindtime = -1
ownpal = 1
ontop = 5
[State -2, 3rd Charge]
type = Explod
triggerall = var(1) >= 120
;triggerall = var(1) <= 180
triggerall = numexplod(229) = 0
trigger1 = TimeMod = 1,0
anim = 229
id = 229
pos = 0,-5
bindtime = -1
ownpal = 1
ontop = 5
[State -2, Remove Charge]
type = RemoveExplod
trigger1 = command != "hold_z"
id = 229
[State -2, Remove Charge]
type = RemoveExplod
trigger1 = command != "hold_z"
id = 228
CMD, command to release the shot:
;Stand Buster Shot (Strong Punch)
[State -1, Stand Buster Shot]
type = ChangeState
value = 220
triggerall = var(59)!= 1
triggerall = NumProj < 3
triggerall = command = "z"
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl
;Stand Level 2 Charged Shot
[State -1, Stand Level 2 Charged Shot]
type = ChangeState
value = 221
triggerall = var(59)!= 1
triggerall = command != "hold_z"
triggerall = var(1) >= 30
triggerall = var(1) < 60
triggerall = statetype = S
trigger1 = ctrl
;Stand Level 3 Charged Shot
[State -1, Stand Level 3 Charged Shot]
type = ChangeState
value = 222
triggerall = var(59)!= 1
triggerall = command != "hold_z"
triggerall = var(1) >= 60
triggerall = var(1) < 120
triggerall = statetype = S
trigger1 = ctrl
;Stand Level 4 Charged Shot
[State -1, Stand Level 4 Charged Shot]
type = ChangeState
value = 223
triggerall = Var(20) >= 0
triggerall = var(59)!= 1
triggerall = command != "hold_z"
triggerall = var(1) > 120
triggerall = statetype = S
trigger1 = ctrl
trigger2 = Var(15) > 0
If you want crouching and jump versions, just copy-paste the attack code and command code then change the properties to air and crouching, the statedef -3 vars works with all moves that use the var(1). On my command you can see the var(59)!= 1 its related to AI, you can remove that line...