D&D 5E New Interactive DPR Visualization Tool

Esker

Hero
I also noticed that Fighter outperforms rogue in all instances - mostly because of the lack of fighting styles. So it seems that a rogue must make a 1 level dip in fighter to increase performance.

Generally rogues focused on damage want to do a few things to be competitive with fighters. First, they either want to be using their bonus action to hide (to get advantage regularly), using their bonus action to do two-weapon fighting, since like advantage that gives them a second roll to trigger sneak attack, or they want to be using booming blade, preferably with a familiar using the help action (which arcane tricksters can get automatically and other rogues can get by taking Magic Initiate or Ritual Caster (Wizard)). Elven accuracy is also a good pickup for them, because (a) they are generally using DEX anyway, so it also raises their main attack stat, (b) they can get advantage on most of their attacks so it's relevant often, and (c) because they do a lot of extra damage on a crit.

A rogue with booming blade, elven accuracy, and a high % of advantage can be competitive with most fighter builds, at least in terms of the base class, especially against higher AC enemies. Battlemaster superiority dice used well though (particularly precision attack) synergize extremely well with the -5/+10 feats though, and a rogue isn't going to be able to compete with that.

On a separate note (and stop me if this isn't the place to talk about it), do melee tend to outperform casters in DPR or are there too many variables to compare?

I only ask because, not even an hour before I found this thread, my son was telling me fighters can't really do a lot of damage at 20th level compared to a wizard and I had no way to demonstrate that fighters were good at damage output. I guess the other thing to consider is this is comparing single target damage.

Casters are definitely more complex to model for a variety of reasons: they have a lot more choice points (spells at multiple levels, AoE vs single target, damage vs control, etc.) and their effectiveness is more variable depending on the specific encounters they're facing (moreso than for single-target DPR martials, for whom enemy AC captures much of what you need to know about what's in an encounter).

I do think it's true that, for the most part, full casters who pick the best spells (and who maybe take a level or two in something to shore up weak points or take advantage of good synergies) are going to be more effective than martials --- maybe not in terms of single-target damage, but in terms of overall contribution to a party.

If you can combine a souped up eldritch blast with, say, spirit guardians, and good defenses (e.g., medium armor, shields, and good concentration saves), which is easy to do with a couple of levels in Hexblade and the rest in Divine Soul Sorcerer, say, you're pretty likely to damage the pants off of any martial.

Wizards on the other hand are at their best when they're not focused on damage, but rather on control -- Hypnotic Pattern, Wall of Force, Mass Suggestion, Forcecage, for example -- none of which do any direct damage, but which can single-handedly win encounters nonetheless. But that's much harder to quantify.

Adding Sentinel in there to add reaction attacks would be interesting.

Yeah, one thing on my to-do list which would cover this and several other cases in a fairly straighforward way is to add a "% reaction attacks" slider. I don't necessarily want to make specific assumptions about how often things like Sentinel or PAM, etc. will trigger reaction attacks, so I'd rather just make it an input option.
 

log in or register to remove this ad

G

Guest 6801328

Guest
This is really coming along!

What I'm wishing for are two features:
  1. The ability to compare more builds simultaneously.
  2. An easy way to post/share builds.

I'm not sure if this is possible with the libraries you're using, but if I were building it manually this is what I might do:
  1. Instead of two identical input interfaces on opposite sides, just one, with an "open/close" toggle (like the sort that collapses a folder view in a file browser.).
  2. An "Add New Build" button, or maybe a "Duplicate This Build" so that you don't have to start from scratch each time. Each new build you add appears as another line in the chart. The open/close buttons enable you to pack a bunch of them on the screen without overcrowding. (I might even set it up so that only one can be opened at a time...but would want to test out whether that's annoying.)
  3. Add a text field to the build interface that displays an alphanumeric string representing the build. (Basically you come up with a scheme...a code...to represent builds, then convert it into a base-36 or base-62 number). To share a build, you just copy this string and post it in the forum. Somebody else can copy/paste that string into the same text field and...presto!...build shared.
  4. Finally, add a utility (maybe on the right side of the chart) that shows only the deltas between the builds currently displayed. Currently it's too easy to lose track of how the builds differ. For example, if the only thing different is that one has Great Weapon Master and one doesn't, then the only thing in this new panel is something like "Build 1: Great Weapon Master (true)" and "Build 2: Great Weapon Master (false)" or something like that. That way you can double check that you're testing what you think you're testing.

