Not entirely sure what the problem is
So you gave him an animation set — he casts spells fine, but on the ranged attack he goes into a T-pose
You need to find his animset. If it's an Angel and not an Archangel/Seraph, the animset is located in _(AnimSet)\Creatures\Haven\Angel-adv.(AnimSet).xdb
Open the animset and you'll see the animations recorded in itAngel-adv.(AnimSet).xdb
<?xml version="1.0" encoding="UTF-8"?>
<AnimSet ObjectRecordID="169">
<animations>
<Item>
<Kind>death</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/death.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>hit</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/hit.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>idle00</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/idle00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>move</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/move.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>attack00</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/attack00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>attack01</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/attack01.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>stir00</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/stir00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>happy</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/happy.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
</animations>
<ExpSrcScene href="/models/Creatures/Castle/Angel.mb"/>
<ExpSrcClipFolder href="/Animations/Creatures/Angel/Clip/"/>
<ExpRootTransform>Global</ExpRootTransform>
</AnimSet>
You need to add a rangeattack entry. If the Angel will be both a unit and a hero, it's better to add it — copy an attack or any other animation and rename it. You can copy it from the Archangel, should workAngel-adv.(AnimSet).xdb
<?xml version="1.0" encoding="UTF-8"?>
<AnimSet ObjectRecordID="169">
<animations>
<Item>
<Kind>death</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/death.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>hit</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/hit.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>idle00</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/idle00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>move</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/move.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>attack00</Kind> regular animation
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/attack00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>rangeattack</Kind> added
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/attack00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>attack01</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/attack01.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>stir00</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/stir00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
<Item>
<Kind>happy</Kind>
<Anim href="/_(BasicSkelAnim)/Creatures/Haven/Angel/happy.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
</Item>
</animations>
<ExpSrcScene href="/models/Creatures/Castle/Angel.mb"/>
<ExpSrcClipFolder href="/Animations/Creatures/Angel/Clip/"/>
<ExpRootTransform>Global</ExpRootTransform>
</AnimSet>
Using the same principle you can add cast, buff, and special ability animations
Thanks, the attack animation works now (he stabs the air)). I had done it that way before, but it didn't work — I must have messed something up somewhere.