top of page

- ATTACK SYSTEM -

Addon - Attack Definition

  • Addon - Attack Definition is a MUST to be used as the starter of an attack as it is the main kickstarter of the system.
     

  • As we explore and explain how it works, example usage can be found in "OmenDocs_BscAttacks_SM" and all Attack State Modules are used in "Basic Attacks" Input State Definition.

- Inputs -

  • "Unique Attack ID" sis an ID to use by other Attack Definitions most of the time by the inputs defined below.
     

  • "Chain ID" allows this Attack Definition to be able to get chained by other ones.
     

  • Opposite goes for the "No Chain ID" inputs. This allows us to decide whether an Attack can create a combo or not after an Attack with the defined ID landed before.
     

  • Default values means every Attack can be chained to every other.

BA_SS0.PNG

Heavy Punch and Kick has no Chain ID values.
System is disabled, Attacks always connect.

Heavy Kick has Chain ID Value "A".
Heavy Punch's ID Value is "A" too. Combo works.

Heavy Kick has Chain ID Value "X".
Heavy Punch's ID Value is "B" . Combo does NOT work.

Heavy Kick has No Chain ID Value "A".
Heavy Punch's ID Value is "A" . Combo does NOT work.

  • "Focus First Target" is mostly used if you want Attack to land on only one target such as grab attacks.
     

  • "Hit Priority" decides if this attack should land or not if the Target is also doing an attack. If Priorities of the attacks is same, than "Same Hit Priority Behavior" kicks in. "Hit" lets the attacks connect. "Dodge" and "Miss" are used by Throw Attacks to make them not land even in same priority situation. (System is WIP)

BA_SS1.PNG

"Focus First Target" Demonstration.

Priority 0 : Both Omens hit each other if attacks land on same frame.
Priority 1 on White Omen : No Same Moment Hit occurs, White wins.

  • "Hit Count" and "Delay Between Hits" defines how many times this Attack should do and with how many frame delays between them. Delay starts after the Hit Pause is finished.

 

Hit Count is 3, Delay Between Hits is 2. Pause Time is 10 so
time between hits is total of 12.

  • "Attack Attributes" are tags for the Attack we are doing so aimed Targets will know how to react to it. Mostly used for Attack Immunities.
     

  • "Hit Box Properties" are used so we can trigger Hit Boxes by using the data inside Sprites. "Trigger Condition" is the condition to trigger.
     

  • "Box IDs to Use" is for if you want specific boxes to be used. If left empty, all Hit Boxes are used.

BA_SS2.PNG
  • If you insist on using specific ones, note that you need to use "Make Array" node and fill it with the Hit Box IDs to use. Said ID depends on the order that you create them in Sprites.
     

  • ​"GuardBox Properties" are used so we can trigger Guard Boxes by using the data inside Sprites. "Guard Activator" allows you to either use actual Guard Boxes or a simple Distance Calculation (not working right now). "Trigger Condition" is the condition to trigger and "Box IDs to Use" is for if you want specific ones to be used. "Distance" is used if Guard Activator value is "Simple Distance.

  • "Team Affect List" lets us decide who this Attack Definition can land the attack on.
     

  • "Land Flag Lists" decides if an Attack can land on a Fighter or not depending their "Character Stance".
     

  • "Guard Flag List" does the same thing above but decides whether this Attack can be guarded or not in those Stances!
     

  • "Juggle States / Points" checks if the Target's current "Jump State / Point" is between those ranges.
     

  • "Juggle Timer" checks if the Target's spend time on juggle state is higher than the limit specified by the Juggle System Component.
     

  • "Extra Condition" is used if an extra reason to Wiff Attack is needed when juggling the Target.

    PS: More information will be given about Juggle System later on. Also, -1 Value Disables Checks.

- Outputs -

  • "Extension Entry" allows us to link one extensions that are special to Attack Definitions. "Attack Impact Data" is the output that transfers data all around the Attack Definition nodes and they must be linked with the execution links.
     

  • "Attack Finished" is triggered after one frame passes and all the data this node finished processing. You could say this is just for finalizing and getting the outcome and used mostly to trigger events in more advanced stages.
     

  • "Contact" returns TRUE when the Attack lands on at least one target. "Success" returns TRUE if the Attack landed and target received the hit. "Guard" returns TRUE if the same Attack is guarded.

