How to make a RigidBody3D properly push another RigidBody3D?

Godot Version



I am making a simple game where each player has a pen on the table where you have to push your pen which in turn pushes the other pens and you need to push the opponent pens off the table. Each pen has a Rigidbody and impulse forces are applied the player’s pen.

The issue is the RigidBody of the pen jumps over the other pen’s RigidBody and doesn’t push as expected. It only slightly pushes it when it’s moved with a very low impulse but I want that to happen with higher impulses as well.

The Rigidbodies have cylinder colliders. How exactly can I make it so that they push each other instead of rolling on top of one another?

If you use apply_impulse this will circumvent other forces and immediately accelerate the body. Use apply_force instead.

1 Like

You could lock all but one axis.