Custom Character Controller?

I am planning on making a custom character controller for a parkour-y type game, but I have no idea where to start.

The main reason I am using a character controller is because I want to make sure that I can manipulate gravity (low gravity, sideways gravity, anti-gravity), as well as create some specific movements for players to make.

Are there any resources/ computer science concepts I need to learn about before making a character controller?

sounds like it wont make sense but:

just try to make it a “luau” code instead of C# and there u go with a custom character controller