Trinket Tip Tabluation
October 12, 2016 3 Comments
Aka “How to make big amazing graphs of trinket data for your spec just like Binks does!”
For those just tuning in, I’ve put together some stuff so I could compare trinkets easily when also considering ilvl differences. Most of the trinket comparisons so far have been like this (from Frosted’s post on Altered Time):
This is good if you’re comparing everything on the same item level, but most of the time there’s going to be a difference. That’s why I’m producing this:
The graph is a bit easier to read in the Google Doc version as you can mouse over the individual points to see which trinket it is and what the total DPS value is. You can see the live spreadsheet here, which covers Arcane & Fire.
This post is about how you can reproduce what I’ve done to build your own trinket graphs via SimulationCraft.
Step One: Someone set us up the sims
Obviously, the first thing is to grab SimulationCraft.
Secondly we need to create “master sim” files, or .simc profiles that contain references to other profiles. This is so we can run one default profile multiple times with various overrides to generate results like the one I include from Frosted earlier.
#!simc optimal_raid=1 html=Mage_Arcane_BC_Trinkets_840.html iterations=25000 threads=2 fight_style=Patchwerk Mage_Arcane_T19H.simc name=Caged_Horror trinket1=,id=136716,ilevel=840 Mage_Arcane_T19H.simc name=Chronoshard trinket1=,id=137419,ilevel=840 Mage_Arcane_T19H.simc name=Corrupted_Starlight trinket1=,id=137301,ilevel=840 Mage_Arcane_T19H.simc name=Devilsaur_Shock_Baton trinket1=,id=140030,ilevel=840 Mage_Arcane_T19H.simc name=Elementium_Bomb_Squirrel_Generator trinket1=,id=137446,ilevel=840 Mage_Arcane_T19H.simc name=Eyasus_Mulligan trinket1=,id=141584,ilevel=840 Mage_Arcane_T19H.simc name=Eye_of_Skovald trinket1=,id=133641,ilevel=840 Mage_Arcane_T19Honuse.simc name=Figurehead_of_the_Naglfar trinket1=,id=137329,ilevel=840 Mage_Arcane_T19Honuse.simc name=Horn_of_Valor trinket1=,id=133642,ilevel=840 Mage_Arcane_T19H.simc name=Infernal_Alchemist_Stone trinket1=,id=127842,ilevel=840 Mage_Arcane_T19H.simc name=Infernal_Writ trinket1=,id=137485,ilevel=840 Mage_Arcane_T19Honuse.simc name=Moonlit_Prism trinket1=,id=137541,ilevel=840 Mage_Arcane_T19H.simc name=Naraxas_Spiked_Tongue trinket1=,id=137349,ilevel=840 Mage_Arcane_T19H.simc name=Oakhearts_Gnarled_Root trinket1=,id=137306,ilevel=840 Mage_Arcane_T19H.simc name=Portable_Manacracker trinket1=,id=137398,ilevel=840 Mage_Arcane_T19H.simc name=Stormsinger_Fulmination_Charge trinket1=,id=137367,ilevel=840
This is the 840 ilvl set that I used. The first few rows control things like optimal raid settings (ie: full raid buffs, bloodlust, etc), the name of the output file (html=filename.html), the number of iterations (ie: how many times it runs each set) and the number of CPU threads used (set to 1 if you’re running this in the background, or increase if you’re doing an overnight run and you have a multi-core CPU).
The rest of the lines are broken down like this:
- Mage_Arcane_T19H.simc – the sim profile used
- name=Trinket – the name of the particular entry in the combined sim, in this case being the trinket
- trinket1=,id=X,ilevel=840 is where we override the Trinket1 value of the .simc profile referenced. The ID is the item ID, and the ilevel command allows us to tweak the item level of the item without going into all those confusing bonusID values. You can use overrides like this to change items, talents & artifact traits; ie: pretty much anything not defined in the APL.
In order to make generating these files easier I built a spreadsheet to do it. Note that some of the Arcane lines refer to a Mage_Arcane_T19Honuse.simc file. This is because the default Arcane profile doesn’t have a line for using trinkets, as not all default profiles will have one.
Save this into a text document and change the extension to .simc (I used Arcane_Trinket_Combo_840.simc as the underscores are useful later).
Step 2: Run Sims, Run
The next step is to run the simulations. I prefer using .bat files to launch multiple .simc files in sequence via commandline so I can leave my computer to do it overnight.
start "simc" /d "c:\simc\" /wait simc.exe Arcane_Trinket_Combo_Static.simc start "simc" /d "c:\simc\" /wait simc.exe Arcane_Trinket_Combo_840.simc start "simc" /d "c:\simc\" /wait simc.exe Arcane_Trinket_Combo_850.simc start "simc" /d "c:\simc\" /wait simc.exe Arcane_Trinket_Combo_860.simc start "simc" /d "c:\simc\" /wait simc.exe Arcane_Trinket_Combo_870.simc start "simc" /d "c:\simc\" /wait simc.exe Arcane_Trinket_Combo_880.simc
The bits you want to change here are the “c:\simc\” path to where-ever you have SimulationCraft located, and the .simc file names. Save this into a text file and change the extension to .bat.
Double click to run. Should launch one command line window which then spawns a second for each line in the file.
Then sit back and wait (or go to bed & sleep).
Step 3: Refining Raw Results
So now you have some sim results! Now we need to convert that data into something that’s easier to read/compare.
Go look at the Mage Trinket Comparisons spreadsheet, on the Arcane T19H Raw Data tab. Column A is just me copy/pasting the un-ordered results from the simcraft report (and clearing the formatting). Column B is for specifying the item level of the trinket in that particular run.
Columns C, D and E are where the fun stuff is.
Column C looks for the “:” character and grabs everything from the start of the result name up to the space before the colon character: =LEFT(A2,FIND(“:”,A2)–2)
This is to grab the trinket name out.
Column D combines the trinket name from C with the item level from B to create a lookup reference for the table sheet (more on that later).
Column E grabs the 6 characters that correspond to the DPS number & converts it into a number rather than text: =VALUE(MID(A2,find(“:”,A2)+2,6))
Next we jump over to the Arcane T19H Data tab and look at the data cells starting at B2.
=IFERROR(vlookup(CONCATENATE($A2,“_”,B$1),‘Arcane T19H Raw’!$D:$E,2,FALSE),“”)
Firstly, the IFERROR command says “if this returns an error, return this instead” so if a particular lookup value doesn’t exist then the cell is empty rather than showing #N/A or #ERROR.
The vlookup (vertical lookup) searches for a value (the trinket name & item level) in the first column of a series of cells (columns D & E on the Raw tab) and returns the second column result (ie: the DPS value). This is why Column D from the Raw tab is so important: it’s the key value to look up for each trinket/item level combo.
Once that brings in the DPS value into our Data table it’s just a case of inserting a graph using that data and you’re done.