Hi there! Popular, smiling spokespony Kaolla here. You may recognize me as that pulped corpse bleeding all over the Ring of Valor.
Have you ever started a new character, picked up Mining and Herbalism, and then entirely forgotten about them until level 80 or so?
I know I have.
Who wants to stare at their minimap while they're leveling? Shit be hard, dawg. Golden circles be tiny, dawg! Eyes shouldn't bleed, dawg.
Dawg dawg dawg, dawg. Word.
Our good friend Sheuron created a beautiful set of abilities covering Herbalism and Archaeology, but we didn't think he went far enough. His brilliant ability only covers Cataclysm herbs! What an underachiever!
That's why we here at KaollaCorp painstakingly spent five whole minutes copy-pasting the names of every Herbalism and Mining object on WoWHead into not one, not two -nevermind, it is two- abilities for your gathering pleasure.
You'll pull everything out of the ground, locust-like, wherever you go! BP's oil s***** got nothin' on your ability to exploit the environment. Friends will wonder why you mined that copper vein in Elwynn Forest at level 85.
Peacebloom? You crave it. You need it. So much Gromsblood, they'll think you were in Twilight.
You'll ding 85 with profession mats to spare, and some Nightmare Vine to grind up and snort from the belly button of a Gnome hooker in Booty Bay.
(Some quest items included. KaollaCorp not responsible for any deaths caused by this ability. Gathering Gromsblood does not mean you're a vampire. Please don't touch the mane. Sheuron, we love you.)
---
In all seriousness, I've been using these two abilities for a week while leveling a shaman and paladin, and they both worked great. My gathering abilities generally kept pace with my progression through the zones, and I hit 85 with enough mats to pursue Alchemy/Engineering.
Name: Herbalism
Cancel Channel: False
Recast Delay: 0
Skip Unknown: False
Spell ID: 0
Target: Target
Code:
local gotloot = GetNumLootItems()
local herb = { "Peacebloom", "Silverleaf", "Earthroot", "Mageroyal", "Bruiseweed", "Stranglekelp",
"Grave Moss", "Wild Steelbloom", "Kingsblood", "Briarthorn", "Fadeleaf", "Goldthorn", "Liferoot",
"Khadgar's Whisker", "Dragon's Teeth", "Firebloom", "Purple Lotus", "Arthas' Tears", "Sungrass",
"Blindweed", "Ghost Mushroom", "Gromsblood", "Golden Sansam", "Dreamfoil", "Icecap",
"Mountain Silversage", "Sorrowmoss", "Black Lotus", "Felweed", "Dreaming Glory", "Ragveil",
"Terocone", "Flame Cap", "Ancient Lichen", "Goldclover", "Netherbloom", "Netherdust Bush",
"Firethorn", "Nightmare Vine", "Mana Thistle", "Tiger Lily", "Talandra's Rose", "Adder's Tongue",
"Frozen Herb", "Azshara's Veil", "Cinderbloom", "Lichbloom", "Stormvine", "Icethorn",
"Frost Lotus", "Heartblossom", "Whiptail", "Twilight Jasmine" }
if GetUnitSpeed("player") == 0
and not UnitCastingInfo("player")
and not UnitAffectingCombat("player")
and gotloot == 0
then for _,v in ipairs(herb) do InteractUnit(v) end end
if gotloot > 0 then for i = 1,gotloot do LootSlot(i) end end
Name: Mining
Cancel Channel: False
Recast Delay: 0
Skip Unknown: False
Spell ID: 0
Target: Target
Code:
local gotloot = GetNumLootItems()
local mine = { "Copper Vein", "Incendicite Mineral Vein", "Tin Vein", "Lesser Bloodstone Deposit",
"Ooze Covered Silver Vein", "Silver Vein", "Iron Deposit", "Gold Vein", "Ooze Covered Gold Vein",
"Indurium Mineral Vein", "Mithril Deposit", "Ooze Covered Mithril Deposit", "Ooze Covered Truesilver Deposit",
"Truesilver Deposit", "Dark Iron Deposit", "Ooze Covered Thorium Vein", "Small Thorium Vein",
"Ooze Covered Rich Thorium Vein", "Rich Thorium Vein", "Fel Iron Deposit", "Nethercite Deposit",
"Large Obsidian Chunk", "Small Obsidian Chunk", "Adamantite Deposit", "Cobalt Deposit",
"Rich Adamantite Deposit", "Ancient Gem Vein", "Khorium Vein", "Rich Cobalt Deposit", "Saronite Deposit",
"Obsidium Deposit", "Rich Saronite Deposit", "Pure Saronite Deposit", "Rich Obsidium Deposit",
"Titanium Vein", "Elementium Vein", "Rich Elementium Vein", "Pyrite Deposit", "Rich Pyrite Deposit",
"Black Blood of Yogg-Saron", "Enchanted Earth", "Strange Ore"}
if GetUnitSpeed("player") == 0
and not UnitCastingInfo("player")
and not UnitAffectingCombat("player")
and gotloot == 0
then for _,v in ipairs(mine) do InteractUnit(v) end end
if gotloot > 0 then for i = 1,gotloot do LootSlot(i) end end
And seriously, if this is helpful, rep Sheuron and Xelper.