Able Ability System Info and Support Thread


  1. May be this is a bug?I make a collision task in able,the collison channel set to my custom channle named “enemy”,of course I set all enemy to the this channel.
    then I override On Collsion Event function, when the function called,in Hit Entities,it never get enemy.I set collision task channel back to WorldDynamic,and it works fine.
    In my enemy blueprint nothing is in WorldDynamic channel,they all in “enemy” channle.

  2. If I set Query source to Target Actor,when Target Actor is null, it will crash editor in
    AActor* SourceActor = m_QueryLocation.GetSourceActor(*Context.Get());
    I know I’m in a wrong way to use query task,but how ever it should not crash,you can give a message to tell user it’s wrong.

  1. I would double check your collision settings. Sounds like somehow your enemies are getting put on the WorldDynamic layer. Able just passes things along to the underlying collision query call, but I’ll double check to make sure.

  2. So, normally I actually prefer crashing than limping along. The crash is the message, in a way. However, this case may be a bit overzealous. I’ll see if I can make it more forgiving.

Hi how far are you on the update? :slight_smile:

It’s pretty much done. Just need to build against 4.22 and check things as a final test. Hoping to submit things early this weekend.

I expect bugs with JumpTo/MoveTo but I’m not going to hold up the entire update for those two tasks. I also think those tasks are just going to have to be written per project, there’s no great way to generalize them (as I’ve discovered) but maybe it’ll give some people ideas on how to write them for their own stuff.

The rest of 3.0 is honestly crazy awesome. Super excited to share it (finally).

aww thanks That sounds really good. Like rest of it i can figure things out.
The jump to move to sounds brilliant for my type of game?
Seen Supernatural TV Series?
Basing it on that. It would be crazy cool if i can get official thing by company that made TV Show…
Look at friday 13th game starting out as summer camp and Makers of movie stepped in and gave funding and actors :open_mouth:

If i can get it working, ghost charge through character will be great to do and damage them.
I am making the whole game based on DT’s (Datatables) So to harm spirits, Salt and iron can damage them and make them teleport nearby. Demons in smoke form using particles is also another fun feature and they can fling people through the air and throw them around :smiley:

You play as Hunters and can use weapons such as Salt round shotguns and Iron bars

Will look out for it this weekend. Cheers matt


@ExtraLifeMatt Hi there,

I just bought Able a few days ago and have played around with it quite a bit.
So far I really like the concept and how everything works together :slight_smile:
BUT (Yep there it is)
I have a few problems:

  • When making an MG-Ability like in your Shooter-Video the Targets in the Context won´t be “refreshed” on every loop.

You can even see this problem in your Video when you say: “Don´t know why this guy keeps falling but whatever”
The problem why he kept falling is that if you hit him once and then shoot somewhere else the damage task will still hit him and he takes damage no matter where you aim.
I tried to manually clear the Targets on every new Loop but didn´t have any luck :confused:
That gives me quite a headache ^^

  • Next “Problem” but more a hint if you didn´t know already: When pressing the Validate button in the Timeline Editor when there is no task the Engine crashes. (Not a big deal because why should I validate if there is nothing to validate^^)

  • Another thing (Don´t know if its just me but I had this in one existing and two fresh projects): When creating a custom task + correctly linked Scratchpad I see the task three times in the Ability-Editor. One with the name i gave the task - One with the Name + “Default” and one with the Name + SKEL + Default and if I click one of them to add it the Editor crashes

And then questions:

  • Would it be possible to implement Owner-Components as source of a Raycast? Would be very handy for my thinking because i would like to do things like raycast from a socket on my Weapon-Mesh which is automatically switched at the same time the Fire-Ability is changed.

  • Same for Animation-Tasks: Would it be possible to implement a feature to choose a target SK-Mesh to play the Animation on? I.E. for playing Weapon Animations the easy way. (Got around this with custom events and such which is also super handy and useful but I bet you could give us the Candy of doing it even more easy :wink: )

  • The last thing I can think of right now is that it would really make me happy if we could play Particle-Tasks directly at the Hit-Location of a Raycast

And now if any of the above are already answered or I am just thinking the wrong way - please don´t kill me and push me in the right direction :slight_smile:

Last but not least: I love Able and thank you for all your work. I really appreciate it <3

Able 3.0 has been submitted. Notes / Overview below:

3.0 is a monster that touched pretty much every part of Able (and definitely the Editor aspect). Overall I’m happy with how much cleaner things are (both visually and under the hood) and the ability for users to customize Able to their specific needs has never been better. 3.0 started as a 2 week re-skin but became a 3 month beast but hopefully people get lots of use from it.

