How to make a bot verify inside the Behavior Tree if it's been a collision with the Character and stop all movement?

.
Ok, so i have this so far, the tree means the bot is gonna choose a random loc, and gonna move straight to it. To score you have to collide the player with the bot, in this moment, i wanted to add a falling animation, the problem is that the bot DOES fall, but it still moves to the location as the fall animation plays. i want for the bot to stop all movement. The problem is that the fuctions like, Stop Movement Immediately or Stop Movement doesn’t stop the bot from moving. Any approach you can recommend? i don’t want to destroy the target as soon as it overlap.
Thanks in Advance!!

You can do it the lazy way or the correct way.

The correct way would be to add a Blackboard variable bool named something descriptive like IsCharacterCollision.

Then make a new BT Service Blueprint. In the service do the collision check, or if the collision check is done on the Pawn or Controller, get the collision state from that. Then, set the BlackBoard value, IsCharacterCollision to the value, true or false.

Make a BlackBoard bool value, TRUE and set it to true in the default.

Then above your task or sequence that you only want to fire if there has been a collionsion, right click and add a compare decorator. Set it to check IsCharacterCollision with TRUE is equal.

The lazy way is to do the test in a task. You don’t want to do that because it will perform poorly. The service has settings so you can slow down how often it is tested.

Note: You will want to add a wait task under the sequence that has the service running for a small time, like 0.2. There seem to be errors without it.

To do it the Correct way, i do have the collision within the Character, so the way i can call it is by casting it? What would be the way to express the BTT Service when there is a collision? I’m not sure if to use any of the Overlap functions, but none of them seem like the one that recognizes the colision.

The service is like a poll, it’s not an event. You set the time that it activates on in it’s properties. I think the default is every 0.5 seconds, and then you can set a variance of like 0.2. It’s not going to ever be exactly on .5 seconds, but somewhere between .3 and .7 seconds it will activate.

Then in the service, get the variable from the character and set the BlackBoard value to equal it.

I’m so sorry and i sincerely appreciate your help but, the answer is slightly vague. I added the Wait, but it doen’t do anything in particular. What the Behavior Tree does is to Look up a location, a destination, after that they move from Point A to Point B. i don’t know exactly how to express this in the BTT Task.

Did you make the new service and add it to the sequence?
Did you add the Blackboard item?
Did you add the compare decorator?

I did add the New Service, and add it to the Sequence, I added the Blackboard to the Wait, not the compare decorator.Here’s what i have so far.

The BTT Service is empty, that the one i’m having problems filling

You want to add your new blackboard key to the Tree’s blackboard, don’t add a new one to the wait. All the wait does is put a pause into the Tree execution.

The service is where you check the state of the variable for collision on your character, and update the Blackboard key.

for where the compare goes, you can put it on the TaskRandomLoc for now just to get it working.

i changed it to a simple move actor with impulse on the Y axis. That should work property, i sincerely appreciate the help!!