i5.PNG
i6.PNG
Capture.PNG

Extension - Impact Damage

  • This Extension is all about causing damage to the Target. However the values can be negative to cause healing if needed.
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.

BA_SS3.PNG

- Inputs -

  • "Damage Type ID" can be used in case you want different type of damages such as physical, fire etc.
     

  • "Success / Guard Damage" triggers when the connection with Target is confirmed.
     

  • "Fall Damage" is triggered when a Fighter touches the ground while having no control.
     

  • In Fighter Blueprints, "Battle" variables effect these values mentioned above.
     

  • "Damage KO" values define whether a Fighter can be knocked out or not with this attack. If FALSE, Target's health will be reduced to 1 instead of 0.

BA_SS4.PNG

- Outputs -

  • "Extension Entry" allows us to link one extensions that are special to Attack Definitions. "Attack Impact Data" is the output that transfers data all around the Attack Definition nodes and they must be linked with the execution links.

Punch dealing 2000 Damage, but 1000 after Defense is adjusted.

Success Damage KO being FALSE, causing no KO.

Extension - Impact Recovery

  • This Extension is all triggering a recovery bar. This system will be improved upon later on.
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.

BA_SS5.PNG

Attack Damage is 1000, Recovery Value is 500. So Target gets
half of the damage back slowly.

- Inputs -

  • "Damage Type ID" is a pure value to define how much damage will be recovered in time. Please keep the value in positive.

- Outputs -

  • "Extension Entry" allows us to link one extensions that are special to Attack Definitions. "Attack Impact Data" is the output that transfers data all around the Attack Definition nodes and they must be linked with the execution links.

Extension - Impact Movement

BA_SS6.PNG
  • This Extension is used as a Hub Node for another node type that is called "Attack Segment - Movement Data" which will contain the information on how a Target should change its location after the Attack lands.
     

  • Each input is related to a Character Stance whether the attack result was successful or not (guarded).
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.

Segment - Movement Data

​     --------------- X Impact Properties ---------------

​

  • "Direction" defines the type of way Target should move X axis wise.
     

  • "X Velocity" is the speed of X movement. Can not be negative. (Direction input defines the direction.)
     

  • "Slide Type" changes the curve of how smooth the movement will. This is basically what Ground Friction is and disabled when the Target is in air.
     

  • "X Slide Time" defines how long the ground friction will last in frames. Target will have max velocity at the first frame and slow down to zero value when as much as frame passed as Slide Time.
     

  • "Slide Strength" is a simple multiplier for Ground Friction.

BA_SS7.PNG

​    --------------- Z Impact Properties ---------------

​

  • "Z Velocity" is the speed of Z movement. Unlike X Velocity, this value CAN be negative!
     

  • "Gravity Type" changes the curve of gravity that eventually pulls the Target towards the ground if the Z Velocity is a positive value.
     

  • "Gravity Slide Time" defines how long in frames a Target can resist the gravity's pull if "Z Velocity" is positive. Target will have max Z velocity at the first frame and eventually lose the fight against the gravity, which its time is stated with "Gravity Slide Time" and will star to fall down. This value is disabled if "Z Velocity" is negative as Target will be falling down towards the ground and it is not fighting against gravity.
     

  • "Gravity Strength" is a simple multiplier for Gravity's pull force.
     

  • "Max Gravity Fall Value" is a limiter for Gravity's force so it doesn't go towards ridiculous values.
     

  • "Fall If On Ground" is a toggle that states if the Target was on ground when the Attack Hit, it should either make him use control or not. "Fall If In Air" does the same thing if the Target was in air.
     

  • "Laydown Time" is the time in frames of how long the Target will stay in "Laying Down" state after falling from the Attack if above Booleans are TRUE.
     

  • "Bounce Amount" defines how many times the Target should bounce before truly getting to "Lay Down" state.

Changing X Properties of Standing Heavy Punch.

