MagicItem
magic_items/<id>.srd.ron — one magic item per file; stem == id. The NEW orthogonal axis on the reified-arm substrate: a magic bonus, a rarity, an attunement flag, and optional charges — carried as append-only PROPS on the reified item (MAGIC resolves this def, the ARMS_ID/MATERIAL id-string idiom), never new Rel edges.
Two shapes ride one struct (the typing rule: content is data, not code): - a magic ARM carries base_arm (a weapons/armor id), reifies through the arms path (ARMS_ID = base_arm), and its attack/damage/AC bonuses feed the equipped-kit combat read; - a WONDROUS item leaves base_arm absent (a ring/cloak is no weapon or armor row), and its AC/save bonuses ride ATTUNEMENT — active only while the soul is attuned, never an equip slot.
The bonuses are authored SRD PRIMITIVES; worth DERIVES (the rarity factor over the mundane craft worth). A magic item that grants NOTHING — no bonus and no charges — has no substrate and is refused by the validator (the ledger-don't-fake rule, the feat precedent).
| Field | Type | Required | Description |
|---|---|---|---|
| ability_check_bonus | int64 | default 0 | Flat bonus to every ability check while this item is active. Skill checks inherit it exactly once because they are ability checks. |
| ability_score_floors | AbilityScoreFloor[] | optional | While this item is active, the named ability score is at least |
| ability_score_modifiers | AbilityScoreModifier[] | optional | Additive changes to an ability score while this item is active. The authored maximum limits only the increase: a bearer already above the cap keeps that score. This is shared by equipment such as ability stones and belts rather than encoding any one item identity. |
| ac_bonus | int64 | default 0 | +N to Armor Class (magic armor/shield, or a ring/cloak of protection). 0 = none. |
| activations | MagicActivation[] | optional | Independently selectable activations sharing this item's one custody, attunement, and charge ledger. A scroll uses the same typed spell/effect payload with |
| ammunition_kind | AmmunitionKind | optional | This item is one reified piece of ammunition for the named weapon-ammo family. It is selected explicitly per attack; possession never equips or automatically spends it. Its |
| ammunition_on_hit_condition | MagicAmmunitionOnHitCondition | optional | Save-gated condition applied when this exact selected round hits. The round remains explicit per shot; merely carrying it grants nothing. |
| ammunition_target_type_damage | MagicAmmunitionTargetTypeDamage | optional | Extra typed damage triggered only when this ammunition damages the authored creature type. Unlike enhanced ammunition, its enchantment is spent only when this rider actually resolves. |
| attack_bonus | int64 | default 0 | +N to attack rolls made with this magic WEAPON (the SRD "+X to attack and damage"). 0 = none. |
| attack_disadvantage_until_damaged | boolean | default false | Attack rolls against the active wearer have Disadvantage until the wearer takes damage; the property refreshes at the start of the wearer's next turn and is suppressed while their Speed is 0. |
| attack_roll_replacement | uint8 | default 0 | Natural d20 face the wearer may explicitly choose in place of rolling one attack roll. Availability is paid from this item's own charge ledger, so |
| attunement_restriction | AttunementRestriction | optional | Authored attunement restriction. |
| auras | MagicItemAura[] | optional | Friendly creatures, including the bearer, gain these item-authored effects while within the active item's derived Emanation. |
| base_arm | string | optional | The base weapon/armor id this enchants (a |
| condition_immunities | string[] | default [] | Condition ids the attuned bearer cannot acquire. |
| confirmed_hit_charge_rider | MagicItemConfirmedHitChargeRider | optional | An optional charge spend offered only after a melee hit with this exact reified weapon is confirmed. Each charge adds one copy of |
| confirmed_hit_passive_effect | MagicItemConfirmedHitPassiveEffect | optional | A passive effect resolved on every confirmed hit with this exact weapon. |
| critical_hit_immunity | boolean | default false | While active, critical hits against the bearer become ordinary hits. Natural 20 still hits; only critical damage and riders are suppressed. |
| damage_bonus | int64 | default 0 | +N to damage rolls made with this magic WEAPON. 0 = none. |
| damage_immunities | string[] | default [] | Damage kinds the attuned bearer is immune to. Unlike resistance, these kinds reduce matching damage to zero. |
| damage_reductions | MagicItemDamageReduction[] | optional | Rolled reduction applied to each matching damage instance before the resistance/vulnerability ladder. This is deliberately distinct from resistance: a Ring of Warmth subtracts 2d8 Cold damage, it does not halve it. |
| darkvision_bonus_ft | uint32 | default 0 | Feet of Darkvision granted by this active item. If the bearer already has Darkvision, this extends that range by the authored amount. |
| darkvision_minimum_ft | uint32 | default 0 | Minimum Darkvision range supplied by the item. Unlike an additive bonus, this never extends an already longer range. |
| death_save_minimum_roll | uint8 | default 0 | Minimum natural d20 result the bearer may choose for a Death Saving Throw. Zero means no floor; 10 is the Periapt of Wound Closure rule. |
| destruction | MagicItemDestruction | optional | Optional destruction check made only after a successful activation spends the item's final charge. |
| drawn_illumination | MagicItemIllumination | optional | Light emitted while this magic arm is explicitly drawn. |
| equip_slots | Slot[] | default [] | Kinbarrow equipment locations this item may occupy. This is game-layer metadata translated from the printed held/worn form, not a claim that tabletop D&D itself has exclusive body slots. Empty means carried use. |
| extra_weapon_damage | string | optional | Extra dice of the enchanted weapon's own damage type on every hit. This is weapon-local (Vicious Weapon), doubles on a critical hit, and disappears when another weapon is selected. |
| fall_descent_ft_per_round | uint32 | default 0 | While active, every fall becomes a controlled descent at this rate and deals no falling damage. Unlike a reaction spell's pending modifier, this worn-item benefit is not consumed by the first fall. |
| grants_air_breathing | boolean | default false | The active item lets its bearer breathe air while preserving any other breathing media. Kept separate for future amphibious magic. |
| grants_water_breathing | boolean | default false | The active item lets its bearer breathe in water while preserving any breathing media the creature already has. |
| hit_die_healing_multiplier | uint8 | default 0 | Multiplier applied to the complete Hit Die healing result (die plus Constitution modifier, after the ordinary minimum). Zero and one mean unchanged; two expresses the Periapt of Wound Closure rule. |
| id | string | required | Authored id. |
| ignores_spell_attack_half_cover | boolean | default false | Spell attacks made while this item is active ignore Half Cover. |
| initial_charge_capacity | ChargeCapacityRoll | optional | Optional per-instance starting capacity. The roll is made once when the concrete item is minted, then stored on that item; |
| initiative_advantage | boolean | default false | Advantage on the bearer's Initiative roll while this item is active. This is read only during combat assembly; it never equips the item. |
| initiative_advantage_aura_ft | uint32 | default 0 | Allies (including the bearer) within this many feet gain Initiative advantage while the item is active. Zero means no aura. |
| leap | AuthoredLeap | optional | An authored jump mode granted while this item is explicitly worn. |
| magic_effect_save_advantage | boolean | default false | Advantage on saves against any magical effect, including spells. |
| max_charges | uint32 | default 0 | A charged item's maximum charges (a wand). 0 = no charges. Charges SPENT ride the item's |
| mode_groups | MagicItemModeGroup[] | optional | Explicit operational modes whose runtime selections belong to each reified item instance. Projection never equips or activates the item. |
| name | string | required | Authored name. |
| natural_face_hit_effect | MagicItemNaturalFaceHitEffect | optional | A passive effect triggered by the unmodified face of a confirmed hit with this exact weapon. The trigger remains distinct from the derived critical-hit result (which defenses may suppress). |
| perceiver_disadvantage_to_see_wearer | boolean | default false | Sight-based Perception checks made by another creature specifically to perceive this wearer have Disadvantage. This is target-relative rather than a modifier on either creature's general Perception or Stealth. |
| poisoned_save_advantage | boolean | default false | Advantage on saves whose purpose is to avoid or end the Poisoned condition. This is narrower than advantage against poison damage. |
| rarity | MagicRarity | required | SRD magic-item rarity — the worth factor derives from it. |
| reactions | MagicItemReaction[] | default [] | Explicit Reactions available directly from the active item, independent of any selectable form or mode. |
| recharge | Recharge | optional | When spent charges refresh ([ |
| requires_attunement | boolean | default false | SRD attunement: the bonus applies ONLY while attuned, and a soul attunes to at most three items ( |
| requires_mount_anatomy | boolean | default false | Annotation for equipment authored to fit a creature with mount anatomy, such as horseshoes, saddles, or barding. The engine does not currently read this field or equip the item automatically. |
| resistances | string[] | default [] | Damage KINDS this item makes its bearer resistant to, halving matching damage. Each entry is a |
| save_bonus | int64 | default 0 | +N to saving throws (a ring/cloak of protection). 0 = none. |
| skill_modifiers | MagicItemSkillModifier[] | optional | Skill-check modifiers from active equipment. These compose with the bearer's ordinary ability/proficiency bonus and with Help/conditions. |
| source | Source | required | Authored source. |
| spell_attack_bonus | int64 | default 0 | Flat bonus to spell attack rolls while this item is active. |
| spell_attack_disadvantage | boolean | default false | Spell attack rolls against the active bearer have disadvantage. |
| spell_bonus_class | string | optional | When present, both spell bonuses above apply only to spells whose authored class list contains this class (Rod of the Pact Keeper). |
| spell_damage_immunities | string[] | default [] | Damage from these exact authored spells is ignored while the item is active. This is source-specific protection, not damage-kind immunity. |
| spell_save_advantage | boolean | default false | Advantage on saving throws caused by spells. This deliberately does not include every magical effect. |
| spell_save_dc_bonus | int64 | default 0 | Flat bonus to spell save DCs while this item is active. |
| study | MagicItemStudy | optional | Optional ambient study contract. Unlike an equipped modifier, completion permanently changes the student's base score. |
| suppresses_armor_stealth_disadvantage | boolean | default false | This enchanted armor ignores its mundane Stealth disadvantage. |
| suppresses_armor_strength_requirement | boolean | default false | This enchanted armor ignores its mundane Strength requirement. |
| suppresses_encumbrance_speed_penalty | boolean | default false | Ignore speed penalties caused by carried load while this item is active. Capacity and inventory mass still exist; only their movement penalty is suppressed. |
| suppresses_worn_armor_speed_penalty | boolean | default false | While this wondrous item is active, worn Heavy Armor cannot reduce the bearer's Speed for an unmet Strength requirement. |
| target_type_damage | MagicItemTargetTypeDamage | optional | Extra weapon damage against a target of one authored creature type. This belongs to the enchanted arm itself (Dragon Slayer), so drawing a different weapon removes it and critical hits double its dice normally. |
| thrown_weapon | MagicThrownWeapon | optional | Optional always-active thrown profile for this magic weapon. |
| truesight_ft | uint32 | default 0 | Truesight range supplied by this active item. |
| typed_extra_weapon_damage | Damage | optional | A separate typed damage roll made on every hit with this exact weapon. It is a distinct damage instance, so its own resistance/immunity ladder applies; its dice double on a critical hit. |
| unarmed_strike_bonus | int64 | default 0 | Bonus to attack and damage rolls made specifically with Unarmed Strikes. Unlike a magic weapon bonus, this is a bearer projection from explicitly worn equipment and never modifies a held weapon. |
| unarmed_strike_force_choice | boolean | default false | The wearer may choose Force in place of an Unarmed Strike's ordinary damage type. The choice belongs to each strike, not to the loadout. |
| unarmored_base_ac | uint8 | default 0 | While no body armor is worn, offer |
| unarmored_unshielded_ac_bonus | int64 | default 0 | +N AC only while the bearer wears no body armor and has no Shield equipped. This is the Bracers of Defense predicate; unlike a generic |
| walking_speed_bonus_ft | uint32 | default 0 | Additive feet applied to the bearer's walking Speed while active. |
| walking_speed_minimum_ft | uint32 | default 0 | A floor for the bearer's walking Speed while active. A naturally faster bearer is never slowed. |
| weapon_bonus_action_attack | boolean | default false | The bearer may make one Bonus Action attack with this exact equipped weapon. This is not two-weapon fighting and has no prior-Light-attack prerequisite (Scimitar of Speed). |
| weapon_family_bonuses | MagicItemWeaponFamilyBonus[] | optional | Closed weapon-family benefits conferred by an active wondrous item. Weapon ids resolve at load; each matching profile may grant proficiency and/or add a flat damage bonus without enchanting the weapon itself. |
Nested shapes
Every shape MagicItem closes over, so this page stands alone.
Ability
An open, validated Ability id interned from authored data.
AbilityScoreFloor
Authorable AbilityScoreFloor data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | Authored ability. |
| score | uint8 | required | Authored score. |
AbilityScoreModifier
Authorable AbilityScoreModifier data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | Authored ability. |
| bonus | int8 | required | Authored bonus. |
| maximum | uint8 | required | Authored maximum. |
AfflictionEntryEffect
Authorable AfflictionEntryEffect data exposed through the modding schema.
DropHeldItems
Select the drop held items behavior.
AmmunitionKind
The ammunition consumed by a ranged weapon attack.
Arrow
Select the arrow behavior.
Bolt
Select the bolt behavior.
Bullet
Select the bullet behavior.
Needle
Select the needle behavior.
AntimagicPolicy
Authorable AntimagicPolicy data exposed through the modding schema.
SuppressResume
Select the suppress resume behavior.
SuppressEnd
Select the suppress end behavior.
Immune
Select the immune behavior.
Area
An area of effect, resolved on the encounter board's 5 ft grid: a sphere centers on the TARGET, a cone/line throws from the CASTER toward it, a burst centers on the caster (thunderwave's "Self (15-foot cube)", radius-approximated on the Chebyshev grid).
Sphere
A sphere of radius_ft, centered on the target point (fireball).
| Field | Type | Required | Description |
|---|---|---|---|
| radius_ft | uint32 | required |
Cone
A cone of length_ft, thrown from the caster toward the target (burning hands).
| Field | Type | Required | Description |
|---|---|---|---|
| length_ft | uint32 | required |
Line
A line of length_ft, thrown from the caster toward the target (lightning bolt).
| Field | Type | Required | Description |
|---|---|---|---|
| length_ft | uint32 | required |
Rectangle
A directional rectangle with independently authored long and wide dimensions. Placement supplies a near-left corner and a second point choosing its long axis; neither dimension is approximated as a line or sphere.
| Field | Type | Required | Description |
|---|---|---|---|
| length_ft | uint32 | required | |
| width_ft | uint32 | required |
Burst
A burst of radius_ft centered on the caster (thunderwave's "Self" cube, radius-approximated on the grid).
| Field | Type | Required | Description |
|---|---|---|---|
| radius_ft | uint32 | required |
Emanation
A radius centered on and including the origin creature. Unlike a burst, an emanation includes its origin and needs no aim point.
| Field | Type | Required | Description |
|---|---|---|---|
| radius_ft | uint32 | required |
ArmorCategory
The SRD armor categories — light/medium/heavy body armor and the shield.
Light
Select the light behavior.
Medium
Select the medium behavior.
Heavy
Select the heavy behavior.
Shield
Select the shield behavior.
AttackHitDamageConsequence
A consequence gated by the actual post-mitigation damage of an AttackHitDamageGrant. Keeping the trigger attached to the damage instance means immunity correctly prevents the consequence as well.
PreventHealingUntilSourceNextTurn
Select the prevent healing until source next turn behavior.
AttunementQualification
Authorable AttunementQualification data exposed through the modding schema.
Species
Select the species behavior.
Carries string.
Class
Select the class behavior.
Carries string.
Spellcaster
Select the spellcaster behavior.
AttunedToItem
Select the attuned to item behavior.
Carries string.
AttunementRestriction
An objective bearer qualification printed by an item's attunement line. This is separate from requires_attunement: the latter consumes a slot, while this determines who may establish (and continue to benefit from) it.
None
Select the none behavior.
Spellcaster
At least one current class has an authored spellcasting progression.
Classes
At least one current class is named in this closed authored allowlist. This represents items restricted to particular classes rather than all spellcasters; multiclass characters qualify through any listed class.
Carries string[].
Any
At least one independently authored qualification is satisfied. This keeps compound item restrictions in data (for example, a species OR attunement to another item) instead of teaching the engine item ids.
Carries AttunementQualification[].
AuthoredChoicePayload
Authorable AuthoredChoicePayload data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| option_set | string | required | Authored option set. |
| options | string[] | required | Authored options. |
| resource_cost | uint16 | default 0 | Authored resource cost. |
AuthoredForcedAction
Authorable AuthoredForcedAction data exposed through the modding schema.
Approach
Select the approach behavior.
Drop
Select the drop behavior.
Flee
Select the flee behavior.
Grovel
Select the grovel behavior.
Halt
Select the halt behavior.
AuthoredLeap
An authored leap that overrides the ordinary Strength-derived maximum when its run-up requirement is met. Creatures and explicitly worn equipment use this same typed movement primitive. Distances are authored in feet.
| Field | Type | Required | Description |
|---|---|---|---|
| bonus_action | boolean | default false | This authored leap spends the creature's Bonus Action. |
| high_jump_ft | integer | optional | Authored high jump ft. |
| long_jump_ft | integer | optional | Authored long jump ft. |
| movement_cost_ft | integer | optional | Fixed movement paid for the leap, regardless of distance traveled. |
| once_per_turn | boolean | default false | This special leap can be used only once on each of the creature's turns. |
| requires_running_start | boolean | default false | Authored requires running start. |
CancellationCheck
The closed resolution gate for cancelling a spell or ongoing effect.
Automatic
Select the automatic behavior.
D20
Select the d20 behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| dc | int64 | required | |
| modifier | int64 | required |
SlotLevelOrSpellcastingCheck
End ongoing spells at or below the casting slot's level automatically; check higher-level spells using the caster's spellcasting ability against the base DC plus the ongoing spell's level.
| Field | Type | Required | Description |
|---|---|---|---|
| dc_base | int64 | required |
SavingThrow
The interrupted creature saves against the authored DC; cancellation occurs on a failed save.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| dc | int64 | required |
SavingThrowAgainstCasterDc
The interrupted creature saves against the reacting caster's spell save DC. Cancellation occurs on a failed save.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required |
CastSpellFilter
A spell catalogue predicate used by cast privileges and transformations. Nonempty fields are combined: a spell must satisfy every authored field.
| Field | Type | Required | Description |
|---|---|---|---|
| cantrip | boolean | optional | When present, require or forbid a cantrip. |
| cast_times | CastTime[] | default [] | Casting times accepted by the rule. Empty accepts every casting time. |
| classes | string[] | default [] | Class-list ids. Empty accepts every class list. |
| maximum_level | integer | optional | Inclusive highest spell level. Absent has no level ceiling. |
| minimum_level | integer | optional | Inclusive lowest spell level. Absent has no level floor. |
| schools | string[] | default [] | School ids. Empty accepts every school. |
| spell_ids | string[] | default [] | Exact open spell ids. Empty accepts every id. |
CastTime
Casting times supported by the combat turn economy: Action, BonusAction, and Reaction. Longer castings, such as rituals, are not represented here.
Action
Select the action behavior.
BonusAction
Select the bonus action behavior.
Reaction
Select the reaction behavior.
CastTransformOption
One open-id cast transformation. The id records the choice; only its authored filter, price, compatibility, and transformations select rules.
| Field | Type | Required | Description |
|---|---|---|---|
| compatible_with | string[] | default [] | Other option ids that may be combined with this option. |
| cost | uint32 | required | Units charged to |
| filter | CastSpellFilter | default {"cantrip":null,"cast_times":[],"classes":[],"maximum_level":null,"minimum_level":null,"schools":[],"spell_ids":[]} | Spell predicate that must accept the cast. |
| id | string | required | Open option id used by UI and recorded decisions, never dispatch. |
| minimum_class_level | uint32 | required | First granting-class level at which this option is legal. |
| pool | string | optional | Authored resource pool charged when the option has a positive cost. |
| transformations | CastTransformation[] | required | Nonempty ordered transformation composition. |
CastTransformation
A bounded mechanical change an authored cast-transform option applies.
RangeFeet
Replace the spell's range when its printed range meets the minimum.
| Field | Type | Required | Description |
|---|---|---|---|
| feet | uint32 | required | |
| minimum_printed_ft | uint32 | required |
RangeMultiplier
Multiply a ranged spell and give a Touch spell the authored reach.
| Field | Type | Required | Description |
|---|---|---|---|
| multiplier | uint32 | required | |
| touch_feet | uint32 | required |
ExtraTargets
Add distinct targets near the first target.
| Field | Type | Required | Description |
|---|---|---|---|
| count | uint32 | required | |
| within_ft | uint32 | required |
DurationMultiplier
Multiply a finite duration by this positive factor.
| Field | Type | Required | Description |
|---|---|---|---|
| multiplier | uint32 | required |
DurationSeconds
Replace the spell's finite duration with this exact positive value.
| Field | Type | Required | Description |
|---|---|---|---|
| seconds | uint64 | required |
Concentration
Replace the spell's concentration requirement.
| Field | Type | Required | Description |
|---|---|---|---|
| required | boolean | required |
IgnoreComponents
Suppress the named ordinary component requirements.
| Field | Type | Required | Description |
|---|---|---|---|
| components | SpellComponents | required |
RerollDamageDice
Reroll up to this authored number of damage dice.
| Field | Type | Required | Description |
|---|---|---|---|
| maximum | FeatureValue | required |
RerollAttackRoll
Reroll a missed spell attack up to this many times.
| Field | Type | Required | Description |
|---|---|---|---|
| maximum | uint32 | required |
SaveDisadvantage
Give one target Disadvantage on its first save against the spell.
DamageKindChoice
Choose the resulting damage kind from this nonempty open-id set.
| Field | Type | Required | Description |
|---|---|---|---|
| kinds | string[] | required |
ProtectAreaAllies
Protect a bounded number of creatures in an area. The base capacity is composed with the optional per-spell-level increment.
| Field | Type | Required | Description |
|---|---|---|---|
| capacity | FeatureValue | required | |
| per_spell_level | uint32 | required |
AddAbilityDamage
Add the named ability modifier once to one matching damage roll.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required |
MaximizeDamage
Maximize the spell's damage dice.
HalfDamageOnSuccessfulSave
A successful save against a damaging cantrip takes half damage.
WaiveCostPerTurn
Waive the option's resource cost for a bounded number of uses per turn.
| Field | Type | Required | Description |
|---|---|---|---|
| uses | uint32 | required |
ChargeCapacityRoll
Authorable ChargeCapacityRoll data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | uint8 | required | Authored dice. |
| faces | uint8 | required | Authored faces. |
| modifier | uint8 | default 0 | Authored modifier. |
ChoiceDeliveryOption
One explicit delivery choice, resolved through the ordinary cast target, save, and effect readers.
| Field | Type | Required | Description |
|---|---|---|---|
| bonus | FeatureValue | optional | Optional feature-derived flat bonus applied once to the option. |
| delivery | Delivery | required | Target, attack, or save gate applied before its effects. |
| dice_count_by_level | [uint32, uint32][] | default [] | Strictly increasing |
| effects | Effect[] | required | Ordered effects delivered by this option. |
| id | string | required | Open option id used by UI and recorded decisions, never dispatch. |
| range | SpellRange | required | Range of this option's ordinary cast-shaped delivery. |
ContingentConsequence
Authorable ContingentConsequence data exposed through the modding schema.
PreventDropToOne
Select the prevent drop to one behavior.
ContingentPredicate
Authorable ContingentPredicate data exposed through the modding schema.
WouldDropToZero
Select the would drop to zero behavior.
TurnStart
Select the turn start behavior.
TurnEnd
Select the turn end behavior.
TakesDamage
Select the takes damage behavior.
ContingentTiming
Authorable ContingentTiming data exposed through the modding schema.
BeforeEvent
Select the before event behavior.
AfterEvent
Select the after event behavior.
D20Edge
A one-shot d20 edge armed by a feature action.
SelfAdvantage
Advantage on the bearer's next eligible d20 test.
IncomingAttackDisadvantage
Disadvantage on the next attack made against the bearer.
Damage
Feat ids — the SRD's ONE feat, referenced where its grapple-dependent riders read (the Grappler advantage/pin). A damage roll: dice plus the kind they deal. The shared shape every attack, spell effect and trap payload reaches for, which is why it carries no id of its own — it is always a FIELD of the thing that inflicts it.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | The damage dice, an |
| kind | string | required | A |
DamageRollAmount
A damage amount supplied by a generic damage-roll policy.
DiceByLevel
Dice selected from a strictly increasing class-level table.
| Field | Type | Required | Description |
|---|---|---|---|
| by_level | [uint32, string][] | required |
AbilityModifier
One authored ability modifier, subject to an authored minimum.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| minimum | int64 | required |
OverrideDieFaces
Replace one eligible damage die's faces with this die size.
| Field | Type | Required | Description |
|---|---|---|---|
| faces | uint32 | required |
DamageRollOutcome
The resolved roll boundary at which a damage policy applies.
Hit
An eligible attack hit.
Miss
An eligible attack or spell missed.
FailedSave
The target failed the effect's saving throw.
SuccessfulSave
The target succeeded on the effect's saving throw.
DamageRollSource
The authored attack or spell family whose damage a generic feature effect may inspect or amend.
Weapon
Any ordinary weapon attack.
MeleeWeapon
An attack with a Melee weapon: a weapon of a melee category, whether it is swung or thrown.
UnarmedStrike
An unarmed strike.
BoundWeapon
The weapon currently bound through an authored feature action.
Cantrip
Any cantrip damage roll.
Spell
One of the listed open spell ids.
| Field | Type | Required | Description |
|---|---|---|---|
| ids | string[] | required |
Mark
Damage attached to the bearer's current authored mark.
AttackRoll
Any attack roll: one made with a weapon, an Unarmed Strike, a natural attack or a spell. A spell that makes several attack rolls, one for each ray or beam, makes each of them its own attack roll.
Delivery
How a cast DELIVERS its effects: the ONE roll/selection gate between the caster and whoever the effect list lands on. A spell is delivery × effects — a modded spell composes these primitives freely with no engine code; only a new PRIMITIVE (and, later, a scripted one through the Layer-2 modhost) needs code.
WeaponAttack
Make one attack with a concrete carried melee weapon as part of this cast. The action names the reified weapon; a hit resolves its ordinary weapon effects and then this spell phase's effects.
Attack
A spell attack roll (d20 + PB + casting mod vs AC), once per ray — each hit delivers the effect list (scorching ray rolls three).
| Field | Type | Required | Description |
|---|---|---|---|
| rays | uint32 | required |
Auto
Unerring bolts (magic missile): every dart lands, no roll.
| Field | Type | Required | Description |
|---|---|---|---|
| darts | uint32 | required |
AutoArea
Every subject in the area receives the effect list without a roll.
| Field | Type | Required | Description |
|---|---|---|---|
| area | Area | required |
Save
A saving throw against the caster's DC for everyone caught — the named target, or every combatant an [Area] takes in. A SUCCESS spares per [OnSave]; non-damage effects land only on a failure.
ChainSave
One primary in spell range plus up to secondary_targets distinct creatures within chain_range_ft of that primary. Every selected creature makes its own save and receives the effect list independently.
Allies
The named ally plus the worst-hurt others in range, up to targets (mass healing word's six) — the derived-policy pick.
| Field | Type | Required | Description |
|---|---|---|---|
| targets | uint32 | required |
Target
The named target alone, no roll — the touch utilities.
Effect
The shared mechanic vocabulary for spells and feature grants, including delivered effects, passive rules, activated actions, and combat triggers. It includes conditions, summons, forced movement, and ongoing effects governed by a spell's concentration. Supported effects depend on their context. Passives, actions, and triggers validate their own supported subsets; delivered spells follow their delivery and composition rules.
CastPrivilege
Authorize a cast matching an authored spell predicate and independently state which ordinary casting costs or form restrictions are exempt.
| Field | Type | Required | Description |
|---|---|---|---|
| allowed_while_transformed | boolean | default false | |
| filter | CastSpellFilter | required | |
| ignore_components | SpellComponents | default {"material":false,"material_consumed":false,"material_costly":false,"somatic":false,"verbal":false} | |
| ignore_consumed_material | boolean | default false | |
| ignore_costly_material | boolean | default false | |
| profile | PrivilegedCastProfile | optional | Optional bounded profile for an activated class-granted cast. |
| requires_prepared | boolean | default false | |
| requires_selected | boolean | default false | |
| selection_capacity | uint32 | default 0 | Number of distinct spells selected for this privilege. |
| selection_group | string | optional | Open selection group used to store eligible spell choices. |
| slotless | boolean | default false | |
| uses_per_selection | integer | optional | Free casts available independently for each selected spell. |
CastTransform
Offer parameterized cast changes. Option ids carry provenance only; filters, costs, compatibility, and transformation values drive play.
| Field | Type | Required | Description |
|---|---|---|---|
| known_capacity | [uint32, uint32][] | default [] | Strictly increasing |
| options | CastTransformOption[] | required | |
| simultaneous_limit | [uint32, uint32][] | default [] | Strictly increasing |
ChoiceDelivery
Offer mutually exclusive, explicitly delivered effect compositions.
| Field | Type | Required | Description |
|---|---|---|---|
| choices | ChoiceDeliveryOption[] | required |
PreparationAccess
Admit spells from authored class lists to preparation without changing the bearer's ordinary prepared-spell capacity.
| Field | Type | Required | Description |
|---|---|---|---|
| classes | string[] | required | |
| exchange_per_rest | integer | optional | Maximum prepared spells replaced through this access after a rest. Absent grants ordinary add-or-replace preparation access. |
| maximum_spell_level | integer | optional | |
| requires_spellbook | boolean | default false |
ResourceExchange
Atomically exchange one authored resource ledger for another through a finite conversion table. Resource identity, rates, caps, and use economy are all parameters; a feature id never selects the rule.
| Field | Type | Required | Description |
|---|---|---|---|
| routes | ResourceExchangeRoute[] | required |
RestoreResourceMinimum
Raise a named resource ledger to at least an authored amount, without exceeding that ledger's ordinary capacity.
| Field | Type | Required | Description |
|---|---|---|---|
| ledger | FeatureResourceLedger | required | |
| minimum | uint32 | required |
HideEligibility
Permit an authored Hide context while its action and equipment gates hold. This describes the context, not the granting feature's identity.
| Field | Type | Required | Description |
|---|---|---|---|
| allowed_armor | ArmorCategory[] | default [] | Authored body-armor categories that remain eligible. |
| allows_unarmored | boolean | default false | Permit no body armor as an eligible equipment state. |
| requires_bonus_hide | boolean | default false | Require the bearer to have the generic bonus-Hide capability. |
MovementSurfacePermission
Permit one movement mode to traverse the listed otherwise-forbidden surfaces while an optional unarmored gate holds.
| Field | Type | Required | Description |
|---|---|---|---|
| mode | MovementMode | required | Movement mode used to cross those surfaces. |
| requires_unarmored | boolean | default false | Whether wearing body armor suppresses the permission. |
| surfaces | MovementSurface[] | required | Nonempty, duplicate-free surface set. |
ScaledFallReduction
Spend the creature's Reaction when it falls to reduce the fall's damage by an authored amount per granting-class level.
| Field | Type | Required | Description |
|---|---|---|---|
| damage_per_class_level | uint32 | required |
SourceLinkedConditionLifecycle
End a source-owned condition when one of the authored lifecycle events occurs. Source ownership is retained by the ordinary persistent effect.
| Field | Type | Required | Description |
|---|---|---|---|
| ends_on_damage | boolean | default false | |
| ends_on_source_death | boolean | default false | |
| ends_on_source_incapacitated | boolean | default false |
TimedResistance
Grant resistance for a bounded duration after atomically charging an authored resource pool. Exactly one included or excluded set is used.
| Field | Type | Required | Description |
|---|---|---|---|
| cost | uint32 | required | Positive fixed pool price. |
| damage_kinds | string[] | default [] | Explicit kinds resisted; empty when |
| excluded_damage_kinds | string[] | default [] | Resist every loaded kind except these ids; empty for an include set. |
| pool | string | required | Authored resource pool charged on acceptance. |
| rounds | uint32 | required | Duration in combat rounds. |
AbilityScaledDamageDice
Deal one die per derived ability modifier, subject to an authored positive minimum, using the ordinary damage ladder.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | Ability whose modifier determines the number of dice. |
| die_faces | uint32 | required | Faces on every die. |
| kind | string | required | A |
| minimum_dice | uint32 | required | Minimum number of dice rolled after deriving the modifier. |
AttackDamageProperty
Give attacks selected by authored source filters a damage property.
| Field | Type | Required | Description |
|---|---|---|---|
| magical | boolean | required | Whether matching damage counts as magical. |
| sources | DamageRollSource[] | required | Nonempty attack-source alternatives. |
DamageRollPolicy
Amend an eligible damage roll at authored outcomes, with optional once-per-turn accounting.
| Field | Type | Required | Description |
|---|---|---|---|
| amount | DamageRollAmount | required | Damage dice, ability modifier, or die override to apply. |
| kind | string | optional | Optional replacement damage kind; absent preserves the parent kind. |
| once_per_turn | boolean | default false | Whether the policy may resolve only once during the bearer's turn. |
| outcomes | DamageRollOutcome[] | required | Nonempty resolved outcomes on which the amount applies. |
| sources | DamageRollSource[] | required | Nonempty attack, spell, or mark source alternatives. |
RiderExchange
Atomically exchange parent damage dice or attack Advantage for one or more distinct, level-gated effect compositions.
| Field | Type | Required | Description |
|---|---|---|---|
| budget | RiderExchangeBudget | required | Kind of budget paid by the accepted choices. |
| capacity | [uint32, uint32][] | required | Strictly increasing |
| choices | RiderExchangeChoice[] | required | Open-id choices with authored prices and consequences. |
| leave_one_die | boolean | default false | For damage-dice budgets, require at least one die to remain. |
AbilityScoreIncrease
Derive an increase for the listed ability scores, bounded by cap. This is read from the reached grant and is never repeatedly stamped.
| Field | Type | Required | Description |
|---|---|---|---|
| abilities | Ability[] | required | Nonempty set of abilities receiving the same increase. |
| amount | int64 | required | Positive amount added before applying the cap. |
| cap | int64 | required | Highest derived score. The result is |
AgingRate
Derive apparent age as elapsed years divided by this positive rate. Elapsed world time itself is unchanged.
| Field | Type | Required | Description |
|---|---|---|---|
| divisor | uint32 | required |
AttunementCapacity
Override the bearer's derived magic-item attunement capacity.
| Field | Type | Required | Description |
|---|---|---|---|
| capacity | uint32 | required |
ArmD20Edge
Arm one typed one-shot d20 edge on the bearer.
| Field | Type | Required | Description |
|---|---|---|---|
| edge | D20Edge | required |
SwapInitiative
Offer a willing, conscious ally and exchange the two Initiative values.
BestOfTwoWeaponDamage
Roll only the weapon's base damage dice twice and keep the greater sum.
RestoreTurnResource
Restore one already-spent turn resource to the acting creature.
| Field | Type | Required | Description |
|---|---|---|---|
| economy | FeatureActionEconomy | required |
RestoreHitPoints
Restore hit points from authored dice plus a value derived from the invoking grant and its bearer.
| Field | Type | Required | Description |
|---|---|---|---|
| bonus | FeatureValue | required | |
| dice | string | required |
GrantTemporaryHitPoints
Grant temporary hit points from authored dice plus a value derived from the invoking grant and its bearer.
| Field | Type | Required | Description |
|---|---|---|---|
| bonus | FeatureValue | required | |
| dice | string | required |
TimedCondition
Apply an authored condition to the bearer for a number of rounds. Lifecycle clauses belong to the application, while the condition's combat reads remain composed in data/conditions.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | |
| ends_without_attack_or_damage | boolean | default false | |
| rounds | uint32 | required |
OneOfNextTurn
On the target's next turn, it can only move, take an action, or take a Bonus Action. Its first choice closes the other two for that turn.
TimedMeleeDefense
Apply a timed condition whose melee attacks receive a level-scaled flat damage bonus and whose bearer resists authored damage kinds.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | |
| damage_bonus | FeatureLevelValue[] | required | |
| ends_without_attack_or_damage | boolean | default false | |
| resistances | string[] | required | |
| rounds | uint32 | required |
TimedSpellEnhancement
Apply a timed enhancement to spell attack rolls and spell save DCs.
| Field | Type | Required | Description |
|---|---|---|---|
| attack_advantage | boolean | default false | |
| condition | string | required | |
| fallback_cost | uint32 | required | |
| fallback_pool | string | required | |
| rounds | uint32 | required | |
| save_dc_bonus | int64 | required |
TimedMovementMode
Grant an authored movement mode at walking speed for a duration. A dismissible grant may be ended by invoking the same action again.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | |
| dismissible | boolean | default false | |
| fallback_cost | uint32 | required | |
| fallback_pool | string | required | |
| mode | MovementMode | required | |
| rounds | uint32 | required |
FallbackPoolCost
Charge a fixed amount from an authored fallback resource when the action's primary use store is unavailable.
| Field | Type | Required | Description |
|---|---|---|---|
| amount | uint32 | required | |
| pool | string | required |
TimedDamageAura
Establish a mobile damaging aura around the bearer for the authored duration. Damage and radius are ordinary parameters, not content ids.
| Field | Type | Required | Description |
|---|---|---|---|
| damage | FeatureValue | required | |
| kind | string | required | |
| radius_ft | uint32 | required | |
| rounds | uint32 | required |
HealSpread
Divide a level-derived healing budget among nearby allies without raising any recipient beyond the authored fraction of maximum HP.
| Field | Type | Required | Description |
|---|---|---|---|
| maximum_percent | uint8 | required | |
| points_per_level | uint32 | required | |
| radius_ft | uint32 | required |
MarkTarget
Install or transfer a source-owned mark onto one target in range.
| Field | Type | Required | Description |
|---|---|---|---|
| damage_die | string | required | |
| range_ft | uint32 | required |
RestorePool
Restore an authored resource pool to its capacity.
| Field | Type | Required | Description |
|---|---|---|---|
| heal_with_capacity_die | boolean | default false | |
| pool | string | required |
BonusStrikes
Offer an authored number of bonus strikes against one legal target.
| Field | Type | Required | Description |
|---|---|---|---|
| count | uint8 | required |
BonusEconomy
Make selected ordinary actions available through the bonus-action economy for the current turn.
| Field | Type | Required | Description |
|---|---|---|---|
| dash | boolean | default false | |
| disengage | boolean | default false | |
| dodge | boolean | default false | |
| hide | boolean | default false | |
| utilize | boolean | default false |
HitRider
Arm the bearer's next eligible hit with typed damage and/or a saving throw that applies an authored condition.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | optional | |
| damage | SlotScaledDamage | optional | |
| save | Ability | optional |
AttackAdvantage
Grant Advantage on the next eligible attack and optionally consume the bearer's remaining movement for this turn.
| Field | Type | Required | Description |
|---|---|---|---|
| consume_movement | boolean | default false |
SpendHealingPool
Spend points from an authored pool to heal a touched ally or remove one of its conditions at the authored cleanse price.
| Field | Type | Required | Description |
|---|---|---|---|
| cleanse_cost | uint32 | required | |
| points_per_level | uint32 | required | |
| pool | string | required |
GrantDie
Grant a die selected from an authored level table to one ally in range.
| Field | Type | Required | Description |
|---|---|---|---|
| by_level | FeatureLevelValue[] | required | |
| range_ft | uint32 | required |
WeaponAttackAbilityBonus
Add one ability modifier to weapon attack rolls for the authored duration.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| rounds | uint32 | required |
CreatureTypeSaveOrHeal
Offer a save against creatures of an authored type in an area or a level-scaled heal to one target. The choice is made by the action. Each creature that fails the save gains every one of conditions for rounds, against the action's save DC.
| Field | Type | Required | Description |
|---|---|---|---|
| conditions | string[] | required | |
| creature_type | string | required | |
| heal_bonus | FeatureValue | required | |
| heal_die | string | required | |
| radius_ft | uint32 | required | |
| rounds | uint32 | required | |
| save | Ability | required |
SaveBonusAura
Add one ability modifier to allied saving throws made within an aura.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| radius_ft | uint32 | required |
ConditionImmunityAura
Prevent allies within an aura from gaining one authored condition.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | |
| radius_ft | uint32 | required |
RollBonus
Add authored dice to the roll currently crossing a trigger boundary.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required |
ReplaceRoll
Replace the d20 currently crossing a trigger boundary with an authored face value.
| Field | Type | Required | Description |
|---|---|---|---|
| value | uint8 | required |
RerollFailedSave
Reroll the failed save currently crossing a trigger boundary and add a value derived from the invoking grant and bearer.
| Field | Type | Required | Description |
|---|---|---|---|
| bonus | FeatureValue | required |
ConditionalSaveReroll
Offer a willing target in range a reroll of a failed save against one of the authored conditions.
| Field | Type | Required | Description |
|---|---|---|---|
| conditions | string[] | required | Nonempty condition ids which make this reroll eligible. |
| radius_ft | uint32 | required | Maximum distance from the feature bearer to the saving creature. |
| willing | boolean | required | Whether the saving creature must accept the reroll. |
| with_advantage | boolean | required | Whether the replacement save rolls twice and keeps the higher d20. |
ReturnReducedAttack
After an incoming attack's damage is reduced to zero, permit an ordinary return attack against an eligible target in range.
| Field | Type | Required | Description |
|---|---|---|---|
| cost | uint32 | required | Positive amount charged from |
| damage_kinds | string[] | required | Nonempty damage-kind ids eligible for the reduction and return. |
| pool | string | required | Authored resource pool charged only when the return is accepted. |
| range_ft | uint32 | required | Maximum range of the ordinary return attack. |
SuppressIncomingAdvantage
Suppress Advantage on incoming attacks while the authored awareness gate holds.
| Field | Type | Required | Description |
|---|---|---|---|
| requires_conscious | boolean | required | When true, an unconscious or otherwise incapacitated bearer cannot suppress the incoming Advantage. |
ExtraInitiativeTurn
Insert another initiative turn in the first round at the authored penalty from the bearer's initiative.
| Field | Type | Required | Description |
|---|---|---|---|
| initiative_penalty | int64 | required |
HalfCoverAura
Grant half cover to the bearer and nearby allies until the bearer's next turn begins.
| Field | Type | Required | Description |
|---|---|---|---|
| radius_ft | uint32 | required |
MoveBySpeedFraction
Move the bearer by a fraction of its current speed as part of the boundary transition.
| Field | Type | Required | Description |
|---|---|---|---|
| denominator | uint8 | required |
MovementCapability
Use Dexterity for jump distance and/or grant a Climb Speed equal to walking speed while the row is active.
| Field | Type | Required | Description |
|---|---|---|---|
| climb_speed | boolean | default false | |
| jump_uses_dexterity | boolean | default false |
SchoolDamageBonus
Add one ability modifier to a damage roll for a spell of the authored school.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| school | string | required |
MaximizeSchoolDamage
Maximize damage for a spell in the authored school through the stated level; repeated use may apply the ordinary escalating backlash.
| Field | Type | Required | Description |
|---|---|---|---|
| backlash | boolean | default false | |
| maximum_spell_level | uint8 | required | |
| school | string | required |
CleanseFromPool
Spend authored pool points for each condition removed by a healing boundary.
| Field | Type | Required | Description |
|---|---|---|---|
| points_per_effect | uint32 | required | |
| pool | string | required |
AreaSaveCondition
Make foes in range save or gain an authored condition for a number of rounds.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | |
| range_ft | uint32 | required | |
| rounds | uint32 | required | |
| save | Ability | required |
HealingBonus
Add a flat amount plus an amount per spell level to healing crossing the current boundary.
| Field | Type | Required | Description |
|---|---|---|---|
| flat | int64 | required | |
| per_spell_level | int64 | required |
PersistentSpell
Select the persistent spell behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| payload | PersistentSpellPayload | required |
MaximumHitPointsChange
Select the maximum hit points change behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| amount | int32 | required |
MaximumHitPointsReductionFromDamage
Reduce the target's maximum HP by the damage the immediately preceding damage step actually dealt, after saves and damage modifiers. The life state kernel floors effective maximum HP at 1.
AdjacentTargetDamage
After a weapon-delivered spell hits its primary target, deal typed damage to one explicitly chosen different creature within this many feet of the primary. The casting ability modifier is optional and the dice follow the owning spell's ordinary cantrip ladder.
| Field | Type | Required | Description |
|---|---|---|---|
| cantrip_step_offset | int8 | default 0 | |
| casting_modifier | boolean | default false | |
| dice | string | required | |
| kind | string | required | |
| max_distance_ft | uint32 | required | |
| requires_sight | boolean | default false |
VoluntaryMovementDamage
Arm the delivered target until the source's next turn starts. The first voluntary move of at least minimum_ft consumes the handle and deals the scaled typed damage; forced movement never enters this door.
| Field | Type | Required | Description |
|---|---|---|---|
| cantrip_step_offset | int8 | default 0 | |
| dice | string | required | |
| kind | string | required | |
| minimum_ft | uint32 | default 5 |
CantripStepDamage
Typed damage whose die count follows the cantrip tier multiplier plus an authored signed offset. An offset of -1 expresses riders that begin at level 5 without content-specific branching.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| kind | string | required | |
| step_offset | int8 | default 0 |
DeathPrevention
Select the death prevention behavior.
ModeChoice
Require one explicit closed authored option before applying this effect.
| Field | Type | Required | Description |
|---|---|---|---|
| choice | AuthoredChoicePayload | required |
ForcedActionControl
Compel one typed action; content identity never participates in dispatch.
| Field | Type | Required | Description |
|---|---|---|---|
| action | AuthoredForcedAction | required |
ForcedActionChoice
Require the caster to choose one of several typed commands, then arm that exact forced action on the delivered target's next turn.
| Field | Type | Required | Description |
|---|---|---|---|
| option_set | string | required | |
| options | AuthoredForcedAction[] | required |
Contingent
Arm a separately typed delayed predicate and consequence.
| Field | Type | Required | Description |
|---|---|---|---|
| consequence | ContingentConsequence | required | |
| predicate | ContingentPredicate | required | |
| timing | ContingentTiming | required |
Transform
Replace a target's authored combat form while preserving soul identity.
| Field | Type | Required | Description |
|---|---|---|---|
| form | FormPayload | required |
ChangeSize
Change only the target's occupied size category; all other statistics remain.
| Field | Type | Required | Description |
|---|---|---|---|
| size | Size | required |
SpeedGrant
Temporarily add an authored number of feet to one closed movement mode.
| Field | Type | Required | Description |
|---|---|---|---|
| amount_ft | uint32 | required | |
| mode | MovementMode | required | |
| source_owned | boolean | default false |
UnarmedStrikeDamageGrant
Add one separately typed damage roll to every Unarmed Strike hit for the effect's duration. The rider is its own damage instance (so its resistance and critical-hit dice are resolved independently).
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| kind | string | required |
AttackHitDamageGrant
Add one separately typed damage roll whenever the bearer hits with an attack, provided the hit target is no farther away than the authored range. This applies uniformly to weapon, Unarmed Strike, natural, and spell attacks; the rider is a distinct damage instance and its dice double on a critical hit.
| Field | Type | Required | Description |
|---|---|---|---|
| consequences | AttackHitDamageConsequence[] | default [] | |
| dice | string | required | |
| kinds | string[] | required | |
| max_target_distance_ft | uint32 | required |
TurnStartProximityChoice
While this source-owned effect lasts, the source is offered a no-cost accept/decline choice whenever a creature it can see starts its turn in the authored radius. Choices are queued independently in source order.
| Field | Type | Required | Description |
|---|---|---|---|
| consequence | OptionalEffectConsequence | required | |
| radius_ft | uint32 | required | |
| requires_sight | boolean | default false |
StrengthScoreFloor
Raise the target's Strength score to at least this value for the effect's duration. The stored score is never lowered or mutated.
| Field | Type | Required | Description |
|---|---|---|---|
| score | uint8 | required |
ConditionImmunityGrant
Grant immunity to one authored condition for this effect's duration. The grant is source-owned, so concentration loss removes only the granting source's immunity.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required |
BreathingGrant
Temporarily grant one or both breathing media. This changes only the suffocation predicate; it grants no Swim Speed or movement permission.
| Field | Type | Required | Description |
|---|---|---|---|
| air | boolean | default false | |
| water | boolean | default false |
TurnStartTempHp
At the start of each target turn, grant temporary HP equal to the casting ability modifier (minimum zero). Multiple grants obey the ordinary non-stacking temporary-HP rule.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required |
TurnStartDamage
Deal typed damage at the start of each affected creature's turn for this effect's duration. An authored action-removal flag exposes the shared self-or-adjacent cleanse action rather than a spell-specific verb.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| kind | string | required | |
| plus | int64 | default 0 | |
| removable_by_action | boolean | default false |
VisionGrant
Temporarily grant Truesight to at least this range. Existing longer special senses remain authoritative; expiration reveals them again.
| Field | Type | Required | Description |
|---|---|---|---|
| truesight_ft | uint32 | required |
ReactionDefense
Install or resolve a typed pre-resolution defense/cancellation payload.
| Field | Type | Required | Description |
|---|---|---|---|
| payload | ReactionDefensePayload | required |
FallProtection
Modify the next pending fall impact on the target. This is an event primitive rather than a spell-id branch: reaction content supplies the exact reduction and optional controlled-descent rate.
| Field | Type | Required | Description |
|---|---|---|---|
| damage_divisor | uint32 | required | Divide rolled falling damage by this value (minimum 1). |
| damage_reduction | uint32 | required | Flat reduction after division. |
| descent_ft_per_round | integer | optional | A controlled descent rate; while present, this pending impact deals no falling damage (the rate remains semantic state for consumers). |
| max_damage | integer | optional | Optional final damage ceiling. |
Damage
dice (+ plus) damage of kind — halved by a resistance, spared per the delivery's save. A crit doubles the dice (attack deliveries).
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| kind | string | required | A |
| plus | int64 | default 0 |
ConditionalDamage
Use alternate_dice when the delivered target is below maximum HP.
| Field | Type | Required | Description |
|---|---|---|---|
| alternate_dice | string | required | |
| kind | string | required | |
| primary_dice | string | required |
DamageTypeChoice
Damage whose kind is chosen at cast time from this closed authored set. The live and forked policies choose the first kind with the greatest post-mitigation result; content names never enter combat dispatch.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| kinds | string[] | required | |
| plus | int64 | default 0 |
Heal
Restore dice (+ the casting mod if add_mod) hit points.
| Field | Type | Required | Description |
|---|---|---|---|
| add_mod | boolean | required | |
| dice | string | required |
FlatHeal
Restore an exact authored number of hit points (no die or modifier).
| Field | Type | Required | Description |
|---|---|---|---|
| amount | int64 | required |
HealFromDamage
Restore HP to the effect's source from the immediately preceding damage step's actual post-mitigation applied amount.
| Field | Type | Required | Description |
|---|---|---|---|
| divisor | uint32 | required |
SelfDamageHealTarget
Deal irreducible typed damage to the effect's source, then restore the delivered target by an authored multiple of that applied damage.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| heal_multiplier | uint32 | required | |
| kind | string | required |
CleanseCondition
Remove one currently borne condition from a closed authored set. When several qualify, authored order is the deterministic choice order.
| Field | Type | Required | Description |
|---|---|---|---|
| conditions | string[] | required |
RemoveExhaustion
Remove up to this many levels from the target's world-authoritative Exhaustion track. A value of six expresses complete 2024 recovery without coupling the primitive to one item.
| Field | Type | Required | Description |
|---|---|---|---|
| levels | uint8 | required |
MaximizeHitDieHealing
For the enclosing duration, every Hit Die the target spends restores the die's maximum result rather than its ordinary roll/average.
SkillAdvantage
Advantage on a closed set of skills only when the check explicitly influences a creature within the authored range.
| Field | Type | Required | Description |
|---|---|---|---|
| influence_within_ft | uint32 | required | |
| skills | Skill[] | required |
Stabilize
End a dying ally's death saves (spare the dying).
Kindle
Kindle the target with an independently timed illumination handle, cast instead of struck, throwing bright_ft of bright light and dim_ft MORE of dim — the SRD's own phrasing ("bright light in a 20-foot radius and dim light for an additional 20 feet"). Light is the torch's 20/20; daylight throws 60/60.
| Field | Type | Required | Description |
|---|---|---|---|
| bright_ft | uint32 | required | |
| dim_ft | uint32 | required |
Guide
The glimmer (guiding bolt): the next attack roll against the target has advantage.
Modify
Bless/bane: die rides the bearer's own attack rolls and saving throws for the duration — added, or subtracted when penalty. A CONCENTRATION effect (the validator pins it), so it lifts when the caster's focus breaks.
| Field | Type | Required | Description |
|---|---|---|---|
| die | string | required | |
| penalty | boolean | default false |
Afflict
Inflict a condition on the target: the id resolves against data/conditions/ at load — a condition is a DATA bundle of engine [ConditionComponent] reads, so hold person's paralysis and a mod's own affliction are the same one-file shape. Behind a Save delivery the bearer repeats that save at each of its turns to shake it (SRD save-ends); a CONCENTRATION effect.
| Field | Type | Required | Description |
|---|---|---|---|
| beneficial | boolean | default false | Some conditions are grants rather than hostile afflictions (for example an item granting Invisible). This controls side legality; condition identity remains data and is never special-cased here. |
| condition | string | required | |
| ends_on_attack_damage_or_cast | boolean | default false | The granted condition ends immediately after its bearer makes an attack or casts a spell. The triggering attack still receives the condition's benefits; item activation itself is not a spell cast. |
| ends_on_source_side_damage | boolean | default false | The condition ends after the spell's source or one of that source's allies deals damage to the bearer. |
| forced_turn | ForcedTurnRule | optional | Source-relative turn behavior retained with this exact condition relation for as long as it remains active. |
| initial_save_advantage_if_fighting | boolean | default false | A hostile target makes the initial delivery save with Advantage when the source's side is already fighting it. |
| on_failed_save | AfflictionEntryEffect[] | default [] | Consequences applied once, only after the initial affliction lands. |
| repeat_save | RepeatSaveRule | optional | Whether the target repeats the delivery save at the end of each of its turns. Most combat afflictions do; Charm Person does not. |
NextWeaponAttackDisadvantage
The target's next weapon attack is made with Disadvantage; if unused, this expires at the end of that target's next turn.
NextSavingThrowPenalty
Subtract die from the target's next saving throw before the end of the source's next turn. The rider is consumed by the first save attempt, whether that save succeeds or fails.
| Field | Type | Required | Description |
|---|---|---|---|
| die | string | required |
Push
Forced movement: shove the target distance_ft directly AWAY from the effect's origin (the caster, for the self-centered burst/cone/ line spells that carry it), stopping at the first wall, impassable creature's space, or board edge. It can end in an occupied space it may pass through. A harmful, instantaneous rider behind a Save — forgone on a success. Thunderwave's ten-foot push is the first. LEDGERED: pushing away from a SPHERE's center rather than the caster (no shipped sphere-push spell needs it) and prone-on-collision.
| Field | Type | Required | Description |
|---|---|---|---|
| distance_ft | uint32 | required | |
| max_target_size | Size | optional | Largest creature size this effect can move. Absent means no limit; an ineligible target still receives the spell's other effects. |
Pull
A pull: forced movement TOWARD the caster — thorn whip's vine yank, the mirror of Push. Drags the struck target distance_ft toward the caster (halting adjacent, never onto it). HARMFUL (it rides a to-hit or a save, like Push). LEDGERED: a pull toward a POINT other than the caster.
| Field | Type | Required | Description |
|---|---|---|---|
| distance_ft | uint32 | required | Maximum distance the target is moved. |
| max_target_size | Size | optional | Largest creature size this effect can move. Absent means no limit; an ineligible target still receives the spell's other effects. |
Beam
A sustained beam: a CONCENTRATION drain that deals dice kind to the delivered target AUTOMATICALLY at the start of each of the caster's turns — vampiric touch's per-turn drain (the one-time hit is a separate Damage step; this is the sustain). HARMFUL (rides a to-hit or a save), an ongoing effect (concentration). LEDGERED: the SRD range-break (the beam ends if the target leaves range/cover — ours holds while concentration does), the life-drain self-HEAL (no heal-from-damage primitive yet), and the upcast.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| kind | string | required |
Teleport
Teleport: the delivered target vanishes and reappears up to max_ft away — misty step's blink. A BENEFICIAL self-move behind a Target delivery. The destination is AI-chosen (the unoccupied on-board square FARTHEST from the nearest enemy — the escape the world uses), following the world-first precedent; a PLAYER-picked destination, the "space you can see" line of sight, and bringing a willing creature (dimension door) are LEDGERED.
| Field | Type | Required | Description |
|---|---|---|---|
| max_ft | uint32 | required |
Aura
An aura: a CONCENTRATION area centered on the caster that bites foes who START their turn within radius_ft — an ability save for half of dice kind damage (spirit guardians). Established on the delivered target (the caster — a Target self-cast); BENEFICIAL for the delivery's side-legality (you cast it on yourself), the harm emergent per-turn. It moves WITH the caster and lifts when its concentration breaks. LEDGERED: the SRD "enters the area for the first time on a turn" movement trigger (start-turn-in only today), the speed-halving, and the upcast (+dice/slot).
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| dice | string | required | |
| kind | string | required | |
| radius_ft | uint32 | required |
ObscurationAura
A mobile heavily-obscured area centered on the delivered creature.
| Field | Type | Required | Description |
|---|---|---|---|
| radius_ft | uint32 | required | |
| source_sees_through | boolean | default false |
Summon
A transient summon that mints creature_id from the bestiary onto its source's side mid-fight. It may be concentration-bound or independently timed, fights through the ordinary combatant machinery, takes no plunder, and is swept from the world when the fight ends.
| Field | Type | Required | Description |
|---|---|---|---|
| acts_after_source | boolean | default false | Insert the summon immediately after its source in Initiative. |
| augmentation | SummonAugmentation | default {"choice_binding":null,"dismiss":null,"linked_grants":[]} | Optional selected-kind binding and source-linked grants. An activated cast privilege may overlay the same reusable shape. |
| creature_id | string | required | |
| dismiss | CastTime | optional | Optional economy with which the source may dismiss this summon. |
| requires_command | boolean | default false | The summon must receive its source's free verbal command each round or it takes only the defensive default. |
| scaling | SummonScaling | optional | Optional slot/caster-derived stat-block formula for summoned spirits. Absent preserves an ordinary fixed bestiary body. |
Zone
A zone: a CONCENTRATION area anchored to a FIXED point on the board (the aura's board-bound sibling — an aura moves WITH its caster, a zone stands where it was cast) that bites whoever starts their turn within radius_ft — an ability save for half of dice kind damage (moonbeam). Established via a Target self-cast; BENEFICIAL for the delivery's side-legality (the harm is emergent per-turn, like the aura), the placement AI-chosen (the foe cluster within range, never an ally — the world-first precedent). LEDGERED: the SRD "enters the area" movement trigger (start-turn-in only today), a MOVABLE zone (moonbeam's beam-step), the cylinder/cube shapes (a Chebyshev radius today), the PLAYER-picked anchor, and the upcast. The movement-blocking WALL (Wall of Force/Stone — blocked squares + line-of-sight) is a distinct primitive, ledgered as the sibling.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| dice | string | required | |
| dispersed_by_strong_wind | boolean | default false | |
| kind | string | required | |
| radius_ft | uint32 | required |
TriggeredZone
A board area whose consequence fires at turn start, on first entry, and/or at turn end. Unlike the older damage-only Zone, this carries the complete authored trigger, use ledger, mobility, exclusions, and removable riders needed by creature-selective healing and hazardous fields.
| Field | Type | Required | Description |
|---|---|---|---|
| exclusions | string[] | default [] | |
| mobile_reposition_ft | integer | optional | |
| optional_by_source | boolean | default false | |
| outcome | TriggeredZoneOutcome | required | |
| radius_ft | uint32 | required | |
| shape | TriggeredZoneShape | default "Sphere" | |
| trigger_end | boolean | default false | |
| trigger_entry | boolean | default true | |
| trigger_start | boolean | default true | |
| uses | TriggeredZoneUses | optional |
DirectionalField
A sustained rectangular field anchored to its source's current square and an authored orientation. The caller establishes it once; creatures in its footprint are consequences of the field, not separate copies.
Wall
A wall: a CONCENTRATION barrier of length_ft that stands a line of BLOCKED squares on the board — Wall of Stone / Wall of Force. It deals no direct damage; it BLOCKS. Every mover, the king-step pathing, the cover / line-of-sight trace, teleport, and forced movement already read board.open, so the wall gates all of them for free (the board footprint + cover seam). Established via a Target self-cast; BENEFICIAL for the delivery's side-legality (it harms no creature directly), the placement AI-chosen (a line cutting the caster off from the foe cluster, never through a creature — the world-first precedent). LEDGERED: the PLAYER-drawn shape/anchor, the panel/ring/sphere forms (a straight line today), a DAMAGING wall (Wall of Fire — a Wall+Zone compose), and the "creatures in the wall's space are shoved clear" rule (gaps at occupants).
| Field | Type | Required | Description |
|---|---|---|---|
| length_ft | uint32 | required |
WallDamage
A damaging wall: Wall of Fire — a CONCENTRATION barrier of length_ft that BLOCKS (like Wall) AND sears any of the caster's enemies who start their turn on or adjacent to it (an ability save for half of dice kind). Established via a Target self-cast; BENEFICIAL for side-legality (emergent per-turn, like the Zone). LEDGERED: the SRD wall of fire is PASSABLE (ours blocks — a fiery barrier, the fun-first read), its ONE damaging side (ours sears both), the opaque line-of-sight, the player-drawn shape/anchor, and the upcast.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| dice | string | required | |
| kind | string | required | |
| length_ft | uint32 | required |
ZoneAfflict
A condition zone: the Zone's SNARING sibling — a CONCENTRATION area fixed to a board point that AFFLICTS rather than damages. A creature starting its turn within radius_ft makes an ability save; on a FAILURE it gains condition (a conditions/ id) for that turn — web's restrained, sleet storm's prone, stinking cloud's incapacitated. Established via a Target self-cast; BENEFICIAL for side-legality (emergent per-turn, like the Zone), the placement AI-chosen. The condition RE-EVALUATES each turn the creature lingers (a made save frees it). LEDGERED: the escape/break-free check, the difficult-terrain rider, the enters-the-area trigger (start-turn-in only), and the upcast.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| condition | string | required | |
| dispersed_by_strong_wind | boolean | default false | |
| radius_ft | uint32 | required |
TempHp
A temporary hit-point grant: the target gains dice + plus temporary hit points — false life's ward. BENEFICIAL, instantaneous (NOT concentration): temp HP sits on the combatant and is spent before real HP (the dark-one's-blessing pool), taking the HIGHER of any existing pool and the fresh grant (SRD "decide whether to keep"). The authored expiry applies only when expires_with_effect is true.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| expires_with_effect | boolean | default true | Whether this grant expires with the effect's authored duration. |
| plus | int64 | required |
Resist
A resistance grant: the delivered target gains resistance to kind damage — protection from energy's ward, halving that one kind — for the authored duration. A concentration grant is source-owned and lifts when focus breaks; non-concentration item magic expires on its own clock. LEDGERED: the player's choice among the five energy kinds (ship one — fire) and the SRD 1-hour cap outside a combat bubble.
| Field | Type | Required | Description |
|---|---|---|---|
| kind | string | required |
SaveAdvantage
Source-owned advantage on the listed saving throw abilities for the spell's duration.
| Field | Type | Required | Description |
|---|---|---|---|
| abilities | Ability[] | required |
FeatureActionEconomy
The turn resource paid when a feature action is used.
Action
Spend the actor's Action.
Bonus
Spend the actor's Bonus Action.
Reaction
Spend the actor's Reaction.
Free
Spend no turn resource.
FeatureActionLedger
The already-existing store from which a feature action draws uses.
PerRest
The grant's existing uses count, written to FEATURES_SPENT and restored by the feature's ordinary rest cadence.
PerTurn
One activation in the current turn, represented by a combat FeatureClock rather than a second world counter.
Pool
Spend points from the authored pool id.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | The data-authored pool id shared by every action that spends it. |
Uses
Spend one use from the authored use-counter id.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | The data-authored counter id shared by every action that spends it. |
PerRestOrSpellSlot
A feature use with the existing spell-slot fallback printed by the SRD.
PerRestOrPool
A feature use with a fallback spend from an authored pool id.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | The data-authored pool used after the feature's own uses are spent. |
Recharge
One in-combat use which returns when a d6 roll is at least die_low.
| Field | Type | Required | Description |
|---|---|---|---|
| die_low | uint8 | required | Inclusive low face of the recharge range, from 1 through 6. |
FeatureLevelValue
One strictly increasing class-level step in an authored feature value.
| Field | Type | Required | Description |
|---|---|---|---|
| level | uint32 | required | First class level at which |
| value | int64 | required | Value from this level until the next step. |
FeatureResourceLedger
A resource ledger address used by generic exchanges and minimum restores.
Pool
A data-authored point pool.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required |
Uses
A data-authored use counter.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required |
SpellSlots
The ordinary level-indexed spell-slot ledger.
FeatureValue
A numeric input a feature effect derives from the granting creature.
Flat
The authored constant.
Carries int64.
ClassLevel
The level of the class whose reached grant supplied the action.
AbilityModifier
The actor's modifier for the named ability.
Carries Ability.
ProficiencyBonus
The actor's proficiency bonus.
AbilityModifierPlusProficiency
The actor's modifier for the named ability plus its proficiency bonus.
Carries Ability.
FlameProtection
Authorable FlameProtection data exposed through the modding schema.
Unprotected
Select the unprotected behavior.
Protected
Select the protected behavior.
FlatDamage
Authorable FlatDamage data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| amount | int64 | required | Authored amount. |
| kind | string | required | Authored kind. |
ForcedTurnRule
Authorable ForcedTurnRule data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| action | AuthoredForcedAction | required | Authored action. |
| if_able | boolean | default true | Authored if able. |
FormCapabilityPolicy
Which ordinary capabilities the replacement body carries.
RetainMentalAndClassUseFormPhysical
Retain mental and class capabilities while using form physical traits.
FormOnly
Use only the replacement form's capabilities.
FormEnds
Explicit form-ending predicates interpreted by the shared lifecycle.
| Field | Type | Required | Description |
|---|---|---|---|
| dead | boolean | default false | Death ends the form. |
| elapsed | boolean | default false | The authored duration ending restores the original body. |
| incapacitated | boolean | default false | Incapacitation ends the form. |
| voluntary | boolean | default false | The bearer may end the form voluntarily. |
FormEquipmentDisposition
One authored disposition available for worn or carried equipment.
WearIfFits
Retain equipment the new body can wear.
Drop
Drop equipment in the bearer's current space.
Merge
Merge equipment into the form and suppress its use until reversion.
FormEquipmentPolicy
Equipment handling for a replacement form.
Choose
Offer exactly the listed distinct dispositions.
Carries FormEquipmentDisposition[].
Fixed
Apply one disposition without a pending choice.
Carries FormEquipmentDisposition.
FormPayload
Authorable FormPayload data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| creature_id | string | optional | Optional bestiary record supplying replacement physical statistics. |
| duration_secs | LevelLadder | optional | Duration in seconds, stepped by the granting class level. |
| ends | FormEnds | optional | Events that end this replacement through the ordinary form lifecycle. |
| form_id | string | required | Stable mechanics identity within the loaded corpus. |
| policy | FormPolicy | optional | Stat, proficiency, equipment, and capability arbitration for the form. |
| replace_hit_points | boolean | default false | True when the form owns a separate HP pool; false retains current HP. |
| selection | FormSelection | optional | Optional open-catalogue selection resolved before the cast transition. |
| size | Size | optional | Optional explicit size override, including size-only effects. |
FormPolicy
Shared replacement arbitration consumed by live play and search.
| Field | Type | Required | Description |
|---|---|---|---|
| capabilities | FormCapabilityPolicy | required | Capability arbitration between bearer and replacement body. |
| equipment | FormEquipmentPolicy | required | Equipment disposition while the form is active. |
| proficiencies | FormProficiencyPolicy | required | Skill and saving-throw proficiency arbitration. |
| retain_abilities | Ability[] | required | Ability scores retained from the original body. |
FormProficiencyPolicy
Arbitration used when both the bearer and form supply a proficiency.
HigherOfOriginalOrForm
Use the greater of the original and form bonuses.
Form
Use only the form's authored bonus.
FormSelection
One open creature catalogue filtered entirely by authored parameters.
| Field | Type | Required | Description |
|---|---|---|---|
| creature_types | string[] | required | Nonempty set of allowed open creature-type ids. |
| known | KnownFormSelection | optional | Optional durable known-form catalogue and its capacity. |
| maximum_cr_quarters | LevelLadder | required | Maximum challenge rating in quarter-CR units by granting class level. |
| movement_minimum_levels | [MovementMode, uint32][] | default [] | Minimum granting class level for each restricted movement mode. |
GrantedActionDelivery
Authorable GrantedActionDelivery data exposed through the modding schema.
RangedSpellAttack
Select the ranged spell attack behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| attack_bonus | int64 | required | |
| range_ft | uint32 | required |
SingleTargetSave
Select the single target save behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| dc | int64 | required | |
| half_on_success | boolean | required | |
| range_ft | uint32 | required |
GrantedActionEffect
Authorable GrantedActionEffect data exposed through the modding schema.
Damage
Select the damage behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| flat | int16 | required | |
| kind | string | required |
ItemModeEconomy
The turn resource spent to enter or leave an item mode.
None
Spend no combat turn resource. In the ambient world this remains a deliberate transition at the ordinary action clock.
Action
Spend the turn's Action.
BonusAction
Spend the turn's Bonus Action.
ItemModeEffect
A reusable effect projected only by a selected, eligible item mode.
ConditionGrant
Project one registered condition from this exact item-mode source.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required |
WeaponHitDamage
A separate typed damage instance on hits with this exact weapon.
| Field | Type | Required | Description |
|---|---|---|---|
| damage | Damage | required | Dice and damage kind resolved through the ordinary damage ladder. |
| doubles_on_crit | boolean | required | Whether a critical hit doubles this rider's dice. |
WeaponHitSaveDamageCondition
On a hit with this exact weapon, one save gates both typed damage and a timed condition. The rider is not part of critical-hit dice.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | |
| damage | Damage | required | |
| duration_secs | uint32 | required | |
| save | NaturalAttackSave | required |
WeaponDamageKind
Replace this exact weapon's ordinary damage kind while the mode is selected. Dice and modifiers are unchanged; each attack still resolves through the ordinary resistance/immunity ladder for the selected kind.
| Field | Type | Required | Description |
|---|---|---|---|
| kind | string | required |
Illumination
Bright light plus an additional dim-light radius emitted by the item.
Carries MagicItemIllumination.
VirtualEquippedArm
Project one ordinary arm through the concrete magic item. The item must itself satisfy the mode's custody requirement; weapon projections may add properties and alternate proficiency families without duplicating the base weapon definition.
| Field | Type | Required | Description |
|---|---|---|---|
| base_arm | string | required | |
| proficiency_aliases | string[] | default [] | |
| weapon_properties | WeaponProperty[] | optional |
Reaction
Offer an explicit event-local Reaction while this exact mode is active.
Carries MagicItemReaction.
WalkingSpeedMultiplier
Multiply the bearer's complete world-level walking Speed. The ratio is applied after additive/floor sources and before contextual impediments.
| Field | Type | Required | Description |
|---|---|---|---|
| denominator | uint32 | required | |
| numerator | uint32 | required |
OpportunityDisadvantage
Attacks made specifically as Opportunity Attacks against the bearer have Disadvantage; ordinary attacks are unchanged.
ItemModeEnd
Physical or creature-state events that permanently clear a selected mode.
NotCarried
Clear when the activating bearer no longer carries the item.
NotEquipped
Clear when the item is no longer explicitly equipped.
NotHeld
Clear when the item leaves both hand slots.
Incapacitated
Clear when the activating bearer becomes Incapacitated.
Death
Clear when the activating bearer dies.
WeaponHitCreature
Clear after this exact weapon confirms a hit against a creature.
ItemActivated
Clear when another authored activation of this exact item commits.
ItemModeRequirement
The physical relationship required before an item-mode transition.
Carried
The bearer must possess the concrete item.
Equipped
The concrete item must occupy one of its legal equipment slots.
Held
The concrete item must occupy a hand slot.
ItemModeTransition
The economy and physical gate for one explicit mode transition.
| Field | Type | Required | Description |
|---|---|---|---|
| charge_cost | uint8 | default 0 | Charges spent only after the selected concrete item's ledger changes. |
| economy | ItemModeEconomy | required | Turn resource spent by this transition. |
| requires | ItemModeRequirement | required | Required relationship between bearer and concrete item. |
ItemModeUsageBudget
A cumulative world-time budget shared by selections in one item-mode group. Deactivating pauses rather than restores the budget; only the authored rest cadence refills it.
| Field | Type | Required | Description |
|---|---|---|---|
| duration_secs | uint32 | required | Authored duration secs. |
| recharge | Recharge | required | Authored recharge. |
KnownFormSelection
Durable form knowledge owned by the grant and filled deterministically.
| Field | Type | Required | Description |
|---|---|---|---|
| count | LevelLadder | required | Maximum number of retained known forms by granting class level. |
| group | string | required | Open storage group id; unrelated grants may keep separate catalogues. |
| starters | string[] | default [] | Ordered forms every bearer is assumed to have seen, admitted when legal. |
LevelLadder
A positive value with strictly increasing granting-class-level steps.
| Field | Type | Required | Description |
|---|---|---|---|
| by_level | [uint32, uint32][] | default [] |
|
| count | uint32 | required | Value before the first reached step. |
MagicActivation
Typed activation carried by a magic-item definition.
| Field | Type | Required | Description |
|---|---|---|---|
| charge_cost | uint8 | default 1 | Exact charges paid by this option. Charge-consuming legacy rows omit it and retain their one-charge behavior. |
| consumption | MagicActivationConsumption | optional | Authored consumption. |
| extra_charge_upcast | boolean | default false | Authored extra charge upcast. |
| max_charge_cost | integer | optional | Inclusive upper cost for a variable-charge option. |
| payload | MagicActivationPayload | required | Authored payload. |
| range_ft_override | integer | optional | An item-specific range for an otherwise ordinary spell payload (for example a thrown bead). Absent preserves the spell's printed range. |
| requires | ItemModeRequirement | default "Carried" | Physical custody required when this activation is committed. A released effect may outlast that relationship unless it authors a hard end of its own. |
| save_dc | integer | optional | Item-authored resolution overrides; absent uses the bearer spell stats. |
| slot_level | integer | optional | Slot level produced at |
| spell_attack_bonus | integer | optional | Authored spell attack bonus. |
| successful_save_immunity_secs | integer | optional | After a creature succeeds on this activation's saving throw (initially or while repeating a save to end its effect), that creature is immune to this exact item instance and activation for this many world seconds. |
MagicActivationConsumption
The resource paid after a magic-item activation resolves.
None
Select the none behavior.
Charge
Select the charge behavior.
Consumable
The reified item itself is expended after successful resolution.
Scroll
Select the scroll behavior.
MagicActivationPayload
What an activated magic item releases. Spell payloads resolve through the ordinary spell composition; effect payloads carry the same typed effect steps directly for items whose magic is not a named spell.
Spell
Select the spell behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| area_override | Area | optional | An item-authored replacement for the referenced spell's delivery area. This changes only the footprint; the ordinary spell keeps ownership of its save, effects, duration, and concentration. |
| forced_action_options | array | optional | A non-empty subset of a referenced spell's authored forced-action choices. The activation may narrow a spell's menu but cannot add a command the spell itself does not know. |
| spell | string | required |
Effect
Select the effect behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| delivery | Delivery | required | |
| duration_roll | RolledDuration | optional | One activation-scoped duration roll shared by every subject the delivery reaches. The roll is made once, then multiplied by this many world seconds (for example, 60 for a duration in minutes). |
| duration_secs | integer | optional | How long the composed direct effect persists. Instantaneous effects omit this; item magic never inherits concentration. |
| effects | Effect[] | required | |
| range_ft | uint32 | default 0 | |
| self_only | boolean | default false | The item's bearer is the only legal target. This is distinct from range 0, which retains the ordinary touch-target behavior. |
| then | SpellPhase[] | optional | Ordered follow-up phases with independent delivery gates. These share the activation's target/aim but do not repay its economy or consumption, matching the ordinary staged-spell substrate. |
RecoverSpellSlot
Restore one expended spell slot of this exact level. A definition may expose several activation options so the player/solver chooses the expended slot explicitly rather than an item policy choosing for them.
| Field | Type | Required | Description |
|---|---|---|---|
| level | uint8 | required |
GrantedAction
Consume/activate an item to install a world-portable later action.
| Field | Type | Required | Description |
|---|---|---|---|
| consume_on_success | boolean | default false | |
| delivery | GrantedActionDelivery | required | |
| duration_secs | uint64 | required | |
| economy | CastTime | required | |
| effects | GrantedActionEffect[] | required | |
| uses | uint16 | required |
MagicAmmunitionOnHitCondition
Authorable MagicAmmunitionOnHitCondition data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | A |
| save_ability | Ability | required | Authored save ability. |
| save_dc | int64 | required | Authored save dc. |
MagicAmmunitionTargetTypeDamage
Authorable MagicAmmunitionTargetTypeDamage data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| creature_type | string | required | A |
| damage | Damage | required | A separately typed damage instance. |
| half_on_success | boolean | default false | Whether a successful save takes half rather than no damage. |
| save | NaturalAttackSave | required | Authored save. |
MagicItemAura
One reusable friendly aura projected by an active item. The radius may increase when the bearer reaches an authored level in one exact class; neither the effect nor its scaling is tied to an item identity.
| Field | Type | Required | Description |
|---|---|---|---|
| class_scaled_radius | MagicItemClassScaledRadius | optional | Authored class scaled radius. |
| effects | MagicItemAuraEffect[] | required | Authored effects. |
| radius_ft | uint32 | required | Authored radius ft. |
MagicItemAuraEffect
Authorable MagicItemAuraEffect data exposed through the modding schema.
MagicEffectSaveAdvantage
Select the magic effect save advantage behavior.
MagicItemClassScaledRadius
Authorable MagicItemClassScaledRadius data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| class | string | required | Authored class. |
| minimum_level | uint8 | required | Authored minimum level. |
| radius_ft | uint32 | required | Authored radius ft. |
MagicItemConfirmedHitChargeRider
Authorable MagicItemConfirmedHitChargeRider data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| damage | Damage | required | Authored damage. |
| failed_save_disadvantage | MagicItemFailedSaveDisadvantage | optional | Authored failed save disadvantage. |
| max_charges_per_hit | uint32 | required | Authored max charges per hit. |
MagicItemConfirmedHitPassiveEffect
Authorable MagicItemConfirmedHitPassiveEffect data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| damage | Damage | required | Authored damage. |
| doubles_on_crit | boolean | default false | Authored doubles on crit. |
| eligible_creature_types | string[] | default [] | If nonempty, the rider applies only to one of these authored creature types. This is an allow-list (Executioner's Axe), unlike the natural face effect's exclusions. |
| failed_save_healing_suppression | MagicItemHealingSuppression | optional | Authored failed save healing suppression. |
| temporary_hp_equal_damage_dealt | boolean | default false | Grant the attacker Temporary Hit Points equal to the rider's actual damage after the target's defenses, never the amount rolled. |
MagicItemDamageReduction
Authorable MagicItemDamageReduction data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | Positive |
| kind | string | required | Registered |
| modifier | int64 | default 0 | Signed flat modifier added to the roll; the final reduction floors at 0. |
MagicItemDestruction
Authorable MagicItemDestruction data exposed through the modding schema.
None
Select the none behavior.
Exhausted
The item is consumed when its finite, non-recharging charge pool reaches zero. Unlike a wand's last-charge check, this is deterministic.
ExhaustedToMundane
The finite charge pool reaching zero strips the enchantment but keeps the same concrete item, custody, and authored mundane display name.
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | required |
LastChargeD20
Select the last charge d20 behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| destroy_on_lte | uint8 | required | |
| outcome | MagicItemLastChargeOutcome | optional |
CumulativeUseD100
Before each charged use, fail and destroy the item with a chance equal to this percentage times prior uses since its recharge reset.
| Field | Type | Required | Description |
|---|---|---|---|
| percent_per_prior_use | uint8 | required |
MagicItemFailedSaveDisadvantage
Authorable MagicItemFailedSaveDisadvantage data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| abilities | Ability[] | required | Authored abilities. |
| duration_secs | uint32 | required | Authored duration secs. |
| save | NaturalAttackSave | required | Authored save. |
MagicItemHealingSuppression
Authorable MagicItemHealingSuppression data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| duration_secs | uint32 | required | Authored duration secs. |
| repeat_save_end_turn | boolean | default false | Authored repeat save end turn. |
| save | NaturalAttackSave | required | Authored save. |
MagicItemIllumination
Authorable MagicItemIllumination data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| bright_ft | uint32 | required | Authored bright ft. |
| dim_ft | uint32 | required | Authored dim ft. |
| flame | FlameProtection | optional | Whether this illumination is a physical flame subject to wind. Absent means magical or otherwise flameless illumination. |
| sunlight | boolean | default false | Whether this light counts as sunlight for authored creature traits. |
MagicItemLastChargeOutcome
Authorable MagicItemLastChargeOutcome data exposed through the modding schema.
Destroy
Select the destroy behavior.
BecomeMundane
Retain the concrete item node and custody, remove all enchantment-owned state, and leave the named ordinary weapon or armor definition.
| Field | Type | Required | Description |
|---|---|---|---|
| base_arm | string | required |
MagicItemMode
One selectable state within an independent item mode group.
| Field | Type | Required | Description |
|---|---|---|---|
| activate | ItemModeTransition | required | Explicit transition used to select this mode. |
| deactivate | ItemModeTransition | optional | Optional explicit transition used to clear this mode. |
| duration_secs | integer | optional | Duration from activation in world seconds; absent lasts until cleared. |
| effects | ItemModeEffect[] | required | Mechanical projections supplied while selected and eligible. |
| end_when | ItemModeEnd[] | default [] | Events that clear rather than merely suppress this selection. |
| id | string | required | Definition-local stable mode id. |
| selectable_from_inactive | boolean | default true | Whether this mode may be selected when no mode in its group is active. Modes that only represent adjustments can remain switch targets without becoming alternate activation entry points. |
| switch | ItemModeTransition | optional | Optional transition used when replacing another active mode in this group. Absent reuses |
| usage_budget | ItemModeUsageBudget | optional | Optional cumulative active-time budget for this group. Re-entering the mode spends only what remained before it was deactivated. |
| while_active_requires | ItemModeRequirement | optional | Ongoing relationship after activation. Absent retains the activation requirement; this is explicit for modes that release a held item. |
MagicItemModeGroup
Mutually exclusive modes sharing one definition-local selection key.
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | Stable group id; selecting within it replaces its prior selection. |
| modes | MagicItemMode[] | required | Choices available in this group. Other groups remain independent. |
MagicItemNaturalFaceHitEffect
Authorable MagicItemNaturalFaceHitEffect data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| damage | FlatDamage | required | Authored damage. |
| excluded_creature_types | string[] | default [] | Authored excluded creature types. |
| face | uint8 | required | Authored face. |
| temporary_hp_equal_damage_dealt | boolean | default false | Authored temporary hp equal damage dealt. |
MagicItemRangedTargetTypeDamage
Authorable MagicItemRangedTargetTypeDamage data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| creature_type | string | required | Authored creature type. |
| damage | Damage | required | Authored damage. |
MagicItemReaction
Reusable, explicitly chosen Reaction projected by one active item source.
| Field | Type | Required | Description |
|---|---|---|---|
| charge_cost | uint8 | required | Charges paid by the concrete source item only after acceptance. Zero is valid for reactions whose limiter is only the creature's Reaction. |
| effect | MagicItemReactionEffect | required | Authored effect. |
| requires | ItemModeRequirement | required | Custody/equipment state required at both offer and acceptance. |
| requires_free_hand | boolean | required | The bearer must have a free hand both when this Reaction is offered and when it is accepted. |
| trigger | MagicItemReactionTrigger | required | Authored trigger. |
MagicItemReactionEffect
Event-local result of accepting an active item's Reaction.
AcAgainstTrigger
Add AC only while resolving the triggering attack. It never becomes a persistent AC modifier and can turn that already-rolled hit into a miss.
| Field | Type | Required | Description |
|---|---|---|---|
| bonus | int64 | required |
ReduceTriggerDamage
Reduce the triggering attack's composite initial damage by the rolled dice plus the bearer's named ability modifier, before resistance.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| catch_projectile | boolean | default false | |
| count | uint8 | required | |
| faces | uint8 | required |
MagicItemReactionTrigger
Perceivable event that can offer an active item's Reaction.
HitByAttack
The bearer has been hit by an attack, before that hit deals damage.
HitByRangedOrThrownWeapon
The bearer has been hit by an attack made with a ranged or thrown weapon, before that hit deals damage.
MagicItemSkillModifier
Authorable MagicItemSkillModifier data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| advantage | boolean | default false | Authored advantage. |
| bonus | int64 | default 0 | Authored bonus. |
| requires_area_or_object_inspection | boolean | default false | This modifier applies only when the check searches an area or directly examines an object. |
| requires_hearing | boolean | default false | This modifier applies only when the check depends on hearing. |
| requires_sight | boolean | default false | This modifier applies only when the check depends on sight. |
| skill | Skill | required | Authored skill. |
| subject_within_ft | integer | optional | Inclusive maximum distance to the check's direct subject. |
MagicItemStudy
A reusable world-time study program carried by a concrete magic item. Progress and recharge belong to the reified item instance; this definition contains only the authored contract shared by every copy.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | Authored ability. |
| increase | uint8 | required | Authored increase. |
| maximum | uint8 | required | Authored maximum. |
| recharge_secs | uint64 | required | Authored recharge secs. |
| required_secs | uint64 | required | Authored required secs. |
| window_secs | uint64 | required | Authored window secs. |
MagicItemTargetTypeDamage
A magic weapon's always-on damage rider against one creature type.
| Field | Type | Required | Description |
|---|---|---|---|
| creature_type | string | required | A |
| dice | string | required | Extra dice of the weapon's own damage type. |
| on_hit_condition | MagicItemTargetTypeOnHitCondition | optional | Optional condition rider applied on the same matching hit after its authored saving throw (Giant Slayer). It remains weapon-local with the damage rider and never becomes a bearer-wide on-hit benefit. |
MagicItemTargetTypeOnHitCondition
Authorable MagicItemTargetTypeOnHitCondition data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| condition | string | required | A |
| save_ability | Ability | required | Authored save ability. |
| save_dc | int64 | required | Authored save dc. |
MagicItemWeaponFamilyBonus
Authorable MagicItemWeaponFamilyBonus data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| damage_bonus | int64 | default 0 | Authored damage bonus. |
| grants_proficiency | boolean | default false | Authored grants proficiency. |
| weapons | string[] | required | Authored weapons. |
MagicRarity
SRD 5.1 magic-item rarity. The magic axis is ORTHOGONAL to the quality tier: a +1 sword is Uncommon whatever its craftsmanship, and a Masterwork mundane blade is no rarer than a Poor one. The engine branches on rarity for the worth FACTOR ([MagicRarity::worth_factor]) — the one place magic touches the pricing seam.
Common
Select the common behavior.
Uncommon
Select the uncommon behavior.
Rare
Select the rare behavior.
VeryRare
Select the very rare behavior.
Legendary
Select the legendary behavior.
MagicThrownWeapon
A magic weapon's authored thrown profile. This can either augment a weapon that is not normally thrown or replace its ordinary thrown range.
| Field | Type | Required | Description |
|---|---|---|---|
| extra_damage | Damage | optional | A separate typed damage instance made on every ranged attack through this profile. |
| range | Range | required | Authored range. |
| returns_to_hand | boolean | default false | The same concrete weapon remains in its thrower's hand after the attack. |
| target_type_extra_damage | MagicItemRangedTargetTypeDamage | optional | Additional typed damage when that ranged attack hits the named type. |
MovementMode
Authorable MovementMode data exposed through the modding schema.
Walk
Select the walk behavior.
Climb
Select the climb behavior.
Swim
Select the swim behavior.
Fly
Select the fly behavior.
Burrow
Select the burrow behavior.
MovementSurface
A combat surface that ordinary walking does not otherwise permit.
Vertical
A vertical wall or similar upright surface.
Liquid
A liquid surface that would ordinarily require swimming.
NaturalAttackSave
Authorable NaturalAttackSave data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | Authored ability. |
| dc | int64 | required | Authored dc. |
OnSave
What a failed save spares (SRD: "half as much damage on a successful one").
Half
Select the half behavior.
Nothing
Select the nothing behavior.
OptionalEffectConsequence
A typed, optional consequence offered to the effect's source at a recurring event boundary. The choice is not a Reaction and spends no action economy.
SpeedPenaltyUntilSourceNextTurn
Reduce every movement mode by this many feet until the source's next turn starts. The reduction never lowers a mode below zero.
| Field | Type | Required | Description |
|---|---|---|---|
| amount_ft | uint32 | required |
PersistentReactivation
Authorable PersistentReactivation data exposed through the modding schema.
Action
Select the action behavior.
BonusAction
Select the bonus action behavior.
Movement
Select the movement behavior.
PersistentReactivationEffect
The typed consequence paid for by a persistent spell's later activation. Keeping this separate from the action economy prevents a spell from being transcribed as merely "reactivatable" when the reactivation does nothing.
TeleportSelf
Select the teleport self behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| max_ft | uint32 | required |
RepeatDamage
Select the repeat damage behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| kind | string | required |
PersistentSpellPayload
Authorable PersistentSpellPayload data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| antimagic | AntimagicPolicy | required | Authored antimagic. |
| duration_rounds | uint32 | required | Authored duration rounds. |
| explicit_slot_choice | boolean | default false | Authored explicit slot choice. |
| reactivation | PersistentReactivation | optional | Authored reactivation. |
| reactivation_effect | PersistentReactivationEffect | optional | Authored reactivation effect. |
| reactivation_survives_miss | boolean | default false | Install the persistent effect even when its initial spell attack misses. Omitted or false keeps installation conditional on a hit. |
| tethered_to_target | boolean | default false | End the spell if its target leaves the spell's range or has Total Cover from the caster. Omitted or false imposes neither ending. |
PrivilegedCastMode
One legal profile for a class-granted cast.
Base
Preserve the referenced spell's authored profile.
Override
Apply bounded existing cast transformations and summon augmentation before the ordinary cast compiler sees the spell.
| Field | Type | Required | Description |
|---|---|---|---|
| transformations | CastTransformation[] | required |
PrivilegedCastPayment
The legal payment alternatives for one class-granted cast.
FreeUseOrSlot
Spend the invoking grant's free use or one ordinary spell slot at or above this level. Availability is the union of the two alternatives.
| Field | Type | Required | Description |
|---|---|---|---|
| minimum_slot | uint32 | required |
PrivilegedCastProfile
A bounded spell profile attached to an activated cast privilege.
| Field | Type | Required | Description |
|---|---|---|---|
| free_cast_level | uint32 | required | Fixed slot level used by the free alternative. |
| modes | PrivilegedCastMode[] | required | Complete legal profiles: an empty list is invalid. |
| payment | PrivilegedCastPayment | required | Authored alternatives for paying the cast. |
| summon | SummonAugmentation | optional | Summon-only declaration data shared by every legal lifetime mode. |
Range
Weapon-range band in feet.
| Field | Type | Required | Description |
|---|---|---|---|
| long | uint32 | required | Long range in feet — an attack beyond |
| normal | uint32 | required | Normal range in feet — no penalty within it. |
ReactionDefensePayload
Content-authored pre-resolution defense or cancellation. The event window determines when it may be offered; identity never participates in dispatch.
TimedAc
Select the timed ac behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| bonus | int64 | required | |
| rounds | uint32 | required |
DamageReduction
Select the damage reduction behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | |
| modifier | int64 | required |
CancelPendingCast
Select the cancel pending cast behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| check | CancellationCheck | required |
CancelOngoingEffect
Select the cancel ongoing effect behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| check | CancellationCheck | required |
Recharge
A charged item's recharge cadence. None = no charges (a static enchantment); Dawn = the SRD's "regains 1dN charges daily at dawn" — we recharge to FULL (the per-die randomness is ledgered), the honest daily cadence the world sweep restores (equip::magic::recharge_dawn).
None
Select the none behavior.
Dawn
Select the dawn behavior.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | uint8 | required | |
| faces | uint8 | required | |
| modifier | int8 | required |
ShortRest
The item returns to full capacity when its bearer completes either a Short or Long Rest.
LongRest
The item returns to full capacity when its bearer completes a Long Rest. Unlike Dawn, elapsed world time alone never refreshes it.
RepeatSaveGate
Authorable RepeatSaveGate data exposed through the modding schema.
Always
Select the always behavior.
SourceNotVisible
Select the source not visible behavior.
RepeatSaveRule
Authorable RepeatSaveRule data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| boundary | TurnBoundary | required | Authored boundary. |
| gate | RepeatSaveGate | required | Authored gate. |
ResourceExchangeRate
One finite conversion row in a generic resource-exchange route.
| Field | Type | Required | Description |
|---|---|---|---|
| destination_amount | uint32 | required | Positive destination units granted atomically. |
| destination_tier | uint8 | required | Destination tier, or zero for an un-tiered pool/use ledger. |
| minimum_class_level | uint32 | required | First granting-class level at which this row is legal. |
| source_amount | uint32 | required | Positive source units consumed atomically. |
| source_tier | uint8 | required | Source tier, or zero for an un-tiered pool/use ledger. |
ResourceExchangeRoute
One direction offered by a generic resource exchange.
| Field | Type | Required | Description |
|---|---|---|---|
| capacity_cap | boolean | default false | Clamp the credit to the destination ledger's authored capacity. |
| destination | FeatureResourceLedger | required | Ledger credited by the accepted conversion. |
| economy | FeatureActionEconomy | required | Turn economy paid when this route is accepted. |
| limit | FeatureActionLedger | optional | Optional per-turn/rest/use gate paid in addition to the exchanged source. |
| rates | ResourceExchangeRate[] | required | Finite, duplicate-free conversion table. |
| source | FeatureResourceLedger | required | Ledger paid by the accepted conversion. |
| temporary_destination | boolean | default false | Mark created destination spell slots as temporary until a long rest. |
RiderExchangeBudget
The resource surrendered atomically when accepting authored hit riders.
DamageDice
Remove this many dice from the parent damage roll.
Advantage
Forgo Advantage on the parent attack.
RiderExchangeChoice
One open-id option in a generic rider exchange.
| Field | Type | Required | Description |
|---|---|---|---|
| blocks_opportunity_attacks | boolean | default false | Prevent the target from making Opportunity Attacks until the source's next turn. |
| cost | uint32 | required | Positive units removed from the exchange budget. |
| effects | Effect[] | required | Ordered consequences interpreted through the ordinary effect readers. |
| follow_speed_fraction_denominator | integer | optional | Denominator of the source's Speed it may spend to follow forced movement without provoking Opportunity Attacks. |
| id | string | required | Open authored id used by UI and recorded decisions, never dispatch. |
| level | uint32 | required | First granting-class level at which this option is legal. |
| next_other_creature_attack_bonus | int64 | default 0 | Flat bonus to the next attack by a creature other than the source. |
| next_save_disadvantage | boolean | default false | Give the target Disadvantage on its next saving throw. This one-shot persists until the save, independently of a turn-boundary rider. |
| requires_carried_item | string | optional | A goods/ id the source must carry on its person for this choice to be offered or paid; absent = no item is needed. |
| save | Ability | optional | Optional saving throw governing this choice's consequences. |
| speed_penalty_ft | uint32 | default 0 | Reduce every movement mode by this many feet until the source's next turn. Zero means no reduction. |
RolledDuration
Authorable RolledDuration data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required | Authored dice. |
| unit_secs | uint64 | required | Authored unit secs. |
Size
Creature size — the full SRD ladder (Tiny..Gargantuan). Races span Small/Medium; the bestiary's monsters reach the rest, and the hit die swings by it (crate::srd::hit_die).
Tiny
Select the tiny behavior.
Small
Select the small behavior.
Medium
Select the medium behavior.
Large
Select the large behavior.
Huge
Select the huge behavior.
Gargantuan
Select the gargantuan behavior.
Skill
An open, validated Skill id interned from authored data.
Slot
The semantic equipment slots: the code branches hard on them. The Body slot feeds AC, and the hand slots feed attacks, and Head/Hands/Feet/Cloak are worn slots reserved for future gear (no AC in v1). An enum, never open ids. Serde-derived so it rides the player equipment intent: a serialized choice, over HTTP today and SteamNetworking later, is the whole point.
BodyHeadHandsFeetCloakAmuletRingLeftRingRightOrbitOneOrbitTwoOrbitThreeMainHandOffHandWaistSlotScaledDamage
Damage contributed by a hit rider whose size follows the spell-slot level spent at the hit boundary.
| Field | Type | Required | Description |
|---|---|---|---|
| base_dice | string | required | Dice contributed at the first slot level. |
| kind | string | required | A |
| maximum_dice | integer | optional | Optional cap on dice before creature-type or other ordinary bonuses. |
| per_slot_die | string | required | Dice added for every slot level above the first. |
Source
Every file's top-level value carries source.
Srd51
SRD 5.1 — retained nonconflicting catalogue material.
Srd52
SRD 5.2.1 — the 2024-revision System Reference Document, the same CC-BY-4.0 grant as 5.1 and the current rules chassis. Its files carry the .srd52.ron suffix so provenance reads off the path; see data/README.md for which document rules a given value.
Original
Original content authored for this game (not from the SRD).
Phb2024
Material transcribed from the 2024 Player's Handbook. This source is not redistributable by this project and belongs in a phb2024 mod.
Dmg2024
Material transcribed from the 2024 Dungeon Master's Guide. This source is not redistributable by this project and belongs in a dmg2024 mod.
Mm2024
Material transcribed from the 2024 Monster Manual. This source is not redistributable by this project and belongs in an mm2024 mod.
Tce
Material transcribed from Tasha's Cauldron of Everything. This source is not redistributable by this project and belongs in a tce mod.
Xge
Material transcribed from Xanathar's Guide to Everything. This source is not redistributable by this project and belongs in an xge mod.
SpellComponents
The spell's Verbal, Somatic and Material component requirements. A consumed material or one with a specified cost cannot be replaced by a Component Pouch or Spellcasting Focus.
| Field | Type | Required | Description |
|---|---|---|---|
| material | boolean | default false | Authored material. |
| material_consumed | boolean | default false | Whether the spell consumes its material component. Defaults to false. |
| material_costly | boolean | default false | Whether the Components entry specifies a cost for the material. Records that requirement without storing a gold amount. Defaults to false. |
| somatic | boolean | default false | Authored somatic. |
| verbal | boolean | default false | Authored verbal. |
SpellPhase
One independently gated phase in an ordered spell composition. The cast's aim is shared, while each phase owns the delivery gate and effects that follow it. This represents mechanics such as an attack followed by an explosion that occurs whether the attack hits or misses.
| Field | Type | Required | Description |
|---|---|---|---|
| delivery | Delivery | required | Authored delivery. |
| effects | Effect[] | required | Authored effects. |
| upcast | Upcast | optional | Higher-slot scaling owned by this phase. Absence means this phase does not scale independently of the required first phase. |
| upcast_effects | array | optional | Zero-based positions in this phase's effects that receive roll scaling. Absence uses the first cast-time roll and each ongoing roll. An explicit list must be nonempty and name only effects with scalable dice. |
SpellRange
A spell's range. Caster is the SRD's "Self" (a Rust-reserved word).
Touch
Touch — the caster must reach the target (SRD "Touch").
Feet
A ranged spell out to this many feet.
Carries uint32.
Caster
Self — the spell affects only the caster (SRD "Self").
SummonAugmentation
Reusable augmentation applied to an authored Summon recipe.
| Field | Type | Required | Description |
|---|---|---|---|
| choice_binding | SummonChoiceBinding | optional | Optional binding from the cast choice into the joined body's action. |
| dismiss | CastTime | optional | Optional economy with which the source may dismiss the summon. |
| linked_grants | SummonLinkedGrant[] | default [] | Source-linked effects installed only when the generated body joins. |
SummonChoiceBinding
Bind an authored choice carried by the generated summon body.
SelectedDamageKind
Select one kind from the joined body's authored DamageTypeChoice.
SummonGrantLifetime
The lifetime of a source-linked summon grant.
SameSummon
The grant exists exactly while its joined source body exists.
SummonGrantParticipant
A participant in a source-linked summon grant.
Caster
The creature that invoked the cast privilege.
JoinedBody
The generated body written by the ordinary summon transition.
SummonLinkedEffect
An existing persistent effect installed when a generated body joins.
SelectedDamageKindResistance
Resistance to the kind selected through choice_binding.
SummonLinkedGrant
One source-linked effect recipe installed by the ordinary summon join.
| Field | Type | Required | Description |
|---|---|---|---|
| effect | SummonLinkedEffect | required | Existing persistent effect to instantiate. |
| lifetime | SummonGrantLifetime | required | Removal clock for the effect. |
| recipient | SummonGrantParticipant | required | Body receiving the effect. |
| source | SummonGrantParticipant | required | Body whose departure removes the effect. |
SummonScaling
Content-neutral formulas used by scalable summoned-spirit stat blocks.
| Field | Type | Required | Description |
|---|---|---|---|
| ac_base | int64 | required | Authored ac base. |
| base_slot | uint32 | required | Authored base slot. |
| caster_spell_attack | boolean | default false | Authored caster spell attack. |
| controlled | boolean | default false | A controlled spirit shares its summoner's Initiative and requires a fresh verbal command each round; without one it can only Dodge. |
| damage_flat_base | int64 | required | Authored damage flat base. |
| damage_flat_per_slot | int64 | required | Flat damage added per slot to the generated body's natural attack and each delivered damage action carried by its creature row. |
| hp_base | int64 | required | Authored hp base. |
| hp_per_slot | int64 | required | Authored hp per slot. |
| selected_variant | uint8 | default 0 | Cast-selected ordinal, zero for the first authored variant. |
| strikes_divisor | uint32 | required | Authored strikes divisor. |
| variants | SummonVariant[] | default [] | Closed authored stat-block choices offered by the cast action. |
SummonVariant
Authorable SummonVariant data exposed through the modding schema.
| Field | Type | Required | Description |
|---|---|---|---|
| ac_base | integer | optional | Optional AC base for a variant whose printed body changes the shared |
| creature_id | string | required | Authored creature id. |
| damage_flat_base | integer | optional | Optional flat-damage base for a variant whose printed attack changes the shared |
| hp_base | int64 | required | Authored hp base. |
| id | string | required | Authored id. |
TriggeredZoneOutcome
The consequence of entering or starting a turn in a triggered area.
Heal
Restore hit points; the upcast-adjusted dice are baked at cast time.
| Field | Type | Required | Description |
|---|---|---|---|
| dice | string | required |
SaveNegatesDamage
Save-negates damage and source-owned riders. Riders are removed when the source's concentration ends.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| dice | string | required | |
| exhaustion | uint8 | default 0 | |
| kind | string | required | |
| light_radius_ft | uint32 | default 0 | |
| suppress_invisibility | boolean | default false |
MovementDamage
Deal dice_per_5ft once for every five feet voluntarily or forcibly travelled inside the area; no start-turn consequence is implied.
| Field | Type | Required | Description |
|---|---|---|---|
| dice_per_5ft | string | required | |
| kind | string | required |
TriggeredZoneShape
Grid footprint used by a triggered spell area.
Sphere
A radius measured with the board's square-grid distance.
Cube
A cube whose authored width is radius_ft * 2 on this centered grid.
TriggeredZoneUses
A finite zone-use ledger derived once when the spell is cast.
AbilityModifierPlus
plus + ability modifier, clamped to at least minimum uses.
| Field | Type | Required | Description |
|---|---|---|---|
| ability | Ability | required | |
| minimum | uint32 | required | |
| plus | int32 | required |
TurnBoundary
Authorable TurnBoundary data exposed through the modding schema.
Start
Select the start behavior.
End
Select the end behavior.
Upcast
How a spell scales (SRD "At Higher Levels" + the cantrip level steps).
None
No higher-level text.
DicePerSlot
+String dice per slot level above the spell's own, applied to the rolls selected by upcast_effects. Ongoing rolls store their scaled dice at cast time.
Carries string.
DicePerTwoSlots
+the authored dice once for every two slot levels above the spell's base level (for example, 3rd -> 5th -> 7th -> 9th).
Carries string.
ExtraPerSlot
+1 dart/ray per slot level above the spell's own.
ExtraTargetPerSlot
+1 TARGET per slot level above the spell's own: bless's extra ally, hold person's extra foe. On an Allies delivery it bumps the target count; on a single-target Save (area None) it adds that many nearest enemies within range. The sibling of ExtraPerSlot — that fans out projectiles at one target, this fans out DISTINCT creatures.
FlatPerSlot
+i64 FLAT per slot level above the spell's own: false life's +5 temporary hit points a slot. Added to the targeted cast-time dice steps' flat totals (their rolled amounts), NOT their dice — the flat-number axis DicePerSlot (dice) cannot express.
Carries int64.
SummonsPerTwoSlots
A conjuring's creature COUNT doubles per TWO slots above the spell's own: conjure animals' "twice as many at 5th, three times at 7th, four times at 9th". Mints 1 + (slot − level) / 2 copies of the summon.
CrPerSlot
A conjuring's CHALLENGE RATING budget rises by one rung per slot level above the spell's own (conjure elemental's "the challenge rating increases by 1 for each slot level above 5th"), and the strongest creature of the summoned body's own TYPE within that budget is what answers the call. A better body, not more bodies.
CrPerTwoSlots
The same CR budget, rising one rung per TWO slot levels above the spell's own — conjure celestial, whose higher-level text is a single step at 9th rather than a per-slot climb.
WeaponProperty
An SRD weapon property (finesse, heavy, thrown, …) — a tag that bends how a weapon is wielded or rolled.
Ammunition
Fires ammunition within the given [Range] (bows, crossbows, slings).
Carries Range.
Finesse
May use Dexterity instead of Strength for attack and damage rolls.
Heavy
Small creatures attack with disadvantage (too large to wield well).
Light
Light enough for two-weapon fighting (the off-hand bonus attack).
Loading
Only one shot per action, however many attacks the wielder has.
Reach
Adds 5 ft to the wielder's reach for attacks and opportunity attacks.
Special
Carries special rules given in the weapon's own text (SRD "Special").
Thrown
May be thrown for a ranged attack within the given [Range].
Carries Range.
TwoHanded
Requires two hands to wield.
Versatile
May be wielded one- or two-handed; the two-handed damage die is the given NdM string.
Carries string.