Ghost collision bug

I’m getting a bug where a collision gets traced that does not exist there. The ghost collision does not show up with show collision and the actor of that collision is placed elsewhere but it gets traced in that location where it is not located.
This is a welded child actor and it happens randomly with one of the child actors. That ghost collision seems to be stuck for forever, moving the actor of which the ghost collision is from does not move the ghost collision. The actor which has that ghost collision can still be traced normally and move normally, so it has 2 collisions, the regular collision and the stuck ghost collision. The ghost collision is also colliding with physics.

I think it is related to the attaching and welding of child actor collisions of which a bug has been fixed in 4.13 which might now created this new bug instead of it.
Here are my posts related to that bug:

It would be much appreciated if this can be fixed in a new 4.13 version since I would really like to get this working after all this time and this bug is much more game breaking then the last one.

Hi ,

  • Does this occur in a clean, blank project with no additional content or is it limited to one project?
  • What steps can I take to reproduce this on my end?
  • Have you tried building your level to see if the collision is still there after?

I’m not sure how to recreate it, it also appears rather randomly. It is happening with moveable actors that are spawned so it can not have anything do with building the level. I also displayed the name of the child actor of which the ghost collision is traced.

Assuming it is related to that last bug this will likely recreate it: spawn actors which have a collision, attach weld several of those actors to one of the actors and simulate physics. Turn physics off again after some delay and detach some random actors. Attach weld some random actors to a new parent actor and repeat the steps. You might also need to make actor which was once a parent actor a child actor of another actor.
Since it is a ghost collision and it seems happening randomly it will be hard to catch, might want to make a trace under the mouse and check if you can find a ghost collision somewhere with printing the traced actor.

I would check with Machina.Widmo of your staff first though if he has more insight.

Unfortunately I’m not certain the two problems are directly connected, it would be best to handle this as an individual occurrence for now. Do you have a sample project this is occurring in? I’ll be happy to take a look at it if you don’t have any steps I can take to recreate this on my end.

Well, it seems to be connected to attaching/detaching since it seems to happen when that is done and it would make sense as far as ghost collisions make sense: like when a actor gets attached welded it leaves its collision behind somehow while it then uses that welded collision of its new parent actor. I will test it some more, maybe I can find out more exactly when it is happening. Right now I would not be able to recreate it better as I described. Sending you the whole project would over complicate things since it is already a pretty complex and you would have a very hard time finding the logic that is related to the bug

Can you show me screenshots of your setup specifically with the actors this is affecting? I haven’t been able to reproduce this error on my end thus far.

Hi ,

We have not heard from you in several days. I am marking this as answered for tracking purposes, if you are still experiencing this error, please comment with the requested information.

Did you ever figure this out? I’m having the exact same problem right now with line trace hitting a ghost collision box on an attached actor.

I actually just found a workaround, on the child actor, in the static mesh data, set Collision Complexity to “Use Simple Collision as Complex”

In case this happens to anyone with a moving skeletal mesh, I forgot I was setting an optimization

KinematicBonesUpdateType = EKinematicBonesUpdateToPhysics::SkipAllBones;
bSkipBoundsUpdateWhenInterpolating = true;

These options can also be found in the skeletal mesh components details pane.