I use two raycasts. One for IsGrounded and a longer one for IsOnSlopedGround. I don’t let the player have control on sloped because I want the player to slide down any slopes. They can still jump on sloped ground, but they can’t really scramble up it.
I am going to add a “IsOnSlightlySlopedGround” for the beach and just make the player a little slower.