SUPER ID-Recycler-while-farming by dennozz
Description: Recycle all your magical armor and weapons while farming. Keep only those items you wish to save and recycle all the rest. Automatically eat arcane essences if activated and more!
#SUPER ID-Recycler-while-farming ver.2.00 #Made by @dennozz on discord. #Inspired/learned by other scrips in https://outlands.uorazorscripts.com/ #This is a recycling while farming script! #It will recycle any item identified or unidentified that is not in your Magical Items List. #You will need sewing kit, regular/container ID wand or 80 > in ID Skill #Optional The script will look for a bag (rounded one) and will move all good items and recycled materials to the bag #--- Auto eat arcane essences ---# # 0 - disabled # 1 - enabled @setvar! eatArcaneEssence 1 #--- Move materials and good items into rounded bag ---# # 0 - disabled # 1 - enable (need to have a rounded bag in backpack) @setvar! materialsIntoBag 1 removelist "MagicalItems" createlist "MagicalItems" # ** Add or remove magical items you want to keep to the list ** # ** Copy & Paste one line and add description of the item you are looking for ** #********** ADD YOUR MAGICAL ITEMS YOU WANT TO SAVE ********** pushlist "MagicalItems" "slaying" pushlist "MagicalItems" "indestructible" pushlist "MagicalItems" "invulnerability" pushlist "MagicalItems" "supremely" pushlist "MagicalItems" "vanquishing" pushlist "MagicalItems" "fortified" pushlist "MagicalItems" "fortification" pushlist "MagicalItems" "exceedingly" pushlist "MagicalItems" "power" pushlist "MagicalItems" "eminently potent might" pushlist "MagicalItems" "eminently potent force" pushlist "MagicalItems" "surpassingly potent might" pushlist "MagicalItems" "surpassingly potent force" #-- Set your wait times depending on your ping @setvar! maxwaittimeinms 700 @setvar! itemusewaittimeinms 200 #********** DO NOT EDIT FROM HERE ********** if not findtype 3997 backpack overhead "Sewing kit NOT found" 34 stop endif removetimer testTimer createtimer testTimer settimer testTimer 0 setvar! deleteAllLists 0 if deleteAllLists = 1 removelist identified_items removelist display_goods removelist recycled_items removelist good_items removelist bad_items overhead "All lists cleared" 65 stop endif setvar! craftingToolGumpID 949095101 removelist display_goods createlist display_goods removelist loot_items createlist loot_items clearsysmsg overhead "Beginning Item Recycle:" 65 #********** SCAN ALL ARMOR ********** sysmsg "Scanning All Armor..." 11 #Armor - all serials: while findtype 5056|5059|5060|5061|5063|5070|5074|5075|5076|5078|5085|5089|5090|5101|5103|5105|5106|5129|5131|5132|5135|5138|5139|5142|5143|5144|5146|5201|5203|5204|5205|5207|7169|7170|7173|7175|7177|7179|7181|7610|7947|31003|31004|31005|31006|31007|31008|31009|31010|31011|31012|31015|31191 backpack as itemzy getlabel itemzy itemDesc if "aspect" in itemDesc or "exceptional" in itemDesc #sysmsg "item not added : {{itemDesc}}" 44 else pushlist loot_items itemzy endif @ignore itemzy endwhile #********** SCAN ALL ARCANES, STAFF, SPELLBOOKS ********** sysmsg "Scanning Arcane Staffs, Spellbooks..." 11 #Arcane Staffs, Spellbook - all serials: while findtype 31017|31019|31021|31023|31025|31027|31029|31031|31033|31035|31037|31038|31041|31043|31045|31047|31049|31051|31053|31055|3834 backpack as itemzy getlabel itemzy itemDesc if "aspect" in itemDesc or "exceptional" in itemDesc #sysmsg "item not added : {{itemDesc}}" 44 else pushlist loot_items itemzy endif @ignore itemzy endwhile #********** SCAN ALL SHIELDS & INSTRUMENTS ********** sysmsg "Scanning Shields & Instruments..." 11 #Instruments, Shields - all serials: while findtype 3740|3742|3762|3763|10245|20006|20008|20010|20012|20014|20016|7026|7027|7029|7031|7033|7034|7035|7107|7109|31002|31130 backpack as itemzy getlabel itemzy itemDesc if "aspect" in itemDesc or "exceptional" in itemDesc #sysmsg "item not added : {{itemDesc}}" 44 else pushlist loot_items itemzy endif @ignore itemzy endwhile #********** SCAN ALL MELEE WEAPONS ********** sysmsg "Scanning Dexxers Weapons..." 11 #Archery, Fencing, Mace Fighting, Swordsmanship, Wrestling - all serials: while findtype 3920|5042|5117|30990|30993|30994|30995|31184|31186|3719|3922|3938|5121|5123|5125|30989|30992|30996|30997|30998|31176|31188|3568|3713|3721|3932|5040|5044|5112|5127|5177|5179|5181|30991|30999|31000|31001|31014|31178|31180|31182|3909|3911|3913|3915|3917|3934|3937|5046|5049|5115|5119|5182|5185|5187|30988|31128|31190|22187|31141|31142|31169|31172 backpack as itemzy getlabel itemzy itemDesc if "aspect" in itemDesc or "exceptional" in itemDesc #sysmsg "item not added : {{itemDesc}}" 44 else pushlist loot_items itemzy endif @ignore itemzy endwhile clearignore #********** START IDENTIFYING ITEMS ********** sysmsg "Identiying all items..." 11 removelist identified_items createlist identified_items foreach loot in loot_items if targetexists hotkey 'cancel current target' endif getlabel loot lootLabel if skill 'item identification' = 120 or findtype 20495 backpack pushlist identified_items loot elseif skill 'item identification' >= 80 if "unidentified" in lootLabel while "unidentified" in lootLabel if index != 0 poplist identified_items loot endif overhead "Slowly identifying with skill..." 10 wait 1200 skill 'itemidentification' waitfortarget maxwaittimeinms while not targetexists skill 'itemidentification' waitfortarget maxwaittimeinms endwhile target loot pushlist identified_items loot getlabel loot lootLabel endwhile else pushlist identified_items loot endif elseif findtype 20496 backpack as wandy if "unidentified" in lootLabel getlabel wandy wandDesc if "(10 uses" in wandDesc overhead "ID wand 10 uses left!!" 34 elseif "(5 uses" in wandDesc overhead "ID wand 5 uses left!!" 34 elseif "(1 uses" in wandDesc overhead "ID wand 1 use left!!" 34 endif dclicktype 20496 backpack waitfortarget itemusewaittimeinms while not targetexists and findtype 20496 backpack dclicktype 20496 backpack waitfortarget itemusewaittimeinms endwhile if targetexists target loot pushlist identified_items loot endif else pushlist identified_items loot endif else overhead "Wand ID not found" 34 break endif endfor #********** IF FOUND USE 120 ITEM ID OR CONTAINER WAND ID ********** if list loot_items > 0 if skill 'item identification' = 120 overhead "ID with 120 skill" wait maxwaittimeinms skill 'itemidentification' waitfortarget maxwaittimeinms while not targetexists skill 'itemidentification' waitfortarget maxwaittimeinms endwhile target backpack wait maxwaittimeinms elseif findtype 20495 backpack overhead "ID with container WAND" wait maxwaittimeinms dclicktype 20495 backpack waitfortarget maxwaittimeinms while not targetexists dclicktype 20495 backpack waitfortarget maxwaittimeinms endwhile target backpack wait maxwaittimeinms endif endif #********** SEPARATE GOOD ITEMS AND BAD ITEMS ********** sysmsg "Sorting good/bad items" 11 removelist good_items createlist good_items removelist bad_items createlist bad_items @setvar! alertCD 800 settimer alertTimer alertCD foreach i in identified_items if timer alertTimer > alertCD settimer alertTimer 0 overhead "sorting items.." 44 endif if i != 'x' @setvar! found 0 getlabel i itemDesc foreach keepDesc in "MagicalItems" if keepDesc in itemDesc @setvar! found 1 endif endfor if 0 = found pushlist bad_items i else pushlist good_items i pushlist display_goods itemDesc endif poplist identified_items i pushlist identified_items 'x' front endif endfor removelist identified_items #********** RECYCLE BAD ITEMS ********** sysmsg "Opening sewing kit..." 11 if not listexists recycled_items createlist recycled_items endif dclicktype 3997 backpack waitforgump craftingToolGumpID maxwaittimeinms clearsysmsg while not gumpexists craftingToolGumpID sysmsg "Opening sewing kit..." 11 dclicktype 3997 backpack waitforgump craftingToolGumpID maxwaittimeinms endwhile foreach b in bad_items if find b backpack getlabel b badLabel if targetexists hotkey 'cancel current target' endif @setvar! itemError 0 gumpresponse 3 craftingToolGumpID waitfortarget maxwaittimeinms target b wait 50 while not ingump "you recycle" 949095101 and 0 = itemError if index = 50 @setvar! itemError 1 sysmsg "Error, item skipped" 34 while not gumpexists craftingToolGumpID sysmsg "Opening sewing kit..." 11 dclicktype 3997 backpack waitforgump craftingToolGumpID maxwaittimeinms endwhile endif if insysmsg "that is too far" @setvar! itemError 1 endif if ingump "That cannot be recycled" 949095101 getlabel b notLabel sysmsg "Not recycled : {{notLabel}}" 34 @setvar! itemError 1 endif endwhile if itemError = 0 pushlist recycled_items badLabel endif endif endfor removelist bad_items if targetexists hotkey 'cancel current target' endif gumpclose craftingToolGumpID #********** MOVE GOOD ITEMS TO BAG ********** if 1 = materialsIntoBag and not findtype 3702 backpack sysmsg "No bag found to move good items!" 34 else sysmsg "Moving good items if any..." 11 if weight > maxweight sysmsg "overweight! moving items cancelled" 44 else foreach g in good_items if g != 'x' if findtype 3702 backpack as myBaggy while not find g myBaggy lift g 1 drop myBaggy -1 -1 0 wait maxwaittimeinms endwhile poplist good_items g pushlist good_items 'x' front sysmsg "Item saved." 55 endif endif endfor endif endif removelist good_items #********** MOVE RECYCLED MATERIALS TO BAG ********** sysmsg "Moving materiasl to bag..." 11 if weight > maxweight sysmsg "cancelled overweight" 44 else if findtype "bag" backpack as baggyz and materialsIntoBag = 1 while findtype 'cut up leather' backpack any any 1 as leather sysmsg "moving leathers..." 6 lift leather 1000 drop baggyz -1 -1 0 wait maxwaittimeinms endwhile while findtype 'board%s' backpack any any 1 as board sysmsg "moving boards..." 6 lift board 1000 drop baggyz -1 -1 0 wait maxwaittimeinms endwhile while findtype 'iron ingot%s' backpack any any 1 as iron sysmsg "moving ingots..." 6 lift iron 1000 drop baggyz -1 -1 0 wait maxwaittimeinms endwhile while findtype 'blank scroll%s%' backpack any any 1 as blankz sysmsg "moving scrolls..." 6 lift blankz 1000 drop baggyz -1 -1 0 wait maxwaittimeinms endwhile if eatArcaneEssence = 0 while findtype 12686 backpack any any 1 as arcanyz sysmsg "moving arcanes..." 6 lift arcanyz 1000 drop baggyz -1 -1 0 wait maxwaittimeinms endwhile endif endif endif #********** DISPLAY ALL GOOD AND BAD ITEMS PROCCESED ********** if list display_goods = 0 sysmsg "0 Good items" 55 else foreach dg in display_goods sysmsg dg 55 endfor endif removelist display_goods if list recycled_items = 0 sysmsg "0 recycled items" 33 else foreach dr in recycled_items sysmsg dr 33 endfor endif removelist recycled_items hotkey 'cancel current target' gumpclose craftingToolGumpID #********** EAT ARCANE ESSENCES ********** if eatArcaneEssence = 1 wait itemusewaittimeinms if findtype 12686 backpack sysmsg "Eating arcane.." 11 dclicktype 12686 backpack waitfortarget maxwaittimeinms while not targetexists sysmsg "Trying to eat arcane.." 11 dclicktype 12686 backpack waitfortarget maxwaittimeinms endwhile waitfortarget maxwaittimeinms target 'self' endif endif overhead "Recycle Finished!" 65 sysmsg "Time Elapse in miliseconds : {{testTimer}}" 65