LyraHealthComponent has an OnHealthChanged callback that is executed whenever a character takes damage. One of the parameters is Instigator, but that is never set properly in the current version of the code. Instigator should be based on the ability that initially started the damage.

This broke as part of [Link Removed] when Lyra was changed to use the Damage attribute. The method of determining the Instigator does not work properly because it sets the attribute indirectly and doesn't properly pass through the initial information that started the change.

Steps to Reproduce
  1. Compile and load Lyra in the editor
  2. Open the W_Healthbar widget blueprint and go to the HealthChanged event in the event graph
  3. Add a new "Print String" node before the set Health Old Value node (connecting the input and output exec pins)
  4. Drag off the Instigator pin and add a "Get Object Path String" node, then connect that to the In String on the Print String node
  5. Load the L_Expanse level using the Common Maps toolbar, and start play in editor
  6. Find a bot and get shot by them (if they don't fire, check the Allow Player Bots To Attack in the Lyra Developer Settings)
  7. As you get shot it will print something like "None" to the upper left of the screen and the output log. This is supposed to be the full path of the actor that shot you, but because of this bug it is not correctly passing the instigator through

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-180609 in the post.

Login to Vote

ComponentUE - Content - Sample
Affects Versions5.25.3
Target Fix5.3
Fix Commit26158167
Main Commit26158667
Release Commit26158167
CreatedMar 17, 2023
ResolvedJun 21, 2023
UpdatedJun 23, 2023