Prevent collision changing velocity (but keep kinematic rigidbody)

I’m trying to make an object that is so heavy that a player running in to it would not move the object at all. At present, the player is at mass 0.1 and the object is at mass 100. Even so, if the player keeps bumping in to it, the object will slowly start to move. Is there any way to make the object completely immovable by a player, but keep it as a kinematic rigidbody?

I’ve tried setting the player to be non-kinematic when it enters a collision with the object, however this doesn’t seem to have a consistent effect, as the player becomes non-kinematic when it exits a collision, even if the player is simultaneously still colliding with another part of the object (eg the players head stops colliding, but the players foot is still pushing against the object).

The object must remain kinematic at all times, as there are other forces being applied separately.

Any ideas would be great :slight_smile:

Setting kinematic when you enter the collision is too late, because the collision resolution of the physics engine would have already been calculated and applied the forces, so your solution is a no go.

Did you consider freezing the X/Y/Z position of the object?

Another option could be to manually set the velocity of the object’s rigidbody to zero when the collision occurs. Try experimenting with that, if it would be ok.
Last, you could try using the collision contact points and try applying opposite force on the object when the collision occurs, but I think this would be complicated.