What is the quickest way to compare the DPS of two weapons?

I’ve been playing Borderlands 2 coop, which means that there isn’t always a lot of time to evaluate loot before deciding to pick it up or equip it.

What is the fastest way to compare the damage output of two weapons? Does the game provide any indication of which items are an upgrade without having to contrast all of the item’s stats?

  • How to solo Pyrocaustic Pete the Invincible?
  • How does auto-pickup work?
  • Can I redistribute my skill points?
  • If I don't like a quest reward can I pick a different one?
  • What are all of the named locations?
  • How do I use elemental effects in Borderlands 2?
  • Can I redistribute my skill points?
  • Where can I spend Eridium?
  • Can I restart a side mission?
  • How do I get a Seraph Crystal?
  • What do you get when you complete bonus objectives (with the blue plus on it)?
  • How long do elemental damage effects last?
  • 6 Solutions collect form web for “What is the quickest way to compare the DPS of two weapons?”

    There is no single DPS number that I have seen (only about 45 minutes play time), much like Borderlands. Instead, you’ve got to look at multiple stats and make a judgement call based on personal preferences. As with Borderlands, I expect that taking things for a spin will be really important when it’s a close call.

    In addition to the stats you see when you mouse over a weapon, there are at least a few hidden stats: Zoom Level (present in Borderlands 1), recoil, and stability. Shooting down a sight impacts DPS, obviously, and stability is a major factor there. Recoil will affect dps when firing rapidly/burst.

    It’s not always desirable to shoot as fast as possible (even when not using scopes/iron sights). I think it’s just impractical to include a DPS calculation. I do wish Borderlands weapon “cards” showed more stats though. Stability is really important for sniping, for example.

    I am 30 hours into the game. There is a way, it’s quick and dirty and doesn’t cover all aspects, but it’s better than nothing :

    Multiply the damage by the attack speed. This is not a silver bullet, but it gives you a pretty good idea of what makes 80% of the dps.

    For example if it’s a 100 damage, 2 fire rate sniper rifle versus a 75 damage, 4 fire rate sniper rifle, it boils down to 200 dps versus 300 dps giving the advantage to the second one.

    That being said, other factors enter in a gun’s performance that are not shown in the stats. A big one for me is the bullet speed… some weapons have great damage but the bullet are so slow (or behave like grenades) so you don’t want to use them. Another factor is quickback, or the quality of the visor. So use this rule of thumb i posted, but for your main weapon always test the new one before you sell the old.

    A comparison of damage and firing rate can give you a broad idea, but that’s about it.

    The best way to compare two similar weapons is to use them in combat.

    There are just too many factors to consider:

    • Firing rate vs damage.
    • Clip size vs rate and reload.
    • All Jakobs guns fire as fast as you pull the trigger, but no quicker.
    • All Tedior guns lob as a grenade when you reload.
    • Elemental effects stack and the chance is per shot, so a low damage fire SMG can do a massive amount of damage over a few seconds.
    • Gun recoils and reloads vary a great deal, Hyperion guns get more accurate as they fire, but some others become ‘spray and pray’ too quickly to be useful.

    So use the guns, change up regularly, you’ll probably get more Badass challenges and ranks that way anyhow 🙂

    A mix of helpful advice and completely unhelpful hand-waving here.

    Michel provided a great (and direct) answer to the technical ‘DPS’ angle. Since his version was in C, I’ve plunked down my version of a basic jQuery Mobile based weapon DPS output calculator on Github :

    http://jacobsanford.github.com/bl2-dps/

    Contribs welcome.

    Sometimes I use the formula (which is pretty accurate and logical) of the BL1 wiki (sometimes I just use what wpn I like). Every stat is important, as others have said, and sometimes one stat matter more to you than others. I added other stats in the wiki formula. It’s as follows:

    Legend:

    • dmg: Damage
    • dpel: Damage Pellets (the multiplier shotguns have, for example)
    • acc: Accuracy (added in the formula by me)
    • mag: Magazine Size
    • rs: Reload Speed
    • fr: Fire Rate
    • edps: Elemental DPS (added in the formula by me)
    • echa: Elemental Chance (added in the formula by me)
    • esec: How long the elemental effect lasts (added thanks to OrigamiRobot)
    • bps: Bullets consumed per shot (added in the formula by me)

    Formula:

                        edps * esec * echa   mag
           dmg * dpel + ------------------ * ---
                               100           bps    acc
    DPS = --------------------------------------- * ---
                         mag                        100
                         ---
                         bps
                        ----- + rs
                         fr
    

    Other Instructions:

    • If the weapon doesn’t have damage pellets, use 1 as the value.
    • If the weapon isn’t elemental, use 0 in one or all elemental values; mathematically, it doesn’t matter.
    • If the weapon doesn’t consume more than 1 bullets per shot, use 1 as the value.
    • Instructions for ‘esec’ value: fire (esec=5), shock (esec=2), corrosive (esec=8), slag (esec=8). Note: The slag effect doesn’t deal damage per se, it allows other types of damage to be more effective. Since I can’t translate this into a math formula, I’ll let this value be. If you would like, feel free to attribute lower values to the esec variable when it’s a slag gun (even 0, effectively making it meaningless).

    That’s pretty much it. It may seem a bit overwhelming, but it’s not that much. I wrote a little program in C, where you just feed the values and the program return the DPS. The program even let you save the values in 4 slots while it is open. If you want, I upload it somewhere.

    Wiki post: http://borderlands.wikia.com/wiki/DPS

    I’ve written a terrible program in terribly written Python that attempts to do DPS calculation at a very basic level. I’ve been using it to compare weapons for a while and it doesn’t seem terribly wrong most of the time.

    What it does is simulate firing a gun for 60 seconds, then divide the damage dealt by 60. It keeps count of:

    • Weapon damage
    • Fire rate
    • Magazine
    • Elemental damage
    • Damage type (vs flesh, shield, armor)
    • Playthrough (by default it uses the second)
    • Optionally accuracy in mostly bogus ways (but not by default)
    • Optionally recoil in definitely bogus ways (but not by default)
    • Optionally bonus stats from badass ranks (but not by default)

    It does not work well if:

    • The weapon has any fancy attributes (= red text)
    • You’re comparing shotguns with non-shotguns (because by default all pellets hit all the time)
    • You’re comparing sniper rifles with non-sniper rifles (because calculating critical hits is rather complicated… and why would you do that to begin with?)
    • It’s a pistol with a “x2” damage multiplier (unless that means it fires two pellets at once, then see above remarks about shotguns)
    • It’s an e-tech gun (you really need to see how the e-tech gun works, if at all, before you start comparing damage outputs)
    • The game doesn’t behave like I modeled it

    I’ll put here the bulk of the calculation for easier peer review:

    def dps(weapon,
            playthrough = 2,
            bonusStats = zeroStats,
            referenceTime = 60,
            accuracyAdjusting = lambda x: 1, # lambda x: x**(1/3),
            accountForRecoilInVastlyBogusWays = False):
      time = 0
      damage = Damage(0,0,0)
      ammoCount = weapon.magazine
      recoilMalus = 0
      while time <= referenceTime:
        time += 1/(weapon.fireRate * bonusStats.rate)
        for i in xrange(weapon.pelletCount):
          if random() < accuracyAdjusting(weapon.accuracy/100 * bonusStats.accuracy + recoilMalus):
            damage.add(weapon.damage * bonusStats.damage, weapon.element, playthrough)
            if weapon.element:
              if random() < weapon.elementChance/100 * bonusStats.elementChance:
                damage.add(weapon.elementDPS * bonusStats.elementDamage * elementLength[weapon.element],
                           weapon.element, playthrough) #this adjusts damage type vs health type
        ammoCount -= 1
        if accountForRecoilInVastlyBogusWays:
          recoilMalus -= 0.01 * 1/bonusStats.recoil
        if ammoCount == 0:
          time += weapon.reloadTime * bonusStats.reload
          ammoCount = weapon.magazine
          recoilMalus = 0
      return damage/time 
    

    As is the program runs in the console and asks you to pretty much type in the weapon card, spitting out the DPS in return. It’s licensed as WTFPL so feel free to improve it in all the ways.

    We love Playing Games, especially Video Games.