4
\$\begingroup\$

Basic 5e rules for crits say that you double the values rolled on dice. I'm playing with a homebrew idea where instead of doubling the damage dice you instead get another action, which can also crit. I want to know the ramifications on damage, if the player only ever uses the additional action to take the attack action. So, to keep things simple, let's lay out the basic assumptions.

  • The player doesn't have multi-attack, so taking the attack action only results in 1 more attack
  • They don't get any bonus dice like sneak attack or smite.
  • They have a +5 modifier and +6 proficiency.

I'd like to know how these would affect damage at different AC values (13 - 19) and different damage die values (1d4 - 1d12). Lastly, I would like to have your opinion on whether or not both options should exist together or if only one option should be available to the players? If one option turns out to better 90% of the time, should I even leave the option for the other one available? If anyone could help me figure out the math for this, I would greatly appreciate it. Thank you for any help you can provide.

Edit: To prevent infinite loops and players going completely out of control, fishing for crits. I think it would behoove me to place limit on the number of crits a player can get in a single turn. I'm thinking 2 or 3, I'm leaning towards two which would mean 3 actions. I would also like to clarify that yes I mean for this to work with magic, but I wanted to start designing with an understanding of how this would effect a single attack first.

\$\endgroup\$
10
  • \$\begingroup\$ What (if anything) happens on the re-roll variant when the player rolls a critical failure (i.e., a 1)? \$\endgroup\$
    – posita
    Aug 29, 2023 at 15:23
  • 1
    \$\begingroup\$ I think the damage dice are doubled on a critical hit, not the rolled values (cf. Combat -> Damage and Healing -> Damage Rolls -> Critical Hits). Or did you mean to compare double the value as part of your homebrew? \$\endgroup\$
    – posita
    Aug 29, 2023 at 15:36
  • 3
    \$\begingroup\$ I'm confused about the criteria. You say "...get another action, which can also crit," But then say, "The player doesn't have multi-attack, so they only get to attack one more time" So what happens if the action taken because your first attack crits is another crit? Does it add more damage like normal? Does it just act like a normal hit and "waste" a crit? Or can you crit-lock by having multiple crits in a row? \$\endgroup\$
    – MivaScott
    Aug 29, 2023 at 18:23
  • 1
    \$\begingroup\$ I know what the difference is, which is why I specified that the character doesn't have multi-attack. I KNOW multi-attack makes this option much stronger than baseline critting, what I didn't know was how much better or worse this option was for a single attack. I specified that you get an action, that you always use for attacking and without multi-attack because I wanted that specific comparison. In the homebrew I plan on running, you will get an "action" with everything that entails, multi-attack and all. I just didn't want that for this comparison. \$\endgroup\$
    – Orionox
    Aug 31, 2023 at 2:27
  • 5
    \$\begingroup\$ Can we also clear up that characters don't get "multi-attack"; that's an action for creatures in the various monster manuals. Player characters get the "Extra Attack" feature either by class, subclass, feat, or invocation. \$\endgroup\$
    – MivaScott
    Aug 31, 2023 at 23:08

3 Answers 3

9
\$\begingroup\$

Won't someone think of the magic users?

While this never says anything outright, it seems very focused on standard melee fighter types. But spells can cause critical hits as well.

So my first concern is that you can only cast one leveled spell per round. Or at least that is the geneal interpretation based on casting a Bonus Action spell:

...You can't cast another spell during the same turn, except for a cantrip with a casting time of 1 action.

So if you subscribe to the notion that you can only cast one leveled spell, and that spell crits, then all that's left is casting a cantrip (which is okay) or swing your quarterstaff/dagger and hope the enemy doesn't stomp on you.

But even a cantrip, at higher levels, can out damage swinging a sword a second time. At 1st level, a longsword does 1d0 and fire bolt does the same 1d10. But at 5th level, the longsword is still 1d10 but fire bolt has doubled to 2d10. And it goes up from there. So if the spell caster has some good cantrips, they can take more advantage of a second attack than a fighter.

