User guide All lessons Cookbook Function reference Open playground

Powered by the Apocalypse (2d6 + stat)

At the table

In Powered by the Apocalypse games (Apocalypse World, Dungeon World, Monster of the Week, and many others), you roll 2d6 + stat and read the total:

TotalUsual result
10+Full success
7–9Partial success—you get what you want, but with a cost, complication, or harder choice
6−Miss—the GM makes a move

There is no separate “natural 20” on the dice; the whole outcome is the total (2d6 + stat). That is exactly what lesson 7’s bucket is for.

Try it

In the playground, open this lesson in the playground and click Run (or press Shift+Enter).

The script

Scale = scale().step("MISS", ..6).step("PARTIAL", 7..9).step("FULL_SUCCESS", 10..)
STAT = 2

roll = 2d6 + STAT
out = roll.bucket(Scale)
output("move", out)
output("p_full_success", out.p_at_least("FULL_SUCCESS"))
output("p_partial_or_better", out.p_at_least("PARTIAL"))

Reading the result

You get a three-row probability breakdown for the move, plus scalar probabilities for full success and for “7+” style outcomes.

With STAT = 0, the bands match the core rulebook: 15/36 miss, 15/36 partial, 6/36 full success on the 2d6 alone.

Try this

What’s next

See the user guide index. Lesson 12 buckets the natural d20 with scale().step(...); PbtA totals use the same builder with bands on the total.

move · Outcomes

outcome%fracX/36
MISS16.71/66
PARTIAL41.75/1215
FULL_SUCCESS41.75/1215

p_full_success · Prob

outcome%fracX/36
p_full_success41.75/1215

p_partial_or_better · Prob

outcome%fracX/36
p_partial_or_better83.35/630