Again, none of this might be possible with those libraries. It would require a whole bunch of server-side javascript. Just sorta daydreaming here.
 

NotAYakk

Legend
So, take champion 3 rogue 17 with elven accuracy and advantage, dual wielding.

The crit chance per swing is 1-.9^3 or 27.1%. Their miss chance against AC 8 is 0.0125% (basically zero).

A simple play is to make an attack. If it crits, use sneak attack. If not, you save your sneak attack for your offhand attack.

This gives a 27.1% + 27.1%(1-27.1%), or 46.9% chance to do a sneak attack crit. And your chances of landing a sneak attack remain basically 100%.

So you deal 9d6 * 1.469 + 2 * (1d6+5) + .271 * 2 * 1d6 or 65.1705 damage per round (and a bit more on action surge rounds).

The calculator says this build does 55 damage per round.

I suspect your calculator doesn't crit-fish with sneak attack.

As a general rule, if your chance of missing with all remaining attacks is less than your chance of critting on all remaining attacks this round, you should hold off your sneak attack unless your current attack is a crit.

Given a miss chance M% and a crit chance C%, we can say how many attacks we should crit fish for. Once we have done this, we can calculate what our sneak attack chance is and our sneak attack crit chance is this round.
 

Esker

Hero
This is really coming along!

What I'm wishing for are two features:
  1. The ability to compare more builds simultaneously.
  2. An easy way to post/share builds.

Solid suggestions. I'd been thinking about how best to do #1, layout-wise, so it doesn't get too cluttered, but yeah, maybe having the build params "fold up" is the way to go. I think there's a fairly standard way to add arbitrarily many UI elements in Shiny.

I hadn't considered your second suggestion before... Generating a unique string seems like a great way to go about it though. Thanks for the idea!
 

Esker

Hero
I suspect your calculator doesn't crit-fish with sneak attack.

As a general rule, if your chance of missing with all remaining attacks is less than your chance of critting on all remaining attacks this round, you should hold off your sneak attack unless your current attack is a crit.

No, it definitely doesn't crit fish; the current sneak calculation assumes you use it on the first hit. Similarly with smites; the calculation assumes they're used on randomly chosen hits, such that the proportion of smites that are crits is the same as the proportion of hits overall. You suggested the crit-fish option before, and it's definitely on my radar. I don't want to have that be the default, because I think absolute optimal deployment requires more on the fly calculation than most players are likely to do. But I'll likely add it as an option.
 

NotAYakk

Legend
No, it definitely doesn't crit fish; the current sneak calculation assumes you use it on the first hit. Similarly with smites; the calculation assumes they're used on randomly chosen hits, such that the proportion of smites that are crits is the same as the proportion of hits overall. You suggested the crit-fish option before, and it's definitely on my radar. I don't want to have that be the default, because I think absolute optimal deployment requires more on the fly calculation than most players are likely to do. But I'll likely add it as an option.
Well you could have a number for fishing then.

"If you have X swings left, and you don't get a crit, you hold off your sneak attack".

Then the player can mess with the slider.

---

For smites, you can calculate expected crits/day. And a slider "percent of smites saved for crits", which caps out if you run out of crits?
 
Last edited:

G

Guest 6801328

Guest
Well you could have a number for fishing then.

"If you have X swings left, and you don't get a crit, you hold off your sneak attack".

Then the player can mess with the slider.

Actually, a tool like this could be just right (for those who don’t want to do the arithmetic) for figuring out at what AC it makes sense to crit fish.
 

Esker

Hero
Actually, a tool like this could be just right (for those who don’t want to do the arithmetic) for figuring out at what AC it makes sense to crit fish.

Yeah, that's what I was thinking too. Set three modes: "1st Hit", "1st Crit or Last Attack", "Optimal"
 

G

Guest 6801328

Guest
Yeah, that's what I was thinking too. Set three modes: "1st Hit", "1st Crit or Last Attack", "Optimal"

Well “optimal” will be the same line as the second option for low ACs, then become the 1st option for high ACs. It’s the crossover point that’s interesting/useful, because it tells you at what AC to switch strats.

Further complicated by advantage and multiple attacks.
 

Esker

Hero
Well “optimal” will be the same line as the second option for low ACs, then become the 1st option for high ACs. It’s the crossover point that’s interesting/useful, because it tells you at what AC to switch strats.

Further complicated by advantage and multiple attacks.

Yeah, right; you can graph the first two settings against each other to find the cross-over point, but then when you know where it is, you can just select "optimal" to compare your character to something else.
 

Remove ads

Top