If you guys want it included in SRL randoms, but it's done in reflection so it would be in SRL Reflection randoms… here's the code, I used one of my custom functions so I'll post that too.
function InteractWithTile(action:string;offset:TPoint;tile:TTile):boolean;
var pt:TPoint;
begin
result := false;
R_Debug('Attempting to '+action+'.','InteractWithOBJ');
if not TileOnMS(tile,30) then WalkToTile(tile,1,0);
pt := TileToMS(tile,0);
pt.x := pt.x + offset.x;
pt.y := pt.y + offset.y;
MoveBox(PtToBox(pt,8));
Wait(100+random(125));
if R_IsUpText(action) then
begin
ClickMouse2(true);
result := true;
end else
begin
ClickMouse2(false);
result := R_ChooseOption(action);
end;
wait(500+random(150));
r_Flag;
end;
function InGrimsDen:boolean;
begin
result := ValidNPC('Grim Reaper');
end;
procedure TalkToGrim;
var portal,grimtile:TTile;
begin
SetAngle(true);
R_MakeCompass('N');
portal := GetMyPos;
portal.x := portal.x + 3;
grimtile := GetMyPos;
grimtile.x := grimtile.x - 4;
InteractWithTile('talk',Point(-15,-15),grimtile);
repeat
Wait(250+Random(1250));
until not R_ClickToContinue;
Wait(250+Random(1250));
InteractWithTile('enter',Point(0,0), portal);
Wait(4000+random(2000));
end;