save_check
Adjudicate saving throws against a DC using SRD 5.2.1, applying condition-based auto-fails, disadvantage, and exhaustion penalties to return success, total, and roll result.
Instructions
Adjudicate a saving throw against a DC (SRD 5.2.1 p.6). The CALLER rolls the d20 (RNG is out of scope, T6); srdcheck composes and resolves, cited. Optionally ability-typed and condition-aware: pass save_ability + saver_conditions to apply the codified overrides — auto-fail Str/Dex saves (Paralyzed/Petrified/Stunned/Unconscious), Disadvantage on Dex saves (Restrained), and Exhaustion's flat d20 penalty. With d20_result it returns {total, dc, success, roll[, auto_fail]}; without a d20 it composes and reports {roll, dc, net_modifier}. A missing DC returns missing-fact; malformed inputs or unsupported condition content return their structured recovery class.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dc | Yes | the Difficulty Class to meet or exceed | |
| modifier | No | total modifier added to the d20 (ability + proficiency + situational) | |
| d20_result | No | the rolled d20; omit to just get the composed roll mode + net modifier | |
| request_id | No | ||
| save_ability | No | str | dex | con | int | wis | cha — enables the ability-typed condition overrides (auto-fail Str/Dex, Restrained Dex disadvantage) | |
| table_policy | No | ||
| asserted_facts | No | ||
| policy_context | No | ||
| table_decision | No | ||
| exhaustion_level | No | applies Exhaustion's flat d20 penalty to the save | |
| saver_conditions | No | the saving creature's active conditions (drives auto-fail / disadvantage) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| why | Yes | ||
| data | No | ||
| facts | Yes | ||
| adapter | Yes | ||
| verdict | Yes | ||
| rule_ids | Yes | ||
| citations | Yes | ||
| exit_code | Yes | ||
| assumptions | Yes | ||
| explanation | Yes | ||
| rule_result | Yes | ||
| checked_scope | Yes | ||
| coverage_level | Yes | ||
| state_mutation | Yes | ||
| table_decision | Yes | ||
| unchecked_scope | Yes |