[RPG] How to implement a “passive stealth” that is mathematically equivalent to rolling stealth vs. passive perception

dnd-5eskillsstatistics

I think the metagaming problem with rolling for stealth is fairly well-known: once the player rolls for stealth at the start of their sneaking, they know how high they rolled and might, consciously or not, adjust their later course of action based on their knowledge of the stealth roll. There are various ways to partially mitigate this, such as delaying the stealth roll until the first time it is needed. However, I wonder whether it is possible to implement a way to resolve "rolling stealth vs. passive perception" situations without the player ever rolling any dice, while at the same time being mathematically equivalent (thus preserving game balance). Conceptually, it seems like one could define a "passive stealth" and then have enemies roll perception against that. However, the naive implementation of this changes the math. For example, if you have one rogue trying to sneak past 3 guards, the conventional way would have the rogue roll once against 3 passive perception scores, while the "passive stealth" approach would have three perception rolls, which obviously changes the probability of at least one guard noticing the rogue. And you also have things like advantage/disadvantage and Reliable Talent that can affect the stealth roll, which would need to be handled somehow.

So, to bring it all together with a single example, suppose we have a rogue with +8 to stealth and Reliable Talent trying to sneak past 3 elite guards who all have a +10 to perception (i.e. 20 passive perception), and furthermore the rogue has disadvantage on their stealth check because they're trying to sneak out while carrying the prized Bell of Loud Tolling that they've just stolen. Is it possible to resolve this by having the DM roll for the guards' perception instead of the player rolling for stealth, while at the same time giving the same probabilities of success and failure as if the player was rolling against the guards' passive perception?

Notes

  • I know it's rare in practice for guards to have a higher perception modifier than the rogue's stealth modifier, but if I don't set it up this way then Reliable Talent gives the rogue a 100% chance of success, and that would defeat the point of asking about probabilities.
  • I realize that having the DM roll the PC's stealth check in secret is one possible solution, but it would be preferable to have an equivalent solution in which the DM only rolls for NPCs. I've suggested the start of the obvious solution, in which one simply swaps the passive and "active" sides of a contested check, but I've also pointed out that this alone isn't a full solution. If you have another way of resolving things that achieves the stated objectives (i.e. DM rolls for NPCs instead of player rolling for PC, while preserving original success probabilities), feel free to suggest it.

Best Answer

Option 1: Answering the question as written

It's possible just to invert everything:

  • Since the player normally rolls only once, roll the d20 only once for the guards (with different bonuses if applicable).
  • The player's passive score is 12 + Stealth. (Why not 10? Rollers win ties, and the chance to roll a 10+ on a d20 is 55% rather than 50%. This gives the roller a +1 advantage over a 50-50. Swapping the roles makes this a -1 to the player, so we need to add 2 to get back to where we started.)
  • Advantage on Stealth becomes disadvantage on Perception and vice versa.
  • Reliable Talent means the guards can't roll higher than an 11 on the d20.

Option 2: The "triple agent"

Pick up the d20. Tell the player that you're rolling Perception for the guards, and you've come up with a scheme that gives the same probabilities of success and failure as if the player was rolling against the guards' passive Perception. Reiterate that you are rolling Perception for the guards, and not a Stealth check for the player.

Then, roll a Stealth check for the player.

Option 3: Schrödinger's check total

in the fairly common case of one stealth roll being used to (try to) sneak past multiple guards in sequence, the player will still know their roll after the first guard

It's possible to prevent the knowledge of what total the player rolled without changing the overall probabilities. In fact, even the DM won't know what the player rolled. The only information that is produced is whether the player succeeded or failed against each guard, and not the exact roll. Here's how to do it:

Have the player roll against the first guard as normal. When the player encounters the next guard, have them roll Stealth again. However, if their total would be inconsistent with the result of the previous guard encounters, have them reroll the check. Keep rerolling until you achieve a total consistent with all past history. Then, forget the total again, remembering only the successes and failures.

Fancifully, you're travelling back in time and re-rolling the player's original roll in order to invalidate their knowledge of the total. However, you can't change an established success into failure or a failure into success. Or, the player's "real" check total exists only as a superposition of states with each "observation" (i.e. guard encounter) narrowing it down.

For example, let's say we have two guards at DC 10 and DC 15. Here are the possible sequences of events:

  • Player rolls less than 10 on the first guard, failing the check. When they reach the second guard, they roll again, rerolling anything 10 or higher, because otherwise they would have succeeded against the first guard. This makes succeeding against the second guard impossible. (Unless you prefer that failures trigger a reset.)
  • Player rolls 10 or higher on the first guard, succeeding the check. However, they don't keep their total, only the fact that they succeeded against the first guard. When they reach the second guard, they roll again:
    • Less than 10: Reroll, because this would contradict the fact that they beat the first guard.
    • 10 to 14: They fail against the second guard.
    • 15+: They succeed against the second guard. If there's a third guard, they would roll again, rerolling anything under 15, and so on.