Adding BP_Object to TARRAY - Object added before initialization

It’s not a question of needing a cast, you need to create the object in the first place. An object type variable is just a reference to an object, initially it will be empty. You need to create an object of type Fireball2 (or is it BP_Fireball? It’s not clear from what you’ve posted) by calling SpawnActor, then assign the result to your variable, before passing the variable into your AddSpellToBar function.

If you follow through one of the blueprint tutorials, or look at one of the samples, then you can find many examples of how to do this.