gitlab tposney/midi-qol v13.0.36

latest release: v13.0.37
5 days ago

13.0.36

New Features:

  • Added "vitality" as a new damage and healing type that directly affects the vitality pool without going through HP:
    • Vitality damage type: Directly reduces vitality (increases uses.spent on the vitality item), completely bypassing HP and TempHP.
    • Vitality healing type: Directly restores vitality (decreases uses.spent), without affecting HP.
    • If the target actor has no vitality item configured, vitality damage/healing has no effect.
    • Can be combined with regular damage types in the same attack - each type is applied separately.
    • Vitality damage can trigger death when vitality reaches 0 (respects vitalityDeathRequires setting).
    • Works with damage card undo/redo functionality.
    • Direct vitality damage/healing is displayed at the start of the damage card row (broken heart icon with amount), separate from overflow vitality damage which shows in the old→new vitality transition.

Improvements:

  • Damage card display improvements for cross-platform consistency:
    • Replaced HTML arrow entity with Font Awesome icon for consistent vertical alignment across macOS and Linux.
    • Fixed total damage display showing "-0" instead of "0" when no damage is applied.
  • Enhanced Simple Cover 5e integration (issue #1546):
    • Now passes the activity to getCover() so cover rules (ignore/override logic based on item properties) are applied.
    • Added "Simple Cover 5e" as a "Walls Block Range" option which enables Line of Sight checking - blocked LoS is treated as total cover.
    • Uses the bonus value directly from the API for more accurate cover calculation.

Bug Fixes:

  • Fixed damageTypes.<type> conditions not being available for optional damage bonuses (issue #1550). The damage type data was not being passed correctly during the bonus evaluation phase due to a timing issue where workflow.damageRolls was empty when condition evaluation occurred.
  • Issue #1549 (save rolls showing success/failure when DC should be hidden) resolved as part of the DC display refactoring above - the target DC is no longer passed to dnd5e when visibility settings would hide it from the player.

Breaking Changes:
Since this change affects what players see please check your settings and the displayed cards before game time since I might have screwed up.

  • Removed the midi-qol "Display Saving Throw DC" (displaySaveDC) setting in favor of the dnd5e challengeVisibility setting:
    • The dnd5e setting is now configurable directly from the midi-qol config panel (Workflow → Saves → "DND5E Challenge Visibility").
    • Options: "All" (show DC to everyone), "Player" (show DC only for player-initiated saves), "None" (hide DC from players).
    • GM always sees DCs regardless of this setting.
    • Migration: On first load, existing displaySaveDC settings are automatically migrated to the dnd5e setting using the most restrictive value. A chat message is sent to the GM with migration details.
    • New helper function MidiQOL.shouldDisplaySaveDC(actor?) returns true if DCs should be shown based on the dnd5e setting. When "Player" visibility is set, passing an actor checks hasPlayerOwner to determine visibility.
    • Integration modules (Monk's Token Bar, Epic Rolls, Flash Rolls) now receive the display dc setting.
    • See docs/Display_Save_DC_20260106.md for full documentation of the visibility logic.

Don't miss a new midi-qol release

NewReleases is sending notifications on new releases.