-
Notifications
You must be signed in to change notification settings - Fork 2
Example: Moonbeam
This zone introduces a moonbeam to the map which is triggered due to the wrath of the moon god. Though in this example the trigger is manual, during battle it is switched to Turn End in order to heighten the stakes. The danger creates the moonbeam visual effect and a dark purple light in the area. It then triggers a macro to force saving throws by all friendly tokens targeted within the beam's boundaries, dealing full damage to those that fail and half to those that succeed
Also shown here is the optional location of zone triggers adjacent to the macro hotbar.


- JB2A Patreon webm: Moonbeam_01_Regular_Blue_400x400.webm
- Game-icons.net: moon-orbit.svg
- Sliph Battlemaps: Map
- Forgotten Adventures: token
- Advanced Macros (for passing the arguments from Danger Zone into the macro)
- Sequencer (for executing the video on the canvas)
- MidiQol (not required, but made writing the macro easier)
With Foundry VTT 9 using Danger Zone 1.0.4 or higher, the below can now be replaced by directly using the Token Interaction danger part which includes tabs for saving throws and token damage.
const tokens = args[0].targets, saved = [], failed = []; const DC = 9;
if(!tokens?.length) {return}
let damageRoll = await new Roll("2d10").evaluate();
for(let token of tokens){ let save = await token.actor.rollAbilitySave("con"); if(save.total < DC) { failed.push(token) } else { saved.push(token) } }
let hf = Math.floor(damageRoll.total/2);
let halfDamage = new Roll(${hf}).evaluate({async:false})
if(failed.length){ new MidiQOL.DamageOnlyWorkflow(null, null, damageRoll.total, "radiant", failed, damageRoll, {flavor: 'Struck by moon beam for ' + damageRoll.result +' radiant damage'}) }
if(saved.length){ new MidiQOL.DamageOnlyWorkflow(null, null, halfDamage.total, "radiant", saved, halfDamage , {flavor: 'Struck by moon beam for ' + halfDamage.total +' radiant damage'}) }