Help with a milling macro

Professions
Hi there! I need a bit of help with my milling macro. Right now I use:

/cast Milling
/use Cinderbloom
/use Whiptail
/use Heartblossom

And so on for all the cata herbs. As it is right now, however, it will mill the Cinderbloom I have but then give me the "Requires 5 Cinderbloom" error when I run out.

Any suggestions?
Hi there! I need a bit of help with my milling macro. Right now I use:

/cast Milling
/use Cinderbloom
/use Whiptail
/use Heartblossom

And so on for all the cata herbs. As it is right now, however, it will mill the Cinderbloom I have but then give me the "Requires 5 Cinderbloom" error when I run out.

Any suggestions?


That macro works fine, as long as you have multiples of 5 of each herb in your bags. If you have 1 Cinderbloom in your bags, it will hang because it can't mill a single herb.
You just have to prep and stack your herbs nicely before running your macro. =)

There are addons to do this you can download. But if you can't find one, create these two files named in bold in a folder called MillButton under AddOns and the next time you run WoW you can use the macro at the bottom:

MillButton.toc
## Interface: 40000
## Title: MillButton
## Notes: Help for milling
MillButton.lua


MillButton.lua
--[[ macro should be: /run MillButtonSetup() /click MillButton ]]

local mill = CreateFrame("CheckButton","MillButton",UIParent,"SecureActionButtonTemplate")
mill:SetAttribute("type","macro")

local function findherb()
local function f(b,s)
return select(7,GetItemInfo(GetContainerItemLink(b,s) or 0))=="Herb" and select(2,GetContainerItemInfo(b,s))>=5
end
for i=0,4 do
for j=1,GetContainerNumSlots(i) do
if f(i,j) then
return i,j
end
end
end
end

function MillButtonSetup()
local b,s = findherb()
if (not b or not s) or LootFrame:IsVisible() or CastingBarFrame:IsVisible() or UnitCastingInfo("player") then
-- do nothing if no herb, if looting or casting
MillButton:SetAttribute("macrotext","")
if not b then
print("No more herbs in stacks of 5 or more.")
end
else
MillButton:SetAttribute("macrotext","/cast Milling\n/use "..b.." "..s)
end
end

Now use this as your milling macro:
#showtooltip Milling
/run MillButtonSetup()
/click MillButton

Put it on mousewheel and spin ahoy. It will skip over stacks of less than 5.
Great help. I was wondering if you could show me how to include a priority list in this? I.E. Using Stormvine or Heartblossom before Twilight Jasmine or Azshara's Veil?
The original macro will mill in the order that it was listed. If you list TJ then Whiptail it'll always mill TJ first.
Is there a way that this can be used for prospecting as well?
Sometimes I change the order when milling in bulk. Just open the macro screen and do some cutting pasting, put the one you want to mill at the top of the macro.

Also sometimes I simply move the stack of 1-4 herbs to the back of my bag and sometimes that will let me continue milling my other herbs.
Ro, your mini-addon rocks!!
Ro, you are the best. <3

Join the Conversation

Return to Forum