Simulationcraft 6.0.2 – New Features

Now that we’re made the transition into raiding in a post-6.0.2, pre-level-100 world, I wanted to bring you up to speed on what’s been happening in Simulationcraft in the past few months.

Simulationcraft 602-1 was released on Tuesday, and you can get it at the usual downloads page. As you’d expect, it’s updated with the new mechanics that patch 6.0.2 brings to the table, and works seamlessly for characters of level 90 to 100. Default profiles have been updated, though we’ve removed the old normal T16 profiles and renamed the old heroic profiles “T16M” (since it’s now Mythic difficulty).

I’ve ironed out all of the bugs I’m aware of in the paladin module, so Ret and Prot should be working well. I think most of the other modules are too, though I can’t personally vouch for them since I haven’t worked on or tested them. But if you want to sim your Ret or Prot paladin, you can be pretty certain the results are accurate. And as always, if you do find a bug, let me know ASAP so I can look into it.

What I really want to go into today are the other changes and new features, though.

Automation Tab

Simulationcraft’s Automation Tab

The automation tab is new to SimC if you haven’t been using the alpha builds. It’s an interface that lets you quickly generate profiles containing many different actors (SimC’s term for an individual player or boss) with different configurations of talents, glyphs, gear, or even action priority lists. If you’ve been following the blog, then you know I wrote a tutorial (part one, part two) explaining how to use the tool to compare different options.

I’ve been using this tool heavily during the last three or four weeks, because I’ve been doing a lot of theorycrafting about talents, rotations, and so on. For example, I used it heavily while determining the best default action priority list for SimC. I hope to find time to write a blog post describing that process in the next week or so. Likewise, it’s immensely useful for comparing different talent configurations, like so:

DPS and HPS rankings for different talent configurations.

The automation tool makes it easy to perform simple comparisons, like which talents or glyphs work best, without needing to know much more than the basic SimC syntax you’d use to tweak a profile. And the whole tool has mouseover tooltips that give instructions on how to format the text for each box, just in case you forget.

Options Tab

The new Global Options tab.

The options tab has also gotten a bit of an overhaul. It’s now separated into three columns according to category. Basic options that are applicable to most players, like number of iterations, fight length, and options related to importing characters are in the left column.

The center column has a bunch of options related to tanking and boss selection. This is where you can specify things like the number of enemies, target (boss) level and race, and the TMI window length you want to use. But I’ve also added a new option called “Target Type” that lets you select what type of boss you want to fight. Included are options for Custom (if you want to define your own within the profile on the Simulate tab), Fluffy Pillow (not very well calibrated), Tank Dummy, and TMI Standard Boss.

Target Type drop-down box.

TMI Standard Bosses are pretty much how you remember them. Now that there’s no more 10- vs. 25-man formats to deal with, we just have one boss for each difficulty. They all use the new nomenclature, so they’re T16L/T16N/T16H/T16M for this tier and T17N/T17H/T17M for tier 17. Each boss will be roughly tuned to match the damage output of a very tough 20-man raid boss (ex: Garrosh).

You might have wondered what “Tank Dummy” bosses are. These are the tank dummies you can find in Shattrath (outland) on the beta servers, which come in Weak, Dungeon, Raid, and Mythic versions. These are all programmed to match the damage output of the dummies in-game, so if you’re in beta you should be able to directly compare sims against these dummies to in-game logs against those exact same dummies.

Tank Dummies!

One word of warning, though: the Target Type drop-down determines what boss you get. In other words, if you want a TMI Standard Boss, you have to set the Target Type to “TMI Standard Boss.” It doesn’t matter what you choose in the TMI Standard Boss drop-down box if you haven’t told the sim you want a TMI Standard Boss in the first place! The same is true for the Tank Dummy drop-down – you won’t get a Tank Dummy if you have Target Type set to something else.

If the sim can’t figure out what you want (e.g. if you chose a Target Type of “Tank Dummy” but leave the Tank Dummy drop-down set to “None”), it will give you a Fluffy Pillow as a consolation prize.

