SCAR Code:
procedure Circle(MidX,MidY,rad,sAngle,eAngle: Integer; accuracy,xOffset,yOffset: Extended);
// Extra credit love to n3ss3s for the heart of the script (as posted by Negaal)
var
x,y,dloop,eloop: Integer;
angle: Extended;
begin
angle := sAngle;
X := MidX + Round(xOffset * (rad * Cos(Radians(angle -90))));
Y := MidY + Round(yOffset * (rad * Sin(Radians(angle -90))));
HoldMouse(x,y,True);
Sleep(500);
if(sAngle > eAngle) then
eloop := Round((sAngle - eAngle) * (1/accuracy))
else
eloop := Round((eAngle - sAngle) * (1/accuracy));
repeat
if(sAngle < eAngle) then
angle := angle + accuracy
else
angle := angle - accuracy;
Inc(dloop);
X := MidX + Round(xOffset * (rad * Cos(Radians(angle -90))));
Y := MidY + Round(yOffset * (rad * Sin(Radians(angle -90))));
wait(5);
movemouse(x,y);
until (dloop >= eloop);
ReleaseMouse(x,y,True);
end;
Adapted from n3sses trigonometry tutorial for pure linerider pwnage 
It includes a start angle, end angle, accuracy (higher = faster, generally 1 or under), and an x and y offset (changes the shape of it, with xmod making the widest point xmod*radius and same with ymod).
Mine even supports circles going in opposite direction and angle starting bigger than 360 (e.g. from 180 to 450 to go from the bottom to the right but clockwise)
Edit: Thanks for the thanks and those are some awesome videos - I never seem to get past making a few curves... I really do need to get some follow through with something i do ><