WeightsWatcher

WeightsWatcher gives you an easy to use way to compare gear based on the actual stats, not just the item level.

Currently, all base stats, gems in non-crafted sockets, and enchants should be handled properly. Also, gems are suggested based on the weights you have enabled. Note that crafted sockets and other "stacking" enchants are not currently handled, because they are not detectable through the WoW API.

All weights can be changed as you see fit, and you can create and enable as many or as few as you would like.

The default stat weights are provided by AskMrRobot.com, with their consent. Everything else the mod does is of our own creation, and does not use the AskMrRobot.com optimization formulas.

Endgame players will probably want to create hit- and/or expertise- capped weights, which is easily done by copying an existing weight and setting the appropriate values to 0.

Trinkets and meta gems are not currently handled very well. Specifically:

The special effects on meta gems are not included in the default set of weights (but you can add them yourself)

"Chance on X" and some use effects on trinkets are not taken into account (these will be marked as unweighted)

Use effects that increase a stat by a static amount are now handled

Equip effects that increase a stat by a static amount, stacking up to x times are also handled

Other, more oddball trinket effects are not handled either (these will be marked as unweighted)

Similarly, enchants that have procs or other special effects are not handled well. You can weight those enchants manually, however.

Planned (eventual) features:

Whole-character scoring

Import/export weights from/to Wowhead and similar sites

This would have to be limited to the stats that both WW and the site(s) supported, so it would likely be an imperfect translation

Outfit creation based on a given weight

Currently best handled by using Outfitter's WeightsWatcher support

Ideally suggesting changes to gems/enchants

Handling unique-equipped gems, mutually-exclusive enchants and the like properly

Suggestions welcome!

The authors of WeightsWatcher can be contacted at [email protected], or through the project page at WoWInterface.com.

We take bugs very seriously; if something is not being parsed properly, you get a nil error, or anything else goes wrong, please try to reproduce it and let us know so we can fix it.

1.7r1

