Train Alchemy Supremo by luizhenrique7779

Related: Alchemyalchemy
Created: 05/18/2026
Last Updated: about 16 hours ago
Description from the author:

This script fully automates Alchemy training from 50 up to your chosen target (maxAlchemy), using one resource container you select at startup.

On every loop, it does the following:

checks if you already reached your target skill (maxAlchemy) and stops automatically;

keeps Alchemy set to up;

restocks core reagents into your backpack when low (spiders silk, garlic, ginseng, mandrake root, bloodmoss, sulfurous ash, nightshade);

restocks empty bottles by ID (0x0F0E or 3854) in batches;

ensures a mortar and pestle is always in your backpack;

if the mortar breaks/runs out, it grabs a new one from the source container, closes/reopens the alchemy gump, and resets category tracking;

opens the alchemy gump only when needed;

auto-selects what potion to craft based on your current skill range:

50–70: Lesser Magic Resist

70–90: Greater Cure

90–100: Greater Explosion

100–115: Greater Magic Resist

115–120: Lethal Poison

optimizes gump navigation by only reselecting potion category when the potion type changes (LastPotionCode);

for Lesser Magic Resist, uses the hotkey to drink it (to recycle bottle flow);

after crafting, it attempts to move finished potions back to the same source container in stacks of 20, based on the current potion color/type.

In short, this macro handles the entire cycle: resource restock, smart crafting flow by skill bracket, mortar recovery, bottle management, and auto-stashing crafted potions with minimal manual input.

