I've made an easier way to come up with adding screen flash (when the player successfully hits opponent) into characters super moves using the helper object.
I'm not sure if anyone has tried this method. But I thought it might be helpful.
This is how I start setting up the flash object during the player's super move state.
;---------------------------------------------------------------------------
; Player's Super Move
[Statedef 2000]
[State 2000, Helper]
type = Helper
trigger1 = Time <= 0
trigger1 = NumHelper(3000) = 0
helpertype = normal
ignorehitpause = 1
name = "Flash"
persistent = 0
id = 3000
facing = 1
pos = 0,0
postype = P1
stateno = 3000
keyctrl = 0
ownpal = 1
[Everything else down here]
;---------------------------------------------------------------------------
This is where I set up the helper object's flash effect states.
;---------------------------------------------------------------------------
; Super Move Object
[Statedef 3000]
velset = 0,0
ctrl = 0
[State 3000, NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1
[State 3000, Special]
type = AssertSpecial
trigger1 = 1
flag = Invisible
[State 3000, BindToRoot]
type = BindToRoot
trigger1 = 1
facing = 1
pos = 0,0
time = 1
[State 3000, State]
type = ChangeState
trigger1 = Parent, MoveHit
trigger1 = Parent, HitPauseTime > 0
value = 3001
[State 3000, Destroy]
type = DestroySelf
trigger1 = Root, MoveType != A
;---------------------------------------------------------------------------
; Super Move Object - Hit Flash
[Statedef 3001]
velset = 0,0
ctrl = 0
[State 3000, NotHitBy]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1
[State 3000, Special]
type = AssertSpecial
trigger1 = 1
flag = Invisible
[State 3000, BindToRoot]
type = BindToRoot
trigger1 = 1
facing = 1
pos = 0,0
time = 1
[State 3000, Flash]
type = EnvColor
trigger1 = Time <= 0
value = 240,240,240
ignorehitpause = 1
persistent = 0
time = 2
[State 3000, State]
type = ChangeState
trigger1 = Parent, HitPauseTime = 0
value = 3000
[State 3000, Destroy]
type = DestroySelf
trigger1 = Root, MoveType != A
;---------------------------------------------------------------------------
This way, you won't have to screw with messing up the animation, state times, or making variables to record how much time passed in the state.
This method, the helper object detects whether the root/parent player has made a successful hit with the opponent. If the player is successful, it will change to the flash screen state (in this case, state 3001) until the player's hitpausetime is over. Then it will go back to the original state (state 3000). However, if the player has made contact, but is NOT successful (opponent guards) the helper object will remain in the original state, therefore cancelling out the screen flash state.
When the player is done attacking in the super move state, the helper object will be removed, so the flash will not take effect for the other states.
I know this may sound obvious to some of you who are very experienced with mugen, but I hope it helps others too who want to use a technique like this.