Checkout how 'StreamMouse' in my MouseHandler (V1.01+) works and how to use it, it'll be a big help in your alching script.
function StreamMouse(MouseIn: MEvent; UpTextArr, RClickOptions: TStringArray;
UpTextWait, OptionsWait: Integer): Boolean;
That function requires a 'MEvent', use 'ConMEvent' to build one like so:
ConMEvent('normal', X_Coord, Y_Coord, X_Rand, Y_Rand, mouse_left);
And let's say you wanted to (normally) move the mouse to Point(250, 370) with 5 randomness added to both X & Y, wait for ''Magic Longbow' uptext (500) and right-click wait for option 'Cast High alchemy' (400) then you would do this:
Var
ME: MEvent;
begin
ME := ConMEvent('normal', 250, 370, 5, 5, mouse_move);
if StreamMouse(ME, ['Magic','Longbow'], ['Cast','High','alchemy'], 500, 400) then
Writeln('Success!');
Of course there's 1001 ways to do mouse-moving, text-check, option-choosing and so on, but if you were to use my MouseHandler, that's how you'd do it. It's meant to do it all in one motion.