Fix'd 
SCAR Code:
{*******************************************************************************
function TabExists(Tab: Integer): Boolean;
By: ZephyrsFury
Description: Returns True if the Tab exists.
*******************************************************************************}
function TabExists(Tab: Integer): Boolean;
var
tP: TPoint;
begin
if (tab < 20) then
begin
SRL_Warn('TabExists', 'Tab ' + IntToStr(Tab) + ' is not using the new constants! Please upgrade your script.', warn_AllVersions);
Exit;
end;
if (not(InRange(Tab, Tab_Combat, Tab_LogOut))) then
begin
SRL_Warn('TabExists', 'Tab ' + IntToStr(Tab) + ' is not a valid tab number.', warn_AllVersions);
Exit;
end;
if (Tab = tab_LogOut) then
begin
Result := (GetColor(753, 6) = 6261404);
Exit;
end;
tP := Point(536 + (Tab - 21) mod 8 * 30, 187 + (Tab - 21) div 8 * 298);
Result := (GetColor(tP.X, tP.y) <> 4412771);
end;
Changed
SCAR Code:
if (Tab = tab_LogOut) then
begin
Result := (GetColor(753, 6) = 6327197);
Exit;
end;
To (logout 'x' color)
SCAR Code:
if (Tab = tab_LogOut) then
begin
Result := (GetColor(753, 6) = 6261404);
Exit;
end;
And
SCAR Code:
Result := (GetColor(tP.X, tP.y) <> 4478564);
To (rocky background color of the tabs)
SCAR Code:
Result := (GetColor(tP.X, tP.y) <> 4412771);
Tested on all tabs, first normally where they do exist, and second in the bank where they don't. It works both ways 
E: looks like someone already beat me to it
just updated my SRL, this was fixed last night