Irreversible Hitdefs

How Can We Help?

< Back

The flaw of using HitDefs has always been that they can be reversed, while being immune to custom states is easy, it can be more of a hassle to deal with an enemy who can TargetLifeAdd/TargetVelSet you.
In addition being reversed prevents your attacks from hitting at all in the first place; which if you use them to deal damage can be a problem.

Irreversible Hitdefs are Irreversible only on the frame you hit someone
or with NotHitBy: when the hitdef clashes with NotHitBy SCA


ReversalDef (Reversal.Attr) depends on a primary attribute to recognize a HitDef, the primary attribute being SCA (Standing, Crouching, Aerial)
When you do not supply this, it cannot be reversed

[State ]
Type = HitDef
Trigger1 = 1
Attr = ,NA

StateType HitDefAttr Adjustment

When a hitdef connects or a hit is simulated (2.2) the primary attribute is correct to STATETYPE (S,C,A),
StateType L cannot use HitDefs because of this.
It is not error handling on an empty primary attribute, merely elecbyte being intrusive with unchangeable mechanics.

Attr Change w/ NotHitBy SCA

If a player is using a NotHitBy with a value of SCA, the HitDefAttribute transforms without the need to actually hit someone.
(The player(helper) with NotHitBy should have a large CLSN2 in their anim)

[Statedef XXX]
Anim = ANIM WITH LARGE HURTBOX
[State ]
Type = NotHitBy
Trigger1 = 1
Value = SCA
IgnoreHitPause = 1

HitDef Calculations are based on All attributes
NotHitBy calculations are based on Primary Attributes then Secondary
The game thinks the HitDef hits this helper but also thinks it cannot be hit by any attack at the same time because of VALUE = SCA
So the helper will not actually be hit.

This allows reversal on frame 2 without the need for frame 1 to hit.
Also note that using Value = SCA is required
Specifically Value = SCA,AA,AT,AP will not work
Because the extended rules actually prevent the hitdef from ‘connecting’

HitDef Parameter HitOnce / SCA

(Normally used to prevent throwing multiple enemies at once)
When using HitOnce = 1 on a HitDefAttr the hitdef cannot hit twice and would not be reversable on frame 2
However with the Value = SCA the hitdef does not truly connect so it can actually hit twice, the only way to bypass HitOnce = 1 is Value SCA.

Anomalocaris Killer w/ Pauses

The Anomalocaris Killer takes advantages of characters unable to move in frozen time with the 2 frame rule.
Simply execute a Pause after enemy has already attempted to cancel pauses (or they do not cancel pauses at all)
The key is that they cannot reset their HitDefAttribute while frozen, so that they can be reversed on Frame 2, note this only works on weaklings though.

Irreversible Best Practices

What makes Irreversible Hitdefs Reversible again is the fact that the attribute changes into a reversible attribute (See StateType Change)
The HitDefAttr is transformed from ,XX into StateType,XX when hit confirm.
The hitdef is not cancelled when you hit with an invalid attribute and can hit twice, Thusly, the Irreversible Hitdef is now reversible on the second frame.

To prevent a frame 2 reversal, follow these practices
Have true pause immunity (no pause cancelling)
(Read Pauses Article for details)

In your statedef -2, Have a HitDef always activate with an Attr = “” (empty) parameter.

[State -2]
Type = HitDef
Trigger1 = 1
Attr =
IgnoreHitPause = 1

Leave a comment

Your email address will not be published. Required fields are marked *