Able Ability System Info and Support Thread

Yea, Client and Server run the exact same code. Not sure why that would be different between the two.

Sure, haven’t checked on those guys in a while.

Can someone explain to me how to do a charge up attack?

I know how to do it in regular blueprints, but not Able.

I am trying to mix the two now, but I can only get it to work on the server, not the clients.

For a question that can easily be answered now, how do you apply damage in the Able Editor. Other than the Apply Damage task is there a way in the editor to apply damage? When I use the Apply Damage function it doesn’t work even when I attach it to a server call. All I want to do is take a charge value from the player blueprint and add it to the damage before applying it to the collision query targets that it finds.

maybe because only the server has authority over “deal damage” interface? You need to learn about controller function “instigated any damage”. Also make sure any part of the ability is running on client and server (if non cosmetic!) and none is server only. even if something requires authority - it will just not work on client but you will make sure you haven’t skipped anything.
Also - you didn’t specify exactly whats wrong. maybe do a short video? If I know the problem I could help.

Charge up would be a channeled ability - then when the ability ends, you check how long the ability was played for and branch to which ever version of the attack. You can add a tiny loop at the end of your “Charge Up” ability so it keeps looping if the player reaches the end.



Charge Up (Channeled, Input Conditional, small loop at the end of the ability to allow "holding a full charge") -> OnAbilityEnd -> GetAbilityCurrentTimeRatio -> if timeRatio < 0.33, then Play small attack, if time < 0.66 then play medium attack else play large attack.


Apply Damage has to go through the ApplyDamage Task, or you can write CustomTask that does whatever you want and calls your own damage ability.

If ApplyDamage is not being applied to the Server, then I’d check that the Task Realm isn’t set to Client only (or you have some logic that would prevent it from being played on the server), you can turn on “Verbose” on the ApplyDamage task and see if the server is failing somewhere.

I’m not having issues with that, I am long past how to get abilities to run on the server and what not, I’m asking specifically about how Able executes things in it’s Graphs.

Here is a simple blueprint of what I am trying to do.

In game, it prints 0, then the correct charge value. It prints 0 for every other player including the listen server.

What’s happening is the client is running the ability fine and each other client is running the ability as well (for some reason), but when the server goes to execute the command it has a charge value of ZERO. I don’t understand how to get the value from my player blueprint into the able interface in order to affect damage.

Imgur

Edit: and when I run this same command from a server call it does the exact same thing.

Thank you, I’m just going to do it that way. I am still curious about what was wrong with my method; if you can check the picture above.

How do you get the ability to channel while holding button press? The Input Condition isn’t the same as the key press by default. I don’t see where it can be changed

After thinking about it a lot, I think my main question is why is my Able Ability Code being called for every client on the server. Why isn’t it just called for the owning client and the server?

You know what… I actually have a setup like this… Copy of the “darm messiah of might and magic” melee combat. Its after midnight. but tomorrow i can set a video on it and post for you :slight_smile:

Thank you, I’m still getting the issue where if you have 2 or more collision queries in one ability; if the first one hits then all the subsequent ones hit the same target as well. Tried messing around with a thousand settings. Just don’t think it’s able to do it :wink:

So once I get chaining different abilities down hopefully it makes what I want to do easier. If not, I feel like just using Able for certain things and using collision boxes mixed into animations may just be easier for what I want to do.

maybe they don’t hit the same target… but they all copy context to “Target” and the context never gets cleared in between? I don’t understand why having an ability of melee hit HITTING SOMETHING is being bad? :smiley:

Lol, I just have a melee ability that strikes twice, one at the start one at the finish. And if you hit the first and the person dodges it should miss.

Hello @ ,
First thank you very much for all the help you give and for a wonderful asset, Able. I was wondering if the tutorial will be updated with some new features and more practices? The current videos are 3 years old. The current version, 4.25, look different from the videos. Same functionalities so I didn’t have any issues but it ill be nice to explore some of the new features please!
My other question, actually the main one, how can use Able in PS4 build editor?

Many thanks

New videos are on my list (along with document updates), it’s just finding time. But, yea, I’ve definitely wanted to do a new “feature overview” for Able since all the updates over the years.

Able should just work with UE4 PS4 enabled editor. That’s what I use to test on. Or are you trying to run Able’s Editor within a PS4 app somehow?

Hi,
I’m using this setup but my character is not filtering self. I tried filter self and owner but still damage is applied for my PlayerCharacter anyway. Any ideas?

Awesome, can’t wait :slight_smile:

I just wonder how to install the plugin in the engine. At the moment I copy Able into my project’s plugins folder but that makes it available for that project only. Is there a way I could install it to the editor instead?

@mnorris54 @

I’ll be more than happy to do examples for ABLE on requests :slight_smile: This is a very complex system example but I could do simple ones as well.

Found it… I had this set to self

Today is my “Able” day hahaha
I was trying to add a custom condition but there isn’t much I can do. How does it work?

Annotation 2020-07-16 170213.png

you have to overwrite a proper function on the back end. normally the function just returns true.

I thought that to but it asks for a Event Name! So, that got me confused how to use it properly,

VERY Tempting. @Roland_Price wants to help on fixing up the documentation to (which means it’ll finally get some love since I’m swamped). Let me think on it some more, but I’m definitely interested.