Skip to content

Give a character its own combat animations

Designer · 20 min · No code · Last tested: 2026-09-30 (automated play test)

Result: one character topples, flinches, blocks, dodges, dies or celebrates a win with its own clips, while every other character keeps the shared ones. You edit one asset per character.

Before you start

How it works

Every reaction gameplay ability ships with its own clips: GA_XenoCore_Player_Topple plays AM_XenoCore_Player_Topple, for everyone who has it. A character's anim profile can override those clips for that character only.

Empty means "use the default", at every level. No profile, no row for a reaction, or an empty slot inside a row: each falls back to the ability's own clip for that slot. So you only fill in what is different. A profile with a Topple Front clip and nothing else still uses the shared clip when the character is hit from behind, and still plays the shared get-up.

Each row in a profile is keyed by a gameplay tag:

Reaction Key in the profile Abilities that read it
Flinch (hit react) Anim.XenoCore.Reaction.Flinch GA_XenoCore_Player_HitReact, GA_XenoCore_Minion_HitReact
Topple Anim.XenoCore.Reaction.Topple GA_XenoCore_Player_Topple, GA_XenoCore_Minion_Topple
Daze Anim.XenoCore.Reaction.Daze GA_XenoCore_Player_Daze, GA_XenoCore_Minion_Daze
Block Anim.XenoCore.Reaction.Guard GA_XenoCore_Guard, GA_XenoCore_Minion_Guard
Dodge Anim.XenoCore.Reaction.Evade GA_XenoCore_Evade, GA_XenoCore_Minion_Evade
Attack bounced off a block Anim.XenoCore.Reaction.Recoil GA_XenoCore_Recoil, GA_XenoCore_Minion_Recoil

The profile holds clips only. How long a Topple lasts, whether it holds until the reaction ends, and what blocks it all stay on the ability, so they are the same for every character.

The party's dodge is the one reaction that does not choose by side. GA_XenoCore_Evade lists a duck and a sidestep under Random Montages and plays one of them at random on every miss, whichever side the attacker is on. A profile Evade row still wins: a filled Front, Back, Left or Right slot replaces the random pick when the attacker is on that side.

Steps

1. Find or make the character's profile

  • VRoid party members already have one each, beside their pawn: Characters/VRoid/Dorran/DA_XenoCore_AnimProfile_VRoid_C, and the same for _L (Kael), _K (Mira), _S (Nia), _M (Isolde), _Q (Sabine) and _Y (Tamsin). Each holds that character's victory emote and idle breaks; its Reactions list is empty, so every reaction uses the shared clips until you add a row. The Mannequin colour samples have theirs in Characters/Party/AnimProfiles.
  • Anyone else: in your folder, right-click › Data › Data Asset, pick Xeno Core Character Anim Profile, and name it DA_MyGame_AnimProfile_<Name>. Then open the character's pawn Blueprint, Class Defaults, and set XenoCore › Animation › Anim Profile to it. Enemies have the same field on their Blueprint (for example B_XenoCore_Minion_Melee).

2. Override a reaction

  1. Open the profile.
  2. Under Reactions, click +. Set the key to the reaction you want, for example Anim.XenoCore.Reaction.Topple.
  3. Fill in only the slots you have clips for:
    • Front, Back, Left, Right: the clip when the attacker stands on that side of the character. A knock-down usually needs only Front; the shipped Topple uses one clip for every side.
    • Follow Up: the get-up, crossfaded in after the main clip. Its blend time is the follow-up montage's own Blend In.
  4. Save.

For a party member's Evade (and Guard or Recoil) clip, put the montage on the Defence slot if the character should keep both hands on its weapon while dodging armed: on that slot the body comes from your clip and the arms from the weapon stance. On FullBody your clip's arms play too, which suits a sheathed character but lets the hands drift off a two-handed grip.

3. Override the death (optional)

Add clips to Death Montages. One is picked at random when the character dies. Any clip here replaces the pawn's own Death Montages list entirely, so a character with its own deaths never rolls a generic one.

This is for enemies. A party member at 0 HP is downed, not killed: it kneels and waits for a revive, using one shared set of kneeling clips that is not part of the profile. See Party gauge and revive.

4. Give the character a victory emote (optional)

