Skip to content

Reactions and statuses

All · 15 min read · No code

A reaction is one step of the Break → Topple → Daze chain. A status is a timed buff or debuff such as Slow or Strength Up. Both are plain Gameplay Effects applied to the target's Ability System Component (ASC), and both are represented on that ASC by a gameplay tag. Nothing tracks "this enemy is Toppled" anywhere else: every system that cares, from the damage formula to the popups to the player's knock-down animation, asks the target's ASC whether it holds the tag. The chain rule (Topple only works on a Broken target, Daze only on a Toppled one) is enforced by the effects themselves, not by the Arts that apply them.

At a glance

In play: BREAK, TOPPLE and DAZE pop up over an enemy as the chain lands; a Toppled or Dazed character falls and cannot act. Buffs and debuffs pop up by name and show as icons on the party rows.

What you can change, no code:

See the Glossary for Break, Topple, Daze and Status effect.

How it fits together

Piece Asset / class Job
Reaction effects Battle/Reactions/GE_XenoCore_Reaction_Break, _Topple, _Daze Grant Status.XenoCore.Reaction.Break / .Topple / .Daze for their own duration
Status effects Battle/Status/GE_XenoCore_Status_* (19 shipped: Slow, Haste, Poison, Bleed, Blaze, Chill, Bind, Regenerate, Max HP Up, and Up/Down for Strength, Ether, Agility, Physical Def and Ether Def) Modify an attribute or grant a tag, for a duration
Status base class UXenoCoreStatusEffect A Gameplay Effect that also knows its name, colour, abbreviation and icon
Status icons UserInterface/Status/Icons/T_XenoCore_Status_* Optional icon textures
Who applies them An Art definition's Effects list; the minion's Arts DA_XenoCore_Minion_Rend (Break) and DA_XenoCore_Minion_Sweep (Topple) Apply the effect to the target
Popups UXenoCoreBattleNotifySubsystem · UserInterface/HUD/W_XenoCore_BattleNotify BREAK / TOPPLE / DAZE and status names over the affected character
HUD icons UXenoCorePartyMemberPlateBase · W_XenoCore_PartyMemberPlate One icon per active status on a party member's plate
Player reactions Battle/GA_XenoCore_Player_Topple, GA_XenoCore_Player_Daze (UXenoCoreGameplayAbility_ToppleReact, _DazeReact) Knock-down animation and movement lock when the player's side is Toppled or Dazed
Enemy reactions Characters/Enemies/Minion/GA_XenoCore_Minion_Topple, GA_XenoCore_Minion_Daze (same classes), granted by AbilitySet_XenoCore_Minion_Melee The minion's knock-down (AM_XenoCore_Minion_Topple, AM_XenoCore_Minion_Daze), held for as long as the reaction lasts
Incapacitation UXenoCoreGameplayAbility_AutoAttack › Incapacitated Tags A Toppled or Dazed attacker does not swing or use its Arts
Flinch UXenoCoreGameplayAbility_HitReact · GA_XenoCore_Player_HitReact, GA_XenoCore_Minion_HitReact Directional hit reaction

How the chain is enforced, as read from the effects' components:

Effect Requires the target to have Grants
GE_XenoCore_Reaction_Break nothing Status.XenoCore.Reaction.Break
GE_XenoCore_Reaction_Topple Status.XenoCore.Reaction.Break Status.XenoCore.Reaction.Topple
GE_XenoCore_Reaction_Daze Status.XenoCore.Reaction.Topple Status.XenoCore.Reaction.Daze

The requirement is the effect's Require Tags to Apply/Continue This Effect component (Application Tag Requirements › Must Have Tags), so a Topple on a target that is not Broken is refused and nothing is logged. Break lasts 10 s (a number of ours; XC1's is not documented), Topple 3.5 s and Daze 2.0 s.

Lifecycle

Applying. An Art's Effects entry picks the effect, rolls its Chance, and applies it to each recipient. For a status, the entry's Duration and Magnitude are sent into the effect as SetByCaller values on XenoCore.Status.Duration and XenoCore.Status.Magnitude, so one status asset serves every Art that applies it, each with its own numbers. Reactions carry their own timings, so their entries leave Duration at 0.

A Topple or Daze applied to a target that is not in the right state is refused by the effect. The Art still plays, still deals damage and still goes on cooldown; the reaction simply does not land.

