When wouldn't I use a Character Controller?

Is there actually any downside to using a character controller in, say, a first person perspective character? Why would I ever not use one? Just curious as I usually prefer to make things from scratch.

I did a little research and found this webpage.

Well, the CharacterController is designed for cases where you don’t want physics applied to a player / NPC / object. If you want a player that can get “pushed around” by any other physics objects it’s better to use a rigidbody. With a CC you have full control over the movement. It can only move when you move it with the Move / SimpleMove function.

A lot people don’t like the CC. However some just don’t like the First-Person-prefab (which includes the scripts which moves the CC).

The CharacterController has some limitations like it’s always “up right”, so you only can turn it around the y-axis. From the physics systems point of view the CC is just a collider that doesn’t move (at least not during physics update). The CC won’t trigger OnCollision messages since it’s not a physics object. Instead it has it’s own collision detection and it’s own collision message.

So in some special cases you might be better off with a Rigidbody, dor example when you want to walk on walls / ceiling