Just want to point out:
If it solves randoms, it is a bot and you can get banned while using it. Regardless of whether the client handles the randoms of if your script does. If a random is automatically solved, it is botting.
Also, I don't want to rain on your parade or anything, but your hit prediction is just getting the xp (you get the xp before the damage pops up) and dividing it by 4 or whatever the xp/damage is. It's really not predicting anything. Just kinda false advertising is all, on both points. >.>
Edit: The rest of this looks pretty legit though, nice work.