Is the GAS a good fit for multi-stage player abilities?

The Gameplay Abilities System documentation and the examples in Lyra are really interesting. I am very curious if the experts on the system would recommend it for multi-stage player abilities like: holding a melee attack before releasing it, drawing/aiming/holding a bow shot before releasing it, cancelling an in-progress or held attack into a block, etc.

My instinct is to put all of these player interactions into a finite state machine with transitions that capture player input, timing, and the context rules for what player activity can lead to which others. Maybe there is a way to approach this with GAS that is even more extensible and easy to understand than the FSM? Any feedback greatly appreciated.

Hello there :wave:

I think the GAS is a perfect fit for what you mentioned above as you can use a bunch of stuff to trigger different stages/make other things know which stage you are in (e.g. with using Gameplay Tags).

I would suggest checking out some documentation/tutorials for example:
GAS Documentation by tranek
GAS for blueprint programmers
Tour of GAS by Epic Games

I can say that we are using the system for abilities you mentioned above (holding down a button to charge up, then releasing it to trigger the ability) and it works very well. :+1:

Hope I could help!

Greetings,
Markus
Bagpack Games