Sim Pipeline · Weights · FAQ
SimulationCraft Rules, Stat Weights & Calculation Methodology
I don’t rank specs by feel. I run SimC profiles, cross-check them against live Warcraft Logs parse percentiles, and re-run keys until variance drops. These are the exact rules behind every number on playcayne.com.
How Combat Logs Get Parsed Here
- Full pull, never snippets. I take the whole log with timestamps, difficulty, and roster size locked in.
- Sim timeline diff. I compare casts against the SimC timeline: movement gaps, GCD clipping from double-taps, missed external cooldown rotations.
- Twenty pulls minimum. I take the median parse percentile. Pulls with early deaths leave the sample.
- Cooldown mapping. I map externals and defensives against boss timers — blown soak assignments surface here.
- Publish or kill. If a claim survives neither sim nor log, the draft dies. No exceptions.
Stack: SimC nightly · Raidbots API · WCL live client · 50k iterations
Haste Breakpoint Math
Tooltip numbers mean nothing without breakpoints. Here is the Season 2 frame I sim from before any gear call:
| Profile | Base GCD | Soft-Cap Rule |
|---|---|---|
| Standard caster | 1.50s | Floor 0.75s at 100% haste |
| Energy fixed | 1.00s flat | Haste devalued, stack mastery |
| Dynamic melee | 1.50s | Floor 0.75s at 100% haste |
| Bloodlust burst | ×1.3 haste | Re-check 0.75s floor |
| Queue default | 400 ms | Set to ping + 50 |
| DoT specs | Snapshotting | Buffs lock at cast |
My call: default 400 ms queue on sub-100 ms ping is the most common silent DPS loss in Season 2 logs. Set ping + 50 and watch clipping vanish.
Damage Normalization Rules
Active Seconds OnlyDowntime stripped
Lust Windows ApartBurst isolated
Cooldown SegmentsAligned compares
I divide total damage by active combat seconds, strip lust-only windows, and compare cooldown-aligned segments only. Short pulls inflate burst specs, so I never rank off a single pull. Then I tune the queue engine below to the same latency the log ran on.
Spell Queue Window & GCD Latency Engine v1.0
I built this to end GCD clipping debates with numbers. Drag the sliders. I divide base GCD by your haste, price ping against your queue window, and hand you the exact in-game macro.
Energy GCD stays pinned at 1.0s — haste never moves it. Melee shares the 1.5s base and 0.75s floor; instants only skip the cast portion. Bloodlust multiplies current haste by 1.3.
/console SpellQueueWindow 95
Default 400 ms on a 45 ms ping overwrites procs on double-taps. Paste the macro above and re-check the log for GCD clipping.
Math I use: GCD = max(0.750, base / (1 + haste)). Optimal queue = ping + 40 to 60 ms hardware buffer, capped at 400. Bleed = dead-time / GCD priced per pull.
Straight Answers On Sims
What Spell Queue Window should I run at my ping?
I run ping plus a 40 to 60 ms hardware buffer, capped at 400. A 50 ms ping means /console SpellQueueWindow 100. Anything higher overwrites procs, anything lower bleeds dead time.
How do haste soft-caps change my gearing?
Each soft-cap shortens the GCD until the 0.75 second floor, then extra haste loses value fast. I sim every tier set because one more dot tick or one fewer filler flips the whole SimC profile.
Why does my sim disagree with my Warcraft Logs parse?
Sims assume perfect uptime with zero movement. I diff the sim timeline against the log cast by cast: movement gaps, GCD clipping from double-taps and missed external cooldown rotations explain nearly every gap.
How do I normalize damage across pulls of different lengths?
I divide total damage by active combat seconds, strip lust-only windows, and compare cooldown-aligned segments only. Short pulls inflate burst specs, so I never rank off a single pull.