Tutorial
Rewritten lessons and recipes are labelled pilot until human and browser review. Old URLs have explicit migration pages; source pending is not rules certification.
By part
A — From a die to an answer
- One die: a map of possible damage — Read one probability row and check the range (pilot)
- Two dice: totals are not equally likely — Count equally likely pairs behind a total (pilot)
- Modifiers: move the results, not their chances — Use names to parameterise a modifier (pilot)
- Success: include the target itself — Build and check an inclusive target query (pilot)
B — Comparing choices and building reports
- Roll-under checks: low can be good — Ask an inclusive roll-under question · beginner (pilot)
- An average is not a success chance — Distinguish mean total from success probability · beginner (pilot)
- One table, several questions — Build one table of labelled probability questions · beginner (pilot)
- A loop builds a comparison, not a simulation — Use a loop to construct a useful comparison · beginner (pilot)
C — What information does the rule need?
- Name the outcome, not just the total — Name the outcome, not just the total · intermediate (pilot)
- Exactly this outcome, or this good or better? — Exactly this outcome, or this good or better? · intermediate (pilot)
- Keep the faces until the rule is finished — Keep the faces until the rule is finished · intermediate (pilot)
- Advantage changes the shape, not a fixed bonus — Advantage changes the shape, not a fixed bonus · intermediate (pilot)
D — Reading a handful of dice
- Keeping three equals dropping one — Keeping three equals dropping one · intermediate (pilot)
- Any and none are complementary questions — Any and none are complementary questions · intermediate (source pending)
- A count is itself a distribution — A count is itself a distribution · intermediate (pilot)
- Join unlike dice without adding their damage — Join unlike dice without adding their damage · intermediate (pilot)
E — Custom dice and transformations
- A custom face list describes a die — A custom face list describes a die · intermediate (pilot)
- Reusing a distribution is not reusing a face — Reusing a distribution is not reusing a face · intermediate (pilot)
- Armour cannot create negative damage — Armour cannot create negative damage · intermediate (pilot)
- Round each result, not the average — Round each result, not the average · intermediate (pilot)
F — Writing rules of your own
- A function returns a reusable calculation — A function returns a reusable calculation · advanced (pilot)
- Test natural-face exceptions before totals — Test natural-face exceptions before totals · advanced (pilot)
- Inspect the same pool faces in one callback — Inspect the same pool faces in one callback · advanced (pilot)
- Define what a tie means before comparing rolls — Define what a tie means before comparing rolls · advanced (pilot)
G — Decisions, rerolls, and open-ended rules
- A later save can depend on earlier damage — A later save can depend on earlier damage · advanced (pilot)
- Rerolling once is a policy, not filtering — Rerolling once is a policy, not filtering · advanced (pilot)
- Conditioning changes the question — Conditioning changes the question · advanced (pilot)
- An unbounded rule needs an explicit cap — An unbounded rule needs an explicit cap · advanced (pilot)
H — Build and defend a report
- Continuation rules matter as much as the die — Continuation rules matter as much as the die · advanced (source pending)
- Choose a policy before seeing its future roll — Choose a policy before seeing its future roll · advanced (pilot)
- Brindlewood Bay: a report must distinguish eligibility from odds — Distinguish Theorize eligibility, accounted Clues, and result queries · advanced (pilot)
- Build and defend a complete scoped model — Build and defend a complete scoped model · advanced (pilot)