Edge cases

That's just simple spell casting. There are a number of spells that can cause all sorts of questions. Here are the first few I thought up.

Eldritch blast; and other spell with multiple attack rolls

At first level, eldritch blast fires one bolt. And if it crits, you now get another Action to cast it again. But at 5th-level there are now two bolts and two chances to crit. At 11th-level, it's three chances. If any one of those bolts crit, you get an extra Action to go again. What if two of the three attacks crit? Does that mean two extra Actions? At 17th-level, that's four chances to crit and rack up extra Actions like Skee-Ball tickets.

And long the same lines, chaos bolt can work the same:

...On a hit, the target takes 2d8 + 1d6 damage... If you roll the same number on both d8s, the chaotic energy leaps from the target to a different creature of your choice within 30 feet of it. Make a new attack roll against the new target...

So you have a spell that by rolling two 8s, not only makes the bolt jump to a new target, but you can cast another spell to finish the job.

Bigby's hand; and other Bonus Action spells

Bigby's hand takes an Action to cast, but every round thereafter is the caster's Bonus Action.

When you cast the spell and as a bonus action on your subsequent turns, you can move the hand up to 60 feet and then cause one of the following effects with it.

So the first round, it has the same consideration of casting a second spell if the "Forceful Hand" or "Grasping Hand" crit. But next round, the caster uses their Bonus Action to attack. And if they crit, they get another Action. But wait, they didn't use an Action meaning they now have TWO Actions to do whatever they want--including casting a leveled spell as they didn't cast anything yet this round.

This doubles down (deca down?) with animate objects as you would have up to TEN objects, all with possibilities of critical hitting.

Now, some will say that it's not the "caster" making the critical hit so they don't get the Action. But how is this different then fighting with a summoned flame blade?

But even then, the text for animate objects states:

...Each target animates and becomes a creature under your control...

So even if the caster cannot gain the extra Actions, each magical object is a creature and should be allowed to gain another Action in which to attack again.

Any summoning spell

So building off of the last point where creatures can crit and gain an extra attack; this makes summoning spells just a bit more powerful. Conjure up eight CR1/4 creatures and if any of them hit it's like you summoned even more creatures to whittle down the enemy hp.

Witch bolt; the oddball

Witch bolt will be a very weird case.

Make a ranged spell attack against that creature. On a hit, the target takes 1d12 lightning damage, and on each of your turns for the duration, you can use your action to deal 1d12 lightning damage to the target automatically. The spell ends if you use your action to do anything else.

So the caster casts witch bolt and it's a critical hit. They get a free Action. So they used their primary Action to cast the spell and the spell ends if they use their Action for anything else. Does that include the extra Action they got from a critical hit? Or do they need to use the extra Action to deal more damage? The damage is automatic so at least we don't have to worry about making another critical hit and crit-locking. But it's just another problem with spell casters with extra actions.

\$\endgroup\$
13
  • \$\begingroup\$ @NautArch-is-skeptical-about-SE, while possible, none of the language would suggest it. It's just "crits" nothing about melee attacks. It's getting an action, not getting an extra attack. \$\endgroup\$
    – MivaScott
    Aug 29, 2023 at 20:12
  • 2
    \$\begingroup\$ I'm not sure I'd agree on the bit about one leveled spell/turn being the general interpretation of the bonus action spellcasting rule- while it's a very common misreading/misremembering of the rule, I'm under the impression that action surging to cast two leveled spells is pretty widely understood to be allowed, as is counterspelling a counterspell against your own spell. \$\endgroup\$
    – CTWind
    Aug 29, 2023 at 20:38
  • \$\begingroup\$ @CTWind, that's why I didn't base any of my argument on that fact. If you say you can cast two leveled spells on your turn, you have have this problem. But if you play with only one leveled spell, you can still get in trouble with cantrips. It's just a passing thought to consider. \$\endgroup\$
    – MivaScott
    Aug 29, 2023 at 20:48
  • \$\begingroup\$ For similar reasons to a critting Fireball giving you a measly free cantrip, rogues are going to lose a big fun factor with this change. \$\endgroup\$ Aug 30, 2023 at 0:58
  • 1
    \$\begingroup\$ This is a minor nitpick but you cannot do Twinned spell on Eldritch Blast, nor indeed any spell that delivers multiple attacks, because "To be eligible, a spell must be incapable of targeting more than one creature at the spell's current level." \$\endgroup\$
    – biziclop
    Aug 30, 2023 at 14:16