Actually support the new secondary stats (thanks to Dale for pointing out that I didn't quite have it right)

1.7:

Stop crashing with WoW 6.*

Support new stats, remove old ones

Updated the default weights

You will need to restore your default weights to see the new defaults. Open the weight configuration screen with /ww weights and click Restore Defaults. Note that a couple of them changed names -- you may want to delete the old ones.

Parser updates for new items/stats

Updated gem/enchant info

Miscellaneous backend changes

1.6r8:

Fixed the handling of Titan's Grip

Handle Sha-Touched sockets better

Updated to newer gem and enchant information

Track all professions and reputations, not just those that could affect which enchants you can use

Fixed an issue causing the default weights to halfway include the (defunct) Unholy DW weights

Lots of code cleanup (the addon actually shrunk a little this release)

Marked as 5.4 compatible

Many small backend updates to parse items more accurately

1.6r7:

Fixed the names of the Confounded gems. Thanks to Cabby for the bug report.

Marked as 5.3 compatible

Many small backend updates to parse items more accurately

1.6r6:

Handle the new tooltip format for reforged stats

Handle upgraded items better

Fixed reputation tracking for Pandaria factions

Marked as 5.1 compatible

Enabled support for the enGB locale (I can't test it though, so let me know how things work)

Handle a few trinkets that have extra text describing their effects (mostly from Molten Front)

Update to the new names/stats for several enchants

Fix a few parsing issues

Lowered memory usage a touch

1.5r3:

Changed to using weights from askmrrobot.com by default (with their permission)

You will need to restore your default weights to see the new defaults. Open the weight configuration screen with /ww weights and click Restore Defaults.

These are updated much more often than Wowhead's and we will do our best to keep our version up to date as well. Please feel free to poke us if we fall behind on that.

Bumped to TOC to show that we're compatible with 4.2

Fixed the stats on Vivid Dream Emeralds

Removed some debug code that was accidentally put in the released version

Localized some text that was missed in the enchant changes

1.5r2:

Added several spell-only enchants that were accidentally skipped in 1.5r1 (embroideries, runeforging, etc.) to the list of weightable stats

1.5r1:

WeightsWatcher now supports enchants!

Any enchant with "normal" stats will be suggested automatically based on your current weights

Those with procs and other unusual effects have been added to a list of enchants you can manually add weights for

With the exception of Lightweave, Darkglow, and Swordguard embroideries, all of these enchants have a value of 1 when being weighted. The mentioned ones have a value of 1 for the first rank and 2 for the second rank.

We eventually plan to support procs in general, but it will be another large project. When we do, we will move all the enchants we can to that method of handling.

WW will take the following into account when figuring out the best enchant for your gear:

Your level

The item level

Your professions and their level

Your reputation with relevant factions

The obvious stuff (slot, subslot, etc.)

The options have been given a bit of a workover to support this

All your current choices should carry over to the new structure

There are some new ones specifically for enchants as well

The options are still accessible via /ww config, but you can now use /ww config <submenu> to jump immediately to the submenu of your choice

Submenus: calculation, display, gems, and enchants

Note that Blizzard's code to do this has some bugs which may open you to the wrong menu if you have alot of addons using the Blizzard config UI. I recommend the addon BlizzBugsSuck to fix this issue (and a few others) until Blizzard releases their own fix.

Frost mages no longer have a default value for mastery rating of 700

Default weights have not otherwise been updated since Wowhead has not updated theirs -- if anyone can suggest a more up-to-date source for the default weights that won't take use hours of looking through forums AND handles all classes and specs, let us know!

Some obsolete stats have been removed from the list

The weights configuration window (/ww weights) is now a little smarter about what happens when it is asked to close

Weight normalization now only takes the "normal" stats into account to avoid individual enchants and other oddball stats skewing the numbers

Miscellaneous parser updates and other backend work

1.4r15:

Fixed some issues with deleting weights. Nothing a reloadui didn't fix before, but now you don't have to.

1.4r14:

Updated to the latest weights from Wowhead. You will need to restore the default weights to see these changes.

Previously, the meta/cogwheel gems only counted towards the "follow socket colors" path, which may have resulted in best-following-color gems being suggested for the colored sockets (instead of the actual best gem), or no meta/cogwheel gem being suggested (unlikely).

1.4r12:

Added localization strings for the new gems in r10. Should avoid warning messages about them.

1.4r11:

Fixed parsing of the Ebonsteel belt buckle, which I forgot to put in r10.

1.4r10:

Added the new Cataclysm meta gems and a couple others that were missing

Fixed a nil error when running /ww version (since 1.4r8)

1.4r9:

Updated to the latest Wowhead weights. Use the Restore Defaults button in /ww weights to see the changes.

I'm not entirely sure these are all better, but they are newer. As always, using rawr or simulationcraft to get numbers tailored to your character is better anyway.

Fixed the upgrade function for stun resist chance (and forced a re-run of said function).

Fixed a bug with triggers being "changed" even if returned to their original state (UI only).

Fixed a bug preventing classes in the weights config dialog from collapsing when you had deleted an "active" weight from a different character (UI only).

1.2b10:

Fixed handling stat weights that had decimal parts that don't exactly convert to binary. The main symptom was a weight that "changed" without you doing anything but selecting it (and no visible change).

Fixed a nil error when using a decimal point in stat weights (everything still worked as long as you used valid numbers).

Fixed thrown weapons to have their dps marked as ranged dps instead of melee dps. Thanks to Edwilly for the bug report.

1.2b8:

Fixed a bug causing nil errors when creating a new, empty weight. Thanks to dpsthree for the bug report.

1.2b7:

Fixed a bug causing prismatic gems to not be considered as ideal gems

Fixed comparison values in tooltips for weapons (again). This should fix all remaining issues with weapon comparisons, but if not please let us know.

Added comparison values to AtlasLoot tooltips (and any future addons with tooltips that we support)

Added a hotkey to show everything the parser parses, defaults to never (change it in /ww config).

This is as much for our own use as anyone else's, but it may help people track down bugs.

I'm not going to heavily document this (yet), but feel free to ask questions!

1.2b6:

Fixed a bug causing nil errors when showing tooltip hints. This is why you should always test your default settings, kids. Thanks to Zidomo for the bug report.

1.2b5:

Added support for equip effects that grant a stat on certain actions, stacking up to a certain number of times.

Added triggers for said equip effects to each weight. The default weights have been updated to include appropriate triggers. The data upgrade function will attempt to choose the right trigger(s), but is not perfect. For example, hit-capped caster weights will almost always have the wrong triggers picked. To fix this, open /ww weights and pick the correct triggers for each weight.

1.2b4:

Fixed a bug affecting current weight calculations when an item's socket bonus was being used. Ideal gems and ideal weight calculations were not affected.

1.2b3:

Handle simple use effects

For now, this is only use effects that increase a stat by a static amount

New config option added, to allow tuning of use effect calculations

Set to 80% of ideal uptime by default

Can be set to 0% if you never remember to use your trinkets, 150% if you always use them to maximum effect, or whatever number you feel works best for you.

Which brings up the question: why not move to Ace3? Ace2 is obsolete/no longer supported or developed. I know WeightsWatcher only uses those library functions in Regexps.lua; they shouldn't be hard to replicate using Ace3.

As to my using Automaton (in the error)...heh. Its effectively out of development, but it provides a couple functions have been unable to find in any other mod using using minimal CPU resources.

As WeightsWatcher is in active development, would be nice to see it move to using a modern library framework which will avoid problems like the above.

I've posted a new version, with the major change being support for gem minimum item levels. I also moved cogwheel "gems" to the unique-equipped section (since they are). See the change log for details.

I've posted yet another version with support for cogwheel gems. Everyone can see them by default, since they only get suggested for cogwheel sockets. Please let me know if that's an annoyance; I can add a filter if people want one.

As noted in the change log, I do not have a high-level engineer. I tested what I could, but if it's broken, please let me know.

The major change is to support (most) Cataclysm gems. I'm still working on cogwheel gems. See the changelog for full details.

This release may fix the nil error some have been having (reported by Zidomo). I haven't seen it in a couple of days testing, and it was happening in gem-related code. However, I've not been able to reproduce it reliably, so I can't know for sure.

Ok, new version is up. Don't blame me if it crashes and burns...I can't test it yet!

All I updated was the default weights, so it should be fine. I'll warn you that Wowhead hasn't really updated everything yet, especially for the pure caster classes. Don't forget to reload the default weights if you want to see the new defaults.

I hope to have the new gems sorted out sometime next week, but I'll keep you guys posted.

Received the same error as posted below the other day on a Priest doing an inspect of a Paladin. As well, when any of the gem display options are enabled, get tons of "WeightsWatcher: Unknown gem ID..." text spams mousing over links, items & inspect frames.

For the "100" default mastery weights added previously, mastery has greater or lesser benefits for different classes and specs. And the other default weights in the mod don't appear to have changed between before Cata and now (doing a diff on defaults.lua from 1.3r4 & 1.3r1).

Which makes the default weights this gives now essentially useless. Sure, you can go into the /ww weights frame and manually modify everything to, say, Wowhead weights. But that's a giant hassle when you have several active characters. When other mods like this provide good Cata-adjusted default values, why bother spending the time?

Hope this is updated soon.

I'll get a new version out with Wowhead's weights as soon as I can. The other bug and the gems will unfortunately have to wait until I get my first paycheck (hopefully Monday!), since I can't actually afford my WoW subscription until then.

Received the same error as posted below the other day on a Priest doing an inspect of a Paladin. As well, when any of the gem display options are enabled, get tons of "WeightsWatcher: Unknown gem ID..." text spams mousing over links, items & inspect frames.

For the "100" default mastery weights added previously, mastery has greater or lesser benefits for different classes and specs. And the other default weights in the mod don't appear to have changed between before Cata and now (doing a diff on defaults.lua from 1.3r4 & 1.3r1).

Which makes the default weights this gives now essentially useless. Sure, you can go into the /ww weights frame and manually modify everything to, say, Wowhead weights. But that's a giant hassle when you have several active characters. When other mods like this provide good Cata-adjusted default values, why bother spending the time?

Looking back in my BugGrabber log, that particular error did not occur with 1.3r3. A different error did, however:

<snip>

Only tried WeightsWatchers again after WoW 4.x came out as of v1.3r3, due to Mastery finally being added to the weights. And that usage only lasted a day until 1.3r4 came out, when the above error did not reoccur.

But the previously posted error still does occur with 1.3r4. In addition to the previous circumstance, have since seen it _always_ happen when SHIFT-clicking an item (that can accept gems) to open the gem-add frame on that Paladin. But this time with Libram of Valiance in the ranged slot instead of the other one.

Thank you for the update. Today's my second day at the new job, and I'm still settling in, but I will look at this first once I have time for WoW again.

On a related note, the Cata gems will be second in line. Hopefully I can get them done by the time people are ready for them, but it's not a small task. Feel free to bug me about it if I'm taking too long.

Originally posted by IQgryn Thank you for the very detailed bug report! I will unfortunately be unable to work on this until I finish moving, but it's on my todo list. Did this error also happen with 1.3r3, or is it new to 1.3r4?

Sorry for the response delay here.

Looking back in my BugGrabber log, that particular error did not occur with 1.3r3. A different error did, however:

Only tried WeightsWatchers again after WoW 4.x came out as of v1.3r3, due to Mastery finally being added to the weights. And that usage only lasted a day until 1.3r4 came out, when the above error did not reoccur.

But the previously posted error still does occur with 1.3r4. In addition to the previous circumstance, have since seen it _always_ happen when SHIFT-clicking an item (that can accept gems) to open the gem-add frame on that Paladin. But this time with Libram of Valiance in the ranged slot instead of the other one.

Thank you for the very detailed bug report! I will unfortunately be unable to work on this until I finish moving, but it's on my todo list. Did this error also happen with 1.3r3, or is it new to 1.3r4?

Originally posted by Zidomo A bug that has occurred under a certain circumstance with 1.3r4.

Mouse over Cookie's Stirring Rod in the BankItems inventory list that the alt has equipped in his ranged slot. The comparison tooltip comes up (via tekKompare) & four of the following error are thrown:

<snip>

And as mentioned, 3 more "WeightsWatcher-1.3r4\\WeightsWatcher.lua:136: attempt to perform arithmetic on field '?' (a nil value)" errors occurring at the identical time. Not posted as doing so goes over the post character limit.

Mouse over Cookie's Stirring Rod in the BankItems inventory list that the alt has equipped in his ranged slot. The comparison tooltip comes up (via tekKompare) & four of the following error are thrown:

And as mentioned, 3 more "WeightsWatcher-1.3r4\\WeightsWatcher.lua:136: attempt to perform arithmetic on field '?' (a nil value)" errors occurring at the identical time. Not posted as doing so goes over the post character limit.

This version is a bugfix-only release. It fixes a nil error that happened when using TipTac. I cannot guarantee that unparsed/unweighted lines will be marked as such when using TipTac, as I don't have enough time for thorough testing at the moment. However, the scores will show up now. Thanks to Ambar0691 for the bug report.

On a related note, I will probably be updating infrequently for the next month or so. I am moving and starting a new job shortly after Thanksgiving, and I'll be out of town for several days on either side of Thanksgiving visiting family.

As always, feedback is welcome and appreciated. Please respond here, by private message, or e-mail us at [email protected]. This release I'm especially looking for errors that crop up with tooltip mods, whether they are nil errors or just WeightsWatcher not marking things appropriately.

This update should make mastery rating work. See the change log for more information and the rest of the changes. The default weights are probably horribly inaccurate for most classes/specs until WoWHead updates theirs or I find a better source.

Death knights' default weight names changed. The weights themselves did not, except, of course, Blood DPS and non-Frost tank weights were removed. If you want the new names, you'll have to reload the default weights and delete the old ones.

As always, feedback is welcome. Please respond here, by private message, or e-mail us at [email protected].

Useful new weights will have to wait until WoWHead has updated theirs. They have made a token "update" that just adds mastery rating to every class/spec with a weight of 100, but no other changes that I can see.

I'll try to upload a version that will let you set a weight for mastery later today. I'll probably make mastery default to 100 for now, but the weights will be horribly inaccurate for certain classes and/or specs. I know that at least shadow priests (and the other two specs, really), value spirit way more than they used to, but I don't do enough theorycrafting to really put a useful number on it. I also don't play all 30-odd specs.