DPS Calculator
Compare damage output across different ship configurations and combat scenarios.
Shared enemy buffs applied to all ship configurations
Shared attacker buffs applied to all ship configurations
Team ships contribute their buffs and debuffs to all ship comparisons
Landing: 100% vs enemy
Damage Over Time
Cumulative damage comparison across rounds. Burst ships climb fast then plateau; DoT ships ramp up over time.
Nothing active
DPS Comparison
This visualization shows DPS values at 100% crit rate for different attack values (relative to your current attack) and crit damage percentages. The contour lines show combinations of attack and crit damage that produce equal DPS values. Follow these lines to find stat combinations that result in the same damage output.
DPS Analysis Heatmap
Defense Penetration
Shows how defense penetration affects damage increase for different enemy defense values. Hover over the lines to see exact values.
Damage Increase by Defense Penetration
About the Simulation
The simulator models combat round-by-round. Each round, your ship fires either its active or charged skill (if configured). Damage is calculated as:
Direct = (Attack × (SkillMultiplier% + ConditionalBonus%) + SourceStat × Secondary%) × CritMultiplier × (1 - DamageReduction%) × (1 + OutgoingDmg%) × (1 + IncomingDmg%) × (1 + Affinity%)
Some ships deal additional damage equal to a percentage of their Defense or max HP (e.g. Chakara, Lodolite). This secondary term is added to the base hit before crit and defense reduction are applied, and it scales with Defense Up / HP buffs. It is auto-detected from skill text and editable in each skill row.
Some attackers gain bonus damage that scales with a count — e.g. +20% per adjacent ally, or +15% per debuff on the enemy. This bonus is added to the skill multiplier. When the count is something the simulator tracks (your own buffs, or debuffs on the enemy) it is counted automatically each round; otherwise you set the count manually. It is auto-detected from skill text and editable per skill row.
DoT effects (corrosion, inferno, bombs) bypass enemy defense entirely. Corrosion deals a percentage of the target's HP per stack. Inferno and bombs deal a percentage of the attacker's attack stat. Bombs detonate after a countdown period. DoT damage is multiplied by the combined Out. DoT + Inc. DoT modifier from the buff pickers.
All DoTs stack permanently and tick on the turn they are applied.
Debuff landing is modelled via hacking and security stats. Each round, every active enemy debuff is rolled independently: clamp(hacking × affinityMult − enemySecurity, 0, 100)% chance to land, where affinityMult is ×1.25 for advantage, ×0.75 for disadvantage, or ×1 for neutral. At the defaults (hacking 200, security 100) debuffs always land.
Fully deterministic. The simulation contains no randomness — identical inputs always produce identical results. Crits are decided round-by-round using a fractional-accumulator schedule at the ship's effective crit rate, with separate schedules for active and charged hits (preventing cadence aliasing). Rounds that crit show a Crit badge in the chart tooltip. Attacks marked "cannot critically hit" never crit and consume no crit chance. Debuff/DoT landing and chance-based DoT extensions use the same deterministic schedule approach.
Hard condition gates. Conditions on damage, stat-based bonus damage, DoTs, detonations, and accumulate-and-detonate abilities gate strictly — if a condition is not met in a given round, that component contributes zero damage. Scaling conditions (e.g. "+X% per enemy debuff") deal no damage when the count is zero.
Derived enemy HP. Enemy HP percentage declines as cumulative damage accumulates against the configured enemy HP pool, so execute-style "below X% HP" gates switch on at the correct round mid-fight rather than always passing or always failing.
Execution order. Abilities within a skill fire in the order they appear in the skill text, matching in-game execution. A DoT inflicted early in a skill can therefore satisfy a later ability's "enemy has a debuff" condition in the same round.
