9
\$\begingroup\$

The potion of poison (DMG p.188) is an uncommon magic item that deals poison damage over time to anyone who drinks it. However, the way it deals damage is rather complicated, with multiple saves and reducing damage.

How much damage would you expect a potion of poison to deal (that is, what is the average damage)? You can consider the case where the victim fails the initial saving throw separately to the case where the result of the initial save is unknown (because passing the initial save deals just 3d6).

Double bonus points if you can provide more detailed information than just the mean damage (like a statistical distribution of damage).

For reference, the potion of poison functions as follows:

If you drink it, you take 3d6 poison damage, and you must succeed on a DC 13 Constitution saving throw or be poisoned. At the start of each of your turns while you are poisoned in this way, you take 3d6 poison damage. At the end of each of your turns, you can repeat the saving throw. On a successful save, the poison damage you take on your subsequent turns decreases by 1d6. The poison ends when the damage decreases to 0.

\$\endgroup\$
12
\$\begingroup\$

Let us assume that our victim has a probability \$p\$ of passing the DC 13 Constitution saving throw, and we will assume that \$p\$ is greater than 0 and less than 1 (that is, passing and failing the save are both possible). Let us also, for simplicity, measure damage in number of d6's (we can convert to actual damage at the end; 1d6 has a mean damage of 3.5).

Also note that the mean (average) of a discrete probability distribution, where getting \$x\$ has probability \$P(x)\$, is given by $$ \sum_x x P(x), $$ where we sum over all values of \$x\$.

