Can anyone clarify how controller takes control of a pawn or a character

So i am having a little confusing , i know that the controller takes control of the pawn , and it takes control of root component of the pawn but how those thing works like jumping crouching , i tried to make my own movement but it wast working properly and does anyone have any idea how character movement component works ( i didt find any good article on this topic) , like the buseorientrotationtomove , usecontrollrotaionpitch , etc