This Q3-inspired first person controller is made with two goals in mind:
Arcade feeling facilitates strafejumping / bunnyhopping, allowing easy-to-play-hard-to-master movement. It uses similar movement logic used in quake / halflife games to achieve oldschool feel.
Avoid using CharacterController and make every step of the logic as transparent as possible.
Unpack the package
Add a layer "PlayerCollider" and set the player's collider to be on that layer
Add that layer to FpsController.ExcludedLayers
on the prefab. Collision and grounded checks will ignore these layers