Before tackling the full problem, let us consider a subset of the problem. Suppose the victim has saved their way down to taking only 1d6 damage at the start of their turns. What is the average damage they will take then? We need to enumerate over each possible scenario. The victim could take 1d6 damage at the start of their turn then pass their save (with probability \$p\$) at the end of their turn, taking no further damage. The victim could fail one save then pass the second (with probability \$p(1-p)\$, taking 2d6 damage. And so on. The mean number of d6's taken in the '1d6-per-round' phase is $$ \sum_{n=0}^\infty (n+1) p (1-p)^n. $$

This is an arithmetico-geometric sequence. We can solve it with some basic algebraic manipulation.

$$ \sum_{n=0}^\infty (n+1) p (1-p)^n = \frac{p}{1-p} \sum_{n=0}^\infty (n+1) (1-p)^{n+1} = \frac{p}{1-p} \sum_{m=1}^\infty m (1-p)^m = \frac{p}{(1-p)} \frac{(1-p)}{p^2} = \frac{1}{p}.$$

In the 1d6-per-round phase, the victim takes an average of \$\frac{1}{p}\$ lots of 1d6 damage (remember that \$p\$ is less than 1, so \$1/p\$ is greater than 1). It is simple to extrapolate that the 2d6-per-round phase will have a mean of \$\displaystyle\frac{2}{p}\$, and the 3d6-per-round phase will have a mean of \$\displaystyle\frac{3}{p}\$. Because the phases are independent, we are able to simply add together their means for the overall mean.

However, there is one tricky point with regards to the round in which the potion is consumed. If the victim drinks the potion on their turn, then the item text implies they get to make a save to reduce the damage before the start of their next turn. This means there is only a \$1-p\$ chance of entering the 3d6-per-round phase, so the mean damage taken from that phase is \$\displaystyle\frac{3(1-p)}{p}\$.

Let us bring everything together now. If the victim drinks the potion on their turn and fails their initial save, then they take an initial 3d6 damage plus \$\frac{3(1-p)}{p}\$ d6 plus \$\frac{2}{p}\$ d6 plus \$\frac{1}{p}\$ d6 damage, for a total of $$ 3+\frac{3(1-p)}{p}+\frac{2}{p}+\frac{1}{p} = 3 + \frac{3(2-p)}{p} = \frac{6}{p} \mbox{d6 damage,}$$ or \$\displaystyle\frac{21}{p}\$ damage.

If we make no assumptions about the initial save, then we get the above damage with probability \$1-p\$ and just 3d6 damage with probability \$p\$, for a net result of \$\displaystyle\frac{6(1-p)}{p} + 3p\$ d6 or \$10.5\left(\displaystyle\frac{2(1-p)}{p} + p\right)\$ damage.

If the victim ingests the poison outside their turn (such as with a Ready action, or by having another character administer it), then the mean damage from the 3d6-per-round phase is \$\displaystyle\frac{3}{p}\$ d6. If they fail their initial save, they take \$3 + \displaystyle\frac{6}{p}\$ d6 or \$10.5\left(1+\displaystyle\frac{2}{p}\right)\$ damage. If we make no assumptions about the initial save, they take \$\frac{6}{p}-3\$ d6 or \$10.5\left(\displaystyle\frac{2}{p}-1\right)\$ damage.

Let us consider some concrete values of \$p\$. The average damage dealt by the potion of poison is (rounded to one decimal place)...

CON Save \$p\$ On turn, fail first save On turn Off turn, fail first save Off turn
-7 0.05 420 399.5 430.5 409.5
-6 0.10 210 190.1 220.5 119.5
-5 0.15 140 120.6 150.5 129.5
-4 0.20 105 86.1 115.5 94.5
-3 0.25 84 65.6 94.5 73.5
-2 0.30 70 52.2 80.5 59.5
-1 0.35 60 42.7 70.5 49.5
+0 0.40 52.5 35.7 63 42
+1 0.45 46.7 30.4 57.2 36.2
+2 0.50 42 26.3 52.5 31.5
+3 0.55 38.2 23.0 48.7 27.7
+4 0.60 35 20.3 45.5 24.5
+5 0.65 32.3 18.1 42.8 21.8
+6 0.70 30 16.4 40.5 19.5
+7 0.75 28 14.9 38.5 17.5
+8 0.80 26.3 13.7 36.8 15.8
+9 0.85 24.7 12.6 35.2 14.2
+10 0.90 23.3 11.8 33.8 12.8
+11 0.95 22.1 11.8 33.8 12.8
>11 1.00 -- 10.5 -- 10.5
\$\endgroup\$
15
  • 2
    \$\begingroup\$ @Dale Can you support that? Ongoing damage certainly seems like it is supposed to he rerolled each time. Example 1. Example 2. Example 3. Example 4. \$\endgroup\$ Aug 22 at 5:10
  • 1
    \$\begingroup\$ I tried to do a \frac pass @medix2 to make it more readable -- I hope I didn't make any typos. \$\endgroup\$
    – Yakk
    Aug 22 at 16:58
  • \$\begingroup\$ Can you clarify this passage :"However, there is one tricky point with regards to the round in which the potion is consumed" ? It is not clear to me what you mean. \$\endgroup\$
    – Eddymage
    Aug 22 at 17:29
  • \$\begingroup\$ @Eddymage I think the point was that a person who drinks the poison on their own turn and fails the initial save would make an additional save before the first turn of lingering damage, while a person who drinks the poison on a different turn and fails the initial save would not get an additional save before their first turn of lingering damage. \$\endgroup\$ Aug 22 at 18:46
  • 2
    \$\begingroup\$ I think there is a mistake in your computation for the "consume off turn" damage. See my answer for what I worked out. \$\endgroup\$ Oct 29 at 17:04
7
\$\begingroup\$

We have to build this case-by-case. First, we will build the basic progression of the damage dice assumming we fail the first two saves, then build the full case backwards from there.

Here's is the order of events:

  1. It is our turn, and we drink the potion and take 3d6 damage.
  2. We fail the first saving throw.
  3. Our turn ends, so we make save to reduce the subsequent damage to 2d6, which we fail.
  4. Beginning of our next turn, we take 3d6 damage.

We will first calculate the average from this point forward. There are three stages to ridding ourselves of this poison: a 3d6 stage, a 2d6 stage, and a 1d6 stage. The average damage for each stage is modeled by a geometric distrubtion with probability of success \$p\$ and probability of failure \$(1-p)\$. A geometric distribution, when counting the number of failures before success, has an expected value of \$\displaystyle{\frac{1-p}{p}}\$. The average damage of the 1d6 stage is \$\displaystyle{\frac{1d6(1-p)}{p}+0d6}\$: on a failed saving throw we take another 1d6 damage, on a success we take 0 damage.

However, the 2d6 stage is a bit different. On a failed save, we take 2d6 damage, but on a successful save we take 1d6 damage before entering the 1d6 stage. What I mean here is that the 1d6 stage is defined as "saving throw then resulting damage". If we succeed on a save in the 2d6 stage, we take 1d6 damage prior to making any saves in the 1d6 stage. So the expected damage from the 2d6 stage is: \$\displaystyle{\frac{2d6(1-p)}{p}+1d6}\$: we take 2d6 damage for an average of \$\displaystyle{\frac{1-p}{p}}\$ trials, and then a guaranteed 1d6 damage before entering the 1d6 stage. So the average damage for the 2d6 and 1d6 stages together is:

$$\frac{2d6(1-p)}{p}+1d6+\frac{1d6(1-p)}{p}+0d6.$$

Extending this to the 3d6 stage, we similarly take 2d6 upon a successful save prior to entering the 2d6 stage. So the damage from all three stages is given by:

$$\frac{3d6(1-p)}{p}+2d6+\frac{2d6(1-p)}{p}+1d6+\frac{1d6(1-p)}{p}+0d6$$

The interesting thing here (and the thing that took me much too long to realize) is that the 2d6 and 1d6 between phases is guaranteed damage once you fail the initial saving throw for the potion.

From here, it is easy to adjust this last expression to present the full expected damage from drinking the potion. The first 3d6 is guaranteed, and we only take subsequent damage if we fail the initial save, with probability \$(1-p)\$, so the average damage is:

$$3d6+(1-p)\displaystyle{\left(\frac{3d6(1-p)}{p}+2d6+\frac{2d6(1-p)}{p}+1d6+\frac{1d6(1-p)}{p}+0d6\right)},$$

with some algebra, using \$\displaystyle{1+\frac{1-p}{p}=\frac{1}{p}}\$, we obtain:

$$3d6+(1-p)\displaystyle{\left(\frac{3d6(1-p)}{p}+\frac{2d6}{p}+\frac{1d6}{p}\right)}.$$

Things change if we consume the potion on someone else's turn, because we would not get to make the save to reduce the damage before entering the 3d6 stage. The order of events is:

  1. On someone else's turn, Drink the potion, taking 3d6 damage.
  2. Attempt saving throw, failing with probability \$(1-p)\$.
  3. Beginning of our turn, take 3d6 damage.
  4. End of our turn, make save to reduce damage.

In this scenario, if you fail the initial save, another 3d6 is guaranteed. So the average damage in this case would be:

$$3d6+(1-p)\displaystyle{\left(3d6+\frac{3d6(1-p)}{p}+2d6+\frac{2d6(1-p)}{p}+1d6+\frac{1d6(1-p)}{p}+0d6\right)},$$

and again, with some algebra, we obtain:

$$3d6+(1-p)\displaystyle{\left(\frac{3d6}{p}+\frac{2d6}{p}+\frac{1d6}{p}\right)}.$$

Here is a table comparing the two cases with real values:

CON Save p On Turn Off Turn Off Turn % Increase
-7 0.05 399.5 409.5 2.5%
-6 0.10 190.1 199.5 5.0%
-5 0.15 120.6 129.5 7.4%
-4 0.20 86.1 94.5 9.8%
-3 0.25 65.6 73.5 12.0%
-2 0.30 52.2 59.5 14.1%
-1 0.35 42.7 49.5 16.0%
0 0.40 35.7 42.0 17.6%
1 0.45 30.4 36.2 19.0%
2 0.50 26.3 31.5 20.0%
3 0.55 23.0 27.7 20.6%
4 0.60 20.3 24.5 20.7%
5 0.65 18.1 21.8 20.3%
6 0.70 16.4 19.5 19.3%
7 0.75 14.9 17.5 17.6%
8 0.80 13.7 15.8 15.4%
9 0.85 12.6 14.2 12.5%
10 0.90 11.8 12.8 8.9%
11 0.95 11.1 11.6 4.7%
12+ 1.00 10.5 10.5 0.0%

And here is a chart showcasing the magnitude of the difference between disadvantage and advantage for non-negative CON save bonuses:

enter image description here

As you can see, having disadvantage on the saves against the poison can be very perilous when your CON save bonus is low.


Acknowledgements: I would like to thank Eddymage for their significant assistance in working through the math here. Without their help, I would have been confused for a few minutes before moving on without writing up an answer. If this were a paper, they would be a coauthor.

\$\endgroup\$
5
  • \$\begingroup\$ Shouldn't the case where the second save is failed give the same result as when the potion is drunk off turn (as in both cases you are guaranteed to take the first round of the 3d6 phase, then it progresses normally from there)? The first instance of damage which always happens is baked into the geometric series so shouldn't need to be double-counted. \$\endgroup\$
    – BBeast
    Oct 31 at 4:06
  • 1
    \$\begingroup\$ @BBeast In the off-turn scenario, the second set of 3d6 is conditioned only on failing the initial save, so is not part of the 3/p stage. \$\endgroup\$ Oct 31 at 6:08
  • \$\begingroup\$ I still think you're double-counting the guaranteed damage. The 1/p expectation value of the geometric distribution is the mean number of trials required to get one success, including the successful trial. The expectation value for the number of failures before getting one success is (1-p)/p (which, if you add 1 to, gets you 1/p). \$\endgroup\$
    – BBeast
    Nov 3 at 0:03
  • \$\begingroup\$ @BBeast Maybe, I’ll look at it again tomorrow. Thanks for the input again. \$\endgroup\$ Nov 3 at 0:24
  • \$\begingroup\$ @BBeast Okay it's right this time. \$\endgroup\$ Nov 3 at 13:14
2
\$\begingroup\$

Full distribution using AnyDice

Double bonus points if you can provide more detailed information than just the mean damage (like a statistical distribution of damage).

Link.

set "explode depth" to 100

function: potion of poison dice FAIL_SAVE:d {
  result: 3 * (1 + [explode FAIL_SAVE]) + 2 * (1 + [explode FAIL_SAVE]) + (1 + [explode FAIL_SAVE])
}

output [lowest of [potion of poison dice d20+1<13] and 100]

Distribution of damage dice.

This assumes that the potion is drunk during the character's turn and the first save is failed. The output is in terms of the number of damage dice. In terms of damage:

output [lowest of [lowest of [potion of poison dice d20+1<13] and 100]d6 and 200]

Distribution of damage.

How it works

This uses the same strategy as my answer to another question. Namely:

The number of tries consumed by each "stage" in the series is independent, so we can just sum them.

From here, the number of failures experienced in each stage follows a geometric distribution. This is already well-explained in the other answers so I will not belabor the point here.

We can compute each of the stages by applying the built-in explode function to a single try at that stage:

  • A 0 on a single try represents a success, terminating the explosion and that stage.
  • A 1 on a single try represents a failure, consuming a try and forcing the character to try again, represented by the explosion.

We also add the one guaranteed instance of damage at each stage (with the initial damage substituting for this in the 3d6 stage).

We do need to increase the explode depth since AnyDice's default of 2 is too small for this purpose and would only count up to 3 failures per stage.

The [lowest of ... and 100] is simply to cut off the graph at a reasonable end for visualization and could be omitted if you're just interested in the number of d6s. However, AnyDice does not appear to be super-efficient at computing variable numbers of d6s, so if you want to convert this to the distribution of damage, you may want to keep the dice cap and/or lower the explosion limit to prevent timeouts.

\$\endgroup\$

You must log in to answer this question.

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