Timers are identified by both function and object (other way you would not able to do timers for individual objects), if you won’t input “Object” function pics “Self” which is object that it’s currently in. So you need to keep refrence of spell object that is currently casted or been last to be casted and use it in timer function.
I am making an action RPG game and I would like some feedback on how to organise my spell blueprints. The way they are set up right now is basically like this:
I have an actor Blueprint for each spell, such as BP_Frostbolt. It looks like this:
I have a base character Blueprint that does the following thing to cast a frostbolt:
This system works well for everything I need so far, however there’s one thing I don’t know how to do and it’s how to check if the character is currently casting a frostbolt or not so I can set IsCasting appropriately. Normally I would do this by checking if the Timer that calls the function “CastFrostbolt” is active, like this:

However that only works if the timer is created inside the Character blueprint, but in my case that timer is set inside BP_Frostbolt. So how can I do this check now that I created the spells in seperate blueprints? Ideally in a way that would work in a multiplayer game where there’s more than just one instance of BP_Character. Is there a better way to make a spell system like this?
Yeah that makes sense, I also noticed that part.
After thinking about it more I think that I should simply implement all the spells inside the Character blueprint. It’s much simpler and it gives me more flexibility.