Download

Able Ability System Info and Support Thread

Quick little update today. Able v3.45 notes below.

ExtraLifeMatt Is it possible to create an ability without a tick cost? A continuous object that just IS… is part of “get abilities” array and generally is on the character, but there is no cost to check for infinite loop? As even infinite looks have a tick cost. It’s slight… like 0.1ms but still. I was wondering if I could do classes and feats as abilities that would be persistent passive, but as ability can be affected by other effects and can be queried and stack can be accessed etc.

Not really. That’s not what they’re meant to do. You’re better using Gameplay Tags for things like Feats or Character Classes, etc. Abilities are meant to be “active” in that they always have a timeline to play.

That’s exactly how I’m doing it now. Or when a “class” has some activation perks per level and some functions to check if the multiplayer cheater is not trying to exploit it - I spawn an OBJECT without tick enabled and just call interface on it. I was just wondering if I can make a custom ability class that is an object that is a bit more stripped down. But to think of… that’s a lot of work to make it happen in comparison to just having replicated objects that are custom and took me maybe 1h to setup.
Oh and cost of ability is 0.1ms inclusive max when it runs all the “can activate” can cancel" etc triggers on the single frame… usually running a ticking passive is 0.01ms :smiley: so having over 700+ starts to be a problem. And I got a slow CPU (3.2GHz max turbo, and 2.5 GHz typical clock speed)

BUG REPORT: When you create a child ability and it copied all the context if you remove a task out of it - the engine crashes. At least 100% when removing “branch” task. The task doesn’t have bindings. just a static reference and input requirement
Also - creating an ability object from already made class often loses some functions and doesn’t copy all context. when errors out - it refers to errors in the original object class that was the parent.
some tests: a COPY of an object seems to work fine.
right-click and create a child - generates the same error, but also all tasks are removed from the graph. (they are marked as inheritable)

Hmm, Thanks. I’ll add it to my bug list and look at it.

Hello, how do i force the ability to play on client (like a reliable or force net update)? sometimes the ability doesnt send on the client but works on server

Hi, Task’s DynamicProperty no task name, so I can’t distinguish at runtime, “OnGetDynamicPropertyDisabled” for example, how can I do?

Btw, I want to change PlayAnimation(DynamicMontage) blendin\blendout at runtime, hope you can add this feature, thanks a lot !

There is a “Dynamic Property Identifier” on every task. Just add something there and it’ll change the method to “OnGetDynamicProperty_Identifier_Disabled”.

Sure, I can look into that.

I apologise if this was asked once before.

I have a question about the Spawn Actor task.
More specifically:
Can I somehow get a reference to the Spawned actor inside the Ability Blueprint?

There is a function to overwrite that is being run right after you spawn the actor and the spawned actor is the entry reference plug. So you can cast / call interface / do stuff with it. (although I don’t remember the name of the function without checking but its easy to find, as names are hard to get wrong in ABLE functions)

As AngelV said, it’s “On Spawned Actor”

https://able.extralifestudios.com/wiki/index.php/Blueprint_API#On_Spawned_Actor

Able v3.46 submitted. Notes below.

I have a simple question. I am trying to use behavior trees using the “Play Ability” task, but nothing happens. It just straight up skips it.
I added the AblAbility component to my character already, and the ability works in the ability editor.
Am I doing something wrong?

Nope, that should be all. Check your logs there’s probably some reason it’s being skipped. In the Able Setttings there is a Verbose option that will tell you any time an Ability was submitted and not played.

I forgot all about verbose. Thank you! I was able to figure it out.

Nice! Thank you very much!

Problem: My one ability is looping, and I found this ability’s task’s Disable just only check at first loop, but I need to check every loop, in order to Enable/Disable some task at runtime. btw, my ability is activity ability not passive.

Hope you can update as fast as you can, cause I am eager to use. Thanks!

I can look at that. It may have to wait till the 4.26 support patch, but we’ll see. I already have one update pending so that needs to clear.

It’s OK, I used another method, but I will waiting for your patch also.