This is something i was developing around 5/15/2020 and due to misc reasons I have stopped working on it. This app is not complete, though the sandcrab portion was fairly stable for me during testing but I don't recommend using it as its been 3 months since I've done any testing.
Feel free to use any portion of this code, again I don't recommend using this entire bot, though I was never banned from any of it.
This works in fixed mode small clients, low detail, camera overhead.
for agro resetting, it will always run to which ever direction is at the top of the minimap, traditionally this is north but you can spin the camera so that west is in the northern position, the bot will run in that direction how ever many times you set it to, then return clicking in the bottom of the minimap which is traditionally south...or east in the example above.
Feel free to use any portion of this code, again I don't recommend using this entire bot, though I was never banned from any of it.
This works in fixed mode small clients, low detail, camera overhead.
for agro resetting, it will always run to which ever direction is at the top of the minimap, traditionally this is north but you can spin the camera so that west is in the northern position, the bot will run in that direction how ever many times you set it to, then return clicking in the bottom of the minimap which is traditionally south...or east in the example above.
Code:
IfNotExist, C:\Users\%A_UserName%\AppData\Local\MultiBot\
{
FileCreateDir, C:\Users\%A_UserName%\AppData\Local\MultiBot\
}
IfNotExist, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Fishing\
{
FileCreateDir, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Fishing\
}
IfNotExist, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Misc\
{
FileCreateDir, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Misc\
}
FileInstall, C:\Users\Jared\Documents\Shrimp.PNG, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Fishing\Shrimp.PNG, 1
FileInstall, C:\Users\Jared\Documents\Salmon.PNG, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Fishing\Salmon.PNG, 1
FileInstall, C:\Users\Jared\Documents\cageharpoon.PNG, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Fishing\cageharpoon.PNG, 1
FileInstall, C:\Users\Jared\Documents\HarpoonFishingSpot.PNG, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Fishing\HarpoonFishingSpot.PNG, 1
FileInstall, C:\Users\Jared\Documents\congrats.png, C:\Users\%A_UserName%\AppData\Local\MultiBot\Skilling\Misc\congrats.png, 1
SetBatchLines, -1
Gui, Tab, 1
Gui, Add, Tab2, x2 y-1 w480 h380 , Sand Crab | Bandit's | Fishing ; done
Gui, Add, CheckBox, x22 y59 w120 h20 vareyoueating gareyoueatingthough, Eat? ; done
Gui, Add, ListBox, x362 y49 w60 h70 vlistfoodcolor, ; done
Gui, Add, Button, x362 y29 w100 h20 vsetcolors gsetfoodcolor, Set Food Colors ; add clear hotkey/button
Gui, Add, GroupBox, x12 y39 w210 h130 , Food ; done
Gui, Add, Radio, x42 y89 w100 h20 veatoptionLogout , Logout if no food ; done
Gui, Add, Text, x42 y117 w190 h20 vfoodinv, Food Detected: No ;done
Gui, Add, CheckBox, x12 y179 w210 h20 vantban, Extra AntiBan ; done
Gui, Add, Button, x362 y329 w100 h30 gBeginSandCrab vbeginbuttonlabel, Start ; done
Gui, Add, GroupBox, x252 y119 w210 h200 , Metrics ; done
Gui, Add, Text, x262 y139 w190 h20 vstatus, Status:Duration ; done
Gui, Add, Text, x262 y169 w190 h20 vcbtstatus, Not in combat11 ;done
Gui, Add, Text, x262 y199 w190 h20 vhealth, Health: ;done
Gui, Add, Text, x262 y229 w190 h20 vprayer, Prayer: ;done
Gui, Add, Text, x262 y259 w190 h20 veatlabel, Eating OFF ;done
Gui, Add, Text, x262 y289 w200 h20 vantbanlabel, AntiBan Status: Idle ; in progress
Gui, Add, Edit, x12 y220 w20 h15 vrunclicks , 3
Gui, Add, Text, x40 y220 w190 h40 , How many clicks on the minimap / running to reset agro.
Gui, Tab, 2
Gui, Add, CheckBox, x22 y59 w120 h20 vBanditEating, Eat? ; done
Gui, Add, ListBox, x362 y49 w60 h70 vBanditlistfoodcolor, ; done
Gui, Add, Button, x362 y29 w100 h20 vBanditsetcolors, Set Food Colors ; add clear hotkey/button
Gui, Add, GroupBox, x12 y39 w210 h130 , Food ; done
Gui, Add, Radio, x42 y89 w100 h20 vBanditeatoptionLogout , Logout if no food ; done
Gui, Add, Text, x42 y117 w190 h20 vBanditfoodinv, Food Detected: No ;done
Gui, Add, CheckBox, x12 y179 w210 h20 vBanditantban, Extra AntiBan ; done
Gui, Add, Button, x362 y329 w100 h30 gBeginBandit vBanditbeginbuttonlabel, Start ; done
Gui, Add, GroupBox, x252 y119 w210 h200 , Metrics ; done
Gui, Add, Text, x262 y139 w190 h20 vBanditstatus, Status:Duration ; done
Gui, Add, Text, x262 y169 w190 h20 vBanditcbtstatus, Not in combat ;done
Gui, Add, Text, x262 y199 w190 h20 vBandithealth, Health: ;done
Gui, Add, Text, x262 y229 w190 h20 vBanditprayer, Prayer: ;done
Gui, Add, Text, x262 y259 w190 h20 vBanditeatlabel, Eating OFF ;done
Gui, Add, Text, x262 y289 w200 h20 vBanditantbanlabel, AntiBan Status: Idle ; in progress
Gui, Tab, 3
Gui, Add, GroupBox, x12 y39 w210 h230 , Type of Fishing
Gui, Add, Radio, x32 y69 w120 h20 gfishradio vsn, Small Net
Gui, Add, Radio, x32 y99 w120 h30 gfishradio vbf, Bait Fishing
Gui, Add, Radio, x32 y129 w120 h30 gfishradio vff, Fly Fishing
Gui, Add, Radio, x32 y159 w120 h30 gfishradio vhp1, Tuna / Sword Fish
Gui, Add, Radio, x32 y189 w120 h30 gfishradio vca, Cage
;Gui, Add, Radio, x32 y219 w120 h30 gfishradio , placeholder
Gui, Add, Button, x362 y329 w90 h30 gBeginFishing, Begin
; Generated using SmartGUI Creator for SciTE
Gui, Show, w479 h379, JaCoBot
WinGetPos, RSWINX1, RSWINY1, RSWINX2, RSWINY2, RuneLite
GuiControl,Disable, setcolors
GuiControl,Disable, eatandbank
GuiControl,Disable, eattilllog
global Fish=o rc=0
;Variables---------------------------------
;Combat Status---
cbtlocX1=16
cbtlocY1=72
cbtlocX2=19
cbtlocY2=85
CombatAliveColor=0x33860A
CbtLastAlive=
CbtDead=
;Health Check---
100hpx1=533
100hpy2=237
100hpx2=547
100hpy2=240
hpdiff=25
hpcolor=0x112584
;Prayer Check---
100px1=744
100py2=237
100px2=758
100py2=240
pdiff=25
pcolor=0x92952F
;Food List Array
ListofFood := []
foodlabelid=1
foodyco=49
InitStart=0
;SetTimer, RuneLiteStatus, 250 ;-fix this code
toggle := 0
return
#Include JaCoBotFunctions.ahk
#Include JaCoBotFishing.ahk
CombatRoutine:
Msgbox, The bot will begin when you click ok.
SetTitleMatchMode 2
WinActivate, RuneLite
InitStart:= A_TickCount
;CheckLocation()
WinGetPos, RSWINX1, RSWINY1, RSWINX2, RSWINY2, RuneLite
SetTimer, CombatStatus, 200
SetTimer, HealthStatus, 3000
SetTimer, PrayerStatus, 2000
SetTimer, FoodStatus, 300
SetTimer, AntiBan, 700
SetTimer, CheckLocation, 1200
GuiControl,, status, Status:Ready
sleep, 500
SetTimer, FoodStatus, Off
return
Rand(x,y) {
Random, rand, %x%, %y%
Return rand
}
BeginBandit:
return
BeginFishing:
SetTitleMatchMode 2
WinActivate, RuneLite
WinGetPos, RSWINX1, RSWINY1, RSWINX2, RSWINY2, RuneLite
gamescreenX:=Floor(RSWINX2-248)
gamescreenY:=Floor(RSWINY2-164)
GuiControlGet, fishradio
Msgbox, The bot will begin when you click ok.
SetTitleMatchMode 2
WinActivate, RuneLite
Loop,
{
;SetTimer, AntiBan, 700
SetTimer, Checkfornewlevel, 1000
SetTimer, CheckInv, 1000
setTimer, Checkifskillingactive, 1500
if(CheckInv() = 0)
{
DropFish()
}
if(Checkifskillingactive() = 1)
{
Checkfornewlevel()
CheckInv()
FindFishingSpot()
}
}
return
BeginSandCrab:
Gui, submit, NoHide
GuiControl,,beginbuttonlabel, Stop(F12)
GuiControlGet, foodlistcolor,, listfoodcolor
if (toggle := !toggle) {
goto, CombatRoutine
} else {
GuiControl,,beginbuttonlabel, Start
}
return
Isyoueating:
Gui, submit, NoHide
If (eatoptionLogout=1)
{
GuiControl,, eatlabel, Eating ON; Logging off When out
}
return
RuneLiteStatus:
ifWinActive, RuneLite
{
SetTimer, CombatStatus, 250
SetTimer, HealthStatus, 250
SetTimer, PrayerStatus, 250
GuiControl,, status, Status:Ready
}
ifWinNotActive, RuneLite
{
GuiControl,, status, Status:RuneLite Client not Active
SetTimer, CombatStatus, Off
SetTimer, HealthStatus, Off
SetTimer, PrayerStatus, Off
}
return
;Set food colors when eating.
setfoodcolor:
Msgbox, Please mouse over the food in your inventory and press F1 to save the color`n`nPLEASE SET 3 COLORS.`n`nIf you Mess up, press F2 to clear the list.
foodlabelid=1
foodyco=50
return
F1::
if(listoffood.MaxIndex() >= 3 )
{
Msgbox, Only 3 colors are supported at this time
return
}
MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%
sleep, 100
;GuiControl,, listfoodcolor,%color%
listoffood.push(color)
GuiControl,, listfoodcolor,%color%
stringmid, R, color ,3 , 2
stringmid, G, color,5,2
stringmid, B, color,7,2
Gui, Tab, 1
Gui, Add, Text, vfood%foodlabelid% x425 y%foodyco% c%B%%G%%R%, ||||||||||||||||||
foodyco:=foodyco+14
foodlabelid++
sleep, 200
return
F2::
reload
return
areyoueatingthough:
GuiControlGet, areyoueating
{
if (areyoueating=1)
{
GuiControl,Enable, setcolors
GuiControl,, eatlabel, Eating ON
GuiControl,Enable, eatandbank
GuiControl,Enable, eattilllog
GuiControl,,eatoptionLogout, 1
}
if (areyoueating=0)
{
GuiControl,Disable, setcolors
;GuiControl,Disable, eatandbank
GuiControl,Enable, eattilllog
GuiControl,, eatlabel, Eating OFF
;GuiControl,,eatoptionbank, 1
}
}
return
CombatStatus:
SetTitleMatchMode 2
WinActivate, RuneLite
cbtstart:=A_TickCount
If(cbtstart<=InitStart+4000)
{
;fileappend, loop combat status`n,*
Sleep, 500
}
GuiControlGet, Cbttext,, cbtstatus
newstatus=
fileappend, checking combat status`n,*
PixelSearch, Xcbtstatus, Ycbtstatus, %cbtlocX1%, %cbtlocY1%, %cbtlocX2%, %cbtlocY2%, 0x33860A, 1, Fast
if ErrorLevel
{
fileappend,negative on check`n,*
CbtDead:= A_TickCount
if (CbtDead <= CbtLastAlive+3000)
{
newstatus = Recently Dead Target.
}
if (CbtDead >= CbtLastAlive+3000)
{
newstatus = Not in combat22
}
if (CbtLastAlive = 0)
{
newstatus = Not in combat22
}
if (CbtDead >= CbtLastAlive+Rand(10000,15000))
{
CbtDead=0
CbtLastAlive=0
SetTimer, AntiBan, Off
ResetAgroMiniMap()
}
}
else
{
CbtLastAlive:= A_TickCount
FileAppend, %Xcbtstatus% %Ycbtstatus%a`n,*
;mousemove, %Xcbtstatus%, %Ycbtstatus%, 10
newstatus = Combat Detected.
}
GuiControl,, cbtstatus, %newstatus%
GuiControl,, status, Status:Fighting Sand Crabs
Return
HealthStatus: ; Check HP Status
newhpleveltocheck:= 100hpy2
GuiControlGet, hptext,, health
newstatushp:=hplvlnum
hplvlnum:=10
invx1=563
invy1=235
invx2=731
invy2=482
PixelSearch, Xcbtstatus, Ycbtstatus, %100hpx1%, %100hpy1%, %100hpx2%, %100hpy2%, %hpcolor%, 5, fast
if ErrorLevel
{
Loop, 10 {
newhpleveltocheck:= newhpleveltocheck+hpdiff
PixelSearch, Xhbstatus, Yhbstatus, %100hpx1%, %newhpleveltocheck%, %100hpx2%, newhpleveltocheck+3, %hpcolor%, 1, fast
if ErrorLevel
{
hplvlnum--
}
else
{
hplvlnum--
break
}
}
}
else
{
newstatushp = 100`%
}
GuiControlGet, hptext,, health
If (newstatushp != hplvlnum)
{
newhp:= hplvlnum*10
GuiControl,, health, %newhp%`%
}
GuiControlGet, areyoueating
if (areyoueating=1)
{
If(hplvlnum<7)
{
SetTimer, FoodStatus, 200
SetTimer, AntiBan, Off
Lookingfood :=true
GuiControl,, status, Status:Eating
for i, foods in listoffood
{
While Lookingfood
{
PixelSearch, XFoodcolor, YFoodcolor, %Foodinvx1%, %Foodinvy1%, %Foodinvx2%, %Foodinvy2%, foods, 5, fast
if ErrorLevel
{
FileAppend Out of food`n,*
}
else
{
;msgbox, found color %i% at %Xc% and %Yc%
FileAppend found food %foods% at %XFoodcolor% and %YFoodcolor%`n, *
RandomBezier(0, 0, XFoodcolor, YFoodcolor+10, "T600 RO" )
sleep, Rand(70,110)
MouseClick Left
Lookingfood :=False
sleep, Rand(2700,3500)
SetTimer, FoodStatus, Off
SetTimer, AntiBan, 200
goto, HealthStatus
}
}
}
}
}
return
PrayerStatus: ; Check Prayer Status
newpleveltocheck:= 100py2
GuiControlGet, ptext,, prayer
newstatusp:=plvlnum
plvlnum:=10
PixelSearch, Xpstatus, Ypstatus, %100px1%, %100py1%, %100px2%, %100py2%, %pcolor%, 5, fast
if ErrorLevel
{
Loop, 10 {
newpleveltocheck:= newpleveltocheck+pdiff
PixelSearch, Xcbtstatus, Ycbtstatus, %100px1%, %newpleveltocheck%, %100px2%, newpleveltocheck+3, %pcolor%, 5, fast
if ErrorLevel
{
plvlnum--
}
else
{
plvlnum--
break
}
}
}
else
{
newstatusp = 100`%
}
GuiControlGet, ptext,, health
If (newstatusp != plvlnum)
{
newp:= plvlnum*10
GuiControl,, prayer, %newp%`%
}
return
FoodStatus: ; Check Inventory for food
Foodinvx1=567
Foodinvy1=242
Foodinvx2=725
Foodinvy2=481
GuiControlGet, foodtext,, vfoodinv
Lookingfood :=true
for i, foods in listoffood
{
WinActivate, RuneLite
;While Lookingfood
{
PixelSearch, XFoodcolor, YFoodcolor, %Foodinvx1%, %Foodinvy1%, %Foodinvx2%, %Foodinvy2%, foods, 5, fast
if ErrorLevel
{
GuiControlGet, areyoueating
if (areyoueating=1)
{
GuiControl,, foodinv, Food Detected: No! Logging!
Loop, 3
{
RandomBezier(0,0,southx1+Rand(10,40), southy1+Rand(2,31), "T600 RO")
sleep, Rand(50,175)
MouseClick, Left
sleep, Rand(4250,5100)
}
RandomBezier(0,0,635+Rand(5,20), 498+Rand(3,20), "T600 RO" )
sleep, Rand(100,3000)
MouseClick, Left
sleep, Rand(100,1300)
RandomBezier(0,0,596+Rand(10,50), 447+Rand(5,20), "T600 RO" )
sleep, Rand(100,3000)
MouseClick, Left
}
}
else
{
GuiControl,, foodinv, Food Detected: Yes
}
}
;sleep, 200
}
return
AntiBan:
Skillx1=569
Skilly1=197
Skillx2=20 ;589
Skilly2=20 ;220
Asdx1=555
Asdy1=235
Asdx2=52 ;607
Asdy2=88 ;323
cbttx1=539
cbtty1=204
cbttx2=12 ;551
cbtty2=17 ;221
Invx1=637
Invy1=200
Invx2=18 ;655
Invy2=23 ;223
setx1=670
sety1=501
setx2=16 ;686
sety2=14 ;515.
Foodinvx1=567
Foodinvy1=242
Foodinvx2=725
Foodinvy2=481
GuiControlGet, antban
if (antban=1)
{
Randomnum:=Rand(1,2000000)
;~ ;click skills tab /
if(Randomnum<1000)
{
SetTimer, FoodStatus, Off
FileAppend Random number %Randomnum% skill tab`n, *
GuiControl,,antbanlabel, Skills Tab
RandomBezier(0,0,Skillx1+Rand(1,20), Skilly1+Rand(1,25), "T600 RO" )
MouseClick, Left
sleep, Rand(2000,13000)
;return to inv screen
RandomBezier(0,0,637+Rand(3,18), 200+Rand(3,23), "T600 RO" )
MouseClick, Left
sleep, Rand(1000,2000)
RandomBezier(0,0,Foodinvx1+Rand(40,200), Foodinvy1+Rand(30,200), "T600 RO" )
;end return to inv screen
GuiControl,,antbanlabel, Idle, - Last task - Skills Tab
SetTimer, FoodStatus, 1000
sleep, 5000
}
;~ ;click skills tab / mouse over A S or D
if(Randomnum>1000) && (Randomnum<2000)
{
SetTimer, FoodStatus, Off
FileAppend Random number %Randomnum% skill tab asd`n, *
GuiControl,,antbanlabel, Skills Tab and skill
RandomBezier(0,0,Skillx1+Rand(1,Skillx2), Skilly1+Rand(1,Skilly2), "T600 RO" )
MouseClick, Left
sleep, Rand(800,1600)
RandomBezier(0,0,Asdx1+Rand(1,Asdx2), Asdy1+Rand(1,Asdy2), "T600 RO" )
sleep, Rand(1000,7000)
;return to inv screen
RandomBezier(0,0,637+Rand(3,18), 200+Rand(3,23), "T600 RO" )
MouseClick, Left
sleep, Rand(1000,2000)
RandomBezier(0,0,Foodinvx1+Rand(40,200), Foodinvy1+Rand(30,200), "T600 RO" )
;end return to inv screen
GuiControl,,antbanlabel, Idle - Last task - Skills tab & Skill
SetTimer, FoodStatus, 1000
}
;Click Cbt Style Tab
if(Randomnum>2000) && (Randomnum<2500)
{
SetTimer, FoodStatus, Off
FileAppend Random number %Randomnum% cbt tab`n, *
GuiControl,,antbanlabel, Combat Tab
RandomBezier(0,0,cbttx1+Rand(1,cbttx2), cbtty1+Rand(1,cbtty2), "T600 RO" )
MouseClick, Left
sleep, Rand(2000,13000)
;return to inv screen
RandomBezier(0,0,637+Rand(3,18), 200+Rand(3,23), "T600 RO" )
MouseClick, Left
sleep, Rand(1000,2000)
RandomBezier(0,0,Foodinvx1+Rand(40,200), Foodinvy1+Rand(30,200), "T600 RO" )
;end return to inv screen
GuiControl,,antbanlabel, Idle, - Last task - Combat Tab
SetTimer, FoodStatus, 1000
}
;Click settings Tab
if(Randomnum>2500) && (Randomnum<2800)
{
SetTimer, FoodStatus, Off
FileAppend Random number %Randomnum% set tab`n, *
GuiControl,,antbanlabel, Settings Tab
RandomBezier(0,0,setx1+Rand(1,setx2), sety1+Rand(1,sety2), "T600 RO" )
MouseClick, Left
sleep, Rand(2000,5000)
;return to inv screen
RandomBezier(0,0,637+Rand(3,18), 200+Rand(3,23), "T600 RO" )
MouseClick, Left
sleep, Rand(1000,2000)
RandomBezier(0,0,Foodinvx1+Rand(40,200), Foodinvy1+Rand(30,200), "T600 RO" )
;end return to inv screen
GuiControl,,antbanlabel, Idle, - Last task - Settings Tab
SetTimer, FoodStatus, 1000
}
;Right Click
if(Randomnum>3000) && (Randomnum<20000)
{
RandomBezier(0,0,70+Rand(10,400), 130+Rand(10,270), "T600 RO" )
FileAppend Random number %Randomnum% Right Click`n, *
GuiControl,,antbanlabel, Right Click
MouseGetPos, xpos, ypos
Mouseclick, Right
sleep, Rand(300,500)
RandomBezier(0,0,xpos-Rand(30,50), ypos-Rand(20,75), "T600 RO" )
GuiControl,,antbanlabel, Idle, - Last task - Right Click
}
;~ ;Click equipment Tab
if(Randomnum>11000) && (Randomnum<11500)
{
SetTimer, FoodStatus, Off
FileAppend Random number %Randomnum% set tab`n, *
GuiControl,,antbanlabel, Settings Tab
RandomBezier(0,0,669+Rand(1,20), 202+Rand(1,20), "T600 RO" )
MouseClick, Left
sleep, Rand(2000,7000)
;return to inv screen
RandomBezier(0,0,637+Rand(3,18), 200+Rand(3,23), "T600 RO" )
MouseClick, Left
sleep, Rand(1000,2000)
RandomBezier(0,0,Foodinvx1+Rand(40,200), Foodinvy1+Rand(30,200), "T600 RO" )
;end return to inv screen
GuiControl,,antbanlabel, Idle, - Last task - Equipment Tab
SetTimer, FoodStatus, 1000
}
}
return
GuiClose:
ExitApp
Last edited:

