Possible to make rigidbody immovable without "Is Kinematic"?

I have a bunch of AI actors chasing my player, and when they get within attack distance, they stop. However, when there are actors behind the stopped actors, they push the stopped actors closer.

If I use Is Kinematic, they phase through each other, this is not something I want.

So how can I make the stopped actors immovable to the other actors pushing shenanigans? I tried hard-setting the rigidbody velocity to Vector3.zero during the stopped state, but that didn't work either.

Instead of trying to make the rigidbody immovable, i decided to do some simple neighbor avoidance by using Physics.Overlapsphere and applying force in the direction opposite the neighbor. It works pretty well, feel free to crib:

function FixedUpdate(){

    var neighbors : Collider[] = Physics.OverlapSphere(transform.position, 1.5);

    for(var neighbor : Collider in neighbors){
        if(neighbor.CompareTag("Enemy") || neighbor.CompareTag("Player")){
            var neighborDir = (transform.position - neighbor.transform.position).normalized;


You could spawn a simple static gameobject with a simple collider at the position of your stopped actors while also making your actor kinematic. And destroy the simple GO when actors start to move again or GO is not needed?! Or just constrain it in the Constraints section of the rigidbody component.

Yes. Set the mass of the object you don’t want to move REALLY high.