Able Ability System Info and Support Thread

The “Event Name” is just a string that helps you identify which Task/Targeting/etc is calling into the Ability BP. It’s entirely optional.

I see… ok I’ll visit it again and see how can I make use of it :slight_smile:
Thanks a lot for the help

@ Update documentation so I don’t get lost in the fog on something I haven’t done before… and a list of tutorials to cover… I can do it :slight_smile:

Awesome video, your game is completely different then mine; mine is more RPG spell oriented. So my basic melee attacks are not as important. But I will definitely re watch this when I am setting up tags. Thanks so much the branching you did will help me a lot

Hi all - For the “Play Animation” Task, I could not see my Sequences and Montages worked in the Able Review Viewport with the Single Mode and Dynamic Montage option ().
Will try on the Ability Animation Mode, but for (
), is it required any prerequisite setup?

glad I could help. I’m taking tutorial requests by the way :wink:

No. Just make sure you have an Able Ability Component on whatever your preview actor is. Able tries to add one at runtime if it’s not there - but that seems to not take always.

Could you do a basic tutorial on how to stun a target that is hit?

More specifically in a multiplayer game, when a player has the Stun tag applied to them how do you check if they’re stunned and how would you go about applying it?

If I could understand this, then I could understand a whole lot more about the Able system. I think it would be a good video on how to explain the process.

For instance, right now I have an ability that spawns a projectile. When the projectile collides with a target it deals damage.

When I try to filter my self out, how would I go about that?

I know it has to do with getting the ability context, but that is in the Character BP not the projectile.

I would actually make an apply stun active ability and stunned passive ability and run all stun logic inside the ability instead of the character.
@mnorris54 - I would make sure to pass into the projectile the OWNER of it and on collision ignore owner. I could do a another tutorial on projectiles with able as well. :slight_smile:
That’s great! give me more! What else you need?
Throw more ideas and Im jumping into it! :slight_smile:

So I have a player controller that runs movement and damage calculations and teams and all that and then blue print characters that the main controller possesses, if I made an ability for a BP_Knight that stunned how would I get that to the BP_Archer character for instance. Without having to set the tag and check on tick it a stun flag was set.

Oh and I think I get what you’re saying, how would I get targets in my first ability, then apply the stun active onto the other character. All I get is begin ability and end ability, how do I say
when target is damaged -> get target apply stun ability

I am just having trouble getting any information about anything while inside my Able Ability.

If I need any information outside the ability I have to cast to a specific Actor. I plan on having dozens of actors in my game. I can’t cast to the player controller because I can’t get the Targetted Actor’s player controller, only the instigator. I can’t get the Targeted Actor’s GamePlayTags without calling the specific Able Ability Component on a specific Actor (When I have 20 characters, do I have to get 20 different components and check which one works?)

There has to be an easy way (specifically in this case) to grab the Actor being damaged and check their tags to see if they’re on team one or two, and comparing it with the owning actor’s tags.

OR I could cast to the player controller and get the team ID from there. But it doesn’t allow me to cast to the player controller of the Actor being damaged. It wants me to cast to the ACTOR. There has to be a way I am missing here. It would be so much easier to just run all this logic through the Character Blueprint and just use Able for cooldowns at this point.

Okay It seems that you can cast from the Actor being damaged to player controller. It just has to reroute through an “Instigator” type thing?
Imgur

exactly! On your projectile you can have an array of ability classes to apply on hit :wink: And ability could disable input on start, and after some time ends enabling inputs. you can also add tag stunned and remove tag stunned… and based on this tag you can lower the armor value when being read.

Inside ability i only use interface message calls. to the owner, target etc.If you have single interface… and that interface returns for example “damage reduction” you can implement this function on every object diferently… for door it will return the doors hardness, on a character its armor value, and on other object it might return nothing.
Don’t use casts… like ever. You can also have big-■■■ components managing stats and use same component in multiple actors. then in ability you take OWNEr and “get component by class” and input your component class… then check valid… if it is valid it means the target is an actor that have your component… therefore it is a characters with proper stats and can be affected by abilities.

Remember the player controller exists only on owner and server. but if you’re doing this for damage check its fine as server does it. However still implement an interface instead of casting. this way you can have same interface on player controller and ai controller. and use function “get controller (actor)” and instead of casting just call interface call regardless of being ai or player.

Yes player controller can have reactions and manage both dealing damage and receiving damage. although receiving damage should be handled inside the character. and dealing damage is for floating combat text etc in the controller.

hello, im looking for a lil help with something. im currently spawning an actor that is mirroring my abilities. but if i spawn an actor through able it doesnt seem to have the ability to use root motion ?
heres a gif of what i mean
im just using the “spawn actor” task in able.

i figured it out, my clone didnt have an AI controller. derp

heres the result btw, im building a support system similar to path of exile, so here i have a “shadow clones” passive ability. mostly experimenting to see how best to spawn AI and handle their interactions with my abilities.

Glad you figured it out. Super cool ability!

Angel is their a good tutorial you know of about interface calls? I’ll look around when I get home. And thank you so much

im unable to compile even a blank game with able enabled. i get this error and im not sure how to fix it, ive never touched C++ sooo most of the info i can find on it goes right over my head lol

heres the error :
ERROR: Expecting to find a type to be declared in a module rules named ‘Able’ in UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool.
PackagingResults: Error: Expecting to find a type to be declared in a module rules named ‘Able’ in UE4Rules, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool.

im using 4.24.2 btw, never tried to compile on 4.24.1 so not sure if its a new problem or not.

What version of Able are you using? The patches are always compiled against the latest versions of the last 3 engines (so, 4.25.2, etc).