clearsysmsg @setvar! maxAlchemy 120 if not varexist "LastPotionCode" @setvar! LastPotionCode 0 endif if not varexist "SourceContainer" overhead "ABRA O MACRO 'setvar SourceContainer', CLIQUE NA BAG E RODE ESTE SCRIPT DEPOIS" 38 wait 5000 stop endif if skill "Alchemy" >= maxAlchemy overhead "Target Alchemy Level Reached!" 88 setskill "Alchemy" lock wait 2000 stop endif setskill "Alchemy" up ## ======================================================== ## MORTAR AND PESTLE MANAGER COM RESET GARANTIDO DO CODE ## ======================================================== if not varexist "CurrentMortar" @setvar! CurrentMortar 0 endif ## Verifica se o mortar atual ainda existe if CurrentMortar != 0 if not find CurrentMortar backpack overhead "Mortar sumiu/quebrou!" 38 @setvar! CurrentMortar 0 @setvar! LastPotionCode 0 if gumpexists 949095101 gumpclose 949095101 wait 200 endif endif endif ## Se nao tem mortar, procura um novo if CurrentMortar = 0 ## primeiro na backpack if findtype "mortar and pestle" backpack as newmortar @setvar! CurrentMortar newmortar @setvar! LastPotionCode 0 dclick newmortar waitforgump 949095101 5000 wait 200 else ## depois na SourceContainer if findtype "mortar and pestle" SourceContainer as newmortar while queued //donothing endwhile lift newmortar 1 wait 200 drop backpack wait 200 if findtype "mortar and pestle" backpack as newmortar2 @setvar! CurrentMortar newmortar2 @setvar! LastPotionCode 0 dclick newmortar2 waitforgump 949095101 5000 wait 200 else overhead "Sem mortar na bag!" 38 wait 1000 loop endif else overhead "Sem mortar nem na SourceContainer!" 38 wait 1000 loop endif endif endif ## Garante que o gump esteja aberto if not gumpexists 949095101 if find CurrentMortar backpack @setvar! LastPotionCode 0 dclick CurrentMortar waitforgump 949095101 5000 wait 200 else overhead "Mortar sumiu!" 38 @setvar! CurrentMortar 0 @setvar! LastPotionCode 0 wait 500 loop endif endif ## ============================= ## RESTOCK INTELIGENTE ## ============================= ## 50-70: Lesser Magic Resist -> Spider's Silk (3981) if skill "Alchemy" < 70 @setvar! needRegID 3981 @setvar! needRegName "Spiders Silk" @setvar! minReg 6 @setvar! potionCategory 105 @setvar! potionBtn 200 @setvar! potionCode 1 @setvar! potionColor "Black Potion" ## 70-90: Greater Heal -> Ginseng (3973) elseif skill "Alchemy" >= 70 and skill "Alchemy" < 90 @setvar! needRegID 3973 @setvar! needRegName "Ginseng" @setvar! minReg 6 @setvar! potionCategory 100 @setvar! potionBtn 204 @setvar! potionCode 2 @setvar! potionColor "Yellow Potion" ## 90-100: Greater Explosion -> Sulfurous Ash (3980) elseif skill "Alchemy" >= 90 and skill "Alchemy" < 100 @setvar! needRegID 3980 @setvar! needRegName "Sulfurous Ash" @setvar! minReg 9 @setvar! potionCategory 107 @setvar! potionBtn 204 @setvar! potionCode 3 @setvar! potionColor "Purple Potion" ## 100-115: Greater Magic Resist -> Spider's Silk (3981) elseif skill "Alchemy" >= 100 and skill "Alchemy" < 115 @setvar! needRegID 3981 @setvar! needRegName "Spiders Silk" @setvar! minReg 9 @setvar! potionCategory 105 @setvar! potionBtn 204 @setvar! potionCode 4 @setvar! potionColor "Black Potion" ## 115-120: Lethal Poison -> Nightshade (3976) else @setvar! needRegID 3976 @setvar! needRegName "Nightshade" @setvar! minReg 10 @setvar! potionCategory 106 @setvar! potionBtn 208 @setvar! potionCode 5 @setvar! potionColor "Green Potion" endif ## ----------------------------- ## RESTOCK DO REAGENTE ## ----------------------------- if counttype needRegID backpack < minReg if findtype needRegID SourceContainer as reg while queued //donothing endwhile lift reg 1000 wait 150 drop backpack wait 150 else overhead "Falta " + needRegName + " na SourceContainer!" 38 wait 1000 loop endif endif ## ----------------------------- ## RESTOCK DE BOTTLES ## ----------------------------- if counttype 0x0F0E backpack < minReg and counttype 3854 backpack < minReg if findtype 0x0F0E SourceContainer as bottle1 while queued //donothing endwhile lift bottle1 200 wait 150 drop backpack wait 150 elseif findtype 3854 SourceContainer as bottle2 while queued //donothing endwhile lift bottle2 200 wait 150 drop backpack wait 150 else overhead "Sem bottles na SourceContainer!" 38 wait 1000 loop endif endif ## ----------------------------- ## CRAFT ## ----------------------------- if counttype needRegID backpack < minReg overhead "Need more " + needRegName + "!" 34 wait 500 loop endif if counttype 0x0F0E backpack < 1 and counttype 3854 backpack < 1 overhead "Need more Empty Bottles!" 34 wait 800 loop endif ## Seleciona categoria (SEMPRE reseta se mudou) if LastPotionCode != potionCode gumpresponse potionCategory 949095101 waitforgump 949095101 5000 @setvar! LastPotionCode potionCode wait 200 endif ## Craft um if gumpexists 949095101 gumpresponse potionBtn 949095101 waitforgump 949095101 5000 wait 550 ## Verifica se mortar quebrou if CurrentMortar != 0 if not find CurrentMortar backpack overhead "Mortar quebrou!" 38 @setvar! CurrentMortar 0 @setvar! LastPotionCode 0 endif endif else overhead "Gump fechou!" 38 @setvar! CurrentMortar 0 @setvar! LastPotionCode 0 wait 500 loop endif ## ----------------------------- ## AUTO-DEPOSIT TODAS AS POCOES ## ----------------------------- ## Deposita Black Potion while counttype "Black Potion" backpack >= 20 if findtype "Black Potion" backpack as madepot while queued //donothing endwhile lift madepot 20 wait 150 if findtype "Black Potion" SourceContainer as stashpot drop stashpot else drop SourceContainer endif wait 150 else break endif endwhile ## Deposita Yellow Potion while counttype "Yellow Potion" backpack >= 20 if findtype "Yellow Potion" backpack as madepot while queued //donothing endwhile lift madepot 20 wait 150 if findtype "Yellow Potion" SourceContainer as stashpot drop stashpot else drop SourceContainer endif wait 150 else break endif endwhile ## Deposita Orange Potion while counttype "Orange Potion" backpack >= 20 if findtype "Orange Potion" backpack as madepot while queued //donothing endwhile lift madepot 20 wait 150 if findtype "Orange Potion" SourceContainer as stashpot drop stashpot else drop SourceContainer endif wait 150 else break endif endwhile ## Deposita White Potion while counttype "White Potion" backpack >= 20 if findtype "White Potion" backpack as madepot while queued //donothing endwhile lift madepot 20 wait 150 if findtype "White Potion" SourceContainer as stashpot drop stashpot else drop SourceContainer endif wait 150 else break endif endwhile ## Deposita Blue Potion while counttype "Blue Potion" backpack >= 20 if findtype "Blue Potion" backpack as madepot while queued //donothing endwhile lift madepot 20 wait 150 if findtype "Blue Potion" SourceContainer as stashpot drop stashpot else drop SourceContainer endif wait 150 else break endif endwhile ## Deposita Purple Potion while counttype "Purple Potion" backpack >= 20 if findtype "Purple Potion" backpack as madepot while queued //donothing endwhile lift madepot 20 wait 150 if findtype "Purple Potion" SourceContainer as stashpot drop stashpot else drop SourceContainer endif wait 150 else break endif endwhile ## Deposita Green Potion while counttype "Green Potion" backpack >= 20 if findtype "Green Potion" backpack as madepot while queued //donothing endwhile lift madepot 20 wait 150 if findtype "Green Potion" SourceContainer as stashpot drop stashpot else drop SourceContainer endif wait 150 else break endif endwhile wait 500 loop

Quick Filters

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