Looks pretty good!
However:
SCAR Code:
procedure FindRandoms;
begin
FindTalk;
FindFastRandoms;
FindNormalRandoms;
FindLamp('Fletching');
SolvePinball;
if (FindFight) then
begin
MakeCompass('N');
RunTo('E', True);
Wait(7000 +Random(3000));
RunBack;
end;
end;
FindNonInventoryRandoms works better...and faster.
SCAR Code:
procedure BankTheItems;
begin
if (not(LoggedIn)) then Exit;
OpenBankQuiet('veb');
if (PinScreen) then
begin
repeat
InPin(IntToStr(Players[CurrentPlayer].Integers[0]));
wait(500);
until (BankScreen);
end;
if (BankScreen) then
begin
Deposit(2, 28, 2);
wait(500);
end;
end;
Fix your banking. Use a DTM to find the items....it's safer. Also, you don't need:
Let me tell you why. You've already got a repeat, which stops repeating until it finds the bankscreen. Therefore, you've just checked for the bankscreen and don't need to check again.