da Wowhead code

July 16, 2009

Next time you use the Wowhead talent calculator, have a look at the URL in your browser’s address box. You should see that the talent points get encoded in an odd looking alphanumeric string. Your class, or pet category in the case of hunter pet talents, gets encoded as well. Something like this:


That encoding is a Wowhead thing; the armoury itself doesn’t use it. Blizz just stores talent points as a simple string of numbers “00020010230…” where each number refers to a corresponding talent, in the same left-to-right and top-to-bottom order that you see the talents in the calculator.

Unfortunately, the algorithm to generate this encoding seems to be some sort of Wowhead state secret. The Enigma machine was probably less well protected. I have no idea why. It is in the javascript in the Wowhead HTML source, but in a highly compressed form that just makes my brain hurt.

Fortunately an intrepid explorer called Gizzmo has reversed-engineered the damn thing and made his findings available for all of us. You can find the algorithm for the class talent encoding here and for the pet encoding here. Thanks Gizzmo!

Generally I prefer to link to Wowhead’s calculator rather than the official Blizz ones. It seems to have a snappier response. And let’s face it, you’re going there anyway – sooner or later – so let’s just pass Go and collect the $200 now.

But I had to pull the links out last time because they were based on the unencoded Blizz talent string and the Wowhead calculator was failing to convert the URL. (Caused, as I discovered later, by Wowhead treating class names as case sensitive. D’Oh!) So it will be nice to be able to generate the encoded URLs here.