Spell Query Tab

One tool that theorycrafters have had in their back pocket for quite a while is SimC’s “spell_query” command-line syntax. This lets you query the spell data directly to find out what it says. For example, with a quick call to spell_query, we can answer lots of questions about Crusader Strike:

SimC’s spell_query command-line interface.

This tells us most of the pertinent information: resource cost, spell level, range, gcd, cooldown, and a list of all spells that affect Crusader Strike. The “Effects” section tells us about the stuff that’s unique to CS: It uses normalized weapon damage, does 100% of that weapon damage, and gives us a charge of Holy Power.

The functionality of spell_query is now built into the GUI so that you don’t have to worry about loading up a command prompt and remembering syntax. Now, you can just switch to the Spell Query tab and use the convenient drop-down boxes:

Spell Query Tab

This interface lets you choose the data source (e.g. “spell” or “talent” or so on), filter (“name”, “id”, etc.), and then an operator and an argument. So for example, choosing spell.id>=1 will give you the data for every spell in the game. This also has a “save to file” option in case you want to save all of that data to a file to search through later. More commonly, you’ll just use the interface to search for e.g. spell.name==crusader_strike to get the data for the specific spell you want.

Reporting Features

We’ve also made some major changes to the html reports that Simulationcraft generates. In some cases, they reflect not just a change in display, but a change in how we do things “under the hood” within the program itself.

For example, if you’ve ever generated stat weights in SimC, you know that you have to choose what metric you want to use to calculate those stat weights. You have your choice of DPS, DTPS, HPS, TMI, and a bunch of other metrics, but no matter what you choose, the sim only gives you a table and graph showing stat weights for that one metric. If you ran a sim generating scale factors for TMI, and then wanted to know how those same stats stacked up for DPS, you’d have to re-run the entire sim. And if you’ve done this recently, you know that generating stat weights can take a reasonably long time.

That’s all changed in SimC 602-1. Now, when you generate stat weights, you’ll see something like this:

New Stat Weights display.

Looks the same, right? Look closer. In addition to the table giving you the stat weights for the metric you’ve chosen (in this case, TMI), there’s a collapsible heading called “Scale Factors for other metrics.” If we click on that, we get….

More stat weights!

Yes, the sim calculates stat weights for every metric simultaneously now, and the report contains tables for all of them. So at the same time that we found

Haste>Mastery>BonusArmor>Versatility>Crit>Str>Multistrike

for TMI, we also found out that

Str>BonusArmor>Haste>Multistrike>Crit>Versatility>Mastery

for DPS.

Right now, the only plot that we generate is the one you request (again, in this case TMI). It would have cluttered things up too much to create stat plots for each metric, and at any rate, we’re moving to a new plotting interface in the near future that will let us store all of that data in one plot and let you choose what you want to see in real time. So eventually, you’ll be able to switch seamlessly between scale factors for TMI or DPS or anything else within that same plot. Pretty nifty.

Another new feature on the reports is tooltip integration. If you look at the Abilities or Buffs table or the Gear section, you’ll notice that these components now have wowhead tooltips:

Wowhead tooltips on spell names.

This makes it easier to identify that buff or proc you don’t recognize without having to tab out to a browser. Note that these are disabled on simulations with many actors because they slow down the report pretty appreciably, so we only use them for sims with a handful of players.

Moving further down the report, I want to draw your attention to a section that doesn’t often see much use – the Action Priority List section. This gives us the action priority list that the actor uses in the sim, and at the end, there’s always been a “Sample Sequence” that looks something like this:

Sample Sequence in the Action Priority List section.

This sample sequence is coded to the APL, and in theory lets you see exactly in what order you’re casting things. If you mouse over one of those letters, it will also tell you the time, target, your resources at the time (mana and holy power), and what buffs were active.

Which is all well and good but…. this format is really tough to understand, at least for a human. Most people will have trouble remembering what each of the 40+ letters means, and mousing over each entry isn’t very efficient. So I added another visualization that’s a little easier to work with.