Changing Z Properties of Standing Heavy Punch.

Extension - Cornerpush Movement

BA_SS8.PNG
  • This Extension is used as a Hub Node for another node type that is called "Attack Segment - Cornerpush Data" which will contain the information on how the Attacker should change its location after the Attack lands on a Target that is cornered against a wall.
     

  • Each input is related to a Character Stance whether the attack result was successful or not (guarded).
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.
     

  • "Behavior ID" can be 2 values; 0 for letting previously stopped Movement to continue and 1 for not letting them.
     

  • IMPORTANT! Cornerpush Movement will STOP when the Target gains self control!

Segment - Cornerpush Data

  • ​"X Velocity" is the speed of X movement. Can not be negative. (Direction input defines the direction.)
     

  • "Slide Type" changes the curve of how smooth the movement will. This is basically what Ground Friction is and disabled when the Target is in air.

  • ​"X Velocity" is the speed of X movement. Can not be negative. (Direction input defines the direction.)

BA_SS9.PNG
  • "Slide Type" changes the curve of how smooth the movement will. This is basically what Ground Friction is and disabled when the Target is in air.
     

  • "X Slide Time" defines how long the ground friction will last in frames. Target will have max velocity at the first frame and slow down to zero value when as much as frame passed as Slide Time.
     

  • "Slide Strength" is a simple multiplier for Ground Friction.

Cornerpush in action.

Extension - Custom State Triggers

BA_SS10.PNG
  • This Extension can be used when Standard Attack System is not enough. Mainly used for grabs and interactions with Stage (such as Ground Slam).
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.
     

  • There are 3 Main Sections; "State Modules" are for selecting which State Modules to use, "State IDs" are for triggering which States inside those said Modules and "PS Variables" are for providing extra data for the first State that is triggered to use.
     

  • "Connect Hit" triggers the moment Attack lands. Useful for grab attacks or any unique state you want to put your Target in right away.
     

  • Others trigger when the Target connects to a Stage Ground / Stage Wall / Camera Wall / Stage Object.

Enemy Grab Example.
State 800 in "OmenDocs_AttackerCustom_SM".

Enemy Ground Slam Example.
State 622 in "OmenDocs_AttackerCustom_SM".

Extension - Impact Attributes

BA_SS11.PNG
  • This Extension is used to determine the Animations and duration of how long the Target should stay in Received Hit State.
     

  • It also has its own different Output options depending on whether the "Attack Result".
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.
     

      ----------------------- Inputs -----------------------

      
---- Attack Attributes ----

 

  • "Aim Ground/Air" is for telling Target what we are aiming this Attack for so the Receive Hit state can be selected accordingly. This is the first parameter to decide this.
     

  • "Animation Ground/Air" is the second parameter to change the State. Both this and above values decide the State to get changed. 

       ---- Pause Properties / SELF ----
 

  • "Pause Amount Success/Guard" determines how many frames the ATTACKER will be paused in place as both animation and movement wise.
     

  • "Delay Animation Freeze / Freeze Frame" is used for at which sprite the freeze will happen for ANIMATION. This is mostly useful for weapon swing attacks.

    ---- Pause Properties / TARGET ----

     

  • "Pause Amount Success/Guard" determines how many frames the TARGET will be paused in place as both animation and movement wise.
     

  • "Shake Amount Success/Guard" determines how many frames the TARGET will shake/twitch in place as it is paused. This amount can't exceed "Pause Amount" mentioned above.

      ---- Hit Times ----
​

  • "Ground Success/Guard" defines how long in frames the Target will stay in Receive Hit State on ground. This timer starts after "Pause Amount" is finished.
     

  • "Air Success/Guard" defines how long in frames the Target will stay in Receive Hit State in air. This timer starts after "Pause Amount" is finished.

    ---- Combo Parameters ----

     

  • "Combo Count" defines how many Combo Points the Attacker should get whenever this Attack Definition lands a successful hit.

    ---- Sprite Properties ----

     

  • "Sprite Priority" decides whether the Attacker Sprite should render in front of the Target or not. May be toggled off by "No Changes" option.

    ---- Facing Adjustment ----

     

  • "Self / Target" decides what kind of facing related to each other should do, if desired. Facing will trigger at the same frame the attack lands. Mostly used by grab attacks.