While active. The tag is on the target's ASC for the effect's duration. What reads it:

  • The damage formula: a Dazed target cannot be missed, Ether Arts always crit a Dazed target, and a critical hit on a Toppled or Dazed target uses the larger critical multiplier.
  • Art Effects conditions (Target is Broken / Toppled / Dazed).
  • The enemy AI, which chooses its next Art by the target's reaction state (see Enemies and AI).
  • The popup subsystem, which shows BREAK (pink), TOPPLE (green) or DAZE (yellow) the moment the tag first appears.
  • A VRoid character's face, which changes expression on each reaction.
  • On the player's side: GA_XenoCore_Player_Topple and GA_XenoCore_Player_Daze trigger when the tag is added to their own ASC (trigger source: owned tag added). They play the knock-down montage (Topple follows it with a get-up), hold the ability open until the montage ends, and carry Gameplay.MovementStopped so the character cannot move meanwhile. The trigger, the hold and the movement lock come from the C++ classes, so a Blueprint copy only chooses clips.
  • A knock-down does not start while the character holds Status.XenoCore.ArtExecuting or Status.XenoCore.Arming. So a player Toppled in the middle of an Art or a weapon draw carries the Topple (TOPPLE shows, and the auto-attack pauses) but does not fall. Enemies are never affected: their Arts and draws hold neither tag.
  • On the enemy side: GA_XenoCore_Minion_Topple and GA_XenoCore_Minion_Daze trigger the same way and play the minion's knock-down. They have Hold While Trigger Tag Present on, so the minion stays down for exactly as long as the reaction tag lasts: a clip shorter than the reaction holds its last pose, a longer one is cut when the tag goes. The minion has no get-up clip, so it simply blends back to its idle.
  • Any attacker built on the auto-attack base (the auto-attack itself and the minion's Arts) checks Incapacitated Tags (Topple and Daze by default). While the attacker carries one, its auto-attack loop pauses, its Arts refuse to start (so the enemy AI sees them as not ready and no cooldown is spent), and a swing already in flight does not connect. The enemy's chase also stops, so a toppled minion does not turn to follow you.

Ending. When the effect expires GAS removes the tag. Nothing else has to clean up.

Statuses. When a UXenoCoreStatusEffect is newly applied, its Display Name pops up over the character in its Colour, in upper case, smaller than a reaction. Refreshing a status that is already on does not pop up again. Party member plates re-read their character's active statuses every Status Refresh Interval (default 0.2 s) and draw one icon per status: the Icon texture if set, otherwise the Colour with the Abbreviation written on it. Debuffs sort before buffs.

Hit reactions. Each landed hit sends XenoCore.Event.HitReact to the victim. The victim's hit-react ability decides whether to flinch and picks front, back, left or right from its own facing. It does not activate while the victim holds Status.XenoCore.ArtExecuting (mid-Art) or Status.XenoCore.Arming (drawing a weapon). A flinch also does not play while the victim holds one of its Flinch Suppressed By Tags (Topple and Daze by default), so a knock-down is never replaced by a flinch. Damage still lands in every case; only the animation is suppressed.

A hit never interrupts. As in XC1, a landed hit does not stop a swing or an Art; only a reaction (Topple, Daze) does. The shipped flinches are additive clips on their own AdditiveHitReact slot, so the jolt layers over whatever the body is doing. The hit-react ability's Flinch On Hit plays it; both shipped hit reacts turn it on (the C++ default is off).

Knockback. A flinch also knocks the victim back, straight away from the attacker: its hit-react ability's Push Distance (60 cm) x the hit's Force Multiplier, over Push Time (0.12 s), and then it stops dead. Auto-attacks ship at Force Multiplier 1 and the shipped damage Arts at 2. Whatever stops the flinch stops the push too, so a guard, an Art in progress, a weapon draw or a knock-down is never shoved. The flinch itself plays additively, so the body leans with the hit while it moves.

What you can change

Setting Where it lives What it does
Display Name GE_XenoCore_Status_* › Status Popup text and the Arts menu's effect line
Abbreviation GE_XenoCore_Status_* › Status Two or three letters drawn on the HUD icon when no Icon is set
Colour GE_XenoCore_Status_* › Status Popup colour and icon fill
Icon GE_XenoCore_Status_* › Status Optional icon texture
Is Buff GE_XenoCore_Status_* › Status Buffs sort after debuffs on the HUD
Duration, modifiers, granted tags Any status or reaction effect Standard Gameplay Effect settings
Directional Montages Any reaction ability › XenoCore › Reaction Front, Back, Left, Right, in that order. An empty entry means no reaction from that side. These are the shared defaults; a character's Anim Profile can override any slot
Profile Key Any reaction ability › XenoCore › Reaction Which row of a character's Anim Profile this reaction reads (Anim.XenoCore.Reaction.*). Empty means it always plays its own montages. Every shipped reaction has one
Front Back Half Angle Any reaction ability › XenoCore › Reaction Width of the front and back sectors. Default 45
Hold Until Montage Ends, Follow Up Montage Any reaction ability › XenoCore › Reaction Keep the ability open for the montage, then crossfade into a get-up. The knock-down classes turn the hold on for you
Hold While Trigger Tag Present Knock-down ability › XenoCore › Reaction Needs Hold Until Montage Ends. Hold the knock-down for as long as the triggering reaction tag lasts, not for the montage's length. On for the minion's reactions, off for the player's
Flinch On Hit Hit-react ability › XenoCore › HitReact Play the flinch clip when hit. Off: no clip, the knockback still applies
Flinch Suppressed By Tags Hit-react ability › XenoCore › HitReact A flinch does not play while the character holds any of these. Default: Topple, Daze
Push Distance, Push Time, Push Strength Over Time Hit-react ability › XenoCore › HitReact › Push How far and how fast a hit at Force Multiplier 1 knocks this body back. Defaults 60 cm over 0.12 s. Push Distance 0 = never pushed
Force Multiplier Art definition › Art › Hits, or auto-attack ability › XenoCore › Attack How hard that Art or swing knocks its target back. 0 = no knockback
Incapacitated Tags Auto-attack or enemy Art ability › XenoCore › AutoAttack The attacker cannot swing or use Arts while it holds any of these. Default: Topple, Daze
Status Icon Size, Status Refresh Interval Party member plate widget › XenoCore › Party › Status HUD icon size and poll rate

Fails silently: a Follow Up Montage's blend time lives on the montage

The crossfade from knock-down to get-up uses the follow-up montage asset's own Blend In time. There is no blend setting on the ability.

Fails silently: Hold Until Montage Ends off on a knock-down

Without it the ability ends on the frame it starts, so its movement lock is added and removed at once: you get a popup and no animation. The knock-down, guard, recoil and dodge classes turn it on in C++, so this only bites if a Blueprint copy turns it off, or a new reaction class forgets it. A flinch needs it off, or one hit waits on the last one's animation.

Fails silently: a knock-down cut short or left standing

With Hold While Trigger Tag Present on, the reaction ends early and without its get-up if something else takes the animation slot, such as a death montage or a Daze landing on a Topple. That is intended. It also refuses to start on a dead or dying character, so a reaction landing on the killing blow plays nothing.

Fails silently: restating Activation Blocked Tags on a hit-react child

The hit-react base blocks on ArtExecuting and Arming. A Blueprint child that sets its own Activation Blocked Tags replaces that list rather than adding to it. If you override it, list every tag, including the two from the base. GA_XenoCore_Player_HitReact does exactly this and lists all four. The same applies to Flinch Suppressed By Tags and Incapacitated Tags: setting either on a Blueprint child replaces the default Topple and Daze, and an empty list turns the rule off for that ability.

Extending it

  • A new status: create a Blueprint child of UXenoCoreStatusEffect in your own folder, set its duration to SetByCaller XenoCore.Status.Duration if Arts should choose the duration, add its modifiers and the four display fields. It then pops up and shows on the HUD with no registration. See Status effect.
  • Making an Art react: add a GE_XenoCore_Reaction_* entry to the Art's Effects list. See Art reactions.
  • Different clips for one character: do not duplicate the reaction ability. Fill in that character's Anim Profile instead; see Give a character its own combat animations.
  • A knock-down for a new character type: a Blueprint child of UXenoCoreGameplayAbility_ToppleReact (or _DazeReact). The trigger, the hold and the movement lock are already set; you only add clips. For an enemy, copy GA_XenoCore_Minion_Topple (and _Daze), swap its Directional Montages, and grant both in the enemy's ability set. Without them the enemy still cannot act while Toppled, but it stands still instead of falling.
  • A new kind of knock-down (for example XC1's Launch), programmers: a C++ child of UXenoCoreGameplayAbility_KnockdownReact whose constructor calls Set Trigger Tag with the new reaction tag. Never put that tag in Activation Blocked Tags: the tag is already present when the ability starts, so it would refuse itself.
  • Do not add a new reaction by applying a loose tag instead of an effect. A loose tag never expires and skips the chain requirement.

Testing tools

  • XenoCore.Reaction 1 / 2 / 3 applies Break, Topple or Daze to the player alone, for that effect's authored duration; XenoCore.Reaction 0 clears them. It applies the tag directly, so it deliberately skips the chain requirement to let you test each reaction on its own.
  • XenoCore.Anim.Describe (add enemy or part of a pawn's name) lists every reaction clip a character plays and whether it comes from its profile or the shared default. XenoCore.Anim.Play Topple front previews the clip alone.
  • Add enemy (XenoCore.Reaction 2 enemy) to apply it to your locked-on target instead, or to the nearest living enemy when nothing is locked. Use it to check an enemy's knock-down without waiting for the Art chain.

Why it's built this way

For programmers: the design reasons
  • An effect, not a tag. A reaction applied as an effect gets a real duration and its prerequisite for free from the effect's tag-requirement component; a loose tag was permanent and let Daze land on a target that had never been Broken.
  • Watch the tag, not the source. The popups, the player's reactions and the face all listen for the tag appearing on an ASC, so an Art, a status, a script or the console command all behave the same and nothing can apply a reaction silently.
  • Status presentation on the effect. UXenoCoreStatusEffect adds only the four fields a Gameplay Effect has no home for, so there is no separate list of statuses to keep in step.
  • The victim decides the flinch. The attacker only sends an event; direction is computed from the victim's facing, and the victim's own blocked tags decide whether it reacts.