Abilities System/Module - Examples? Docs? Estimates?

Actually classes (as a character classes :D), have little to do, with the fact that my abilities are instanced per actor. The main reason why I decided to go this route, is the fact how my abilities would be constructed in future like.

Final Damage = Intelligence10 + MagicPower0.5.
Or
Final Damage = Intelligence10 + (Intelligence (caster) - EnemyStrenght) * 2;
Or
if(MyIntelligence > EnemyIntelligence)
{
Final Damage = MyIntelligence+EnemyIntelligence
2;
}
else
{
Final Damage = EnemyIntelligence*2;
}

You got the idea. Multiple attributes affecting single ability at the same time.

From what I gather GameplayAbility system allows for the same thing, but in their case it is achieved trough applying multiple GameplayEffects, which I didn’t found that appealing to me.I would have to maintain lot of them, along with lot of csv files.
In my case i dump everything into single Ability blueprint, which calculcate output damage upon being triggered.

There are two ways of doing it. Create elabroate system which will aggregate data from actors, or just instance ability per actor, and be done with it. The former allow me to directly access attributes from Causer/Target.
In the end it is simpler to code, and simpler to use with blueprints. Idk, if it is efficient.

Idk, why you would need 92 or 109123 animations ;). Unless they all are unique animations.
You just assign needed animations on per ability basis. Something like attack animation, spell casting animation, or whatever you need.

You overthink the problem. Animations (more likely anim montages), are going to be played on pawn. Where you assign them is irrelevelant honestly, as long as you can access to play them. I would do it per ability basis, since at some point you might decide, that you really want different animations for different abilities. If you dump it all to single.
Nobody said that animations must be unique ;p.

Paying resources is not that complicated problem. Depending on complexity of your system. In my case it’s single array of FGSAbilityCost struct. Which contains attribute name name, and float cost, for resource.
then in one function I check if pawn have all needed resources, and then subtract them (if have everything required). That’s the easiest way to approach it.