Collision doesn't get hit events

Hi!
I created a landing system and a box collision for detecting landing, the problem is that the collision doesn’t generates hit events.

Landing:

Check if on floor:

Collision setup

Few months ago I created this in UE4.8 and it worked, but at 4.11 it isn’t…

Hey YoniBE,

Thank you for providing screenshots. Could you elaborate a bit more on your setup so I can attempt to reproduce the issue on my end?

  • Have you been able to reproduce this in a clean project?
  • If so, can you please provide steps that we can follow to reproduce this?
  • When you say you’ve created a landing system, what is doing the landing? Is the object using physics-based movement? Any details are appreciated.

Hi!
I added few hours ago some new nodes to the BP, and it works now but it with different way and sometimes it won’t work for me… and with this way I don’t use the box collision.

The landing system is checking if there is hit event on landing collision box, then it detecting with linetrace by channel if the helicopter is near the ground, if so, it will check the helicopter is hovering or lowing his height and if it is true it will lower helicopter’s rotor speed. (I don’t think that the problem in the landing system because it works with the Event Hit node as I said above)

I also notice that it is working with the collision and OnCollisionHit node if I turn on simulate physics but then the collision box will fall and not move with the helicopter.

This is the full setup of the collision box:

I tried now to create simple hit collision in new project and it is working…

  1. I created actor BP, placed there a static mesh (box) and a box collision on it.

  2. turn on generate hit events in box collision

  3. set collision to pawn

  4. created a node OnCollisionHit → print string: Hello
    and when the player (3th person template) entered to the collision, it wrote me “hello”.

Since you have not been able to reproduce the issue in a clean project, could you please provide a stripped-down test project that I can take a look at? I’d like to see your setup and see if I can pinpoint what the issue is.

OK. Tommorow I will send you.
By the way, I found that I am not the only one who have this problem…

It’s working only if I check the simulate physics option because the collision is blocking the hit, but when I turn simulate physics on the collision doesn’t follow the helicopter.

I tried now to take the project from UE4.8 and convert it to 4.11 and… it is working… So I check again if there is some difference and I notice that in 4.8 the collision is set as root component while in 4.11 it isn’t… So I created at 4.8 new collision that isn’t root componenet and tried to do the same and it didn’t work… It is working only if I check simulate physics…

If your collision is not following your mesh, it sounds like a parenting issue. The collision should be the parent of the mesh, and having the collision as the root component is, in most cases, the way to go.

With this in mind, see if you can make any changes to get your project to function. If not, feel free to send over a simplified test project and I’ll be glad to take a look at it.

Here is the simplified example: (UE4.11)

This is base on the UFO template, I added there a collision box for testing, when the collision isn’t the root component, it won’t print “Hello” while hitting something. (with simulate physics it will get hit report but it won’t follow the mesh.)

But when it will be root component, it will. (without simulate physics turn on)

Really thank you for help! :slight_smile:

Any news?
By the way, I noticed today that the collisions also doesn’t block anything if I set the collision as “Block All”, if it is a root component it will block.
Samething about overlap (I turn on the option “generate overlap events”)

In order for the collision to work, it should always be the root component. Take a look at how the base Character blueprint it set up in the Third Person Template project. This shows a typical hierarchy for a blueprint, and the capsule component is the root in that case as well.

It sounds like you’ve got the collision working as long as it is set to the root component, so I’d recommend doing it that way in your own project.

Would that be something that you’d be able to do? If not, let me know and I can take another look at the project, but I think that having the collision set as the root will resolve the issues that you were experiencing.

Have a great day

Ok, but how can I know if something hit the tail? Or the rotor? What if I need more then 1 collisions\triggers? Because using one collision as a root can’t help me with the landing because when the tail will hit the ground the BP will think that the wheels hit the ground and will start the landing system…

In 4.8 I could create many collisions at one BP and all of them were working with hit events and overlap event without turning on simulate physics…

The way that I would most likely look to implement this is to use overlap events. You could add a trigger box to each section of the plane (the plane itself has the collision) and as long as you set the other object to generate overlap events as well, it works as expected. This way you only get one trigger when it overlaps. If “On Hit” worked, it would generate a series of hits as the plane was landing or as the tail was dragging the ground.

Have a great day