If you’ve ever wondered “is S3 actually worth it?” and gotten five different answers from five different sources, or debated whether Crit DMG is valuable than ATK%, this is for you.
The Problem Right Now
The Wuthering Waves community has no shortage of resources. Media sites give you static numbers, copy paste in game kit info. Spreadsheets give you static numbers. Community sites give you… yes, you guessed it… ”static numbers.”
And that’s it.
These static numbers are calculated through formulas and how a character’s kit works on paper. But hers’ the thing - none of these tools can tell you what actually happens when you play.
Sure, community resources, whether it’s a site, a YouTube video or a Google Sheet answer the question ”what should I build?”
But they don’t answer:
- ”What will this build actually do in my rotation?”
- ”Where is my damage actually coming from?”
- ”How much damage do just my basic attacks do?”
- "What if I add more ATK% instead of Crit DMG?”
- ”For S6 Hiyuki, is ATK% or Crit DMG better on a 4-cost echo?”
…and a hundred more questions like these. You get the point.
That’s the gap we want to fill.
What if you could just open a tool and everything is there visualized, right in front of your eyes? What if you could see the live change in damage numbers as you modify your build?
Combat in Wuthering Waves is not a single formula It's a chain of decisions. Every action feeds into the next one. The damage output of any character isn't a number, it's a sequence.
Static calculators can't model that. Spreadsheets can't simulate it.
That's exactly what WU.DA.MAGE was built to do.
What WU.DA.MAGE Actually Is
WU.DA.MAGE is a combat simulation engine for Wuthering Waves, wrapped in a clean web app anyone can use.
Under the hood, it runs a real simulation of your rotation, the kind that accounts for skill order, buff timing, team synergies, and the moment-to-moment state of a fight. On top of that engine, you get a clean interface where you plug in your actual build stats Crit Rate, Crit DMG, ATK%, weapon, teammates, and character-specific sliders and you see the results live.
Here’s what it shows you:
- Character Stats
Your effective stats at a glance. If your build has 270% Crit DMG but the stat card shows 310% — it'll tell you exactly *where* that extra 40% is coming from (weapon passive, sequence node, team buff, etc.). - Sequence Comparison Table
A side-by-side breakdown showing the difference in total rotation damage for every sequence from S0 all the way to S6. Not rough estimates. Simulated numbers. - Rotation Timeline
A visual breakdown of your full rotation, showing exactly when each skill fires, when buffs activate, and how the fight flows from start to finish. - Per-Hit Damage Log
Every single hit, listed out individually. Not an average. Not an estimate. The actual damage value for each instance in the rotation, in order. - Skill Breakdown
How much damage each individual skill contributes to the overall rotation. You'll immediately see which skills carry your damage and which ones are mostly utility. - Easy-to-Read Character Kits
Skill descriptions that are written to be understood, not just copied from the in-game tooltip. You'll know what your character actually does and why it matters for how you build them.
And all of this updates in real time as you adjust your stats. Change your Crit DMG, swap a weapon, shift your ATK% the simulation recalculates immediately and you see exactly what changed.
What's Under the Hood? The Engine.
The engine is the foundation, and there’s a lot we want to build on top it.
Custom Rotation Compiler & Validator
Our engine has a custom-built rotation DSL (a mini programming language for rotations). You write the rotation as a readable sequence of skill casts, things like cast('resonance_skill'), cast('basic_attack_1'), conditional branches with ifThen(), and repeat() loops.

The compiler takes this rotation plan and expands it into a flat list of actions the simulator can execute. repeat blocks get unrolled, if branches get evaluated against your sequence level, and the result is a clean action queue ready to run.
Then the validator steps in. Before the simulator touches a single number, the validator checks if the rotation even makes sense:
- Does a skill reference a buff that actually exists?
- Does a resource delta target a resource the character declared?
- Is the rotation trying to cast a skill in the wrong form?
- Is a sequence-locked skill being used at the wrong sequence level?
If something's wrong, you get a clear error not a silent wrong number three layers deep. We catch bugs before they become misinformation.
We built this compiler and validator so that in the future, we can test different rotations easily and eventually, anyone can plug in their own rotation and see what happens. Also rotation is the basic and everything starts from there so we wanted to get it right.
The Simulator
Once the rotation is compiled and validated, the simulator kicks in and does a lot of things, it’s gonna get lot technical so let’s leave it at this.
Every hit gets a full trace - you can see the raw base, every multiplier that was applied, which buffs were active, and exactly how the final number was calculated. Every number on the site has a source you can verify.
What’s Available Right Now? And What’s The Engine Capable Of Currently?
Right now it can run the simulations for the available characters and give an visualized overview as you can see in the site. But there’s lot more it can do that we haven’t implemented in the client yet.
Multi-Simulation Mode
Imagine running 500 simulations of Hiyuki against an enemy, each with slightly different builds, to see which stat distribution actually performs best. Currently capable
Character Duels
Put two characters head-to-head in a race: who kills a Tower of Adversity boss first? Same enemy, same conditions, different characters. Let the numbers settle the debate. Currently Capable
Data-Driven Tier Lists
Run race mode across the full roster and generate a solo tier list backed by actual simulation data, not vibes. Currently capable but not enough characters
Build Comparison
Side-by-side comparison of two builds for the same character. The engine already supports this the frontend just needs to catch up.
Rotation Planner
Design and test custom rotations directly in the browser. Drag and drop skills, see the timeline update live.
What’s It Still Missing?
We believe in being honest about where we are:
- Team synergies work, but we want them to work perfectly. The buff broadcasting system is solid, every non-self-scoped buff from teammates gets injected into the main DPS sim. But timing and uptime windows need more refinement.
- Character roster we're not going to cover every 1.0 character or some early 2.0 characters right away, but we are actively adding more. If you want to see your favorite character, let us know in Discord.
- Build comparison UI the engine can do this today, but the frontend doesn't surface it yet. It's on the list.
Got a feature request or feedback? We're genuinely open to it. Our Discord has a dedicated form for this.
A Word on Accuracy
The engine is built directly from observed in-game values - real multipliers, real frame data, real mechanic interactions. We cross-reference against in-game testing for every character model.
That said, Wuthering Waves updates frequently. Game patches can change multipliers, rework kits, or introduce new mechanics. We update the engine as quickly as possible when patches drop.
If you spot a discrepancy between the simulation and in-game numbers, Discord is the fastest way to flag it.
We'd rather know and fix it than have wrong numbers sitting there quietly.
Come Build With Us
WU.DA.MAGE is a community project. If you understand damage formulas, know a character's kit inside out, or just care about getting the numbers right we'd love to have you.
Discord: Join us