6
\$\begingroup\$

Short Answer

Regarding outcomes under your particular constraints, on average, getting another attack with all bonuses and exploding crits is substantially better, but this isn't always the case, especially for lower-level characters. (See the chart and linked Jupyter notebook below for details. See also @HighDiceRoller's answer about the possibility of a runaway.) If a player's hit or damage bonuses are low, it's often worse (again, on average). This makes intuitive sense, because you're introducing another 5% or greater opportunity for the player to miss a second attack (worse result than rule-as-written) with only a 5% chance of a re-crit (better result than rule-as-written). Regarding game design, I recommend play testing the choice, observe how players behave and react, and possibly seek their feedback, but I've rattled off some tweaks to consider below.

Computation of Expected Damage

I don't have a formal proof of the various odds. Instead, I made a dyce-based¹ simulator and interactive notebook that provides the analysis and allows you to tweak some parameters (damage dice, AC ranges, hit and damage bonuses, advantage, crit ranges). In its current form, it only deals with a single, typical attack (as requested). It's possible to expand with effort, but I treated that as out-of-scope for this context. You can play around with it in your browser (note that rendering times increase with the number of dice selected; the first run with all of your desired dice can take on the order of a minute): Try dyce [source]

That notebook was used to generate the following graphs, which display the averages of the various mechanics in context. The raw data is accessible as a CSV via the Download raw data as CSV link available in the notebook once it has run.

Damage outcomes after a crit

The implementation might be a bit hard to follow, but (without getting too far off into the weeds) we basically compute the crit miss, miss, hit, and crit hit distribution for the given target. Here's a simplified version:

from dyce import H
from enum import IntEnum

class HitOutcome(IntEnum):
    CRIT_MISS = -1
    MISS = 0
    HIT = 1
    CRIT_HIT = 2

d20 = H(20)

def hit_outcomes_from_target_bonus(
    target: int,
    hit_bonus: int,
) -> H:
    def _outcome_count_gen():
        for outcome, count in d20.items():
            if outcome == max(d20):
                yield HitOutcome.CRIT_HIT, count
            elif outcome == min(d20):
                yield HitOutcome.CRIT_MISS, count
            elif outcome + hit_bonus >= target:
                yield HitOutcome.HIT, count
            else:
                yield HitOutcome.MISS, count

    return H(_outcome_count_gen())

For your mechanic, we translate that distribution into damage, and recurse (up to some limit) if we re-crit. Again, here's a simplified version (the @expandable decorator looks like magic, but does most of the work):

MIN_DMG = 0  # See <https://www.dndbeyond.com/sources/basic-rules/combat#DamageRolls>