BA_SS12.PNG

      ---- Force Stance Change ----
 

  • These Booleans force the Target to a Character Stance when hit.

Animation and Pause Amount Change Example.

Hit Time Amount Change Example.

Combo Count and Render Priority Change Example.

Facing and Stance Change Example.

     â€‹   ----------------------- Outputs -----------------------
 

  • "Extension Entry" allows us to link one extensions that are special to Attack Definitions. "Attack Impact Data" is also linked to them to transfer data between nodes. We will get to this very soon!
     

  • "Attack Finished" is triggered after one frame passes and all the data this node finished processing. You could say this is just for finalizing and getting the outcome and used mostly to trigger events in more advanced stages.
     

  • "Contact" returns TRUE when the Attack lands on at least one target. "Success" returns TRUE if the Attack landed and target received the hit. "Guard" returns TRUE if the same Attack is guarded.

Capture.PNG

Extension - Impact Sound

BA_SS13.PNG
  • This Extension is used to trigger a Sound File.
     

  • Triggers multiple times depending on the amount of Targets that got hit if executed via the outputs of "Extension - Impact Attributes".
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.

Extension - Impact Effect 2D

      ​----------------------- Inputs -----------------------
 

  • "ID" is used to be able to reach out this Effect by various means.
     

  • "Flipbook" is to select the animation, "Material" is for selecting the material or a palette.
     

  • "Render Position" defines whether we want it to be behind or in front of important Actors.
     

  • "Render Priority" is used to whether we want to render the effect behind or in front of other Effects that have same "Render Position" value.
     

  • "Force Unlit Mode" allows the rendered Flipbook to not get effected by the lighting sources currently present.
     

  • "Cast Shadow/Reflections" decides if such Flipbooks should be rendered on ground level.

    ---- Transform Properties ----

     

  • "Override Location" variables are used if we want to have a special location other than the Hurt Box's connection to the Target.

i14.PNG
  • This Extension is used to trigger a Flipbook Effect.
     

  • Triggers multiple times depending on the amount of Targets that got hit if executed via the outputs of "Extension - Impact Attributes".
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.

  • "World Scale" is for to everyone's surprise, about the scale of the Flipbook. Crazy right?
     

  • "Delta Rotation" is if we want to add some extra rotation to the sprite. Useful to give a random feeling to the Flipbook if linked to a "Random Rotation in range" etc.

    ---- Attachment Properties ----
     

  • All these properties are used if you want the Effect tp get attached to a target with various means that Unreal Engine provides. Suggested to be left empty by default.
     

  • ---- Remove Parameters ----
     

  • "Remove Time in Frames" lets us having a timer for Effect to deleted. If left at "-1" it will be deleted when the Animation of Flipbook is over.

Attack Success Effect Example.

Attach Guard Effect Example.

Extension - Add Power

BA_SS14.PNG
  • This is an Extension that adds a value to the selected Power ID. In UF2D Characters have a Power Array. Instead of having regular one power value, we can have many.
     

  • There are 3 Standard Power Values and here are the IDs that corresponds to them;

    0: Power (Used for Hyper Moves)
    1: Guard (Used by Guard Meter)
    2: Dizzy (Used by Dizzy Meter).

  • Triggers multiple times depending on the amount of Targets that got hit if executed via the outputs of "Extension - Impact Attributes".
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.

Power Gain Example.

Extension - Attach State Module

BA_SS15.PNG
  • This is an Extension that allows you to attach an Attachment State Module to the Target. Mostly used for Effects such as burning.
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.
     

  • "Module Tag" is used to reach out for the Attachment from the outside to make changes.
     

  • "Bypass Armor Mode" toggles whether an Attack that lands still triggers attachment or not despite the move was armored by the Target.
     

  • "Attachment Type" is used to define its type. Mostly used for removing it from the Target if requested.
     

  • "State Module" defines which State Module to use.
     

  • "State to Trigger" is for which State ID to trigger. Note that Attachments are independent and their State ID does not interfere with Characters. So you can have a "State 0" in your Attachment State with no issues.

