You're rather new to scripting i think, so it's a really nice try, keep up the good work.
I still have some information i want to give you/things to say:
1. EarthAltar bitmap: Ooooooooooh toooo big, you have to make a nother one, make small "unique" stripes
2.
SCAR Code:
function OpenMyBank: Boolean;
It's cool you use FindObjCustom but in this fucntion (OpenMyBank) you have done something wrong, no failsafe.
SCAR Code:
repeat
Wait(500);
InPin(IntToStr(Players[CurrentPlayer].Pin));
until (BankScreen);
Add a counter or timer as failsafe, because now it will still repeat trying to enter the pin, what if the user entered the wrong in the player array (i know that that isn't your fault, but it's best to have failsafes as much as possible).
c: integer;//our counter
...
...
SCAR Code:
repeat
Wait(500);
InPin(IntToStr(Players[CurrentPlayer].Pin));
Inc(c);
until (BankScreen) or (c > 5)
now it will repeat that until bankscreen is opened or when the script tried entering the pin more than 5 times.
You get what i mean with failsafes?
^^ I know you did check it in your InBank procedure btw, i just want to show you what could happen and how to solve it.
3.
SCAR Code:
if(OpenMyBank) then
begin
...
end else
begin
WriteLn('Bankscreen not found. Logging out...');
Players[CurrentPlayer].Loc := 'No Bankscreen';
Players[CurrentPlayer].Active := False;
LogOut;
NextPlayer(True);
end;
end;
If your bankscreen still isn't opened, then you logout, no!.
Didn't you forgot to close the "possible pin screen)?
That's why you needed that failsafe in MyBank?
Did you made that one? If you did, wow!
Put more player-location in it so you can see were it has went wrong while walking, that's a big failsafe 
^^same for ToBank
Else then that, great work