The LocalPathfinder has an overload that takes a clipping graph for path generation. Just get the current clipping graph and set the rock positions to be traversible, and use that with the pathfinder. Then add whatever handling you want.
OR do as the others said and make your own pathfinder.
Strange, can you try 2 things for me and let me know if anything changes?
1. Place the potions elsewhere in the bank (if this helps, please let me know where they were)
2. Try it on the standard client (if you were using mirror)
Sounds like a bug with the continuation method; perhaps the dialogues are different on tutorial island
try something like this instead
List<RS2Widget> diag = getWidgets().containingText("Click here to continue");
if(!diag.isEmpty()) {
diag.get(0).interact();
}
Monster index is different every time it respawns. It indicates the index that this monster has in the world.
The index is useful for tracking specific NPCs if they're unloaded/reloaded.
I think what you're looking for is getId and not getIndex.
Make your own custom script executor that calls onStart, onLoop, onExit etc. on instances of your scripts;. and redirects the onPaint, onMessage etc. events to the currently executing script?
What do you mean by null checking when changing context?
Widgets#interact does have built in null & action check; that's the whole purpose of it being there. Aren't you confusing the Widgets API class with the RS2Widget Interactable class?