If you’ll note, there’s another collapsible section called “Sample Sequence Table” underneath the alphanumeric block. If we click on that, we find…

Sample Sequence Table Display.

This is the same data, but put into a table format that’s easier to read and work with. You can see exactly what’s cast, the timestamp of the cast, the resources, the buffs – everything you can get out of the alphanumeric block. But this version you can visually scan very easily to identify particular spells, or do a simple text search (e.g. finding “judgment”) to find a particular spell.

This is mostly useful for debugging action priority lists. For example, you can go through this step by step to see if the actor is really doing what you think they should be doing. And if not, it can give you hints as to what mistakes you may have made in the APL.

Simulationcraft Addon

One final change is outside the program itself. Have you ever wanted to import your current character, but realized that you just changed some gear and the armory hasn’t updated yet? Or maybe you’re in game, swapping pieces of gear around trying to figure out which configuration is best, and don’t feel like logging in and out over and over to keep updating the armory. Or maybe you’re on a beta server, so you can’t even use the armory for import! If you’ve ever found yourself in one of those situations, you were probably wishing there was some better way of getting that character info out of the game and into Simulationcraft.

Over the summer I wrote an addon that will generate a Simulationcraft profile for your character while you’re in the game. It pops up a small text window with that information, which you can then copy and paste directly into SimC’s “Simulate” window. Quick, simple, and painless. This addon should work on live servers as soon as 6.0.2 is up and playable.

12 Responses to Simulationcraft 6.0.2 – New Features

This all looks really neat, I particularly like that it now generates weights for all metrics at once, because I would CONSTANTLY setup a sim, for some ridiculous amount of iterations (at least in terms of how long it would take my computer to run it), then go watch tv for a while, come back an hour or so later to check out the results, only to find that I never set it to scale over TMI. Then I’d swear a bunch and have to rerun it all over again.

My only question is how impactful would you say that generating all of the metrics has on the speed of the sim? And depending on that answer, if it’s possible to turn it off and only generate the one set of weights to save time?

The other question I have, is in regards to the sample you used when you talked about this feature. And how that compares to the stat priorities you gave in the 6.0.2 Survival Guide post. Specifically that here haste seems to have performed SIGNIFICANTLY better than it did in the survival guide. Now I did notice that the samples in this post used the T16H boss, whereas I believe in the survival guide you used one of the T17 ones, so my first thought was that this may have been the reason.

But I recall that in one of the comments of the survival guide when someone was asking about which boss was best for them to sim against you mentioned something along the lines that if you used too weak of a boss that haste’s value would start to get devalued because the impact of back-to-back hits would be less important. But if anything the opposite seems to be happening here, haste performed very well in this post against the T16H boss, while it didn’t do so well in the guide against the T17 boss.

There’s no speed cost to generating stat weights for all of the metrics. We store each metric individually at the end of each iteration anyway, so it’s been calculating everything we needed to do this for… well… as long as the sim has calculated stat weights at all, probably. All I had to do was tell it to actually store all of them and display them on the plot. Turning that feature off would save less than a second no matter how long your sim is.

I love it that the spellquery has finally been implemented in the GUI. I just got one question. in example, I was looking at Holy Shield, it says “when you block, you deal $\$157122s1$ Holy damage to your attacker” what is the variable $\$157122s1$ ? do i find this somewhere? because I wanna know how much damage Holy shield does to my attacker.

That variable refers to spell id #157122, effect #1. So to find the AP coefficient that Holy Shield uses, you just need to look at effect #1 of that spell id (which is also named Holy Shield, and should show up if you spell query for spell.name==holy_shield). In this case, that coefficient is 0.75.

Not sure if this is the best place to let you know about it, but something is off with WoG (And harsh word) HP scaling in the latest version. A 3 HP WoG is correct, but 1 and 2 HP WoGs seem to be 1/10 and 2/10’s of the value of a 3HP rather than 1/3 and 2/3 of the value.