Step 1: Download SimulationCraft
The SimulationCraft website is simulationcraft.org. Their download page will have the latest release in four forms: Windows 32bit, Windows 64bit, Mac OSX 64bit, and raw source code. The prebuilt Windows or Mac package should be sufficient for normal use. However, the release package is not updated that frequently, and can be out of date, especially around patch days where the application needs to update to reflect changes to the game. For this reason, I recommend you always use the latest nightly build of SimulationCraft. The nightly builds are posted at a slightly different site: http://downloads.simulationcraft.org/?C=M;O=D. By default, the page is sorted in descending order of posting, so the latest builds should be at the top. Just grab the one for your operating system of choice. I personally grab the 7z archives rather than the exe installers, but that is a matter of personal preference. You will need 7-zip file manager to extract archives. It is available for free at 7-zip.org.
Step 2: Extract and Run
If you downloaded the installer exe, run it and go through the install process. With the 7z archive, extract it to your preferred location on the system (right click -> 7-Zip -> Extract Here or Extract Files...).
Once finished, run the SimulationCraft program (SimulationCraft.exe on Windows).
Step 3: Importing
You should be greeted by the SimulationCraft welcome screen. At the top are the tabs to configure the various parts of the simulation. We will start with the first one "Import".
You have a number of options here. The two that you will likely use the most are the regular import and the Simc Addon.
For regular import, just input our realm (Garrosh) and your character name and click "Import" just to the right. It will use the Battle.net online API to grab your character data from the armory. If you're a voyeur who wants to simulate other people's characters, this is often your only option.
However, in many cases you want to test different gear sets or talents, and waiting for armory to update or manually editing the differences in the profile can be annoying. For these reasons, I personally prefer to use the in-game SimulationCraft export addon. You can download it from curse or your addon vendor of choice (https://mods.curse.com/addons/wow/simulationcraft). Then, in game, you simply type "/simc" which will bring up a window with a full profile that you simply copy-paste into the Simc Addon import tab. Then, click "Import" in the bottom right to generate the profile.
Step 4: Simulation Configuration
Once you import, you should be taken to the Simulate tab and shown the text of the profile for your character.
You could just hit Simulate! now and get some numbers with the default settings. However, there are some things worth checking in the Options tab.
Here are some of the options of interest:
- Iterations - How many times to run the simulation. More runs decreases variance in the final number. 10,000 and 25,000 are generally good choices. More iterations will take longer to simulate.
- Length - Average length of the simulated encounter. Default of 450 seconds is usually ok, but if you're truly trying to optimize around a specific boss fight you may want to adjust it to match the kill times you are seeing in logs. It will have particular implications with respect to how many times longer cooldown abilities are available. Generally speaking longer fights mean lower DPS as high damage windows like potions and Bloodlust are diluted over a longer time period.
- Vary Length % - Variance in the simulated fight lengths. Again, default or 20% is fine, but if you're trying to simulate a specific encounter, you might lower this to 10% or 0% to reflect the variance in kill times for your specific raid group.
- Fight Style - Patchwerk is the default and usually what's most useful for measuring peak theoretical output, which is probably what you want when trying to figure out stat weights for gear or things like that. The other options introduce other mechanics to the fight like forced movement and additional limited-time targets, which will affect final results. They can be useful for measuring the value of high mobility talents that give you instant-cast abilities.
- Num Enemies - The default is just a single target boss encounter. If you want to measure cleave output on a fight like High Botanist, you can raise the number to something higher. Higher numbers can also give you a better idea of what gear and talents are better for content like Mythic+ dungeons with a consistent high number of targets.
- World Lag - Set it close to your in-game latency
If for whatever reason you want to simulate without having Bloodlust available, you can turn it on or off here.
This tab will let you choose to simulate how increases in specific stats will effect your final output DPS. It's required in order to generate a Pawn string for comparing gear in-game. You can just turn on "Enable Scaling" and "Toggle All Character Stats" to get what you need.
Some stats will scale non-linearly depending on how much of them you already have, or depending on the values for other stats altogether. Certain classes have stat breakpoints after which the value of a specific stat changes dramatically. Plots can help you to identify these points beforehand so that you don't overcommit to a stat where it may be suboptimal.
- Number of Plot Points - Number of stepped stat increases to simulate
- Plot Step Amount - The size of each stat increase step
With reforging no longer being around, you can ignore this tab.
Step 5: Simulation
With everything configured, you can now go back to the Simulate tab and hit the Simulate! button in the bottom right. SimulationCraft will then kick off, and you can go off and do other things while you wait for it to run.
Step 6: Results
Once the simulation finishes, it should automatically take you to the results page. Depending on how you configured the simulation, your results window will have the specific data that you requested.
This is an example of the default DPS-only simulation, with no scaling or plots enabled.
At the top is your simulated DPS, along with a summary of your character profile. As you scroll down, the next section is charts that will show you how your DPS varies over time, your damage breakdown by ability, the variance in your DPS numbers from run to run, and how much time you actually spent casting each ability.
Further down, you will get a breakdown of damage done by each ability, and other data like buff uptime, procs, and resource generation. The rest of the report is miscellaneous data that probably isn't that useful day-to-day.
Next is a result with scaling enabled. Here we can see that the report now includes a table with the scale factors for each stat, showing the relative importance of each one for DPS. There is also a Pawn string that you can copy-paste into the Pawn addon to easily compare gear for upgrades.
Finally, here is a report with plots enabled for all secondary stats. You can see that for my character, there don't appear to be any big nonlinear breakpoints. Mastery is clearly the most important secondary stat, and Haste has a small leveling-off behavior where losing haste is a relatively significant loss, but gaining more does not give an especially large benefit relative to other stats.
SimulationCraft will keep around any profiles and results that you leave open, but to save more results more permanently, hit the Save! button in the bottom right of the Results window.
With these steps, you should now have an ideal DPS number to shoot for and a Pawn string for comparing gear. Read on for some more advanced use cases.
Running Multiple Simulations
You can simulate multiple characters or gear/talent sets against each other, which will generate one result page containing all of the runs. It gives you a nice comparison graph which is useful if you're testing multiple small variations (like various legendaries and set bonuses) and want the data organized neatly. It's also convenient if you want to feel smugly superior to certain other characters.
One important thing to note is that SimulationCraft runs multiple profiles simultaneously. That is, all characters are assumed to be attacking the same target and the target's health is increased to compensate. In most cases where you're comparing small adjustments to the same character, this difference is negligible. However, when running with different characters and/or specs, you should be cognizant of the differences in how and when damage happens. Some characters will do more damage when the boss is at high health, and many do extra damage in the sub-20% execute phase. As you add more characters to the simulation, these factors can potentially skew the results. In the aforementioned example, when simulating together with the lucky demon hunter, we ended up being in execute range for ever so slightly longer (~2%), which resulted in a noticeably higher DPS number for me. As such, you need to be careful in comparing sim results from runs with different numbers of characters. It can however be interesting to import your other raid members and see how you would compare on a boss fight.
Modifying the Action Priority List
The Action Priority List is SimulationCraft's internal rules for how to use your character's abilities during the simulation. Generally speaking, these priority lists are pretty optimal and the developers do a good job keeping them up-to-date. However, you might want to make some adjustments to the list on rare occasions. For example, say you're not really keen on raid consumables. You can adjust the simulation to not use any flasks, food, runes, or potions and see how much damage output you would lose. On every results page near the bottom is a Profile section that has the final profile used for your simulation, including any automatically generated components. If you only import your character talents and gear, SimulationCraft will automatically generate the Action Priority List and insert it after your character data.
You can copy all of the text in this section and paste it back in the Simulate tab. You can create a new profile from scratch by clicking the plus sign at the top of the Simulate window, or just overwrite your existing profile. Then, you can delete specific lines or disable them by inserting a "#" symbol at the beginning of the line.
For example, here I have disabled flask, food, runes, pre-potion, and potion-during-fight.
The result is lower DPS, as expected, but maybe the decrease is acceptable.
--This addon is currently broken for relics (but works for other gear) and so you can ignore this section for now--
As mentioned previously, the SimulationCraft game addon lets you quickly swap gear and talents to generate and test different setups. However, one notable exception is relics, which are permanently socketed into your weapon and thus cannot be swapped in and out. There is a second addon which provides a solution, called SimBuilder (https://mods.curse.com/addons/wow/simbuilder). When installed, it will add a small "SimC" button to the bottom right of your character frame.
In my case the DejaCharacterStats addon covers up the button a bit, but it's still clickable with careful mouse positioning. Clicking the button will open up the SimBuilder menu.
The SimBuilder menu will populate itself with your current gear and talents by default. You can then click and drag items from your inventory (like relics) into the their respective slots to generate a modified profile for comparison. You can then copy paste that profile into SimulationCraft and run as normal.
There are two options for the modified profile "Compare vs Equipped" and "Only Selected". If you select the first, your simulation will run both your current character profile and the modified profile, showing you both of them side by side. If you select the second, it will simply give you only the modified profile. The results should be nearly the same either way; it's just a choice of convenience if you haven't already simulated your unmodified character.