def another_bite(
    dmg_die: H,
    target: int,
    hit_bonus: int,
    dmg_bonus: int,
) -> H:
    @expandable
    def _explode_crit_hits(result: HResult):
        if result.outcome is HitOutcome.CRIT_HIT:
            # We hit *another* crit, so include another damage die, possibly another
            # damage bonus (see above), and whatever *other* crits we may encounter as we
            # keep rolling
            return dmg_die + dmg_bonus + _explode_crit_hits(result.h)  # result.h is hit_outcomes
        elif result.outcome is HitOutcome.HIT:
            # We got a hit after our first crit, so include another damage die and
            # possibly another damage bonus (see above)
            return dmg_die + dmg_bonus
        else:  # treats HitOutcome.MISS and HitOutcome.CRIT_MISS as equivalent
            # We missed on our re-roll
            return H({0: 1})  # no (more) damage

    hit_outcomes = hit_outcomes_from_target_bonus(target, hit_bonus)
    # Start us off with our damage die and damage bonus and whatever else we can re-roll,
    # but make sure that damage has a floor of zero (to handle negative damage bonuses)
    return H(
        (max(outcome, 0), count)
        for outcome, count in
        (dmg_die + _explode_crit_hits(hit_outcomes, limit=Fraction(1, 10_000)) + dmg_bonus).items()
    )

The implementation assumes that damage rolls (before applying bonuses) are all positive. In other words, it probably won't work with any weird dice with negative values.

At the Table

While a matter of taste, I find anydyce's² "burst" graphs (above) often help give insight into the feel for distributions like these. For each, the inner burst shows the distribution for the alternate mechanic under the context, and the outer burst shows the distribution for rules-as-written crit. For fun, I included doubling the total damage roll (a common house rule) as the first alternate mechanic for each selected die. I'm calling your proposed alternate "another bite", as shorthand for giving the players another bite at the apple, so to speak. All start with the assumption that the player has already achieved a crit hit on their attack roll, and the bursts show the expected damage.

But distribution is a small part of mechanic "feel". Players may appreciate the option to be able to "play it safe" with doubling their damage dice, or they might be willing to gamble on the possibility of something better in the moment (despite worse averages). Casinos capitalize on this quite well.