That said, I expect bugs. I wanted another week or two of bug fixing but 4.22’s released forced things out a bit quicker than I expected. I’ve tested things as best as I can, but you guys will likely hit issues I just don’t have local tests for. Please be patient and let me know as soon as you find something. I’m already working on 3.01 with a few more art tweaks and such, so hopefully now that the meat of 3.0 is out, I can be a bit quicker on updates. I’m also pushing out the marketing refresh (store page and such) I wanted to do until Able 3.0 has a bit of time to cook out in the wild, so bug fixing is my entire priority.

Thanks for all your support and keep the feedback coming!

Hey @Leyawhin Thanks for the compliment and for your purchase.

I’ll try and answer all your questions / problems:

  • That makes sense, I can add Cotext Refreshing as an option. Obviously you can save some time by not re-doing all the context logic, but that may not be ideal depending on the Ability.
  • Validate shouldn’t crash if there aren’t any Tasks (I swear I fixed that recently). I’ll check again.
  • The SKEL is the Blueprint Skeleton, it shouldn’t be showing up - I’ll make sure that filter is still working.
  • This is actually a great case for the new Dynamic Field Overrides. I can add the option for you to overload the Transform field of the Raycast so can simply pull that location via a small blueprint method.
  • Animation does currently require an actor I believe. But I’ll look at adding a “Play Sub Mesh Animation” or some such.
  • There is an event that is called that passes the Raycast result (OnRaycastEvent) where you can spawn the Particle Effect. I’m hesitant to just add that in the default logic as it seems very game specific. Linking output from one task to another is an interesting concept. I’ll put some thoughts into that and see if there is a clean way to do it.


I’m happy to see the plugin being expanded, but as of now using it for anything other than prototyping is impossible due to countless bugs and most of the stuff introduced in earlier versions simply not working.
Consider hiring a second programmer to help you work on that end too.

I just found out the hard way (by debugging the code) that Channeled abilities do not work. They do channel but they can almost never end because if the condition is checked during an update (and it always is since the logic is implemented in AbilityComponent’s Tick) it will try to CancelAbility, will defer that action since it’s during an update, and will then fail to cancel the ability since right on the next line you are nulling m_ActiveAbilityInstance. So a frame later when Component is trying to cancel the active ability due to channel condition failing, there is nothing to cancel because you nulled it.

I mean, the overall effect in game does look like it’s cancelled, but the ability itself never got any info about this since nobody called “OnAbilityEnd” or “OnAbilityInterrupted” on it :/.

To reproduce:

  1. Make a channeled ability that for example, sets up a bool to true in OnAbilityStart.
  2. Set the bool back to false in OnAbilityEnd/Interrupt
  3. Add **CUSTOM **channel condition to the ability, can be anything Im pretty sure.
  4. Play the game and either print out the bool or do something to indicate it’s state

Result: The bool will never get unchecked.
Expected result: Bool will be back to false once the ability cancels due to failing custom channel condition

Thanks for the bug report/repro. I’ll look at this. I recall fixing something eerily similar to this recently. And I agree that Able is due for some maintenance/bug fix work. Now that the big “new features” patch is out, it’s bug fixes for here on out.

The bool has to be setup on an owning actor. I forgot to mention that. Basically on something outside of the ability. It can be the target of the ability or instigator. Since you can’t setup variables at runtime on the abilities itself, as they do not exist in the world as separate instances

I see what you’re saying. Definitely a bug.

You can fix it by moving the “m_IsProcessingUpdate = true” line to before the “Update our Active” comment (line 150 in UAblAbilityComponent::TickComponent).

    m_IsProcessingUpdate = true; // <- Moved from the top of the method to just before our updates.

    // Update our Active
    if (m_ActiveAbilityInstance)
        // Process update (or launch a task to do it).
        InternalUpdateAbility(m_ActiveAbilityInstance, DeltaTime * m_ActiveAbilityInstance->GetPlayRate());

Thanks for submit matt.
Just discovered i can use bpi with it? :o
Most powerful feature in ue4…
Cant wait now to use them

I need to re-submit the update tonight due to a packaging error on PS4 (it’s just a missing include) so I’m going to sneak in a few fixes for @Pablo1517 before I re-submit.

Is this what the new update is supposed to look like? Because I can’t really see it well. I also cannot pick a new preview asset or target asset because the list is always empty and the search comes out as “no results, check your filter”.

Same as above

Not only the problem above,it even can’t compile in shipping mode.Fortunately,I have backup the able plugin.The old version is all right.:stuck_out_tongue:

(Tagging @jwyuen @xermao as well).

Hmm, not sure why the background is missing. What engine version are you using?

The Preview Actor work flow has changed. You need to add the classes you want to use to your Preview Actor Allowed Classes in your Able Editor Settings. This is to greatly speed up the loading of potential preview actors from the drop down. Have you added those classes?

Can you give me the shipping mode error? Plugins are compiled in shipping mode before they are released to the public, so I’m curious what error you could be seeing.

What classes do i have to add?