Use random Hearthstone Toy

So since /castrandom and /userandom aren’t interested in working with Toys, I’m not sure how to go about what I expected to be a simple thing.

I have the Winter Veil Hearthstone and the Hallow’s End Hearthstone. I want a macro to randomly use one or the other.

So… how do I do this? Any ideas appreciated!

2 Likes

Try /castsequence toy1, toy2
don’t know if it works with toys but try it.

Any random option, even if those worked in general, would have a 50% failure chance if you activated the macro twice within 30 min because you are just as likely to randomly get the toy on cooldown as the one that isn’t. Castsequence won’t have that problem.

1 Like

Thanks I can definitely give castsequence a shot.

Though I have this vague recollection of the command having an “internal timer” of sorts where it resets back to the first on the list after a while. Is this correct? If true, is that timer greater than the cooldown of a hearthstone since the hearthstone toys share cooldowns with each other and your hearthstone?

I don’t know.
The few times I’ve used castsequence i also added a reset option like
/castsequence reset=1800 toy1, toy2
(1800 = 30min x60 sec)

1800 seconds from the last attempted activation of the castsequence. Activate it once, wait 30 min, it will go back to the first item on the list automatically without needing the second toy used.

So castsequence worked… until today. I changed nothing since yesterday but suddenly it’s not interested in working.

Any ideas at all on what may have changed to break it?

1 Like

2 possible things come to mind, not really sure of each.

  1. if you reload your ui (/reload or enable/disable any addon) I think that resets castsequences. If you used it, reloaded ui, then tried to use it again it may reset back to the first toy which is now on cooldown.
  2. The two toys share a cooldown. If you use 1, then go into the Toys collection and look at the other one and it’s also on cooldown, then they share a cooldown.
    No macro in the world can get around that. You can use only 1 at any time and its pointless if to try and get 2 hearth’s this way.

I noticed that the regular hearthstone and Greatfather’s winter veil toy does share a cooldown so it’s possible that the halloween and winter one also share one.

Regarding 2 - they absolutely share a cooldown but I had the macro show the Hearthstone tooltip/icon so I would see the shared cooldown timer. I never deliberately tried to use one when the cooldown was still counting down. When it was not working at all, I could go into my Toy Box and click on either Hearthstone and they worked just fine.

Regarding 1 - I could give that a try, but this morning I gave up on the macro and just changed it to /usetoy [mod] toy1, toy2. I have the macro show up through an icon wheel thanks to Opie, so instead of it being random, I’ve just decided to accept that it’s by conscious decision :stuck_out_tongue:

Thank you very much for your help!

1 Like

what about a /castrandom type of macro

Does not work with toys apparently, which is what brought me here

1 Like

If the 2 toys share a cooldown there’s no reason to randomly select one or cycle through the sequence because no matter which is used, they both become unusable until the CD timer expires.

Sure there is. I wanted to randomly use one or the other when I hearthed. I don’t know why you keep focusing on the CD, I’m not in any way trying to get around it or not understanding how it works.

But since random doesn’t work and castsequence seems to work only intermittently, I just went with a macro that changes which I use based on a mod key. So basically it’s based on my ‘whim’ rather than actually random.

2 Likes

This old macro worked for me. But the caveat is you can only have your hearthstones set as favourite toys if you specifically want to use it for hearthstones.

Use the following in a macro

/run local f,t=RnT or CreateFrame("Button","RnT",nil,"SecureActionButtonTemplate") f:SetAttribute("type","item") t=GetItemInfo(C_ToyBox.GetToyFromIndex(random(2))) f:SetAttribute("item",t) print("Casting toy:",t)
/click RnT

Open up the toy window and right click any toys you want to be part of the macro and select “Set Favorite”. Count how many toys you have set as favourites and alter the macro above where it says “Random(2)”. Change the 2 to how many toys you have set as favourite.

If you don’t want it telling you which toy was used you can remove “print(“Casting toy:”,t)” from the macro.

7 Likes

This thread is a few weeks old, but it came up when I was looking for a macro for a random hearth toy. Figured it out on my own, castrandom works if you use the item/spell ID numbers.

#showtooltip Hearthstone
/castrandom 64488, 162973, 163045, 165669

The ones above are (in order) Innkeepers Daughter (from Archaeology), Greatfather Winter’s Hearthstone, Headless Horseman’s Hearthstone, and Lunar Elder’s hearthstone.

The Innkeeper’s Daughter and Tome of Town Portal use the normal Hearth animation so they could be removed if you’re only interested in the specially animated ones.

There’s also wowhead ID’s for Love in the Air, Noblegarden, Midsummer, and Brewfest ones for future. Was also reminded that there’s TCG hearths as well, Dark portal, etc. Those can be added by ID # as well.

EDIT Took out tome of town portal, turns out the ID number for that one doesn’t work for some reason and will bug out the macro. The rest absolutely do work though.

14 Likes

Awesome, thank you!!

Update: The macro totally works with items IDs, but for some reason does not work in concert with Opie. Will try a few things or just not put my Hearthstone macro on an Opie wheel.

I tried using this one however it only cast the first one on the macro, any suggestions to have it cycle through different ones?

With only 4 options in the list, the chance for repeating the same cast id. multiple times is pretty (very) high. A quick test shows that the code will use the other items in the list but random is random (not sequential) and Heartstones with long shared CDs, people probably don’t do a proper test.

Personally I would love to see the Hearthstone toys altered so that each one could be set to a different location. Just have them all share the same GCD.

4 Likes

I was never able to figure out a way to get random to work with Opie*, so I ended up changing to a macro with a bunch of mod keys. Of course this may get silly as more hearthstone toys get added (which seems to be the new thing).

*In retrospect I’m not sure it was only a problem with the macro clashing in Opie. I had it on my action bars for a while too and basically it would work once and then not work again until I relogged.

The good news is that with more holiday hearthstones coming, if you want them all the odds for any particular one happening back to back are going to go way down.

Sorry to necro - the /castrandom using the toy item ID was working* for me up until this week. Did something change with the update?

*it appears that /castrandom in this case doesn’t do a new random value every time you start to cast. at best it only updates after you successfully cast something, which for this case means you have to wait for the shared hearthstone cooldown before trying for a different random toy

3 Likes