Able Ability System Info and Support Thread

Thanks will look into it after work. Just need to sort out what i want to do. Plans all over the place hehe

hehe Another thing i noticed
in Graph in able, cant use Get all actors of class! ><

That is by design because Abilities aren’t level blueprints. You shouldn’t be using Get All Actors of Class. You instead want to use “GetActorsForTask” which will return the actors your Ability has targeted.

Right… So i can output actors into character bps. Lol making a supernatural game atm. Got so much involved. Its based on supernatural tv show but not got main characters. Its all based around datatables. Got most of it to work like enter devils trap if a demon it will stun them until it passes a d&d style check behind scenes on tick. Spirits cant leave the area unless pc or npc picks up item holding them there and can stay around nav mesh then functions like haunt can do stuff. Complex stuff but getting things to work in development level. Demons in non possessed beings atm is swirling tornados of black smoke and can pass a dice roll to possess pc and npc. Fun project but based around char bp and npc bp.

Hey matt regarding the other problem montages changes when selecting animations but not anim seq. No biggy continue your 3.0 update its like problem solving ng everytime haha detective jesse haha cant wait until you release the new update

Hi Matt,
I am using a classic mmo style control setup for my game, and I was wondering what you would recommend me doing to make a skillshot that is created at the location of the mouse cursor, mainly regarding the targeting. I have already made a system that creates a decal of the size and shape of the ability I want to cast, and the original idea I had was to basically pass the location of the decal when the player left clicks to the Able Ability, then the ability casts at that location and damages targets based on a collision query. I feel like I am over-complicating this, Is there a better way you can think of that I could do this?

Also, thank you for putting the time into making this plugin, it has been very useful for me so far :slight_smile:

Using UE 4.20.3 with latest plugin - I’m noticing that every time I recompile my custom task, those tasks already deployed in existing abilities get broken. They turn grey in the timeline, lose their visual representation/name, and I have to remove them and re-add the task. Worse still, if I close the project without replacing all the broken tasks the project crashes on load until I remove the ability asset referencing said task. Any idea why this would be happening - I can’t imagine it’s intended behavior?

Yea, I’m looking into fixing that as part of the 3.0 update. UE isn’t very good at replacing the old BP class with the new one. I may just have to iterate over all abilities and replace those references manually.

EDIT: Code written, going to start testing it while continuing on 3.0.

How far are you in 3.0?

Still going back and forth on the UI rework, but it’s making some progress. It’ll be worth the wait.

Aww i wont do too much yet until its done. Dont like restarting stuff.

All your data will still work, there shouldn’t be any need to restart or such. 3.0 will just plugin like every other Able update.

ahh thats ok :slight_smile: just that you said new features gonna be added :slight_smile: the move to thing will be good.
Are you gonna have an Input in blueprint or am i gonna still have to call datatable in all the able BPs?
made a D&D style system where it random generates rolls on stats if it suceeds to hit or not.
Might do it all in character BP (NPC and Characters share same parent class) So i might call all abilities in parent class then call able when success and pass damage out in parent class too.

Awesome, thanks for the update!

I have another question: Is there a way to get the current phase of a task? Being able to get the current phase of a task from within the task itself (custom tasks) would be nice, as would as being able to read the current phase/start/end times for each task from the Ability itself. Basically I’m looking to drive other logic using the phase from a tag placed in the ability.

I’m still finalizing all that, but there will be a way for you to dynamically pass in a position (or Actor) at runtime.

You can get the current Ability time from the AbilityContext, as well as a list of Tasks that the Ability has - from which you could likely figure out what current tasks are running (or I can add a function to the context to get all running tasks). I’m not sure about adding an explicit “phase” to Tasks. Tasks have a start, an optional tick, and an end - and if the Task is single frame then the start and end run back to back so there’s no real way for any other system to query that.

Telling when a task is running isn’t a problem, but without knowing the range of time the task is slotted in the timeline you can’t calculate a phase. “Start” and “end” are inaccurate names I guess, what I’m really talking about is the “Timeline Start” and “Timeline End” value of a task (the range of time a user set for a task). Barring something like that, what about a pre-fab ‘Phase Driver’ task? A task that tracks a simple phase (minValue->maxValue) over the range it’s set in the timeline, and spits that value out in some usable manner?

You can get the range of a task right now (GetStartTime, GetEndTime) - it’s just not exposed to Blueprints. You can also just grab the current ability time from the Ability Context (which you can grab at anytime from the AblAbilityComponent). Or, use custom task that just returns that value during the OnTaskTick call (which is what I suspect you’re doing already).

Thanks matt will wait until this is done. A lot of trickery on abilities and stuff. Using datatables to contain info on everything basically. J

Thanks for the info it helps a lot :3