has not been tested but i think it works. it's been tested by other people Code:
[State -3, Place Decider]
type = VarSet
trigger1 = Time = 0
trigger1 = GetHitVar(guarded) = 0
trigger1 = MoveType = H
v = 59
value = GetHitVar(groundtype)
IgnoreHitPause = 1
[State -3, Sparks]
type = VarAdd
trigger1 = Time = 0
trigger1 = GetHitVar(guarded) = 0
trigger1 = MoveType = H
v = 57
value = floor(GetHitVar(damage)/8) ;Change this to get more or less
IgnoreHitPause = 1
;Three helper sctrls, one for hi,medium, and low
[State -3, Helper]
type = Helper
triggerall = Var(57) > 0
trigger1 = Var(57) > 0&&var(57) := var(57) - 1
trigger1 = Var(59) = 1
helpertype = normal
name = "Spark"
postype = p1
pos = 1,-76
facing = 1
stateno = 4000
ownpal = 0
IgnoreHitPause = 1
[State -3, Helper]
type = Helper
triggerall = Var(57) > 0
trigger1 = Var(57) > 0&&var(57) := var(57) - 1
trigger1 = Var(59) = 2
helpertype = normal
name = "Spark"
postype = p1
pos = 5,-55
facing = 1
stateno = 4000
ownpal = 0
IgnoreHitPause = 1
[State -3, Helper]
type = Helper
triggerall = Var(57) > 0
trigger1 = Var(57) > 0&&var(57) := var(57) - 1
trigger1 = Var(59) = 3
helpertype = normal
name = "Debris"
postype = p1
pos = 9,-15
facing = 1
stateno = 4000 ;Change this to whatever, this will be the state of the chunk/debris
ownpal = 0
IgnoreHitPause = 1
;Hit sounds optional.
[State -3, Hit Sound1]
type = PlaySnd
triggerall = Time = 0
trigger1 = GetHitVar(guarded) = 0
trigger1 = GetHitVar(animtype) = 0||GetHitVar(animtype) = 3
trigger1 = MoveType = H
value = 10000, 0
IgnoreHitPause = 1
[State -3, Hit Sound2]
type = PlaySnd
triggerall = Time = 0
trigger1 = GetHitVar(guarded) = 0
trigger1 = GetHitVar(animtype) = 1||GetHitVar(animtype) > 3
trigger1 = MoveType = H
value = 10000, 1
IgnoreHitPause = 1
[State -3, Hit Sound3]
type = PlaySnd
triggerall = Time = 0
trigger1 = GetHitVar(guarded) = 0
trigger1 = GetHitVar(animtype) = 2
trigger1 = MoveType = H
value = 10000, 2
IgnoreHitPause = 1