Able Ability System Info and Support Thread

Note: in the marketplace page, you give a link to a tutorial (creating a simple ability i think)… this link is not public… so when people get on your youtube page from the other link…we dont see this kinda important tutorial on your youtube page. It tooks me a day to notice that lol

And people are talking about showroom… i dont think ive seen the download link (except recently, from a comment…i think) you should put all your video on the store page and on the first post of this forum.

Hmmm, I hadn’t seen that. I’ll investigate.

So the Store page actually has a very small text limit and I’m pushing against it hard. That said, I’ll try and clean things up and link all the projects in one place (likely on and have the store page link to that).

Maybe this can help with the characters limit:

Most things are already using URL shorteners. The problem is the count is the RAW character count, not the formatted character count. So even all those hidden links still go against the limit. That said, I want to do a store page refresh and just use a large image for the main body followed by a series of links for tutorials, samples, etc. Just gotta bully my artist buddy for some time. :slight_smile:

Kinda stupid question, but how do I reference the user of the ability? I’m trying to cast to my character in the ability, but I am not sure how to get the character for the “object” input of the cast.

Assuming you pass in your character when you create the Ability Context:

Ability Context -> GetSelfActor -> Cast to Your Character.

Thank you. I forgot all about the context pin.

@ExtraLifeMatt where goes DynamicBranchAbility and OnGetBranchAbility function? I’m using combo system which need to pick which ability to branch to and I see that in new version there is no dynamic branch…

I see there is FGetAblAbility - but how to use it in C++ not in BPs?
I have my own Ability class (in c++) extending from UAblAbility and earlier I could just override OnGetBranchAbility function and point to my combo system.

OnGetBranchAbility is deprecated (or should be). Just add the Function Binding by clicking on the + next to the Ability on the branch task.If you want to do it in C++ just basically copy the name of the method you would get in blueprints, add it to your Ability class, and make sure it’s a UFUNCTION.

You can step through the BindDynamicProperties method on the Branch task to watch it try and find the method.

I found an issue with tasks when interrupting abilities.


  • Create active ability with collision check and damage check in the middle of the ability. Add some animation to ability and disable “stop on interrupt”,
  • Run this ability, then after a small delay cancel active ability,

You will see that collision check and damage will execute even when ability is canceled. As far I can see (ablAbilityInstance) you are cancelling only active tasks, so other tasks in ability can still go even when ability is interrupted.

The Ability Instance should be cancelled as well (and set to nullptr), so there should be no further execution of those tasks. But I can investigate.

Then that’s weird :smiley: Maybe “Add some animation to ability and disable “stop on interrupt”” is doing something. Another thing that I have is branch to another ability in the end of this ability to create combo. Maybe branch. Don’t know but for sure it’s executing as I can see damage and sweeps in debug.

Hey there I have a couple of bugs you might want to look at.

When playing two animations within one ability if the animations start/end times are too close (not overlapping), the second animation wont play. (This may be an issue with how I’m interfacing with my AnimGraph).

If i have created an animation task, and assign an animation montage i am unable to re-assign that animation to a sequence. It acts as if it will, but it doesn’t change.

Thanks for the report.

Bug#1 sounds very much like an AnimGraph bug. I’d double check your anim blueprint setup. Also Montages don’t tend to blend on top of each other well (for whatever reason), so if you’re using that you may want to try the Ability Animation Node instead.

Bug#2 I’ve seen this off and on. Never been able to track down why it’s occurring. That field is marked as Edit Anywhere, so you should always be able to rebind it to whatever. I’ll look at it again.

Hello friends,

I have a question about the new version of AbleAbility plugin.
At “UAblAbility* OnGetBranchAbilityBP” I have this information: “Ability overrides for specific task fields are deprecated and will be removed in a future update. Please move any logic to the dynamic field functions.”

Can anyone tell me what exactly “dynamic field functions” are and how to replace those mentioned earlier “UAblAbility* OnGetBranchAbilityBP”.
Earier we used it very often, but now we can not use it in connection with information that in the future update it will be removed. Is it known whether it will be replaced or just removed?

I would be grateful for any response and help :slight_smile:

The new way is to simply open up the Branch Task, hit the + symbol, which will spawn the dynamic binding. Able’s 3.0 update changed the system from doing function overrides to use more dynamic bindings. It’s simply easier for new users to understand.

I have no plans to remove the old functionality just yet(or even soon), but it is technically deprecated (which is what that warning is meant to convey).


I’m trying to create an ability where the ability plays at a point where the target is looking. Kind of like a targeted area of effect, but there is no pawn target to grab the location of. How would I go about using the location as an ability target?

keep it as a variable in a component or the class that the ability is trigering. so that the class object (pawn? character?) gets pushed as instigator and owner of the ability component in the syntax, and then you can cast or call interface to get target as reference, or target as a worldspace location.

Hi, I hope you can add “Duplicate Task” feature, it’s very useful, thanks!