Throws are a type of attack found in many fighting games as a universal mechanic. Their main purpose is for both repositioning and punishing opponents for excessive blocking. While certain characters posses unique Command Grabs, most games include throws for the entire cast as a universal mechanic, with each character possessing a forward throw and a backward throw. Throws have certain properties that make them unique from regular attacks;Throws are unblockable.Grounded Throws cannot hit airborne opponents, while Air Throws cannot hit grounded opponents.In general, throws cannot hit opponents that are in hitstun or blockstun, thus preventing them from being comboed into. Certain games make exception to this rule.Throws can be escaped in most games by executing a throw command at almost the exact moment they are hit by the throw. Does not apply to Command Grabs.Throws almost always cause Untechable Knockdown (Hard Knockdown)In MUGEN, Throws can be defined in the attack's HitDef controller using the NT, AT, or HT attributes. In order to properly code a throw, knowing how to utilize custom states is required. It is strongly recommended to use the TargetState controller instead of the Hitdef's p2stateno parameter in order to prevent certain hit-related bugs from occurring.
I now wonder how you would create a throw that can indeed hit an opponent who is in Hit Stun? So that the Throw can be part of a combo?
In MUGEN usually grabs are restricted on what they can hit by their hitflag, for grounded grabs it is usually of the type hitflag = M-, where the minus signifies that it cannot affect somebody in hitstun or blockstun. Changing it to hitflag = M would indeed change throws to become comboable into.However one should exercise caution, as both these simple approaches have a glaring flaw due to the way MUGEN processes the jump start state, since it's considered a standing state, grounded grabs can indeed hit opponents in their jump squat. This can have the bad side effect of making grab frame traps very inescapable, especially comboable command grabs. Therefore it is wiser to make sure that the grab hitdefs are nullified during the jump start state and if you're going by the comboable grab approach, to use a throw limiter variable that counts up from the moment P2 has ended their hitstun/blockstun/etc.
More or less why I have full invuln during jump squat states in all my characters. You can't always rely on conformity, so, you sometimes gotta do it yourself.
jade_midori said, August 18, 2021, 03:24:40 amIn MUGEN usually grabs are restricted on what they can hit by their hitflag, for grounded grabs it is usually of the type hitflag = M-, where the minus signifies that it cannot affect somebody in hitstun or blockstun. Changing it to hitflag = M would indeed change throws to become comboable into.However one should exercise caution, as both these simple approaches have a glaring flaw due to the way MUGEN processes the jump start state, since it's considered a standing state, grounded grabs can indeed hit opponents in their jump squat. This can have the bad side effect of making grab frame traps very inescapable, especially comboable command grabs. Therefore it is wiser to make sure that the grab hitdefs are nullified during the jump start state and if you're going by the comboable grab approach, to use a throw limiter variable that counts up from the moment P2 has ended their hitstun/blockstun/etc.How would one create that throw limiter counter variable to make frame traps harder to pull off?
This is my approach for comboable into grounded command grabs based on a few authors' approach. I think it works generally well based on my testing, I generally put this the -2 States:Code: [State Throw Limiter]type = VarSettriggerall = numenemytrigger1 = enemynear,stateno = 40trigger2 = enemynear,stateno = [150,155]trigger3 = enemynear,hitover && enemynear,movetype = Hvar(X) = 4ignorehitpause = 1[State Throw Limiter]type = VarAddtrigger1 = var(X) > 0var(X) = -1ignorehitpause = 1And then enable or disable the hitdefs (I use the changing movetype between A or I approach) depending if var(X) > 0 (Where X is any free variable index you'd like to use). This will give 4 frames of leniency for characters to be able to escape such grabs. Depending on the game you want to emulate you can change the 4 frames to something else.