Able Ability System Info and Support Thread

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?

I probably should have been more clearer in my instructions, so I’ll lay things out how the new drop down system works:

The new system no longer uses a wizard to help pick a Preview / Target actor. Instead, it uses a Whitelist of classes that are defined in your Able Editor Settings to decide which Assets should appear in the new dropdowns on the Toolbar.

So, if the characters in your game inherit from Pawn, or Character - you can add those to your Able Editor Settings “Allowed Classes” under Preview Target - and only assets that inherit from those classes will be shown. This helps filter out other actors like Static Actors which caused a HUGE delay when opening up the Content Browser to select the assets. If you don’t know what your Character’s inherit from (which seems unlikely…) you can just add Actor and that will pick up just about everything (while still filtering out some unwanted content).

EDIT: Also I found the shipping error and missing assets. No idea how that made it through the pipeline. Fix incoming immediately.

Hi Matt, I am testing out this new version now.
Yes the colour of the timeline is white like above.
I have tried adding target character to class but it does not add character to scene for some reason.
Also Jump to and Move to does not work at all. I know you said you will be working on it but thats just confirming.

Are you sure your Character inherits from ACharacter? As I said, you can just toss in Actor or what not and it should pull everything.

Jump/Move To will not work in the Editor unless you set it to use physics and have a valid target setup. I’m a hair’s breadth from just removing those. I doubt I can get them to work generically for projects (which is why I was so hesitant to add them in the first place), but we’ll see.

The white bars and such will be fixed soon (about to submit the update).

Alright, update submitted and hopefully it hits later today. Again, sorry for the issues.

I know I’m super frustrated with this update (probably should have just taken the extra month of testing) so I can only imagine the frustration on the user end, but it does have some very good fixes and features so I ask for your patience while we hammer these things out.

Thanks. Btw tried updating it all to 4.22… Didnt work and lost most of it >< cry. Still got my data tables and anims luckily so redoing it all now and make it tidier. Should of backed up.
Gonna do bpi and ac more tidy now

Use Perforce. Takes two seconds to setup (you can easily find tutorials all over the web) and will save you lots of heartache.

Hi Matt :slight_smile:

I got Perforce now thanks.
Trying to simulate physics and all to get this to work.
Its not doing anything as of yet but got any pointers into where to look and research?
Thanks Jesse

Not yet. That’s the problem with Move To / Jump To is it requires that your character is setup in a particular way (has a root shape component or uses the Character Movement Component). Honestly, you have to debug and step through them to see where things are going wrong. Again, that’s the problem with Character Movement in general - it’s VERY case specific.

I’m going to look into them some more now that the update is out, but for the moment I’d just avoid them entirely.