Able Ability System Info and Support Thread

1.) You can do that with tags. Just assign a tag to the Ability “States.Uninteruptable” and in the Can Interupt Ability, just check for it.
2.) Anything can be channeled, pretty sure I added that wayyyy back when. I’ll double check things, something may have broke in the big memory changes.

  1. brilliant! on it!
  2. unfortunately 3 channeled abilities didn’t channel if they weren’t passive. ticked passive and they instantly started channeling properly.

By the way any idea on how to do branching ability on the finish of looping or channeled ability with multiple loops? I cant use branch task - as it will execute on a single loop - not just the last one. I cant bind on the ability end/interrupt etc… I can use the ability end event to run the ability inside the event… But I can’t check the input condition for branching if I do…
What I figured so far is adding “can execute” condition same as channel condition and always run the ability on previous channeled end - and it will simply fail if my input is not pressed, but again I have to code the input check inside a function directly with some cheats and I’m not sure it will work as server condition will fail. Works on a single player so far.
(I am using ADS channel on input hold… I sprint - so I want to stop ADS… When I finish sprint I want to check input to enter ADS without the need of re-input)

Im having a hard time getting a collision query to hit foliage. A little debugging shows that it is detected in the Overlaps, but the ResultTransform.GetTranslation(); is returning a zero’d vector so distance sqrd checks always fail. Does anyone know how to get it to hit foliage instances?

Does anyone else have this problem? Is this somehow unique to my project? Any info would be appreciated.

I’ll look into the active thing for channels. Sounds like something just broke.

Honestly the way I would handle your question is by going a level higher, i.e. don’t try to do it all in Able. Can you simply check in your character that while your movement button or whatever is pressed that the character is playing the Sprint or is in ADS, and if not - to re-enter the ADS?

Hey there ,

as far as I see Macro Library macros are accessible from the ABLE Graph editor in the content browser actions (right mouse click in the Graph or in any function in an ABLE ability), but Function Libraries are not somehow, so any chance to be able to add “access” through the ABLE Graph to use them?

It could be a HUGE time & effort saver for us to use our large Function Libraries in the long road and maybe for others too. : ]

So, some function libraries are allowed. Things like Oculus and other libs. But then others don’t show. I honestly haven’t figured out the rhyme or reason for what is preventing that. I’ve dug quite a bit but no dice so far. I’ll keep looking but if you happen to know, I’m definitely interested in whatever flag needs to be tickled.

Unfortunately I don’t have any clue on that, as far as I can remember I never experienced this type of prevention in other custom made BP Graphs, so at the end I just really hope you can find that flag or whatever is behind it. : /

Hi, I package my dedicated server and configure for linux shipping, and report error at this function:
FString UBTDecorator_HasActivePassiveAbility::GetStaticDescription() const

And, I found problem is this code:
AbilityName = FString::Format(TEXT(“BlueprintKey(%s)”), { AbilityKey.SelectedKeyName.ToString() });

Interesting that error causes issues in Shipping and not other configs, Epic should be building Linux/Mac/Win64 Shipping and Dev builds. Maybe you need the dereference operator when using StringArguments rather than flat VA_ARGS…, if so you can just toss it in. I’ll look at things this weekend when I have some time to investigate the channeling stuff that was reported earlier.



AbilityName = FString::Format(TEXT("BlueprintKey(%s)"), { *AbilityKey.SelectedKeyName.ToString() });


I found that not this code causee issues, it is compiler problem, your code have many place writing like this:

if (xxx)
return;

if your change code to this:

if (xxx) return;

then, compile will be ok, it is weird

That makes 0 sense, but Linux can be weird like that.

Hi
asked this ages ago…
Is there any progress on the Move to and Jump to Tasks?
Is it still WIP?
Can you explain how you used this as you kept it in here?

Thank you
Jesse

Move to should work with path finding + character movement, Jump To is… ehhhhhh. Movement in UE4 is pretty customizable (some people use purely physics, some use character movement, some use a marketplace solution like ALS), so it’s hard to make a generic solution. I’ve left MoveTo/JumpTo in there more for reference than anything. If you really want those tasks, it’s honestly best that you build them yourself using Custom Task or just C++ and follow along with those examples to tailor things for your game / gameplay.

Thanks .
Btw I just done a Tutorial on integrating Advanced Locomotion System with your Plugin.https://youtube.com/watch?v=nUu8MOoYOw0
Not too well at the moment so sounded meh lol Hope this helps some people.

I looked into this and channel does work with actives. You can view my test project here: Dropbox - File Deleted - Simplify your life so there must be something else wonky with your setup.

Hello, I’m trying to spawn actor from socket on a component. (muzzle of the gun my player is holding). I can’t figure out how to do this. The Machine gun tutorial video uses raytraces from the camera position and the rocket launcher in the downloadable “CE1 Shooter” project uses a strange field labeled “ATT MAX” as the Source location.

What is the proper way to do this?

Also I would really appreciate a discord server for Able, it would be super helpful to be able to talk with other developers using the product with a more active use platform. Even if its something @ didn’t frequent.

Yea, just set that field to ClientAndServer. ATT_MAX is an invalid option that is due to the last update which needed to rename those fields for MacOS compilation.

But, in regard to your question, you can override the Location field on the Spawn Actor task (hit the + button next to the transform) and you can simply get your SelfActor -> Cast it to your Character -> Get your Weapon -> Get the Socket Transform from your weapon and return that.

There is a Discord server someone setup (it’s in this thread), I know both myself and AngelV frequent the UnrealSlackers Discord from time to time.

Thanks much for the response!
So doing roughly what you are suggesting it seems to be ignoring the return values that I’m passing when spawning the actor.


https://forums.unrealengine.com/core/image/gif;base64

The prints are outputting the expected world location and rotations, but it is spawning the actor at a zero’d transform.

That should be correct, you might want to turn on “Verbose” on the Spawn Actor task and check your logs. It should print out the exact transform it’s receiving from BPs.

Sorry should have included that in my original message. The log is essentially showing it spawns at whatever values are in the editor fields for offset&rotation. The two printlines are the values I’m returning in the struct.