Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dussang’s Multiattack

Dussang’s Multiattack is a Foundry VTT 12 module for the dnd5e 4.x system, verified against dnd5e 4.3.9.

The module adds sequential multiattack rolls to standard dnd5e Attack Activities. It keeps the normal dnd5e and midi-qol chat cards, does not create a custom attack card, and does not change the user's selected targets. Damage can be rolled manually with the standard damage button or automatically from the attack dialog.

Installation

  1. Place the dussangs-multiattack folder in Data/modules.
  2. Start Foundry VTT 12.
  3. Enable Dussang’s Multiattack in a dnd5e world.

The packaged module archive is built as dussangs-multiattack.zip.

Usage

Open an Attack Activity sheet. The Multiattack section provides:

  • Use actor attack count;
  • Attack count;
  • Repeat consumption for each attack.

Example weapon Activity setup:

Use actor attack count: enabled
Repeat consumption for each attack: enabled

When an attack is rolled, the standard dnd5e attack dialog receives an attack counter with -, +, All attacks, and Roll damage immediately controls. The normal, advantage, and disadvantage buttons run the selected number of attacks sequentially.

All attacks sets the counter to the current Actor value from flags.dussangs-multiattack.attackCount after Active Effects are applied. Manual input is limited by the world setting Attack limit; the default limit is 50.

When Roll damage immediately is enabled, damage is rolled automatically for each attack using the standard dnd5e/midi-qol damage workflow. The module also provides a client setting, Roll damage immediately by default, which preselects this option whenever the attack dialog opens.

Active Effect

The Actor attack count is stored at:

flags.dussangs-multiattack.attackCount

Example Extra Attack effect:

Key: flags.dussangs-multiattack.attackCount
Mode: ADD
Value: 1

Supported Active Effect modes are ADD, MULTIPLY, and OVERRIDE. Values are normalized from 1 to the configured world Attack limit.

This value is used as the configured attack count for Activities that use Actor attack count, and as the value selected by the All attacks button.

Architecture

  • data/*: flag reads, defaults, Actor attack count, and formula handling.
  • applications/*: standard attack roll dialog and Activity sheet integration.
  • workflow/*: sequencing, series guards, and repeated consumption.
  • adapters/dnd5e-v4.mjs: dnd5e 4.x version-dependent integration.
  • adapters/dae.mjs: optional DAE field browser integration.
  • migrations/*: idempotent world migration.

Hooks And Wrappers

The module calls:

  • dussangs-multiattack.preSeries;
  • dussangs-multiattack.preAttack;
  • dussangs-multiattack.postAttack;
  • dussangs-multiattack.postSeries.

The module wraps:

  • AttackActivity.rollAttack;
  • AttackActivity._triggerSubsequentActions.

The module listens to:

  • dnd5e.rollAttackV2, used to suppress additional ammunition updates when repeatConsumption = false;
  • renderAttackSheet, used to render Activity configuration.

Public API

After ready:

game.modules.get("dussangs-multiattack").api

Methods:

  • getActivityConfig(activity);
  • setActivityConfig(activity, config);
  • getActorAttackCount(actor);
  • getActivityMaximum(activity);
  • runAttackSeries(activity, options).

Manual Checklist

  • Check character and NPC Actors.
  • Check player owners, GM, and users without ownership.
  • Check melee weapons, bows with ammunition, thrown weapons, spell attacks, and feature attacks.
  • Check Items with multiple Attack Activities.
  • Check formulas: 1, 3, @prof, 1 + @prof, 0, -5, 3.9, 100, empty strings, invalid formulas, and formulas with dice.
  • Check Active Effects: ADD 1, MULTIPLY 2, OVERRIDE 4.
  • Check normal rolls, advantage, disadvantage, roll mode, ammunition, attack mode, mastery, and situational bonus.
  • Check Roll damage immediately and Roll damage immediately by default.
  • Check series of 1, 2, 10, and the configured Attack limit.
  • Check stopping on cancellation, errors, and missing resources.
  • Check repeatConsumption = true and repeatConsumption = false.

Known Limitations

  • The module supports the standard dnd5e Activity sheet and render hooks in dnd5e 4.3.9. Tidy 5e Sheet is not separately integrated.
  • Optional DAE and midi-qol behavior is handled through feature detection; these modules are not required dependencies.
  • Foundry VTT 13 and dnd5e 5.x compatibility is not declared.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages