This repository has been archived by the owner. It is now read-only.
Addition to SimulationCraft to get best secondary stat distribution
Switch branches/tags
Nothing to show
Clone or download
Latest commit 5406d78 Jul 30, 2018


This tool is deprecated with the launch of the Battle for Azeroth Prepatch. See bloodytools for an improved and continued tool.

Automatation tool to calculate best secondary stat rating distribution for dps for a given profile of a World of Warcraft character using SimulationCraft. It's designed in a way that should make it easy to add different approaches to solve this problem.


You need a working SimulationCraft version, Python 3.5 or newer and to install the requirements.txt.


Download or clone this repository into your SimulationCraft directory. simulationcraft\bloodytrinkets


Start your python environement. Install dependencies.

$ <env_name>\Scripts\active
(<env_name>)$ pip install -U -r .\requirements.txt

pip freeze should return something like this:

-e git+

Getting started

Edit to your liking using any text editor. Start your python environement. Start bloodystats.

$ <env_name>\Scripts\active
(<env_name>)$ python .\


python uses all data from to calculate one data set. Change your wanted values in that file first, if you want to repeat these later on again or just change one entry at a time. python --class shaman will use but will overwrite the class setting to be "shaman" instead. Pay attention to the class and spec combination. If your does have beast_master set as spec, bloodystats will put out an error, when you try the previously mentioned input. There is no beast_master shaman.

If no custom_characzer_stats are provided bloodystats attempts to use the standard profiles of SimulationCraft.

For further params please read or python -h or python --help.

Take special note about possible different talent combinations. Bloodystats allows several short hands and different input to allow a quick setup. You have two different ways of using these. Please note that the standard talent combination from the basic profiles from SimulationCraft wont be used.

Using custom_talent_combinations.simc and

  • enter your wanted talent combinations into "custom_talent_combinations.simc" as new lines
  • change talents = "WHATEVER" in to talents = ""
  • start as always (probably python

Using custom_talent_combinations.simc but no

  • enter your wanted talent combinations into "custom_talent_combinations.simc" as new lines
  • start using python --talents ""

Example for "custom_talent_combinations.simc":


Using built in talent combination generation:

  • two digit input will generate all dps talent combinations for the spec, where the last two dps rows are set to the value you input (1 left, 2 middle, 3 right) example: --talents 21 (python --talents 21)
  • seven character input will generate all dps talent combinations for the spec, where all x'ed positions are filled with dps talents

Due to the seven character input one beeing slightly tricky at first let me explain that further. Example: --talents 211xx23 This input will generate 9 talent combinations IF both x are in rows with dps talents. It'll generate 3 talent combinations, if one x is a non dps row and it will generate only one talent combination, if both x are non dps rows. Example: --talents 2113323 This input will make bloodystats run exactly one talent combination.


A successful run creates a txt file in the results/ directory. Here you can find the best performing secondary combinations. Best performing in this case means "within 1% of the best found value". Your result file might look like this:

1001331 2244768 12371 8371  12371 3871
        2244768 12371 8371  12371 3871
        2244246 10371 10371 12371 3871

Lines starting with a number instead of spaces indicate the start of a new calculation group. The initial number represents the talent combination. Followed by DPS, crit, haste, mastery, and finally versatility. Lines starting with empty spaces are saved calculated values that performed within 1% of the best secondary rating combination. These should help to get an impression of how important or unimportant it really is to perfectly match the best distribution.

The values of the example above are explained again in this table.

talent combination dps crit haste mastery versatility
1001331 2244768 12371 8371 12371 3871
2244768 12371 8371 12371 3871
2244246 10371 10371 12371 3871


You can start right away. The strongest need right now would probably be the implementation of tests. But as I want to merge my different projects into one with the coming Battle for Azeroth expansion, be prepared, that those are probably going to see heavy changes. Anyway, I'd love to help if someone is interested in improving or adding something.


General support can be found at in the channel #bloodytools. In addition to this you can easily open issues in the repo.