Ultimate Mining Script - Base Script by Jaseowns
Description: Updated 4/19/2024 to no longer pause for captcha - does show a helper to speed up mining by disabling the "Filter repeated system message" checkbox on Filters -> Text & Messages tab in razor though!
# Ultimate Mining Script by Jaseowns # UO Outlands - https://outlands.uorazorscripts.com/miner-bot # Requirements: #### # Walking has been removed. So Ive updated the script 7/10/2023. # I also removed the captcha check and replaced it with a helper message 4/19/2024 ################### # MAKE SURE FILTERS -> FILTER SYSTEM MESSAGES IS UNCHECKED ########### # ################### # Moving Ore <3 ##### # This script no longer users organizer agents. It will automatically # attempt to move your ore onto a near by pack horse. Once the pack horse # is full, it will move to the next horse. # ################### # Automatic Smelting ########### # If you stand near a player made forge, your ignots on the packy # will be automatically be smelted. # # You can turn on tryAndSmeltEvenIfNotNearPlayerMadeForge as 1 if you # want to attempt to smelt randomly checking for natural forges @setvar! tryAndSmeltEvenIfNotNearPlayerMadeForge 1 @setvar! cdTryAndSmeltEvenIfNotNearPlayerMadeForge 15000 @setvar! hideIngotsInRedPouch 1 @setvar! oreCountToMove 30 @setvar! cdAvoidForgeTimerStuck 15000 @setvar! minimumWaitForPing 200 @setvar! globalTimeout 650 if not varexist jasePacky @setvar! jasePacky 0 endif if not varexist hasAnyPacky @setvar! hasAnyPacky 0 endif @setvar! forgeFound 0 if not timerexists forgeCheckTimer settimer forgeCheckTimer cdAvoidForgeTimerStuck endif if tryAndSmeltEvenIfNotNearPlayerMadeForge = 1 and findtype "iron ore" backpack as jore if not timerexists tryAndSmeltEvenIfNotNearPlayerMadeForgeTimer settimer tryAndSmeltEvenIfNotNearPlayerMadeForgeTimer cdTryAndSmeltEvenIfNotNearPlayerMadeForge endif if timer tryAndSmeltEvenIfNotNearPlayerMadeForgeTimer >= cdTryAndSmeltEvenIfNotNearPlayerMadeForge overhead "Checking for a natural forge..." 88 dclick jore wait globalTimeout if insysmsg "You do not see any nearby forges" // do nothing else @setvar! forgeFound 1 endif settimer tryAndSmeltEvenIfNotNearPlayerMadeForgeTimer 0 endif endif if findtype "forge" ground -1 -1 2 or findtype 0x0FB1 ground -1 -1 2 or forgeFound = 1 overhead "Automatically Smelting..." 88 @clearignore while findtype 291|292 ground -1 -1 2 as smeltPacky if noto smeltPacky = "friend" getlabel smeltPacky testPacky if "[0/2000" in testPacky // do nothing else dclick smeltPacky wait globalTimeout settimer forgeCheckTimer 0 while findtype "iron ore" smeltPacky as jore dclick jore wait globalTimeout if timer forgeCheckTimer >= cdAvoidForgeTimerStuck break endif endwhile endif endif @ignore smeltPacky endwhile settimer forgeCheckTimer 0 while findtype "iron ore" backpack as jore dclick jore wait globalTimeout if timer forgeCheckTimer >= cdAvoidForgeTimerStuck break endif endwhile if hideIngotsInRedPouch = 1 and findtype "pouch" backpack 38 as jouch while findtype 7154 backpack as jingots if find jingots jouch // do nothing else lift jingots 60000 drop jouch -1 -1 -1 wait globalTimeout endif @ignore jingots endwhile endif @clearignore endif if not dead jasePacky @setvar! hasAnyPacky 1 getlabel jasePacky desc if "[2000/2000" in desc or "[1999/2000" in desc or "[1998/2000" in desc or "[1997/2000" in desc or "[1996/2000" in desc or "[1995/2000" in desc or "[1994/2000" in desc or "[1993/2000" in desc or "[1992/2000" in desc or "[1991/2000" in desc or "[1990/2000" in desc or "[1989/2000" in desc or "[1988/2000" in desc or "[1987/2000" in desc or "[1986/2000" in desc or "[1985/2000" in desc or "[1984/2000" in desc or "[1983/2000" in desc or "[1982/2000" in desc or "[1981/2000" in desc or "[1980/2000" in desc or "[1979/2000" in desc or "[1978/2000" in desc or "[1977/2000" in desc or "[1976/2000" in desc or "[1975/2000" in desc or "[1974/2000" in desc or "[1973/2000" in desc or "[1972/2000" in desc or "[1971/2000" in desc or "[1970/2000" in desc or "[1969/2000" in desc or "[1968/2000" in desc or "[1967/2000" in desc or "[1966/2000" in desc or "[1965/2000" in desc or "[1964/2000" in desc or "[1963/2000" in desc or "[1962/2000" in desc or "[1961/2000" in desc or "[1960/2000" in desc overhead "Our packy is full, ignoring this one and moving to next" 34 @ignore jasePacky @setvar! jasePacky 0 replay elseif counttype 6585 backpack >= oreCountToMove overhead "Moving ore" while findtype 6585 backpack as jore lift jore oreCountToMove drop jasePacky -1 -1 -1 wait globalTimeout endwhile endif elseif followers > 0 if findtype 291|292 ground -1 -1 10 as packy if noto packy = "friend" @setvar! jasePacky packy replay else @ignore packy replay endif elseif hasAnyPacky = 1 overhead "we have no more packies to load.. be sure to drop off!" 34 overhead "if you have already dropped off, clearignore" wait globalTimeout endif endif if not varexist jase_miner_runebook or not find jase_miner_runebook backpack if counttype "runebook" backpack = 1 and counttype "runetome" backpack = 0 and findtype "runebook" backpack as myBook overhead "Automatically selected your one runebook" 88 @setvar jase_miner_runebook myBook elseif counttype "runebook" backpack = 0 and counttype "runetome" backpack = 1 and findtype "runetome" backpack as myBook overhead "Automatically selected your one runetome" 88 @setvar jase_miner_runebook myBook elseif counttype 7956 backpack = 1 and findtype 7956 backpack as myBook overhead "Automatically selected your one rune" 88 @setvar jase_miner_runebook myBook elseif counttype "runebook" backpack > 0 or counttype 7956 backpack > 0 or counttype "runetome" backpack > 0 overhead "Select your escape plan (runebook or runetome)" 88 @setvar jase_miner_runebook endif endif if not listexists "jase_miner_actions" createlist "jase_miner_actions" endif if inlist "jase_miner_actions" "red_alert" overhead "Red Alert!" 34 poplist "jase_miner_actions" "red_alert" # You could also replace this magery bit with your ultimate recaller # Ultimate Recall using Tome or Book as Escape (ALT-M) # https://outlands.uorazorscripts.com/script/5b3fde97-fa90-4707-9f8e-7f56dca6792b # hotkey "Play Script: UltimaRecaller" if skill "Magery" >= 40 overhead 'Recalling...' while not targetexists if findtype 8012 backpack as item dclick item else cast "Recall" endif wait minimumWaitForPing if insysmsg "You do not have that spell!" overhead "We cannot recall!" 34 break endif endwhile target jase_miner_runebook elseif skill "Hiding" >= 40 useskill "Hiding" endif overhead "Stopping script..." 34 stop # replay endif if skill "Tracking" > 0 if not findbuff "tracking" clearsysmsg while not gumpexists 4267467659 useskill 'tracking' wait minimumWaitForPing endwhile if gumpexists 4267467659 while not insysmsg "You will now hunt all hostile players." gumpresponse 8 4267467659 waitforgump 4267467659 5000 endwhile gumpresponse 6 4267467659 wait minimumWaitForPing endif gumpclose 4267467659 endif endif clearsysmsg if rhandempty ?? 0 if findtype "pickaxe" backpack dclicktype 'pickaxe' backpack wait minimumWaitForPing endif endif if rhandempty ?? 0 overhead "No more pickaxe!" 34 wait minimumWaitForPing replay endif # Basic Heal to start bandage by Jaseowns # https://outlands.uorazorscripts.com/script/fd1c9331-fc25-4a89-8d75-3eba6a929247 if skill "Healing" > 0 if findtype "clean bandage%s%" backpack as aids if not bandaging and hp < maxhp dclick aids wft 500 hotkey 'Target Self' elseif not bandaging and poisoned dclick aids wft 500 hotkey 'Target Self' elseif not bandaging and findbuff "bleed" dclick aids wft 500 hotkey 'Target Self' elseif not bandaging and findbuff "disease" dclick aids wft 500 hotkey 'Target Self' endif else overhead "No bandages" 34 endif endif if diffweight <= 30 overhead "Too heavy... make sure to drop off ore (or find a pack horse)" 34 wait minimumWaitForPing replay endif overhead 'Mining' 0 hotkey 'Use item in hand' wait minimumWaitForPing for 25 wait 250 if insysmsg "now tracking" pushlist "jase_miner_actions" "red_alert" replay endif if insysmsg 'world is saving' for 30 overhead 'Waiting for world save...' wait 1000 if insysmsg 'save complete' overhead 'Save complete - continue on!' 88 replay elseif insysmsg "now tracking" pushlist "jase_miner_actions" "red_alert" replay endif endfor elseif rhandempty ?? 0 overhead "Broke pickaxe" 34 replay elseif insysmsg 'You do not see any' overhead 'Move to next spot' 88 wait minimumWaitForPing replay elseif insysmsg "harvesting is not allowed" overhead 'Move out of town...' 66 wait 1000 replay elseif insysmsg "travel" overhead 'Waiting for travel...' 77 wait 1000 replay else if insysmsg "any harvestable" // No Ore overhead 'Move to next spot' 88 replay elseif insysmsg "harvesting is not allowed" // Not allowed replay elseif insysmsg "world is saving" or insysmsg 'World save complete' // World Save replay elseif insysmsg "You loosen" // Failed replay elseif insysmsg "You dig" // Success replay elseif insysmsg "You must wait" // Wait message overhead 'You must wait..' 34 wait minimumWaitForPing replay endif endif endfor if insysmsg "You must wait" // Wait message overhead 'You must wait..' 34 wait minimumWaitForPing replay endif for 2 overhead 'The script thinks you are stuck.. to speed it up go to:' 34 overhead 'Razor: Filters Tab -> Text & Messages' 88 overhead 'Uncheck filter repeating system messages' 77 sysmsg 'The script thinks you are stuck.. to speed it up go to:' 34 sysmsg 'Razor: Filters Tab -> Text & Messages ' 88 sysmsg 'Uncheck filter repeating system messages' 77 wait 5000 if insysmsg 'Captcha successful' overhead 'Success - continue on!' 88 wait 1000 replay endif endfor replay