FANDOM


I created a PowerShell script that lets me see the overall damage multiplier provided by the mods that interest me. The full script is shown below.

Example

Looking at the Prisma Angstrum, I want to know if Primed Target Cracker or Primed Pistol Gambit is better.

By updating the script and running it for each build, I can see that Target Cracker slightly wins with an overall multiplier of 62.8.

Primed Target Cracker

Elemental           2.8
Damage              4.85
Fire Rate           1.6
Multishot           2.8
Critical Term       1.65
Critical Chance           0.18
Critical Multiplier       4.62
Magazine            1
Reserve             1

My Calc             62.8


Primed Pistol Gambit

Elemental           2.8
Damage              4.85
Fire Rate           1.6
Multishot           2.8
Critical Term       1.62
Critical Chance           0.5166
Critical Multiplier       2.2
Magazine            1
Reserve             1

My Calc             61.6

To calculate the multiplier, input the stats from the mods. For example, I have two maxed elemental mods in my build. So I have:

    Elemental          = 1+0.90+0.90

Algebraically, the 1 represents the base weapon damage. And each 0.90 represents the increased damage from an elemental mod.

If I was looking at just one mod:

    Elemental          = 1+0.90

For a lower rank:

    Elemental          = 1+0.15

For zero mods, leave the 1 as a placeholder:

    Elemental          = 1

Of course you can enter the numbers however you like (2.8 = 1+0.90+0.90). I use this style to keep track of my build. Two numbers plus the base damage is a clue for me as I work on my build.

The current version of the script is limited. I don't concern myself with damage types. I'm just interested in the overall multiplier given by the mods. Also, orange/red crits are not accounted for.

In the full script, I input the critical stats for a Prisma Angstrum: 18% critical chance and 2.2x critical multiplier.

    CriticalChance     = 0+( 0.18 *(1+ 0 ))
    CriticalMultiplier = 0+( 2.2  *(1+ 0 ))

Skipping ahead, the number output for 'My Calc' shows the overall damage multiplier provided by your mod choices. You have to run the script to see the number output.

Note that in this particular instance my code omits the fire rate since I'm just interested in the damage done per volley. The advantage in using a script is that you can omit (or include) the pieces of the damage calculation that are relevant to you.

My Calc:

My Calc             $(
                       [math]::Round(
                         (
                           $this.Elemental * 
                           $this.Damage * 
                           $this.Multishot * 
                           $this.CriticalTerm
                         ),2
                       )
                     )

If you wanted to include the fire rate:

My Calc             $(
                       [math]::Round(
                         (
                           $this.Elemental * 
                           $this.Damage * 
                           $this.Multishot * 
                           $this.CriticalTerm * 
                           $this.FireRate
                         ),2
                       )
                     )

One improvement I included is the "$this.CriticalTerm" variable. That let's you treat the critical chance and critical multiplier as a single number you can multiply by your other terms.

In this run, I'm testing the effect of Primed Target Cracker. So, I update the title and add the 110% buff to CriticalMultiplier:

    Title              = "Primed Target Cracker"
    ...
    CriticalMultiplier = 0+( 2.2  *(1+ 1.10 ))

The Magazine and Reserve variables are in the code below because I was looking at increasing the ammo capacity of Prisma Angstrum.

