Macros for professions broken (since 8.2 or more recently?)

An issue: Upon first load into a character, simple macros to open crafting profession windows, like “/use Engineering”, will not work. You have to either open it from the skillbook, or log out and back in to fix.

I have always had macros for my professions on my bars, in order to combine some functionality between left and right click to save bar space, e.g. Jewelcrafting on left-click, Prospecting on right-click. Ever since one of the recent major updates, possibly the same one that fixed the Darkmoon Faire profession quests to grant skill-ups again, these simple macros now will often fail to work.

It has something to do with the now different “tiers” for each expansion of skill, because my alts with only the base tier from 1-60 do not have this issue. While not working, the tooltip for the macro will show a cast time of “Instant”, as well as refer to the maximum skill being 300, which refers to the base vanilla tier of the skill.

It always seems to be the crafting ones with this problem, and not the gathering ones, with possibly the exception of Enchanting, which seems to work well.

Relogging into the character—reloading is not enough—will always fix it.

I believe this should be easily reproducible, as well, because it happens on multiple installations and any character of mine, with no add-ons. Simply make /use macros for the profession skills (e.g. /use Jewelcrafting), load the game up anew, log in, and try to use them.

Some screenshots to document. I used a Lv70 character with only vanilla+BC level of crafting skill, no add-ons enabled, and she is affected.

  1. No add-ons, to confirm all disabled, absolutely sure. https://i.imgur.com/WTkGkM2.jpg

  2. The ‘bad’ tooltip when the macro is broken upon first login. You can see it has a cast time of “Instant” and refers to “max potential skill of 300”. https://i.imgur.com/PgGKqlq.jpg

  3. The macro content, for verification that everything is spelled right. It happens too to ones ones like Tailoring without the [button:2] conditional. https://i.imgur.com/Fkecz7b.jpg

  4. The ‘good’ tooltip upon logging out and logging back in, the macro working again. No cast time and no mention of skill level. This is the tooltip from the skillbook too, where the button always works. https://i.imgur.com/CWKXdFT.jpg

  5. Skill window showing this character only has up to Outland Jewelcrafting, so it’s nothing about new tiers. https://i.imgur.com/yarnnZL.jpg

Hope this can be fixed. I’d put up with it for a while opening the professions from the skill book every day instead, but it’s extremely inconvenient and a glaring bug.

1 Like

That’s very strange indeed. While using the gnomish/goblin variant did seem to work for me upon first login as a little workaround. Not that I know why it’s bugged though

/cast Gnomish Engineer
2 Likes

This has been bothering me too. I think I found a solution, but I haven’t worked it all out yet. Will keep this post updated, but here’s what I have so far:
Alchemy:
/run C_TradeSkillUI.OpenTradeSkill(171)

For each of the professions, you can replace the 171 with the number in the list. Bolded entries are the ones I’ve tested.

Blacksmithing: 164
Cooking: 185
Enchanting: 333
Engineering: 202
Herbalism: 182
Inscription: 773
Jewelcrafting: 755
Leatherworking: 165
Mining: 186
Skinning: 393
Tailoring: 197

If it’s replacing a [nomod] part of your macro, then it would look something like this:
#showtooltip
/use [mod] whatever else you normally have
/run if not IsModifierKeyDown() then C_TradeSkillUI.OpenTradeSkill(171) end
#showtooltip Alchemy

It doesn’t toggle the window closed again. Its doable, but if you’re using it in a macro, you might run out of room before you get it all in. OP: IsMouseButtonDown(“LeftButton”) etc for your macros. wowpedia has a decent explanation of all the functions being called in the /run sections.

5 Likes

Thank you so much @Hokuloa. That’s awesome, I had no idea there was such a command—I only had otherwise a vain attempt at /cast SpellID hoping to hit the right “spell”, which doesn’t seem to be allowed anymore.

The issue does seem to be that two “spells” currently both share the same topical name, that being the base tier 1-300, e.g. “Jewelcrafting”, “Outland Jewelcrafting”, “Northrend Jewelcrafting”, against the wrapper for all tiers, also “Jewelcrafting”. The game is attempting to open the 1-300 “version” that isn’t actually valid. Forcing the right one to fire with the exact ID, or through an alternate cast name like @Ketho suggests above sidesteps the issue, where alas the latter can’t be done for most of the professions.

That said, I have spent all night attempting to recreate the simple conditional of [button:2] (edit: or rather, to preserve [button:2]‘s function elsewhere in the macro) through the scripting and I am at my wits’ end trying to get it to work. I don’t have any experience with this and have no idea what I could be doing wrong; I’ve dug through literally all the documentation I could find, all for a simple line of code to work around something that should be functioning by default in the game.

Any of the following should’ve seemingly limited the tradeskill window to fire only on left-click, even if I’d gotten all but one of them wildly incorrect somehow:

/run if IsMouseButtonDown("LeftButton") then C_TradeSkillUI.OpenTradeSkill(333); end

/run if (IsMouseButtonDown("LeftButton") == 1) then C_TradeSkillUI.OpenTradeSkill(333); end

/run local x=IsMouseButtonDown("LeftButton"); if x==1 then C_TradeSkillUI.OpenTradeSkill(333); end

/run if IsMouseButtonDown(1) then C_TradeSkillUI.OpenTradeSkill(333); end

/run local x=IsMouseButtonDown; if x==1 then C_TradeSkillUI.OpenTradeSkill(333); end

/run if GetMouseButtonClicked() == "LeftButton" then C_TradeSkillUI.OpenTradeSkill(333); end

/run local x=GetMouseButtonClicked(); if x="LeftButton" then C_TradeSkillUI.OpenTradeSkill(333); end

None of them bring up the tradeskill window, left-click or right-click or any-click. On the other hand, “if-nots” on any of them always bring up the window regardless of any button. I get that IsModifierKeyDown() returns true/false but I don’t know what to do with the 1/nil of these other ones. Or maybe clicks on buttons are somehow protected from this kind of script. I have no idea but I’ve got the worst headache and I’m done, haha. Maybe I’ll just get used to using modifiers instead.

This one works for me.

You could also use SecureCmdOptionParse.

/run if SecureCmdOptionParse("[button:2]") then C_TradeSkillUI.OpenTradeSkill(333); end

https://wow.gamepedia.com/API_SecureCmdOptionParse

1 Like

Oof, still not for me. I’m glad at least to know it was on my end and not the code.

This one did, though!! Oh my god I can sleep now. I never would’ve found that in the wild, or known what it does, even as I look right at the page. Runes. Thank you so much.

#showtooltip Enchanting
/use [button:2] Disenchant
/run if SecureCmdOptionParse("[button:1]") then C_TradeSkillUI.OpenTradeSkill(333); end

This finally restores exactly the functionality I had before.

edit: for anyone else who may find this and need the template for both the modifiers and right-clicks. Thanks again!

#showtooltip Cooking
/use [mod:shift] Chef's Hat; [button:2] Cooking Fire
/run if not IsModifierKeyDown() and SecureCmdOptionParse("[button:1]") then C_TradeSkillUI.OpenTradeSkill(185); end

It seems that Blizzard forgot to break this one. I’m sure they will in an upcoming update…
/cast Engineering, or Enchanting, or anything else seems to be broken, but this one is still working at this moment.