Set Collision Response to Channel not working

I’m trying to change the collision response to channel at runtime of a component.
The target in question is a simple static mesh that’s attached to a physics constraint.
The collision response won’t change during runtime, no matter what I try. Is this a bug?

How do you know it’s not working?

Because it’s not colliding with my world static,
also when I check the component when I pause the game, it does not seem changed in the menu.

It takes more than just setting the collision response on a single object to block. The thing you want to block has to block it back

E.g. Your component is of type pawn. It blocks worldstatic. The only thing that can block it is something of type worldstatic that blocks pawn.

I am very much aware of these things, and they all check out.

Let me explain what I’m doing. I’ve made a destructible car that has parts flying of it. I use a rather complicated gimmick in the engine to achieve deformation for the metal.

Let’s try to explain it in a simple way:
I have a skeletal mesh with high damping that is visible and gets teleported every tick to a static mesh of the same shape that is invisible with physics enabled. That way, the high damping is only locally simulated and the deformation still takes place when the object hits something because of the non continuous collision detection. (The two objects clip a little bit through each other, so the skeletal mesh still gets displaced.)

When the car flies against environmental objects (WorldStatic), it should have pretty high deformation, and it overal works better when I disable the collision detection of the static mesh of the deformable plate. Now when the parts flies of, it needs to have that collision enabled again, because otherwise, the static mesh of the deformable plate will just fall through the floor, and take the skeletal mesh with it.

I hope that makes sense?

It does. Are you enabling the collision response when the mesh is already overlapping? That won’t cause a hit in physics.

No, I’m enabling the collision response when the physics constraint breaks.

I have a similar issue where I am attempting to change the collision response of a spline mesh component from ‘Overlap’ to ‘Block’ in response to a Pawn collision.

It simply doesn’t seem to work. Any updates on this?
I can see the collision boxes with debug drawing, and they respond to trace tests, but they seem to refuse to change collision responses at runtime.

I’m having the same issue.

“Set Collision Response to Channel” do change the exposed values at runtime, which I can see while debugging. However, internally, it seems that it does not affect it at all. Any ideas?

How to get Collision of Spline Mesh Component?
I think “Set Collision Response to Channel” call collision of spline mesh component…

We have a relatable issue here.

I have the same issue with a destructible mesh, I want it to ignore pawn collisions upon spawn (which it does) because it is part of an enemy spawner. After it gets destroyed however, I want the individual chunks to block pawns so they can’t just walk through it - and setting collision response to channel in runtime does not change it, If i change it in editor it works but at runtime - it doesn’t.

i eventually solved my issue, but a thought for you, are you attaching that right fender to a parent and using an attach to node? if so check that weld sinulated bodies isnt checked, because it might be using the parents collision…

1 Like