How to approach making a custom joystick?

To make the character face the joystick’s angle, I calculated the vector between the input position and the center of the joystick, while binding a function that rotates the character based on that vector to RunService.

Is there anything in particular you did not understand about the stick on the right aside from this?