When a battle is won, every living party member sheathes their weapon and then plays a celebration from Victory Montages. One clip is picked at random. This slot has no default: a character with an empty list does not celebrate.

  • Use a montage on the FullBody slot. The weapon is already on the character's back, so unarmed clips are fine.
  • Masculine or feminine is the clip you choose. The shipped party's emotes are in Characters/Core/Animations/Victory: Kael AM_XenoCore_Victory_FistRaise, Mira AM_XenoCore_Victory_WhoopWhoop, Nia AM_XenoCore_Victory_Celebration, Dorran AM_XenoCore_Victory_RaisedFist, Isolde AM_XenoCore_Victory_Curtsy, Sabine AM_XenoCore_Victory_Salute and Tamsin AM_XenoCore_Victory_SmallClap.
  • Moving or jumping cancels the emote, and so does a new fight starting.
  • Keep it short; 2 to 4 seconds reads well.

The fanfare that plays at the same moment is a project setting, not part of the profile: Project Settings › Game › XenoCore Content › Battle › Victory Fanfare. The shipped sound, Audio/Battle/SW_XenoCore_VictoryFanfare, is a short, soft chime of about three seconds, mixed to sit just under the area music, with its asset Volume at 1.0. Point the setting at your own sound to replace it, or clear it to win in silence. If you swap in a louder sound, lower that sound's Volume rather than the music.

Party members controlled by the AI sheathe on their own after the win. One that was in the middle of drawing its weapon at that moment finishes the draw and is then asked to sheathe again, so it still celebrates a moment later. The character you control is asked once: if you draw again yourself, you stay armed and skip the emote.

5. Idle breaks and faces (optional)

The same profile gives the character its personality out of battle:

  • Idle Breaks and Armed Idle Breaks: the fidgets played while standing still, sheathed and drawn. One is picked at random, never the same twice running. Empty uses the stance's own break.
  • Social Expressions and Solo Expressions (VRoid faces): the expressions a resting companion pulls when it chats with another member, or on its own. Empty means a neutral face.

6. Share a profile

Several characters that should move the same way can point Anim Profile at one asset. This is also how enemy types on the same skeleton share their clips: make one profile for the skeleton and point every enemy Blueprint on it there.

Test it

  1. Open Maps/L_XenoCore_Gym and press Play with the character in the party.
  2. Open the console (`) and type XenoCore.Anim.Describe (the leader), or XenoCore.Anim.Describe enemy, or part of a pawn's name such as XenoCore.Anim.Describe VRoid_C. The Output Log lists every reaction slot and where it comes from: PROFILE for yours, default for the shared clip.
  3. XenoCore.Anim.Play Topple front plays the clip a front Topple would use, on the leader, without a fight. Add enemy or a name to preview someone else. This plays the clip only: no movement lock, no get-up.
  4. XenoCore.Reaction 2 topples the leader for real (XenoCore.Reaction 2 enemy for an enemy); XenoCore.Reaction 0 clears it. The character falls with your clip and gets up.
  5. XenoCore.Battle.Victory plays the whole battle-won sequence without a fight: the fanfare, then each party member's own victory emote.

If it doesn't work

Fails silently: the shared clip plays anyway

XenoCore.Anim.Describe tells you which case you are in:

  • "profile: None": the pawn's Anim Profile is empty. Set it on the Blueprint the character actually spawns as, not on a parent you do not use.
  • "profile row ... matches NO reaction this body is granted": the row's key is a reaction this character does not have. Check the key against the table above.
  • The ability shows "no ProfileKey - always its own montages": a reaction ability you made yourself has no Profile Key. Set it under XenoCore › Reaction on that ability.

The character T-poses or freezes during the reaction

The clip is on a different skeleton from the body. Saving the character's pawn Blueprint reports each clip in its profile that does not fit the body, and saving the profile reports clips from two different skeletons in one profile. Give each skeleton its own profile.

Nobody celebrates after a win

The Output Log says why, on lines starting victory:. "has no VictoryMontages" means that character's profile slot is empty. "refused ... wrong skeleton, or no FullBody slot?" means the montage cannot play on that body. "never finished sheathing" means the character was still armed six seconds after the win; for the character you control, this usually means you drew the weapon again. "still armed - asking it to sheathe again" is normal for an AI party member that was mid-draw at the win; it repeats every half second until the weapon is away, and stops if a new fight starts. No victory: line at all means the game did not count it as a win: the last enemy died while nobody in the party was armed, or another enemy was still fighting.

A duplicated VRoid pawn shares the original's profile

Duplicating B_XenoCore_Party_VRoid_C, or making a child of it, keeps its Anim Profile, so the new member and Dorran share one asset and editing one changes both. Duplicate the profile as well and point the new pawn at the copy.

Going further