Cast subclass

Haha Ok, I’ll mark your response as the answer, but I’m clearly missing some pieces to this puzzle.

1- I want to add a weapon to my TArray Weapons, which is my character weapons, before the game launch. In the AFPSCharacter constructor if it’s possible.
Something like: Weapons[0] = new AAssaultRifle();
Which doesn’t work.

2- I want in the OnFire event of my character class, which is called when the player pull the trigger, to retrieve the content of the weapon at Weapons[0], which I can't be sure of the type, so I want to store it in a AWeapon variable since it'll be the parent class of all my weapons, and call their OnFire method.

I’ve added you my graph. I hope it’s more clear this way! I can send you my code too if you have the time, it would be awesome. Thanks!