If you want to add or remove variables from the script:

  1. Update the properties listed under:
    $weapon = [PSCustomObject]@{
  2. Update the Report under:
    $weapon | Add-Member ScriptProperty Report {
  3. Update the calculation under:
    My Calc             $(

I included reference material in the body of the script under the "Links" heading. Those were the articles that helped me develop this script.

I use Windows PowerShell ISE to edit my scripts and run them. Just search for "powershell ise" under the Start Menu in Windows. You might also try Visual Studio Code. But I will leave figuring that out up to you. 

What I've gone over should be enough to get you started. Feel free to play with your copy of the script. And please post any comments below.

Reasons you might use this script:

  • Quickly figure out the relative effect of your mod choices. A bigger result for My Calc means more damage.
  • Slice and dice the damage calcuation. Look at just the damage multipliers you're interested in.
  • See how the damage calculation works.
  • Test different numbers quickly. Type in what you want instead of dragging mods.
  • Compare your results to online calculators.
  • You don't have to rely on out-of-date stats from online sources.
  • Use fantasy numbers for hypothetical weapons. E.g. Nukor and Charm.

Damage Buff Calculator.ps1

function criticalTerm ( [Double] $criticalChance, [Double] $criticalMultiplier)
{  1 + ($criticalChance * ($criticalMultiplier - 1))  }


$weapon = [PSCustomObject]@{
    Title              = "Primed Target Cracker"
    Elemental          = 1+0.90+0.90
    Damage             = 1+2.20+1.65
    FireRate           = 1+0.60
    Multishot          = 1+1.20+0.60
    CriticalChance     = 0+( 0.18 *(1+ 0 ))
    CriticalMultiplier = 0+( 2.2  *(1+ 1.10 ))
    Magazine           = 1+0
    Reserve            = 1+0
}

$weapon | Add-Member ScriptProperty CriticalTerm { 
criticalTerm $this.CriticalChance $this.CriticalMultiplier  }

$weapon | Add-Member ScriptProperty Report {
@"

$($this.Title)

Elemental           $($this.Elemental)
Damage              $($this.Damage)
Fire Rate           $($this.FireRate)
Multishot           $($this.Multishot)
Critical Term       $([math]::Round(($this.CriticalTerm),2))
Critical Chance           $($this.CriticalChance)
Critical Multiplier       $($this.CriticalMultiplier)
Magazine            $($this.Magazine)
Reserve             $($this.Reserve)

My Calc             $(
                       [math]::Round(
                         (
                           $this.Elemental * 
                           $this.Damage * 
                           $this.Multishot * 
                           $this.CriticalTerm
                         ),2
                       )
                     )
"@

}


$weapon.Report


<#

Links

PowerShell: Creating Custom Objects
https://social.technet.microsoft.com/wiki/contents/articles/7804.powershell-creating-custom-objects.aspx


Powershell objects: referencing Self
https://stackoverflow.com/questions/28516606/powershell-objects-referencing-self


Add-Member
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/add-member?view=powershell-6


PSMemberTypes Enum
https://docs.microsoft.com/en-us/dotnet/api/system.management.automation.psmembertypes?view=pscore-6.2.0


PowerTip: Use PowerShell to Round to Specific Decimal Place
https://devblogs.microsoft.com/scripting/powertip-use-powershell-to-round-to-specific-decimal-place/





#>

Example output:

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

Primed Target Cracker

Elemental           2.8
Damage              4.85
Fire Rate           1.6
Multishot           2.8
Critical Term       1.65
Critical Chance           0.18
Critical Multiplier       4.62
Magazine            1
Reserve             1

My Calc             62.8

> 


Melee Example
function criticalTerm ( [Double] $criticalChance, [Double] $criticalMultiplier)
{  1 + ($criticalChance * ($criticalMultiplier - 1))  }


$weapon = [PSCustomObject]@{
    Title              = "Viral, Blood Rush, Shattering Impact"
    Elemental          = 1+0.90*2
    Damage             = 1+1.65
    FireRate           = 1+0.75
    Multishot          = 1+0
    CriticalMultiplier = 0+( 2.0 *(1+ 0.00 ))
    ChannelingDamage   = 1+( 0.5 *(1+ 0 )) 
    ConditionOverload  = [math]::pow(1.6, 2 )
    ComboMultiplier    = 3.0
    EnemyArmor         = (100- 0 )/100 
    FactionDamage      = 1+0.00
    vsHealthClass      = 1+0.75
}

$weapon | Add-Member ScriptProperty CriticalChance { 
#0+( 0.10 *(1+ 0 ))  } # Stock 
#0+( 0.10 *(1+ (1.80 * $this.ComboMultiplier) ))  } # Blood Rush + Gladiator Mod
 0+( 0.10 *(1+ (1.65 * $this.ComboMultiplier) ))  } # Blood Rush

<# Mods
1 Primed Pressure Point 
2 Cold 
3 Toxin 
4 Berserker 
5 Condition Overload 
6 Drifting Contact 
7 Shattering Impact 
8 Blood Rush 
#> 

$weapon | Add-Member ScriptProperty CriticalTerm { 
criticalTerm $this.CriticalChance $this.CriticalMultiplier  }

$weapon | Add-Member ScriptProperty Report {
@"

$($this.Title)

Elemental           $($this.Elemental)
Damage              $($this.Damage)
Fire Rate           $($this.FireRate)
Multishot           $($this.Multishot)
Critical Term       $([math]::Round(($this.CriticalTerm),2))
Critical Chance           $($this.CriticalChance)
Critical Multiplier       $($this.CriticalMultiplier)
Channeling Damage   $($this.ChannelingDamage)
Condition Overload  $($this.ConditionOverload)
Combo Multiplier    $($this.ComboMultiplier)
Enemy Armor         $($this.EnemyArmor) 
Faction Damage      $($this.FactionDamage) 
Versus Health       $($this.vsHealthClass) 

My Calc             $(
                       [math]::Round(
                         (
                           $this.Elemental * 
                           $this.Damage * 
                           $this.FireRate * 
                           $this.CriticalTerm * 
                           $this.ConditionOverload *
                           $this.ComboMultiplier*
                           $this.EnemyArmor*
                           $this.FactionDamage*
                           $this.vsHealthClass
                         ),2
                       )
                     )
"@

}


$weapon.Report


Prototyping Example (Using 'Melee' Code)
>
C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

Lazy Sunday (Kitgun) Baseline

Elemental           1
Damage              1
Fire Rate           1
Multishot           1
Critical Term       1.35
Critical Chance           0.32
Critical Multiplier       2.1
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             1.35

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

Hornet Strike, Magnum Force

Elemental           1
Damage              4.85
Fire Rate           1
Multishot           1
Critical Term       1.35
Critical Chance           0.32
Critical Multiplier       2.1
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             6.56

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

Lethal Torrent, Barrel Diffusion

Elemental           1
Damage              4.85
Fire Rate           1.6
Multishot           2.8
Critical Term       1.35
Critical Chance           0.32
Critical Multiplier       2.1
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             29.38

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

Deep Freeze

Elemental           1.9
Damage              4.85
Fire Rate           1.6
Multishot           2.8
Critical Term       1.35
Critical Chance           0.32
Critical Multiplier       2.1
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             55.81

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

Gunslinger

Elemental           1.9
Damage              4.85
Fire Rate           2.32
Multishot           2.8
Critical Term       1.35
Critical Chance           0.32
Critical Multiplier       2.1
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             80.93

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

Primed Pistol Gambit, Primed Target Cracker

Elemental           1.9
Damage              4.85
Fire Rate           2.32
Multishot           2.8
Critical Term       4.13
Critical Chance           0.9184
Critical Multiplier       4.41
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             247.33

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

+Anemic Agility -Gunslinger

Elemental           1.9
Damage              4.7
Fire Rate           2.5
Multishot           2.8
Critical Term       4.13
Critical Chance           0.9184
Critical Multiplier       4.41
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             258.28

> 16*12*258.28
49589.76

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

-Magnum Force

Elemental           1.9
Damage              3.05
Fire Rate           2.5
Multishot           2.8
Critical Term       4.13
Critical Chance           0.9184
Critical Multiplier       4.41
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             167.6

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

-Barrel Diffusion

Elemental           1.9
Damage              4.7
Fire Rate           2.5
Multishot           1.6
Critical Term       4.13
Critical Chance           0.9184
Critical Multiplier       4.41
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             147.59

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

-Lethal Torrent

Elemental           1.9
Damage              4.7
Fire Rate           1.9
Multishot           2.2
Critical Term       4.13
Critical Chance           0.9184
Critical Multiplier       4.41
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             154.23

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

-Anemic Agility

Elemental           1.9
Damage              4.85
Fire Rate           1.6
Multishot           2.8
Critical Term       4.13
Critical Chance           0.9184
Critical Multiplier       4.41
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             170.57

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

-Target Cracker

Elemental           1.9
Damage              4.7
Fire Rate           2.5
Multishot           2.8
Critical Term       2.01
Critical Chance           0.9184
Critical Multiplier       2.1
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             125.66

> C:\Users\Michael\Warframe\Damage Buff Calculator.ps1

-Pistol Gambit

Elemental           1.9
Damage              4.7
Fire Rate           2.5
Multishot           2.8
Critical Term       2.09
Critical Chance           0.32
Critical Multiplier       4.41
Channeling Damage   1.5
Condition Overload  1
Combo Multiplier    1
Enemy Armor         1 
Faction Damage      1 
Versus Health       1 

My Calc             130.72

> 









My Calc             125.66
My Calc             130.72
My Calc             147.59
My Calc             154.23
My Calc             167.6
My Calc             170.57		This is the best build with two elementals: -Anemic Agility



To Do

  • Account for orange criticals.
  • Create a better definition of $weapon.
  • Account for armor ignored by damage type.
  • Account for Chroma buff.


Last Updated: June 26, 2019

Community content is available under CC-BY-SA unless otherwise noted.