SimulationCraft: A C++ Event-Driven WoW DPS Simulator for Stat and Gear Analysis
Simulationcraft engine/GUI. SimulationCraft allows raid/party creation of arbitrary size, generating detailed charts and reports for both individual and raid performance.
At a glance
- What is it?
- SimulationCraft is a GPL-3.0 C++ tool for exploring World of Warcraft combat mechanics through event-driven simulation. It generates detailed DPS charts and stat weights for raid and dungeon scenarios, letting players make data-driven gear and talent decisions without relying on closed-form approximations.
- Who is it for?
- SimulationCraft is the go-to tool for World of Warcraft players who want quantitative answers about gear and talent choices rather than qualitative opinions. The event-driven engine handles proc interactions and class synergies that closed-form calculators cannot model.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What SimulationCraft Models and Why Calculators Fall Short
World of Warcraft character performance used to be estimated with spreadsheets that applied closed-form formulas: a static attack speed multiplied by a static damage value, adjusted by hit and crit percentages. This approach worked reasonably well when most damage came from direct attacks with predictable mechanics.
Modern WoW class design relies heavily on proc-based mechanics and class synergies: a talent that has a 25% chance to reset a cooldown, an aura that increases the damage of the next ability in a chain, and a trinket that stacks a buff under specific conditions that only trigger during certain procs. Closed-form math cannot accurately model these interactions because the expected value of a conditional proc depends on the probability distribution of every upstream mechanic.
SimulationCraft addresses this with event-driven simulation. Rather than solving for an expected value analytically, it runs thousands of simulated combat encounters and measures the outcome of each. Over enough iterations, the simulated DPS distribution converges to an accurate representation of real-world performance, including all proc interactions.
The README describes this directly: "Increasing class synergy and the prevalence of proc-based combat modifiers have eroded the accuracy of traditional calculators that rely upon closed-form approximations to model very complex mechanics. The goal of this simulator is to close the accuracy gap while maintaining a performance level high enough to calculate relative stat weights to aid gear selection." SimulationCraft supports arbitrary raid and party sizes, generating reports for both individual players and the full group.
The simc CLI and the SimulationCraft GUI: Which to Use
SimulationCraft ships two executables. `simc` is the command-line interface, which takes a parameter file specifying the character, gear, talents, and scenario, then outputs a report. `SimulationCraft` is the graphical user interface.
The README states that the graphical interface is "largely unmaintained" and strongly recommends using the command-line interface instead. This is a significant practical detail: new users who install SimulationCraft expecting a polished GUI should plan to use the CLI from the start.
The command-line workflow is: configure a profile file that describes the player character (importing from the Armory through the GUI, or writing the profile manually), then run `simc <profilename>.simc` to generate an output report. The graphical interface can download characters from the Armory and launch simulations, but its maintenance status means it may lag behind the current game patch or CLI capabilities.
Documentation is on the wiki at simulationcraft.org. The project also maintains a Discord community (SimCMinMax, channel `#simulationcraft`) where active developers are available for real-time questions. The README points to the issue tracker for bug reports and feature requests, noting that opening an issue is more effective than forum posts or chat messages for getting a resolution.
Installing SimulationCraft on Windows and macOS
The primary distribution is through simulationcraft.org/download.html, not through GitHub releases. The GitHub repository has no published GitHub releases. The README notes that the downloads page offers packages for each platform, and releases occur frequently.
The Windows package comes in two forms: a formal installer and an archive that can be extracted to the desktop. Both include the `simc` executable and any required libraries.
For macOS, the package is also available from the downloads page. There is no Linux prebuilt binary. The README says there is no Linux release because "it is so ridiculously easy to build it yourself on that platform", pointing Linux users to building from source. The CMake-based build system supports the standard configure-and-compile workflow on Linux with a C++ compiler available.
The repository's default branch is `midnight`, named after the current World of Warcraft expansion. This means the main branch tracks the current live game data and mechanics. Prior expansion branches are preserved in the repository for historical simulation reference.
Building SimulationCraft with Docker and Profile-Guided Optimization
Docker provides a reproducible way to build SimulationCraft from source without configuring a local C++ toolchain. The Dockerfile in the repository documents both the build and run workflow.
Build the image with a thread count that matches your system:
docker build --build-arg THREADS=2 --build-arg NONETWORKING=1 -t simulationcraft .Run the built image with a SimulationCraft command:
docker run simulationcraft spell_query=spell.name=frost_shockThe Dockerfile uses a multi-stage build. The first stage (Alpine Linux with clang and LLVM) compiles the engine with Profile-Guided Optimization (PGO): it first compiles with instrumentation enabled (`LLVM_PGO_GENERATE=1`), runs a sample simulation to collect profiling data, merges the profiling data with `llvm-profdata`, then rebuilds using the collected profile. PGO lets the compiler optimize hot code paths based on real execution patterns rather than static analysis, producing a faster binary for typical simulation workloads.
The final image includes only `./simc` and `./profiles/*`, keeping the Docker image small. The `SC_DEFAULT_APIKEY` build argument accepts a Blizzard API key for Armory character lookups from within the container.
The SimC Addon for WoW Character Data Export
The RELATED SEARCHES show "SimC addon" and "simulationcraft simc addon" as common search terms, and the CurseForge platform is specifically mentioned as a lookup target ("Simc curseforge"). The SimC addon is a World of Warcraft addon installed inside the game client that exports your character's current gear, talents, and other relevant data into a text block that SimulationCraft can read as an input profile.
The README describes character import from the Armory as a feature of the graphical interface. The addon provides an alternative path that does not rely on Armory availability: you export directly from the game client, copy the profile text, and paste it into SimulationCraft or save it as a `.simc` parameter file for the CLI.
This workflow is the most common way players interact with SimulationCraft. Rather than manually constructing a profile file with gear item IDs, the addon generates an accurate snapshot of the current character state. The profile can then be modified to test hypothetical upgrades (replace one item's stats with another, change a talent selection) before running the simulation.
Stat Weights, Gear Ranking, and What the Output Reports
SimulationCraft's primary output is DPS across a simulated encounter, but the most actionable output for gear selection is stat weights. A stat weight measures how much DPS one point of a given secondary stat (haste, critical strike, mastery, versatility) contributes under the character's current gear set.
Stat weights are character-specific and gear-set-specific. A character with high existing haste may have diminishing returns on additional haste and should prioritize critical strike instead. Stat weights calculated in SimulationCraft reflect these interactions by simulating actual combat with the character's full proc chain rather than applying a global formula.
The tool generates detailed charts and reports for both individual performance and full raid performance. This makes it useful for raid leaders evaluating composition and for individual players comparing two gear pieces of similar item level but different secondary stat distributions.
The README notes the tool supports raid and party creation of arbitrary size. A single player can simulate themselves alone, or simulate an entire 20-player mythic roster to evaluate role composition effects on total raid DPS.
External Libraries, Accuracy Limits, and GPL-3.0 Licence
SimulationCraft is licensed under GPL-3.0, which requires that any derivative work or distribution also be licensed under GPL-3.0. The binary distributions at simulationcraft.org are covered by this licence.
The tool bundles several external libraries under their own licences. RapidJSON (MIT) handles JSON parsing, RapidXML (MIT) handles XML, UTF-8 CPP (Boost Software License) handles string encoding, `{fmt}` (MIT) handles formatted output, and cpp-semver (MIT) handles version parsing. The Qt Toolkit (LGPL-3.0) is used for the graphical interface. These libraries are documented in the README with their copyright notices and licence types.
Accuracy has limits. SimulationCraft models player performance in idealized conditions: it assumes optimal ability usage (automated APL logic), fixed target positioning, and standard encounter templates. Real raid performance depends on player execution, movement requirements, and fight mechanics specific to each encounter that the simulator cannot fully replicate. The README explicitly frames the goal as closing the "accuracy gap" relative to calculators, not claiming perfect accuracy.
The last push to the repository was on 2026-09-25, three days before the article's writing date, indicating the project is actively maintained and kept current with the game.
Editorial conclusion
SimulationCraft is the go-to tool for World of Warcraft players who want quantitative answers about gear and talent choices rather than qualitative opinions. The event-driven engine handles proc interactions and class synergies that closed-form calculators cannot model. For players comfortable with a command-line tool, simc delivers detailed reports and stat weights in less time than a manual test session. For those who want to verify the tool before downloading the binary, the Docker path builds from source and removes the guesswork. The primary limitation is that SimulationCraft simulates individual encounter scenarios; actual raid performance depends on execution, coordination, and fight-specific variables the tool cannot fully capture.
Frequently asked questions
What is SimC used for?
SimulationCraft (SimC) is used to model player DPS in World of Warcraft raiding and dungeon scenarios. Players use it to calculate stat weights for their character, compare two gear pieces, evaluate talent builds, and identify the optimal gear configuration for a given fight type.
What is the simc addon?
The SimC addon is a World of Warcraft in-game addon (available on CurseForge) that exports your character's current gear, talents, and stats as a text profile. This profile is pasted into SimulationCraft or saved as a parameter file for the simc CLI, giving the simulator an accurate snapshot of your character without manual data entry.
Is SimC safe to download?
SimulationCraft is an open-source GPL-3.0 project distributed from simulationcraft.org. The source code is publicly available on GitHub at simulationcraft/simc, so security-conscious users can audit the code or build from source using the included Dockerfile. The official downloads are Windows installers and macOS packages from the project's own website.
How accurate is SimulationCraft?
SimulationCraft is more accurate than closed-form calculators for classes with heavy proc-based mechanics, because it simulates full combat encounters rather than applying static formulas. Its accuracy depends on how well the class model is maintained for the current game patch. The tool assumes optimal ability usage and idealized conditions, so real-world performance varies based on player execution and fight-specific mechanics.