1.
SCAR Code:
procedure LogOutPlayer;
begin
if(LoggedIn)then
begin
LogOut;
end;
TerminateScript;
end;
You don't need the begin/end, this is good enough:
SCAR Code:
procedure LogOutPlayer;
begin
if(LoggedIn)then LogOut;
TerminateScript;
end;
2.
SCAR Code:
procedure CheckLogin;
begin
if(not(LoggedIn))then
begin
TerminateScript;
end;
end;
Same as number 1, this should be enough:
SCAR Code:
procedure CheckLogin;
begin
if(not(LoggedIn))then TerminateScript;
end;
3.
SCAR Code:
procedure AlignCompass;
begin
CheckLogin;
MakeCompass('S');
KeyDown(VK_LEFT);
repeat
Wait(1);
until(FindColorTolerance(x, y, TargetColor1, MSX1, MSY1, MSX2, MSY2, 5));
KeyUp(VK_LEFT);
end;
a repeat should always have a failsafe, also the wait(1) could be changed to a higher integer value, maybe 50 or 100 or something, you could also raise that 5 tol I think.
For the failsafe, add an integer value and increase it, let me explain it with an example:
SCAR Code:
procedure AlignCompass;
var
FailSafe: integer;
begin
CheckLogin;
MakeCompass('S');
KeyDown(VK_LEFT);
repeat
Wait(100);//changed 1 to 100 (100 miliseconds is still fast, isn't it?
Inc(failSafe);
until(FindColorTolerance(x, y, TargetColor1, MSX1, MSY1, MSX2, MSY2, 10)) or (Failsafe >100)//the failsafe, 100 times*100ms=10 secs
KeyUp(VK_LEFT);
end;
You could also use a timer instead of that simple integer raise trick 
Then you'll have to use MarkTime and TimeFromMark:
SCAR Code:
procedure AlignCompass;
var
FailSafeMark: longint;//long integer, an integer has a maximum value of 65535, whatever an integer is fine too :)
begin
CheckLogin;
MakeCompass('S');
MarkTime(FailSafeMark);
KeyDown(VK_LEFT);
repeat
Wait(100);//changed 1 to 100 (100 miliseconds is still fast, isn't it?
until(FindColorTolerance(x, y, TargetColor1, MSX1, MSY1, MSX2, MSY2, 10)) or (TimeFromMark(FailSafeMark)>10000)//10secs=10 000 ms
KeyUp(VK_LEFT);
end;
4.
Your AntiRandom procedure: Some things in there aren't really needed, for example the
because that's already included in FindFastRandoms.
5.
your SetupScript procedure: You use 2 times
there's no need to
6.
A global remark, try to use global vars, for example in your
7.
SCAR Code:
if(JudgeTries = 25)then
begin
LogOutPlayer;
end;
Same as number 1 & 2
I wont tell things like this anymore since tehre are more, you should be manage to find them 
8.
SCAR Code:
Wait(750+random(500)); // Start talking to the judge
ClickToContinue
instead of using "ClickToContinue" in combination with a wait, you can use
SCAR Code:
function ClickContinue(Click, Wait: Boolean): Boolean;
where you can combine them 
Othere then these it is a nice piece of work you have created, you're knew man
If you will keep studying further this way then you will be an SRL member 
Also, I LOVE FindObjCustom
-Tsn.