Worked out a first prototype system for this.
Wrote a simple fisher around it for testing.
So instead of your "script's working" being the main process.
Now the "human behavior" is the main process.
If there's no human behavior occurring we allow the script to execute.
onLoop() {
* human behavior -> return
* no human behavior -> handle script process
A little example of some "human behaviors"
inb4 "this is not right and what the hell is that" -> this is nothing serious yet at this point, no need to cry
//Min time (s) | max time (s) | approx frequency / hour | Move mouse out of screen for this behavior
LOSE_FOCUS(1, 3, 100, OutOfScreen.SOMETIMES),
TOILET(60, 120, 0.35, OutOfScreen.SOMETIMES),
BIG_TOILET(200, 750, 0.125, OutOfScreen.SOMETIMES),
TEXTING(3, 20, 20, OutOfScreen.NEVER),
CALLING(25, 250, 0.1, OutOfScreen.SOMETIMES),
GRAB_A_DRINK(50, 200, 0.3, OutOfScreen.SOMETIMES),
GET_FOOD(150, 1000, 0.2, OutOfScreen.SOMETIMES),
FAP_FAP_FAP_FAP_FAP(200, 1000, 0.05, OutOfScreen.ALWAYS),
YELL_FIGHT_WITH_MOM(400, 1400, 0.01, OutOfScreen.NEVER),
BROWSING_WEBSITE(20, 75, 30, OutOfScreen.ALWAYS),
GET_LOST_IN_A_READ(60, 600, 0.5, OutOfScreen.ALWAYS),
SMOKING_OUTSIDE(200, 360, 0.5, OutOfScreen.SOMETIMES);
@moving mouse outside screen, i personally don't believe jagex even has a clue about it,
but It doesn't hurt and "makes it more human-like" for the state of mind;
So yeah, currently testing the system with fishing to get a good view on the system and find out
what to change/tweak & whatever...
Edit: I just encountered a nice example of something that a human would encounter but a bot usually does not:
Ive been standing here for a minute with a full inventory because "I" was at the toilet.