Attachment Example.

  • "Post State Variable List" is used to send extra data if needed.

Extension - Juggle Adjustment

BA_SS17
  • This is an Extension that either Sets or Adds Juggle State or Points.
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.
     

  • "Juggle States / Points" checks if the Target's current "Jump State / Point" is between those ranges.
     

  • "Juggle Timer" checks if the Target's spend time on juggle state is higher than the limit specified in the Attack Definition.
     

  • All Systems mentioned above can be used together to create complex juggling rules.

Preparing Juggle Test Mode.

Using Timer for Juggling.

Using Juggle State.

Using Juggle Points.

Extension - Force Feedback

BA_SS16.PNG
  • This is an Extension that allows you to trigger a Force Feedback, making them gamepads tinglin'!
     

  • Both "Extension Entry" and "Attack Impact Data" must be connected for this node to work properly.
     

  • Note that the value 1.0 is REALLY a lot. Keep the value small as much as possible.

This node is in "OmenDocs_BscAttacks_SM" - State 700.

Creating a Force Feedback.

Addon - Attack Immunity 

  • Addon - Attack Immunity can be used to ignore certain type of Attacks. Only one Addon can be active at a time and the Extension mentioned above can let you decide which attacks should be ignored.
     

  • All the Addons demonstrated before are in "OmenDocs_Basic_SM". Search for "State 760" and you will find them all.

  • "Forced No Reversal" toggles whether if Reversal Checks should be triggered or not. You can use this if you have a Parry Mechanic but don't want it to trigger if the Target is already ignoring the same attack type.
     

  • "Standing / Crouching / Aerial Immunity List" can be filled up as an array by using the "Immunity Extension" to decide which Attacks should be ignored.
     

  • For now UF2D supports 3 types of Attacks; Basic, Special and Hyper.

CAD_SImmu.PNG

These nodes are in "OmenDocs_BscAttacks_SM" - State 760.
Image can be magnified.

Addon - Super Armor Definition

C_SAAS_S0.PNG

These nodes are in "OmenDocs_Adv_SM" - State 860.
Image can be magnified.

  • This Addon can be used to prevent Receive Hit System to trigger. The attacks do not whiff but gives the impression that Character can tank a hit or two.
     

  • "Vitality Mode On / Allowed Vitality" allows you to use the system and give an invisible "health bar" which prevents the Receive Hit System from trigger.
     

  • "Hit Count Mode On / Allowed Hit Count" is used to let the armored hits to be considered an actual hit or not and set the limit.

  • "Ignore Hit Stun" bypasses the pause time of the Attack. Suggested to left on.
     

  • "No Hit Shake" prevents hit shake to occur.
     

  • "Attribute List" can be used to link "Armor Extensions" to set values to determine which attacks should be armored, as shown above.
     

  • "Event Parameters" allows you to trigger Custom Events depending on what happens. You can either have literal names or States such as "State 500" for example.

Add Combo Points

  • These Addon allows you to add a Combo Point to the "Attacker" that is provided with "Combo Count" specified.
     

  • Useful if you are doing a special Event that is NOT using Attack Definition but you need to consider the action as an attack that adds combo point.
     

  • An example can be a Grab Attack that deals damage more than once.

C_SAMe_S0.PNG
Impact Damage
Seg - Cornerpush Data
Custom State Triggers
Impact Attributes
Impact Sounds
Add Power
Attach SM
Juggle Adj
Force Feedback
Impact Recovery
Impact Movement
Seg - Movement Data
Cornerpush Movement
Impact Effect 2D
AAI
Char Armor
AddCombo
Anchor 1

Multibox Trace

  • These Addon is to trigger what Unreal Engine has as a default functionality.
     

  • Using the parameters, one can do a Trace to find the first object that hits. While useful, this Addon still needs at least one example to work properly and only someone who already knows how Unreal Engine works can use this.
     

  • More on this later.

C_SAMe_S0.PNG
bottom of page