Able Ability System Info and Support Thread

I still cannot get a target asset to spawn in the editor. The output log says “LogAbleEditor: Warning: Could not load asset [name of asset]” no matter what asset I pick. I tested with multiple actors and even the same actor as the preview asset, but I still get this message.

It does ask for the Cooldown, but only when not in the Ability Editor. The Ability Editor purposely doesn’t calculate cooldown since it doesn’t use it. Like I said, I may make that an option so if you want to test your cooldown logic in the Ability Editor - you can.

If you try your Ability when in a level or in game, you should hit your breakpoint (at least, I did).

Interesting. Any special repro steps? Or just try and spawn the Target Actor?

Just trying to spawn the target actor.

Can confirm I also am getting this issue.

Yea, It’s on my list for this weekend. I’m already preparing a patch for the dynamic fields on the Ability itself not binding during runtime, so I’m going to try and squeeze in a fix for the Target Actor as well before I submit the patch this weekend.

VERBOSE don’t work to me…can’t debug with this…it’s a bug???

Verbose for which Task? Or just in general? You should definitely see it in your Output Log at the very least.

Yeah…only see VERBOSE on logs…don’t show in screen

I’d check your Able Settings (in the plugin options), there is an option in that that prevents Verbose from printing to the screen.

Able v3.1 submitted. Notes:

As always, thanks for your support and patience. Keep the bug reports coming.

Adding target asset works for me now. However, I get a crash whenever I play the ability when the target asset is spawned in the editor.

Can you give me repo steps? Just spawn a Target Actor and Play an Ability?

Just having a target actor spawned in and playing the ability will always cause a crash.
As in, having any target actor in the editor while playing the ability will cause a crash.

Able v3.11 has been submitted. Notes below:

Can I get active tasks for active running action using Blueprints? (as far I know I can’t)
This would be nice - for example I want to show some task progress on UI. Any chance you can add support for getting tasks and time ratios of them?

Matt you should seriously consider adding more support to BPs to get data more easily. (still can be const and still blueprintreadonly)

Why at the Task level and not at the Ability level? You could have 1 Ability that adds a passive ability (that does whatever task you are wanting to keep track of) and then your UI code can simply grab all Passive Abilities currently playing and grab the Ability time ratio from there.

hmn I think you should try to create fully game or game jam using Able you will then see a lot of things that can be exposed. Just try to be modular, don’t create ability for each custom thing as lot of things can be done without adding another abilities. I think your architecture could be more opened to BPs, that’s all. Faster to work then.

And I found issue with Play Animation node and Ability Play Rate. When your animation use Dynamic Montage it won’t use GetPlayRate from BP just GetBasePlayRate() from CPP which always will be 1.

Really love your plugin don’t get me wrong but still I think you should invest more time and try to create full game using it.

I’ll look at adding a way to get the context for an Ability (which you can get the running tasks on). There’s definitely a balance to be had between exposure to BPs and not letting the user shoot themselves in the foot.

Do you have the Scale With Ability Play Rate turned on? That will call the dynamic binding for the Play Rate (hit the + next to the Play Rate on the Ability and create a binding there). There was a bug with Ability Dynamic Fields not binding at runtime, but if you have the latest that was fixed in 3.1.

I do use Able for my own games (that’s where it started actually), but people use it in ways I don’t (for example, your Task conditions you added) so I’m always interested to see the feedback. I tend to make lots of discrete Abilities that do one small thing and exit, but others create “Uber Abilities” that drive tons of stuff. Both are valid approaches, just different styles.

EDIT: To be clear, Play Rate is the **Ability **Play rate. I don’t currently have a dynamic animation-only play rate (although I could add that easily now).

hope you will add it :slight_smile:

Another idea you could consider for cooldowns: custom class that is managing how cooldown is handled. For example I would like to reuse ability after 50 enemy hits or after moving from one spot to another. Currently only time cooldown is supported as far I can know.

You could do that with the CanAbilityExecute logic (and just avoid Cooldown entirely). Although I agree that the cooldown concept could be abstracted a bit more to make it more flexible (rather than inherently just time).