Introduction

Welcome to Magicsim, my name is Semicolon Dash (Smei Dsah/semicolondash#3014 on WCP Discord). If you don’t know who I am, I’m an assistant administrator and the shadow content manager. I also do a lot of simming stuff behind the scenes and am the creator of Magicsim. So what is Magicsim?

You’ve probably seen it mentioned a fair bit in the Discord and in posts like Publik’s simming methodology postIt’s a simming program similar to Raidbots, except more accurate. It’s made for Shadow Priests but usable by all DPS specs. In fact, under the hood, Magicsim and Raidbots are powered by the same thing, SimulationCraft! However, how Raidbots and Magicsim use SimC is quite different. Raidbots is a more simple implementation which for most people using it, is the equivalent of running a single Patchwerk sim (no movement, no raid events, just tunnel DPS).

Magicsim is much more sophisticated; it uses batches of sims called composites and averages them together to model the effects of things like movement and raid mechanics on your DPS. This allows Magicsim to be more accurate than Raidbots and sim things ranging from individual boss fights (modeled off of heroic) to Mythic+ models and full raid composites.

Why Magicsim?

  • More accurate fight modeling – this means stat weights that are more stable across a raid and model more variable stats better, even for individual sims.
  • A wide variety of fight templates – Magicsim has over 100 different fight templates which capture generic raid fight styles, M+ boss styles, M+ trash waves and pull patterns, and more specialized tuned raid boss models. This means that you can find a profile that accurately models most situations.
  • Statistical advantage – Our individual fight models are better, yes. But we also have power in numbers. By running multiple sims per composite, we further get more data points and get a better, more holistic view of stats.

There is one downside here to all this though: as a result of the enhanced complexity and devotion towards accurate results, sims take longer and as they get more sophisticated, are more likely to crash. As a result, I’m looking into measures to improve the stability of these models and detect these issues before you guys see them. The end goal for Magicsim is simple though: “Raidbots but more accurate.”

Requirements

Magicsim currently is only supported on Windows computers (both x86 and x64). It requires an active internet connection and around 500MB storage space is recommended to allow space for storing SimulationCraft versions.

Currently, Magicsim uses your computer to run simulations, and as such, this means your sims will take longer to run if you have a computer with a slow processing speed. I am working to change this in the future to use cloud infrastructure to sim off-computer (similar to Raidbots).

You do not need to have SimulationCraft already installed on your computer. Magicsim will install this for you (and will keep it up to date).

Download

The newest version of Magicsim can always be found here.

Feel free to leave bug reports on GitHub, as well as contribute your own suggestions/fixes by pull request (I may be picky about style/design of merged code).

Usage

Starting Magicsim:

Using Magicsim is very straightforward. Once you have downloaded the .zip file from the GitHub link above, unzip it to whatever directory you prefer (C:\Users\[username]\magicsim for example).

Inside that directory, double-click magicsim.exe to run Magicsim. Please note that you may be prompted for automatic updates if available (these updates have their SHA-256 hash checked for security purposes).

Picking Characters:

You have two options:

  1. Sim from Armory – Enter your character name, region, and realm and SimC will pull your character information from Battle.net directly. Warning: You will not get Azerite traits populated by default this way. Blizzard does not send all gear data through the Armory and it may be inaccurate. This method may be disabled in the future if data quality deteriorates. 
  2. Sim from /SimC – Using the SimulationCraft Addon, enter “/simc” in-game and copy-paste the entirety of the output into the Magicsim window and continue! This method is the recommended method for best accuracy and will include information about Azerite traits.

Once you have entered a character, you have a chance to customize that character (including changing item-level, raid consumables, and Azerite) before adding them to the sim.

Once you have finished adding a character to the sim, you have the option to keep adding more characters by repeating these steps for as many characters as you’d like.

Character configuration page for Magicsim
Configuring the Sim:

When all characters are added (or in-between adding characters), you can choose to set the parameters associated with the sim run. The options are divided into two groups, simple and advanced options.

Simple Options

These options are at the core of every sim and control important aspects of SimC.

  • Model – This determines which composite you are running. For example, “Uldir Composite 1.0” is a 10-boss composite which is supposed to simulate the Uldir raid. Larger composites take longer to run than individual fights.
  • Processes – This determines how many sims Magicsim runs simultaneously. I would heavily recommend not changing this setting unless you have a multi-socket motherboard or know what you are doing. Changing this setting may result in system instability.
  • Threads – This determines how much of your CPU Magicsim uses per process. This means that if you have 2 processes set up with 4 threads, Magicsim will use a total of 8 threads. This value is automatically selected and is optimal for most users.
  • Fixed Error vs Fixed Iteration – There are two different ways a simulation can run. One method is called Fixed Iteration which, for Magicsim, means that it will always run 10,000 iterations for every sim regardless. This tends to give consistent, accuracy sims for most specs. The other method is called Fixed Error, which runs as many iterations as necessary to reach an error of 0.05% (with a max of 10,000 iterations). Fixed Error is recommended unless you want slightly higher accuracy with slightly higher sim runtime.
  • No Stat Weights – If you check this box, Magicsim will not generate a Pawn string for you. This will make sim runs go approximately 5x faster.
  • PTR Mode – Enables a flag to use PTR spell data when possible. Avoid using this flag unless necessary to avoid issues.

Simple customization screen for Magicsim

Advanced Options

These options are more niche and of limited scope or appeal.

  • Reforging – Magicsim natively supports reforge plots. Which means if you supply a Step Size (amount of stats to add or remove per data point) and Step Amount (max amount to add or remove across all stats), SimC will generate DPS points (not stat weights) by shifting stats in all possible allowed combinations. Using these DPS points, Magicsim creates a color-coded 3D plot to help illustrate what stat distributions are optimal.  Some notes:
    • I suggest a step amount around 4-5 times larger step size. A smaller step amount may not have enough data points and a larger step amount may have too many data points. 
    • I don’t recommend reforging all four stats at one time. Runtime increases exponentially with the number of reforged stats and the graphs become harder to read as some data is lost in the rendering process.
    • Please note that reforge sims take substantially longer to run. Especially in sims with multiple characters.
    • See here for more information about what reforge plots look like.

Advanced configuration screen for Magicsim

Once you are done configuring, hit the simulate button and wait for results to finish. Depending on your options selected this can take anywhere from 1 – 30 minutes (as we migrate to cloud infrastructure, sim times will go down, ideally to the <1-minute range).

Viewing Results:

Once your sim has finished, you will be brought to the results page. Here you will see a list of all characters simmed (ordered by DPS). You can click a character to get their Pawn string as well as the total damage they dealt during the sim. These results (as well as SimC HTML output) will be saved in a folder inside the savedResults directory in your Magicsim install. The name of this folder matches the name of sim run which you can change at the results page.

You can revisit this results page at any time by going to Saved Results on Magicsim startup and selecting the name of the sim run that you want to view.

Results page of Magicsim

Viewing Reforges:

If reforge simming options were selected then the Reforge Results tab will be active. Inside, you will find a 3D reforge viewer for each character in the sim run. In the plotted graph (which is scaled to fit on screen), the cyan is higher DPS while crimson is worse DPS.

Viewer Controls:

  • Pan – Middle mouse hold and drag
  • Rotate – Right mouse hold and drag
  • Zoom – Scroll wheel

Support for this is fairly experimental and it may break/be unstable. If you run into any issues, try to document and report it to me.

Reforge plot 3D viewer for Magicsim

That’s everything Magicsim (currently) has to offer in terms of core functionality!

Feedback and Bugs

Magicsim, SimC, and World of Warcraft are all in development and so things are liable to break or just change. Sometimes it’s me, sometimes its SimC, and sometimes it’s even Blizzard. I’m trying to get better ways to diagnose and track issues as they come up, but for the time being, and for everything that falls through, don’t hesitate to reach out to me on GitHub through Issues (New Issue) or on Discord (Semicolondash#3014 as previously mentioned).

FAQ

  • My sims are taking a long time, are they broken?
    • Unless it’s taking an extremely excessive amount of time (IE: 10 minutes or more for a single sim), it’s probably taking its time. Magicsim is pretty good at catching failed sims and reporting them and ending the run. Have a little patience.
  • First time running Magicsim, immediately crashes after acquiring SimC (or just immediately after), why?
    • You need to run Magicsim as administrator. Likely because of where you installed Magicsim or because of system configuration, your account doesn’t have the permissions necessary to extract and run SimC properly.
  • Magicsim is hung on trying to download SimC, whats wrong?
    • This could be a firewall issue. Or SimC’s download server could just be a little bit slow. Usually a rule of thumb is to give it like 5-10 minutes tops before retrying. If you constantly get errors during this part you may want to check your firewall/router/connection.
  • When I start the sim it immediately crashes. What do I do?
    • It looks like either the 1st sim in the run is broken or the APL for your spec is broken (or SimC completely is just broken!). When in doubt, run a simple model like Varimathras and see if your sim runs. If it still fails, your spec is completely broken. If it succeeds, it’s likely that one of the raid events in the model is crashing your spec’s APL. Report it and I’ll try to see to it that it gets fixed or the right people hear about it (or try…).
  • The sim runs for a while then crashes consistently at the same time?
    • Probably means that specific fight in the model has a raid event that is broken for your spec. This can be either due to a bad fight configuration in Magicsim or a bad APL in SimC.