In my experience, the most effective way to discover whether this mechanic is compelling is to try it and see if, over time, your players retreat to one position or another, or occasionally go the other way in a bind. For example, they may want to play to averages most of the time, but if, after four rounds with a BBEG, the players are running out of resources, one might want to swing for the fences on a crit and hope they re-crit to snatch victory from the jaws of defeat, which may make for an awesome moment at the table. (See also Sly Fourish's "How Do You Feel Rolling a Crit?".)

Tweaks?

In trying to think of modifications that might make the alternative more enticing, I considered removing the crit miss rule on re-rolls, but that only affects cases with lower ACs and higher bonuses, which probably doesn't apply to when stakes are high. A non-mechanical tweak might be to allow the players to target a different creature within reach on each subsequent attack (similar to the attack-as-bonus-action-on-crit aspect of the the Great Weapon Master feat, but without the opportunity to move). Again, not likely a boon with a BBEG, but maybe helpful in dealing with its mooks. Update: I added more controls in the notebook to experiment with various options:

Controls


¹ dyce is my Python dice probability library.

² anydyce is my visualization layer for dyce meant as a rough stand-in for AnyDice.

\$\endgroup\$
12
  • \$\begingroup\$ I did not downvoted (nor upvoted), but reading so much bold text in the very first part of the answer makes my eyes bleed... In my opinion, I think that simulation code without any theoretical explanation does not provide complete insights on the problem. Moreover, Python code (and/or Python libraries) decreases my willing to read the answer: I really do not like Python. \$\endgroup\$
    – Eddymage
    Aug 29, 2023 at 22:20
  • 2
    \$\begingroup\$ @Eddymage, I've reduced the bold and annotated the code. Unfortunately, it seems like rpg.stackexchange.com doesn't support syntax highlighting (which may make things more readable). I'm sorry to hear you don't like Python. I don't know how else to address that, since the implementation is in Python. \$\endgroup\$
    – posita
    Aug 29, 2023 at 23:48
  • \$\begingroup\$ Thanks for the thorough analysis, the assumption was always that the additional attack got to add all the same damage bonuses that the original attack. \$\endgroup\$
    – Orionox
    Aug 30, 2023 at 14:07
  • \$\begingroup\$ @Orionox, thanks for the clarification! That actually makes a substantial difference. I edited my answer accordingly, and also added more controls to the simulator so you can play around with various scenarios to find out where your proposed mechanic does and doesn't benefit the players over the rules-as-written. \$\endgroup\$
    – posita
    Aug 30, 2023 at 14:35
  • 2
    \$\begingroup\$ @posita You can use headings to highlight some part of the answer, as you have done, or horizontal line to divide the different parts. About Python, don't worry, it's just me, there is lot of people that uses and loves python, but surely I won't DV an answer just because it used such programming language (I used it sometimes too). \$\endgroup\$
    – Eddymage
    Aug 30, 2023 at 16:12
4
\$\begingroup\$

Recursions and expected damage

Let \$h\$ be the number of faces that (non-critically) hit, \$c\$ be the number of faces that crit (e.g. \$c = 1\$ by default), and \$w\$ be the mean weapon damage.

If you make only a single attack per action, you will always end up with exactly one non-crit, i.e. the last attack to be rolled. That roll will be uniformly distributed between the non-crit numbers. So if you (non-critically) the mean damage from non-crits is equal to \$\frac{h}{20 - c} w\$.

How many crits will you get? This is described by the geometric distribution, whose mean is \$\frac{c}{20 - c}\$. Each of these adds another instance of mean weapon damage.

By linearity of expectation we can just add everything up to find the overall mean damage. If the mean weapon damage is \$w\$ then the mean damage overall is

$$ \frac{h}{20 - c} w + \frac{c}{20 - c}w $$

At the default \$c = 1\$ this is

$$ \frac{h+1}{19} w $$

Versus no crits at all, this is like replacing your d20 attack roll with a d19 + 1 in terms of mean damage; or rerolling all 1s. In contrast, the standard crit rule, if there is no flat damage, gives

$$ \frac{h + 2}{20} w $$

The lower the hit chance, the more this favors the standard crit rule, with the break-even at \$h = 18\$, i.e. when you would miss only on a 1.

On the other hand, if there is only flat damage, the standard crit rule gives no extra damage at all. So which rule is favored depends on the hit chance and the proportion of flat damage.

A criticality accident

Critting on a 20 on a single attack is reasonably under control, but it won't necessarily stay that way as you amass more critical chance and attacks.

So, to keep things simple [...] The player doesn't have multi-attack

If this is merely a simplifying assumption, consider this: a level 15 Champion Fighter emits three attacks per action and crits on an 18-20. If they have an active Elven Accuracy feat (Xanathar's Guide to Everything), each action has a greater chance of scoring more than 1 crit (33.18%) than scoring 0 crits (23.16%). It turns out this is more than enough to create a positive chance that the chain of actions will never end.

\$\endgroup\$
4
  • \$\begingroup\$ I suppose a tweak to the OP's proposed mechanic could be to cap of the number of re-crits? Still, the scenario you point out (albeit a very specific one) does showcase how the approach might favor one player and slow the game down considerably/ \$\endgroup\$
    – posita
    Aug 30, 2023 at 13:24
  • 1
    \$\begingroup\$ I thought of another (possibly amusing) option inspired by Diesel engines: allow the crits to continue, but have the player lose control past some threshold, basically lashing out at anything or nothing within reach (including traveling companions) until unconsciousness set in. \$\endgroup\$
    – posita
    Aug 30, 2023 at 14:59
  • 1
    \$\begingroup\$ I was sort of wary about unlimited crits, but figured it would be incredibly rare. I'm thinking I might limit it to 3. \$\endgroup\$
    – Orionox
    Aug 30, 2023 at 22:33
  • \$\begingroup\$ Assuming I can get it running for you, I added a way to fiddle with the re-roll limit in my simulator, with the default at three total crits (the original, plus up to two additional). \$\endgroup\$
    – posita
    Aug 31, 2023 at 3:54

Not the answer you're looking for? Browse other questions tagged .