Summary
If you damage a player through Verse using .Damage(), and they have a Damage Amplifier Powerup activated, the incoming damage to the player is multiplied by the powerup. The .Damage() in Verse has no attached Instigator or Source, so it should not apply the multiplied incoming damage by what the player’s current damage is. It seems like this bug has been around for quite a while, but it’s very important to be resolved, especially when trying to damage the player via custom NPC behaviors.
Please select what you are reporting on:
Unreal Editor for Fortnite
What Type of Bug are you experiencing?
Devices
Steps to Reproduce
- Place a trigger or button device in the editor to activate the code to damage the player.
- Place a Damage Amplifier Device in the editor, leave it at it’s default settings (it’s at a 2.0x multiplier default).
- In Verse, create a function that damages the player, create an editable for the trigger, and subscribe the TriggeredEvent to the DamagePlayer function, like:
@editable TrigDamage : trigger_device = trigger_device{}
OnBegin<override>()<suspends>:void=
TrigDamage.TriggeredEvent.Subscribe(DamagePlayer)
DamagePlayer(Agent : ?agent) : void =
if (Player := Agent?, FortChar := Player.GetFortCharacter[]):
FortChar.Damage(25.0)
- In game, walk into the Damage Amplifier Powerup, and step on the trigger to damage the player.
Expected Result
The damage the player should be damaged by is the number placed in the .Damage() function, which should be 25.0 in my example above.
Observed Result
The damage the player is actually damaged by is multiplied by the amount stated in the Damage Amplifier Device, which is 2.0x in the default Damage Amplifier Device. I take 50.0 damage instead, as I put .Damage(25.0), and it is multiplied by 2.0x.
Platform(s)
All