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.
- Place the
dussangs-multiattackfolder inData/modules. - Start Foundry VTT 12.
- Enable
Dussang’s Multiattackin a dnd5e world.
The packaged module archive is built as dussangs-multiattack.zip.
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.
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.
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.
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 whenrepeatConsumption = false;renderAttackSheet, used to render Activity configuration.
After ready:
game.modules.get("dussangs-multiattack").apiMethods:
getActivityConfig(activity);setActivityConfig(activity, config);getActorAttackCount(actor);getActivityMaximum(activity);runAttackSeries(activity, options).
- 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 immediatelyandRoll damage immediately by default. - Check series of
1,2,10, and the configuredAttack limit. - Check stopping on cancellation, errors, and missing resources.
- Check
repeatConsumption = trueandrepeatConsumption = false.
- 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.