13.0.35
New Features:
- Rewrote the vitality system which now uses item-based tracking via the
vitalityItemsetting.
- Create a feature on the actor whose name matches the setting. Set the item uses to the max vitality for the actor.
- The vitality item's
uses.maxrepresents the actor's total vitality pool.
- The vitality item's
uses.spentvalue tracks vitality loss from overflow damage.
- Vitality is automatically reduced when damage exceeds HP+TempHP, bringing HP to 0.
- When the remaining uses of vitality reaches 0, the character is dead (behavior configurable via
vitalityDeathRequiressetting).
- Existing healing does not restore vitality.
- Supports undo/redo operations from the damage card.
- New
vitalityDeadConditionsetting allows choosing which condition to apply when vitality reaches 0 (defaults to "dead"). Supports all standard conditions and Convenient Effects.
- New
vitalityDeathRequiressetting controls when an actor is considered dead:
- "Vitality of 0" (default): Actor is dead when vitality reaches 0, regardless of HP.
- "Vitality of 0 AND HP of 0": Actor is only dead when both vitality and HP are 0.
- Vitality cannot be changed by setting the hp on the actor sheet or the token hud. Changes can only be performed by updating the vitality item, rolling an attack or calling actor.applyDamage().
- Create a feature on the actor whose name matches the setting. Set the item uses to the max vitality for the actor.
- New damage card style option in Workflow settings: Choose between "Flexbox layout" - a flexbox-based design with inline HP/TempHP/Vitality display, or "Classic (table)" - the original table-based layout.
- The Flexbox layout card shows each target on a single line with color-coded icons: ❤️ (
fa-heart, red) for HP, 🛡️ (fa-shield-alt, blue) for Temp HP, and a cracked heart (fa-heart-crack, black) for Vitality.
- Text displays in green when values increase (healing), black when reduced.
- Fields with no change are hidden; when nothing changes, displays "HP → HP (0)".
- When the card is first displayed it shows what damage is applied.
- If the manual apply buttons are used the display updates to show what using the undo damage button will do considering all of the damage applied.
- Damage card multiplier dropdown now previews damage to be applied to the current actor hp/temphp when changed.
- "=" (default) applies the original calculated damage including saves/resistances. Applying this will always revert back to the original calculations, no matter what changes have occurred to the actor.
- Other multipliers (1, ½, 2, ¼, +) recalculate damage ignoring saves but includes resistances and take into account any changes on the actor since the damage was initially rolled.
- When using the "+" (healing) multiplier with vitality enabled, healing restores vitality first, then any remaining healing is applied to HP.
- As an example if an actor was incorrectly treated as having failed a save, choose undo damage, then select 1/2 and apply the damage.
- If you are using vitality you should use the Flexbox layout card since changes to vitality are included in the display.
- Token image interactions on damage card: click to select token, right-click to open actor sheet.
- The Flexbox layout card shows each target on a single line with color-coded icons: ❤️ (
- Added
flags.midi-qol.grants.fumbleandflags.midi-qol.grants.noFumbletarget flags:
grants.fumble.all/grants.fumble.{attackType}- Forces attacks against the target to fumble. For multi-target attacks, if ANY target has this flag, the attack fumbles.
grants.noFumble.all/grants.noFumble.{attackType}- Prevents attacks against the target from fumbling. For multi-target attacks, ALL targets must have this flag to prevent the fumble.
- Added attack attribution tracking for critical and fumble flags. The
workflow.attackAdvAttributionset now includes:
CRIT:prefixed entries for critical flags (e.g.,CRIT:critical.all,CRIT:grants.critical.all {targetName})
NOCRIT:prefixed entries for noCritical flags (e.g.,NOCRIT:noCritical.mwak,NOCRIT:grants.noCritical {targetNames})
FUMBLE:prefixed entries for fumble flags (e.g.,FUMBLE:grants.fumble.all {targetName})
NOFUMBLE:prefixed entries for noFumble flags (e.g.,NOFUMBLE:grants.noFumble {targetNames})
- Natural crit/fumble attribution shows the threshold (e.g.,
CRIT:Roll >= 20,FUMBLE:Roll <= 1)
CRIT:activity.use/FUMBLE:activity.usewhenmidiOptions.isCriticalormidiOptions.isFumbleis passed toactivity.use()
- Attribution prefixes (ADV, DIS, CRIT, NOCRIT, FUMBLE, NOFUMBLE) are now localized. Translators can provide localized versions via the
midi-qol.AttribADV,midi-qol.AttribDIS,midi-qol.AttribCRIT,midi-qol.AttribNOCRIT,midi-qol.AttribFUMBLE, andmidi-qol.AttribNOFUMBLElocalization keys.
Deprecation:
- Removed the deprecated
vitalityResourcesetting. Users should migrate to the newvitalityItemsetting which provides better item-based tracking and integration with the damage card display.
Bug Fixes:
- Levels Volumetric Templates: Now pre-filters tokens for incapacitated/defeated status before passing to VolumetricTemplates, matching the behavior when not using volumetric templates.
- Fixed Activity Visibility "Level Limit" being ignored when midi-qol is enabled (#1548). Activities now properly respect dnd5e visibility settings (level limits, attunement requirements, etc.) on both default dnd5e sheets and Tidy5e sheets.
Documentation
- new directory docs, which includes documentation of significant development changes.