Back to "ammo" tags

Auto Splitter by abianche

Created: 02/08/2026
Last Updated: about 11 hours ago
# Auto Splitter – Reagents, Potions, Ammo & Misc (Outlands) #********** INFORMATION **********# # Made by @abianche on discord (Artemis). # Inspired by @dennozz12 auto splitter script. # Automatically splits stackable items into multiple smaller stacks # and distributes them into chosen containers (anti-theft). # Supported: # - Reagents + Recall Scrolls # - Potions # - Bandages, Vet Supplies, Rope # - Arrows + Bolts #********** SETTINGS **********# # Auto select bags follows this order: satchel > pouch > backpack bag > rounded bag > main backpack # 0 - let you pick the reagents bag # 1 - auto select @setvar! autoSelectRegBag 1 # 0 - let you pick the potions bag # 1 - auto select @setvar! autoSelectPotionBag 1 # 0 - let you pick the misc bag # 1 - auto select @setvar! autoSelectMiscBag 1 # 0 - let you pick the quiver bag # 1 - auto select: quiver if found, otherwise fallback to misc bag @setvar! autoSelectQuiverBag 1 #********** DO NOT EDIT FROM HERE **********# clearignore @setvar! amount 0 @setvar! myRegBag 0 @setvar! myPotionBag 0 @setvar! myMiscBag 0 @setvar! myQuiverBag 0 @setvar! maxwaittimeinms 650 #********** Bags **********# if autoSelectRegBag = 1 if findtype 30765 self as b @setvar! myRegBag b elseif findtype 3705 self as b @setvar! myRegBag b elseif findtype 3701 self as b @setvar! myRegBag b elseif findtype 3702 self as b @setvar! myRegBag b else @setvar! myRegBag backpack endif else clearsysmsg overhead "Select bag:" 68 @setvar! myRegBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myRegBag endwhile if find myRegBag self getlabel myRegBag bagLabel if "wizard's satchel" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel sysmsg "new bag set" 55 else @setvar! myRegBag 0 overhead "That is not a bag" 34 sysmsg "That is not a bag" 34 stop endif else overhead "No bag found!" 34 stop endif endif if autoSelectPotionBag = 1 if findtype 31262 self as b @setvar! myPotionBag b elseif findtype 3705 self as b @setvar! myPotionBag b elseif findtype 3701 self as b @setvar! myPotionBag b elseif findtype 3702 self as b @setvar! myPotionBag b else @setvar! myPotionBag backpack endif else clearsysmsg overhead "Select Potion bag:" 68 @setvar! myPotionBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myPotionBag endwhile if find myPotionBag self getlabel myPotionBag bagLabel if "alchemists satchel" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel sysmsg "new bag set" 55 else @setvar! myPotionBag 0 overhead "That is not a bag" 34 sysmsg "That is not a bag" 34 stop endif else overhead "No bag found!" 34 stop endif endif if autoSelectMiscBag = 1 if findtype 3705 self as b @setvar! myMiscBag b elseif findtype 3701 self as b @setvar! myMiscBag b elseif findtype 3702 self as b @setvar! myMiscBag b else @setvar! myMiscBag backpack endif else clearsysmsg overhead "Select Misc bag:" 68 @setvar! myMiscBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myMiscBag endwhile if find myMiscBag self getlabel myMiscBag bagLabel if "wizard's satchel" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel sysmsg "new bag set" 55 else @setvar! myMiscBag 0 overhead "That is not a bag" 34 sysmsg "That is not a bag" 34 stop endif else overhead "No bag found!" 34 stop endif endif # fallback to misc for quiver @setvar! myQuiverBag myMiscBag if autoSelectQuiverBag = 1 # Auto: prefer actual quiver if found, else fallback to misc bag if findtype 12215 self as q @setvar! myQuiverBag q endif else clearsysmsg overhead "Select Quiver bag:" 68 @setvar! myQuiverBag wait 200 while not targetexists and not insysmsg "Select" @setvar! myQuiverBag endwhile if find myQuiverBag self getlabel myQuiverBag bagLabel # allow quiver OR any normal container if "quiver" in bagLabel or "pouch" in bagLabel or "bag" in bagLabel or "backpack" in bagLabel or "satchel" in bagLabel sysmsg "new quiver bag set" 55 else @setvar! myQuiverBag 0 overhead "That is not a quiver" 34 sysmsg "That is not a quiver" 34 stop endif else overhead "No bag found!" 34 stop endif endif overhead "Auto Spitter started..." 55 #***** Reagents + Recall ***** if not listexists 'reg_ids' createlist 'reg_ids' endif if not listexists 'reg_drop_y' createlist 'reg_drop_y' endif if not listexists 'reg_amt_profile' createlist 'reg_amt_profile' endif clearlist 'reg_ids' clearlist 'reg_drop_y' clearlist 'reg_amt_profile' # SPIDER SILK pushlist 'reg_ids' 3981 back pushlist 'reg_drop_y' 65 back pushlist 'reg_amt_profile' 1 back # BLACK PEARL pushlist 'reg_ids' 3962 back pushlist 'reg_drop_y' 75 back pushlist 'reg_amt_profile' 1 back # NIGHTSHADE pushlist 'reg_ids' 3976 back pushlist 'reg_drop_y' 85 back pushlist 'reg_amt_profile' 1 back # MANDRAKE ROOT pushlist 'reg_ids' 3974 back pushlist 'reg_drop_y' 95 back pushlist 'reg_amt_profile' 1 back # SULFUROUS ASH pushlist 'reg_ids' 3980 back pushlist 'reg_drop_y' 105 back pushlist 'reg_amt_profile' 1 back # GINSENG pushlist 'reg_ids' 3973 back pushlist 'reg_drop_y' 115 back pushlist 'reg_amt_profile' 1 back # BLOSSMOSS pushlist 'reg_ids' 3963 back pushlist 'reg_drop_y' 125 back pushlist 'reg_amt_profile' 1 back # GARLIC pushlist 'reg_ids' 3972 back pushlist 'reg_drop_y' 135 back pushlist 'reg_amt_profile' 1 back # RECALL SCROLL pushlist 'reg_ids' 8012 back pushlist 'reg_drop_y' 145 back pushlist 'reg_amt_profile' 2 back for 9 if atlist 'reg_ids' index as regIdTmp @setvar! regID regIdTmp else overhead "Reg list error (ids)" 34 stop endif if atlist 'reg_drop_y' index as regYTmp @setvar! dropY regYTmp else overhead "Reg list error (dropY)" 34 stop endif if atlist 'reg_amt_profile' index as profTmp @setvar! amtProfile profTmp else overhead "Reg list error (profile)" 34 stop endif @setvar! myCounter 0 while findtype regID self as r @setvar! myCounter index @ignore r endwhile @clearignore if amtProfile = 2 # Recall scroll profile if counttype regID self <= 5 @setvar! amount 1 elseif counttype regID self <= 10 @setvar! amount 2 elseif counttype regID self <= 20 @setvar! amount 4 elseif counttype regID self <= 40 @setvar! amount 8 else @setvar! amount 15 endif else # Standard reagent profile if counttype regID self <= 10 @setvar! amount 2 elseif counttype regID self <= 20 @setvar! amount 4 elseif counttype regID self <= 50 @setvar! amount 10 elseif counttype regID self <= 100 @setvar! amount 20 elseif counttype regID self <= 150 @setvar! amount 30 elseif counttype regID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif endif while findtype regID self as regs @setvar! moveRegs 0 if myCounter = 0 @setvar! moveRegs 1 elseif myCounter != 0 and not find regs myRegBag @setvar! moveRegs 1 endif if moveRegs = 1 if regID = 3981 overhead "splitting spider's silks..." 0 elseif regID = 3962 overhead "splitting black pearls..." 11 elseif regID = 3976 overhead "splitting nightshades..." 66 elseif regID = 3974 overhead "splitting mandrake roots..." 439 elseif regID = 3980 overhead "splitting sulfurous ashes..." 56 elseif regID = 3973 overhead "splitting ginsengs..." 149 elseif regID = 3963 overhead "splitting bloodmosses..." 35 elseif regID = 3972 overhead "splitting garlics..." 910 elseif regID = 8012 overhead "splitting recall scrolls..." 0 else overhead "splitting regs..." 55 endif if index = 0 lift regs amount drop myRegBag 44 dropY 0 elseif index = 1 lift regs amount drop myRegBag 68 dropY 0 elseif index = 2 lift regs amount drop myRegBag 96 dropY 0 elseif index = 3 lift regs amount drop myRegBag 121 dropY 0 else lift regs amount drop myRegBag 142 dropY 0 endif endif @ignore regs if moveRegs = 1 wait maxwaittimeinms endif endwhile endfor #***** Potions ***** if not listexists 'potion_ids' createlist 'potion_ids' endif if not listexists 'potion_overhead_hues' createlist 'potion_overhead_hues' endif if not listexists 'potion_drop_y' createlist 'potion_drop_y' endif if not listexists 'potion_amt_profile' createlist 'potion_amt_profile' endif clearlist 'potion_ids' clearlist 'potion_overhead_hues' clearlist 'potion_drop_y' clearlist 'potion_amt_profile' # Greater Heal pushlist 'potion_ids' 3852 back pushlist 'potion_overhead_hues' 48 back pushlist 'potion_drop_y' 65 back pushlist 'potion_amt_profile' 1 back # Greater Cure pushlist 'potion_ids' 3847 back pushlist 'potion_overhead_hues' 44 back pushlist 'potion_drop_y' 75 back pushlist 'potion_amt_profile' 1 back # Greater Agility pushlist 'potion_ids' 3848 back pushlist 'potion_overhead_hues' 93 back pushlist 'potion_drop_y' 85 back pushlist 'potion_amt_profile' 2 back # Total Refresh pushlist 'potion_ids' 3851 back pushlist 'potion_overhead_hues' 38 back pushlist 'potion_drop_y' 95 back pushlist 'potion_amt_profile' 1 back # Greater Magic Resist pushlist 'potion_ids' 3846 back pushlist 'potion_overhead_hues' 897 back pushlist 'potion_drop_y' 105 back pushlist 'potion_amt_profile' 3 back # Greater Strength pushlist 'potion_ids' 3849 back pushlist 'potion_overhead_hues' 2041 back pushlist 'potion_drop_y' 115 back pushlist 'potion_amt_profile' 1 back # Greater Explode pushlist 'potion_ids' 3853 back pushlist 'potion_overhead_hues' 1275 back pushlist 'potion_drop_y' 125 back pushlist 'potion_amt_profile' 1 back # Lethal Poison pushlist 'potion_ids' 3850 back pushlist 'potion_overhead_hues' 1267 back pushlist 'potion_drop_y' 135 back pushlist 'potion_amt_profile' 1 back for 8 if atlist 'potion_ids' index as potIdTmp @setvar! potionID potIdTmp else overhead "Potion list error (ids)" 34 stop endif if atlist 'potion_overhead_hues' index as potHueTmp @setvar! potionHue potHueTmp else overhead "Potion list error (hues)" 34 stop endif if atlist 'potion_drop_y' index as potYTmp @setvar! dropY potYTmp else overhead "Potion list error (dropY)" 34 stop endif if atlist 'potion_amt_profile' index as profTmp @setvar! amtProfile profTmp else overhead "Potion list error (profile)" 34 stop endif @setvar! myCounter 0 while findtype potionID self as r @setvar! myCounter index @ignore r endwhile @clearignore if amtProfile = 2 # Greater Agility profile if counttype potionID self <= 10 @setvar! amount 1 elseif counttype potionID self <= 20 @setvar! amount 2 elseif counttype potionID self <= 50 @setvar! amount 4 elseif counttype potionID self <= 100 @setvar! amount 10 elseif counttype potionID self <= 150 @setvar! amount 20 elseif counttype potionID self <= 200 @setvar! amount 30 else @setvar! amount 40 endif elseif amtProfile = 3 # Greater Magic Resist profile if counttype potionID self <= 10 @setvar! amount 1 elseif counttype potionID self <= 20 @setvar! amount 2 elseif counttype potionID self <= 50 @setvar! amount 5 elseif counttype potionID self <= 100 @setvar! amount 10 elseif counttype potionID self <= 150 @setvar! amount 20 elseif counttype potionID self <= 200 @setvar! amount 30 else @setvar! amount 40 endif else # Standard profile if counttype potionID self <= 10 @setvar! amount 2 elseif counttype potionID self <= 20 @setvar! amount 4 elseif counttype potionID self <= 50 @setvar! amount 10 elseif counttype potionID self <= 100 @setvar! amount 20 elseif counttype potionID self <= 150 @setvar! amount 30 elseif counttype potionID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif endif while findtype potionID self as pots @setvar! movePots 0 if myCounter = 0 @setvar! movePots 1 elseif myCounter != 0 and not find pots myPotionBag @setvar! movePots 1 endif if movePots = 1 if potionID = 3852 overhead "splitting greater heals..." potionHue elseif potionID = 3847 overhead "splitting greater cures..." potionHue elseif potionID = 3848 overhead "splitting greater agilities..." potionHue elseif potionID = 3851 overhead "splitting total refreshes..." potionHue elseif potionID = 3846 overhead "splitting greater magic resists..." potionHue elseif potionID = 3849 overhead "splitting greater strengths..." potionHue elseif potionID = 3853 overhead "splitting greater explodes..." potionHue elseif potionID = 3850 overhead "splitting lethal poisons..." potionHue else overhead "splitting potions..." potionHue endif if index = 0 lift pots amount drop myPotionBag 44 dropY 0 elseif index = 1 lift pots amount drop myPotionBag 68 dropY 0 elseif index = 2 lift pots amount drop myPotionBag 96 dropY 0 elseif index = 3 lift pots amount drop myPotionBag 121 dropY 0 else lift pots amount drop myPotionBag 142 dropY 0 endif endif @ignore pots if movePots = 1 wait maxwaittimeinms endif endwhile endfor #***** Misc (Bandages + VetSupplies + Rope) ***** if not listexists 'misc_ids' createlist 'misc_ids' endif if not listexists 'misc_drop_y' createlist 'misc_drop_y' endif clearlist 'misc_ids' clearlist 'misc_drop_y' # Bandages pushlist 'misc_ids' 3617 back pushlist 'misc_drop_y' 45 back # VetSupplies pushlist 'misc_ids' 25750 back pushlist 'misc_drop_y' 70 back # Rope pushlist 'misc_ids' 5370 back pushlist 'misc_drop_y' 105 back for 3 if atlist 'misc_ids' index as miscIdTmp @setvar! miscID miscIdTmp else overhead "Misc list error (ids)" 34 stop endif if atlist 'misc_drop_y' index as miscYTmp @setvar! dropY miscYTmp else overhead "Misc list error (dropY)" 34 stop endif @setvar! myCounter 0 while findtype miscID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype miscID self <= 10 @setvar! amount 2 elseif counttype miscID self <= 20 @setvar! amount 4 elseif counttype miscID self <= 50 @setvar! amount 10 elseif counttype miscID self <= 100 @setvar! amount 20 elseif counttype miscID self <= 150 @setvar! amount 30 elseif counttype miscID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype miscID self as miscs @setvar! moveMisc 0 if myCounter = 0 @setvar! moveMisc 1 elseif myCounter != 0 and not find miscs myMiscBag @setvar! moveMisc 1 endif if moveMisc = 1 if miscID = 3617 overhead "splitting bandages..." 0 elseif miscID = 25750 overhead "splitting vet supplies..." 15 elseif miscID = 5370 overhead "splitting ropes..." 360 else overhead "splitting miscs..." 55 endif if index = 0 lift miscs amount drop myMiscBag 45 dropY 0 elseif index = 1 lift miscs amount drop myMiscBag 65 dropY 0 elseif index = 2 lift miscs amount drop myMiscBag 85 dropY 0 elseif index = 3 lift miscs amount drop myMiscBag 105 dropY 0 else lift miscs amount drop myMiscBag 125 dropY 0 endif endif @ignore miscs if moveMisc = 1 wait maxwaittimeinms endif endwhile endfor #***** Ammo (Arrows + Bolts) ***** if not listexists 'ammo_ids' createlist 'ammo_ids' endif if not listexists 'ammo_overhead_hues' createlist 'ammo_overhead_hues' endif if not listexists 'ammo_drop_y' createlist 'ammo_drop_y' endif clearlist 'ammo_ids' clearlist 'ammo_overhead_hues' clearlist 'ammo_drop_y' # Arrows pushlist 'ammo_ids' 3903 back pushlist 'ammo_overhead_hues' 38 back pushlist 'ammo_drop_y' 45 back # Bolts pushlist 'ammo_ids' 7163 back pushlist 'ammo_overhead_hues' 93 back pushlist 'ammo_drop_y' 65 back for 2 if atlist 'ammo_ids' index as ammoIdTmp @setvar! ammoID ammoIdTmp else overhead "Ammo list error (ids)" 34 stop endif if atlist 'ammo_overhead_hues' index as ammoHueTmp @setvar! ammoHue ammoHueTmp else overhead "Ammo list error (hues)" 34 stop endif if atlist 'ammo_drop_y' index as dropYTmp @setvar! dropY dropYTmp else overhead "Ammo list error (dropY)" 34 stop endif @setvar! myCounter 0 while findtype ammoID self as r @setvar! myCounter index @ignore r endwhile @clearignore if counttype ammoID self <= 10 @setvar! amount 2 elseif counttype ammoID self <= 20 @setvar! amount 4 elseif counttype ammoID self <= 50 @setvar! amount 10 elseif counttype ammoID self <= 100 @setvar! amount 20 elseif counttype ammoID self <= 150 @setvar! amount 30 elseif counttype ammoID self <= 200 @setvar! amount 40 else @setvar! amount 50 endif while findtype ammoID self as ammo @setvar! moveAmmo 0 if myCounter = 0 @setvar! moveAmmo 1 elseif myCounter != 0 and not find ammo myQuiverBag @setvar! moveAmmo 1 endif if moveAmmo = 1 if ammoID = 3903 overhead "splitting arrows..." ammoHue elseif ammoID = 7163 overhead "splitting bolts..." ammoHue else overhead "splitting ammo..." ammoHue endif if index = 0 lift ammo amount drop myQuiverBag 35 dropY 0 elseif index = 1 lift ammo amount drop myQuiverBag 40 dropY 0 elseif index = 2 lift ammo amount drop myQuiverBag 45 dropY 0 elseif index = 3 lift ammo amount drop myQuiverBag 50 dropY 0 else lift ammo amount drop myQuiverBag 55 dropY 0 endif endif @ignore ammo if moveAmmo = 1 wait maxwaittimeinms endif endwhile endfor overhead "Splitter completed!" 55

Quick Filters

Bard Quick SearchCrafter Quick SearchDexxer Quick SearchHarvester Quick SearchMage Quick SearchPVM Quick SearchPVP Quick SearchStealth Quick SearchTamer Quick Search