How would I embed effects into an attack using BP?

Hi, Im trying to prototype a mechanic where the player draws two sets of cards, one being a “base attack” and the others being additional effects that get applied to that base.

What would be the easiest way to set something like this up in BP?
Specifically, how could I apply effects the player selects from a draw to a projectile attack?

Right now for the attacks im simply spawning a projectile with the “base” behaviour that self deletes after it is done.

Im not advanced with BP or programming in general so im kinda stumped on where to start.
Any and all suggestions would be helpful, thanks!

general idea,

have an array of effects that are applied on hit,
add/remove/clear the array based on the effects card drawn
then when your projectile hits loop through the array and apply the effects.

the specifics of many of that depends on your game

Thanks for the reply! When you say “an array of effects”, how would I do that? The only way I can think of is some sort of array of macros or functions but from what I can see online, that isnt a thing that exists.

Like heres an example:
Lets say I the player picks from the draw these 3 effects -
“Apply the total attacks damage again, but as poison stacks”
“Regain half of damage dealt by this attack as health”
“Reduce the attacks cost”

The player applies this to these to the base attack, how would I use arrays to apply those? Or is there a better/more hacky way im not seeing?
Thanks for your time.

it really just depends on how you want to design it

the array just needs to tell it what effects to apply, so you could use an array of gameplay tags for example or maybe a map/struct if you want to apply modifiers say a %chance to work or effect strength etc

then when you apply damage, again depending on how you want to do this, you could have the effects hard coded but they only run if the tag exists.

so using your example you have a function that says apply poison, it checks does the tag exist, if so it executes.

a bit more complicated but more modular way, i use UObjects for all the effects and just make an array of UObjects, each one handles its own logic, the complicated bit is if/when they need to talk to each other