#MidiQOL

1 messages Β· Page 2 of 1

coarse mesa
#

OK I get it now, didn’t read OP properly

elder path
#

I'm dumb I completly missed the " Never " entry πŸ˜‚

devout flower
#

I got it working by the way, potentially through some unnecessary code but it functions as expected and works with automated animations too so no complaints as far as I can tell currently. (Edit: Maybe some things to still figure out, doesn't work so well if there are two tokens on the scene with the same name. They end up doing some serious friendly fire. ) ```js
let defeated = canvas.scene.tokens.filter(t => {
/* only keep tokens with Hostile disposition and HP <=0 a.k.a dead /
return t.data.disposition === CONST.TOKEN_DISPOSITIONS.HOSTILE && t.actor?.data?.data?.attributes?.hp?.value <= 0;
});
//Change Commoner to the name of whatever token you want to use
for (let tokenDoc of defeated) {
let invalid = tokenDoc.getFlag("world", "Commoner") ?? false;
if (invalid) continue;
/
ignore non-npc tokens or tokens not named commoner */
if (tokenDoc.actor.data.type != 'npc') continue;
if (tokenDoc.data.name != 'Commoner') continue;

const trapActor = game.actors.getName("Commoner");
const trapItem = trapActor.items.getName("Fireball");
let trapToken = canvas.tokens.placeables.find(t=>t.name === "Commoner")
new MidiQOL.TrapWorkflow(trapActor, trapItem, [token], trapToken.center);
Hooks.once("midi-qol.RollComplete", async function(result){

});
await tokenDoc.update({
name: "Burnt Remains",

});
await ChatMessage.create({
content : Ouch,
speaker : ChatMessage.getSpeaker({ token : tokenDoc }),
},{
chatBubble : true,
});
await tokenDoc.setFlag(world,Commoner,true);

}```

spice kraken
#

So If I am understanding this right, you want damage to not auto apply. If that is correct you can auto roll damage, but to manually apply it change these settings in workflow

#

I personally don't auto roll damage for the players but do roll it for myself. That's just the rolling the dice and I like my players to 1 click roll for attack (auto roll and ff), but still they need to click the damage roll once I tell them if it hits or misses

violet meadow
devout flower
elder path
devout flower
barren flume
#

Hello hello. I've got a question. I'm trying to update a monster to have a new resistance, but when I attack the monster with the damage type it should be resistant to, it's not applying (using midi if that matters, probably does). I updated the monster to have fire resistance on their attributes page, but when hit with a firebolt, the firebolt does full damage

devout flower
#

It's admittedly a little hilarious than they start randomly exploding when one pops. I'll keep looking through it, appreciate the help by the way.

violet meadow
#

Ohhhh wait. Are they linked or unlinked actors?

devout flower
#

Unlinked.

spice kraken
violet meadow
#

Select a token and use this ```js
new MidiQOL.TrapWorkflow(token.actor, trapItem, [], token.center);

devout flower
#

That rolls the dice, puts the fireball in the chat, does everything except placing down a template.

#

One second. Let me test without all of the filter

devout flower
#

Ah, interesting. Maybe an issue with triggler. It works executing on its own, but with triggler it rolls the dice but doesn't put down a template.

barren flume
#

Wait are you trying to remove that fireball zone?

#

I joined late sorry

#

If you want to remove that big red zone that happens after fireball, that's happening from Token Magic FX

devout flower
#

all good. I can get traps to activate through triggler but I can't get the template to be placed down correctly.

violet meadow
devout flower
#

Nah, not worried about the fireball zone. Thank you though!

barren flume
#

No worries then ignore me :D

devout flower
violet meadow
#

Haven't used Triggler for a long time so not sure!

I could make something for a feature that does that via MidiQOL when the NPC that has it falls to 0 hp πŸ˜…

devout flower
#

Oh. That'd be the same thing for me. Haha. I just knew I could do it with Triggler in the past so was looking at it again.

violet meadow
#

Anyway I will make something when I have time and ping you. I want something similar for my next session so....

devout flower
#

I was able to get the name change, image change, etc. working through triggler as I had before just the template stumped me.

#

Sounds good!

#

Thank you again!

violet meadow
#

( You could actually get the Fireball from the Spells SRD, "give" it to the token as an ephemeral item and use it without the need for it to be an actual spell on the character sheet. That's step 2 πŸ˜„ )

velvet sequoia
#

It has been suggested this is the right place to ask. But I have only just started using Foundry. I am looking to make best use of all the automation it can offer. I have installed a few modules, and wondering if anyone knows how to set it up so a feature like Dwarven Resilience, when dropped on a character sheet will allow the character to have advantage on saves against the poisoned condition. I have CUB, Midi QOL and DAE installed.

vast bane
# velvet sequoia It has been suggested this is the right place to ask. But I have only just start...

The modules that make everything work:

Midi QOL
Dynamic effects using active effects

The modules that are just a bunch of compendiums with premade shit:
Midi SRD
Dfreds CE
More Automated Spells Items and Feats
DAE SRD(Defunct, all its stuff is in Midi SRD)

Modules you should not ever install with midi:
Minimal Roll Enhancements
Better Rolls for 5e
Retroactive Advantage

Modules I find useful:
Advantage reminder(if you do not fast forward rolls)
Warpgate
Sequencer
Automated Animations
jb2a
CUB(but disable concentrator and enhanced conditions)
Monk's Token bar OR LMRTFY
Monk's Little Details

Subject to change as others suggest things

fallen token
# velvet sequoia It has been suggested this is the right place to ask. But I have only just start...

Regarding dwarven resilience (same for elf's fey ancestry), that's not something easily automatable. There isn't a "poison" or "charm" tag that makes it easy to automate advantage on. That is one of the sample features I included in the Advantage Reminder module. It lets you add a message to the d20 dialog (targeting saving throws, for that one specifically) to remind you to roll with advantage if it's a poison spell/effect.

vivid lark
#

I've got a challenge for the channel! I have a player who has developed a custom feat that utilizes the often insane amounts of movement he can build up in DND 5e. He is a wood elf monk with boots of speed that sometimes has haste cast on him. According to our calculations, that puts him at about 660 ft per turn sometimes. He developed a feat to make an attack roll at a -5 penalty and on a hit turn all remaining movement into damage at a rate of 1 point of damage per 10 feet of movement remaining, rounding down.

Is there any way to make a macro that reads how much movement his character has on his turn, execute an attack roll at the penalty, detect a hit, and apply the remining movement as damage? If it is possible to make an item that will execute the macro using the drag and drop to hit functionality, that would be ideal. I have the Drag Ruler module, so that module could be used for movement measurements.

velvet sequoia
velvet sequoia
vast bane
#

I'm currently on vacation far from my foundry session or I'd share you my advantage reminder setup 😦 I use it for stone cunning AND dwarven resilience

#

conditions can be very easily automated with dfreds CE+midi

fallen token
#

Advantage or disadvantage on saving throws by ability, like strength saves for a barbarian, are no problem. Midi can handle that. It can't handle those kind of edge cases though

vast bane
#

Shieldmaster is another feat that kinda begs to be handled by advantage reminder

#

But you can't play with fast forward on if you employ advantage reminder and thats a huge no for a good portion of midi users so its not for everyone.

molten token
#

heya, how do make so you will see the full text of spells?

spice kraken
molten token
#

ah

stark jackal
#

Made a post in the channel before was pointed to this thread...

My question; is there a global setting for changing critical hit/fail thresholds in midi-qol? I want to in crease the threshold by one (1-2 for crit fails and 19-20 for crit hits). I don't want to go and alter these per item for each of my players and other tokens for that matter.

molten token
#

step 1, blame midi

#

step 2, blame dnd5e

spice kraken
#

@spice oracle I don't mess with crits a lot but you could edit each item and change the crit threshold to higher than a 20 for a the attack

spice oracle
#

Hm, gotcha

#

that'd work for the short term too, since I mainly want to prevent the DM from critting until players are above lv5

#

(I don't want to kill them instantly when a swarm of piranhas gets extra frisky)

#

I'm trying to set up automatic advantage for Hidden/Invisible attackers, and it doesn't seem to be working;

#

I've enabled the setting in Midi QOL and I have CV installed, though it isn't rolling the second d20 for advantage

#

I'll try with CUB instead of CV

spice kraken
#

convenient effects can do that

spice oracle
#

Oh? That might be a better solution than installing more modules then

spice kraken
#

When you cast a spell of invisibility or greater invisibility (targeting yourself first)

spice oracle
#

One of my players is a rogue and they'll be going in and out of stealth quite often, so they won't be casting invisibility as a spell for this case

#

Is it possible to gain advantage when hidden via stealth?

spice kraken
#

You could just make a hidden condition with CE

violet meadow
spice oracle
#

πŸ‘ how would I set this up?

spice kraken
spice oracle
#

OH wait,

violet meadow
#

As Supernaf mentions, grab DFreds CE and go through the conditions and spells.

It has everything ready and you can learn how to.

Also Midi flags in the pinned post here in #1010273821401555087

spice oracle
#

I uninstalled CV, but CE shows that it added a bunch of custom effects

spice oracle
spice kraken
#

Pair CE with Dfred's effects panel and you'll easily manage combat with those

spice oracle
#

Ayy

#

yeah, it already works with CE. I just have to add the condition myself when he goes stealth

#

I'll duplicate the Invisible condition and call it Hidden

#

rad! Thanks guys πŸ™‚

vast bane
violet meadow
#

Set the DC (now is a 15) of the spell in the 1st line of the macro included in the embedded Item Macro.

nova lark
#

Hey is anybody else having an issue with midiqol? None of my attacks are rolling with automation. It wont auto roll saves, it wont apply damage to targets. I cant figure it out

violet meadow
#

In the main menu of MidiQOL settings.

nova lark
#

Yeah i do have roll automation support

violet meadow
#

Nope you dont have the Fast Forward Ability Rolls for the Ability Rolls a bit further down.

nova lark
#

It was working fine two weeks ago when i had a session. then this sunday for our session after i closed foundry and updated modules it wouldnt work

#

Oh, is that new ive never had it enabled before

violet meadow
#

Nah it was always there 🀷

nova lark
#

Or i dont think I did

#

Does that mean i have to have auto fast forward attack and such in the qol configuration?

violet meadow
#

Yes Auto Fast Forward Attack needs to be checked

nova lark
#

Ahh, well that explains it

#

I mustve been dumb somehow

violet meadow
#

You might have changed some Quicksettings

nova lark
#

Maybe

#

going through them now

violet meadow
#

or after updating the options got nuked... πŸ€”

nova lark
#

Would not surprise me

#

Hey you wouldnt happen to know possibly how i can set something like paralyze to be auto applied to an enemy froma beholder zombie paralyzing ray?

#

ive been struggling to auto apply conditions

violet meadow
#

Got DFreds CE module maybe?

nova lark
#

convenient effects

#

I do have that, I just dont know how exactly to make the save fail auto apply it

violet meadow
#

aiaiaiai Better Rolls!

nova lark
#

oh no

#

Did i do something bad?

violet meadow
#

MidiQOL + Better Rolls are a ... difficult to say the least combo

nova lark
#

That does not surprise me

violet meadow
#

Pick one or another to be safe (and keep in mind that as things are right now, Better Rolls for 5e is not actively developed)

nova lark
#

Im very new to all of this

violet meadow
#

So disable BR and try again to see if it will get applied. If not will take it from there

nova lark
#

So trash out better rolls. Does midi allow the same options that BR does?

violet meadow
#

Nope. The cards are different, damage application too.

#

But I haven't used BR at all to know other differences, only what I ve gathered from discord

nova lark
#

Okay, that might take me some tweaking

#

I can certainly try to play with it though

violet meadow
#

There are some functions that work together, but Midi's more advanced ones will not.
BR also has an issue with ammunition consumption etc. If I were you I would disable it 🀷

nova lark
#

Ahh, yeah

#

I struggled with that one greatly

#

Also its not a midiqol question, but you have been wonderfully helpful

#

Is there a place i can buy more of like the monster manual and books that i can import those compendiums to foundry?

#

I havent seen them

raven holly
nova lark
#

Ohh, i shall go look at that

#

Thank you very much

vast bane
#

Also aren't there a bunch of modules with monsters?

nova lark
#

Some

raven holly
#

Not with official WotC monsters

vast bane
#

the dnd5e one also has a bunch of the free ones too

raven holly
#

But kobold press has the Tomb of Beasts

nova lark
#

My koboldpress OGl has no avatars for some reason

#

I never figured out if it was a bug, but i use them somewhat often

nova lark
#

Hey, so I removed better rolls and I have been getting everything to be where I would like it to be, but 2 settings just either are not working properly for me or I just dont know how to implement them

#

Im trying to set my crit dice in midiqol to max the crit dice that would be rolled, so if an attack is 1d12 itd be 12 + 1d12

#

But its not working properly, or applying crit

#

The other setting is i am trying to merge the chat cards for the roll, damage and attack

spice kraken
#

Use the core settings

#

or rather system settings

nova lark
#

Okay, so the midi setting doesn't work for this im assuming?

#

I did just apply critical damage maximize dice but it didnt change the roll

spice kraken
nova lark
vast bane
#

show us an attack

spice kraken
#

Midi misc settings for merging

vast bane
#

the attack card not working right leads me to believe a module conflict

nova lark
#

Its not letting me roll the weapon attack now all of a sudden without having something targetted. give me a second

vast bane
#

that is a midi setting

#

top of the workflow tab

nova lark
#

Ah let me check that

#

ah, that would be the case

vast bane
#

did you at any time install MRE? I think MRE latently adds stuff that breaks a bunch of attacks in midi where you have to depopulate a bunch of fields on the item details.

nova lark
#

By chance what is the actual name of MRE?

#

i dont think i have it

vast bane
#

k

#

lets see an attack flow, and did you turn on merge chat cards?

nova lark
#

Chat card is working properly now, thank you

spice kraken
#

Minimal roll enhancements

nova lark
#

I do not have minimal roll enhancements

spice kraken
#

Expand the damage card

#

But also you didn't crit there

vast bane
# nova lark

looks pristine to me, as for criticals, what does the details for the attack show, doesn't BR put flavors in the attack formulas that could be left behind to mess up midi?

nova lark
#

Yeah, im trying to make it crit so i can check the damage

vast bane
#

change its threshold temporarily

#

(don't forget to change it back)

spice kraken
#

Change crit threshold

nova lark
#

Ahh, i dont know how to change crit threshold but i did manage one

vast bane
#

whoa

#

I don't think you want that setting do you?

spice kraken
#

What in the world is happening there

nova lark
#

I have no idea, please help lol

vast bane
#

that should cause an endless loop

#

you need to show us the bottom of the details tab

nova lark
#

Oh apparently midi setting was set to explode critical dice

vast bane
#

The X10 should not be there unless your item insists and then it would cause bad things right?

#

oh lol

nova lark
vast bane
#

having explode and max crit dice would be hilarious

nova lark
#

So now if i get a critical it should just max those extra dice

vast bane
#

you might wanna make sure that only one setting is modding crits

spice kraken
#

It should max ALL dies

#

Not just any extra ones

vast bane
#

I don't think so right? The normal weapon dice are not critical dice

nova lark
#

okay i got it fixed

#

Thank yall so much

#

Ive had enough struggle being a first time dm going through Dotmm

vast bane
#

I kinda wanna see what it looks like with reroll 1-9 and explode on 10's now lol

nova lark
#

without some of modules going haywire

spice kraken
#

Say damage is 1d10 + 1d12 and you crit. It'll be 1d10 + 1d12 + 22

vast bane
#

will probably have a failsafe to prevent it from endlessly looping

nova lark
#

probably

vast bane
spice kraken
#

Imma test what happens when I'm at my pc with a +1d12 AE

vast bane
#

Example, a spiders poison is applied after a save not after the attack.

spice kraken
#

Normal Crit

#

Crit AE that adds 1d12

spice kraken
vast bane
#

is the d12 in the damage formula or other formula?

spice kraken
#

It was added by the mwak flag in an AE

vast bane
#

I think that is normal behavior then yeah? That is adding to the damage formula, my point was that damage not attached to the damage roll shouldn't maximize nor crit

spice kraken
#

Like from Other Formula?

coarse mesa
#

Moto – supposed to be on vacation, spends his time troubleshooting in here. Much respect!

spice kraken
#

Dnd is love, dnd is life

vast bane
#

When else am I gonna prep my next campaign

spice kraken
spice oracle
#

I'd like to set up a macro to prompt a player to use Sneak Attack in their attack roll if they have advantage; would that be possible to do?

#

I.E. "If attack hits, and the attacker has advantage, prompt to use Sneak Attack"

devout flower
opaque current
spice oracle
#

hahaha

#

this is also true

vast bane
#

otherwise if you want full automation, you already have it in midi's sample items in the compendiums sidebar

#

Also if you do automate it, you will have to make sure dispositions are set right all over the place for the rogue as well.

spice oracle
#

yeah

#

that's a fair point

#

don't fully automate conditional things, as it's more work to make sure the condition is right than just manually rolling advantage

#

I'd like to prompt my rogue to use Sneak Attack in the damage roll though, as it'd be nice to have the d6 automatically added to the calculated damage, rather than me having to add another d6 in after

#

that's separate from my monk things though, or my advantage things

vast bane
#

that is what advantage reminder can do

#

it lets you put buttons on your advantage/normal/disadvantage and crit/normal popouts

spice oracle
#

:O it would add a button to add Sneak Attack damage?

#

Hrm, I think that's different

#

The goal I have is to make it so whenever a rogue character rolls an attack with advantage and hits, it prompts them to add another 1d6 to their roll

#

The player would have to manually roll with advantage, but if they do roll with advantage and it hits, then prompt to use Sneak Attack

#

I think it might be doable via an 'on use macro'

#

hrm

vast bane
#

I think you should look up advantage reminder module cause I believe it is exactly what you want

#

and the fully automated version is in the compendium for midi qol

#

midi sample items has sneak attack automated

spice oracle
spice oracle
#

OOoo!!!

#

It works!

#

Thank you Moto Moto πŸ’—

#

I just pasted the sneak attack ability from sample items

vast bane
#

the sample items one is fully automated so if the DM is not setting disposition of npc allies it will mess up

spice oracle
#

If the DM is not setting disposition of npc allies it will mess up
I'm not sure I follow what you mean by this

vast bane
#

the color of the borders of tokens, disposition is friendly/neutral/hostile

spice oracle
#

Ah gotcha

#

Gotcha, so the sample items will work so long as I remember to set the tokens to be Allies or enemies

magic marsh
#

Hi. Is there a way to disable the token icon in the <actor> hit/miss <token> line, so it's just a line of text?

violet meadow
#

I don't think so πŸ€” @gilded yacht πŸ‘†

vast bane
#

Could maybe override the CSS for the token image with a dead link maybe?

coarse mesa
molten solar
#

Doesn't need to be a div.

#

Hello!
Will Midi be completely ignoring the incoming preDisplayCard, preRollAttack, and preRollDamage hooks in dnd5e 2.0.0?

coarse mesa
#

midi needs no such contrivances

molten solar
#

Shame. My coming module will be incompatible then.

coarse mesa
#

idk bugbear would know better than me but I think midi does some if not all of those already

molten solar
#

I assumed so. I was wondering if it would instead rely on the core system implementation in v10, and thus remove many incompatibilities.

coarse mesa
#

that is a good question for @gilded yacht … you could have a rummage in his repo – he’s already done the v10 conversion I believe

#

anyway what is this module you speak of πŸ‘€

molten solar
#

A quick skim in their Hooks.ts file doesn't show anything, so I assume they weren't as crazy as I and write code for hooks that do not yet even exist in the alpha release. πŸ‘Œ

coarse mesa
#

I don’t see what these hooks have to do with your upcoming unidentified items module

molten solar
#

Not mine, and won't be (there is a pull request by ccmjk for the system anyway)

violet meadow
molten solar
# violet meadow

So it wipes standard roll behavior completely and replaces with its own?

violet meadow
#

Is seems like. Same with v9 Hooks, but I am not sure what will happen with the new system hooks when they are implemented, so I would wait for tposney to chime in (the midi ones are async though afaik)

molten solar
#

I see the point in v9, it's necessary. Not so sure in v10, but if Midi needs to perform async behavior (pre-hook functions cannot normally be async), then there is little chance

magic marsh
magic marsh
gilded yacht
gilded yacht
# coarse mesa that is a good question for <@378398557050503168> … you could have a rummage in ...

@molten solar as of today midi will be ignoring the preDisplayCard hook, but preRollAttack and preRollDamage should still work (I've done no testing - I only noticed these hooks yesterday), but since it wraps rollAttack and rollDamage, these should both sitll get called. I need to see if I should change how midi handles overriding rollAttack/rollDamage versus using the hooks in a later version.

It's unlikely that I'll change the item roll to fire off the preDisplayCard hook, but I will call the hook when displaying the card which should mean that actions done on those hooks should work. Probably 10.0.5 or later release of midi.

gilded yacht
molten solar
#

preUseItem, I believe it is.

#

item.roll is also being renamed item.use

gilded yacht
#

Ok, that then.

gilded yacht
molten solar
#

item.roll will call item.use until 2.4.0

#

No need to worry, just gonna get deprecation warnings

violet meadow
#

(ah I was testing with 10.0.3. just saw .4 coming up)

gilded yacht
molten solar
gilded yacht
molten solar
gilded yacht
#

Assuming you mean the save DC, it displays the save dc on the item chat card when displaying the chat buttons (like core), but uses the DC when auto checking saves and looks at the item at that point.

#

Was that what your were asking?

molten solar
#

After creating the chat card?

gilded yacht
#

Yes

molten solar
#

Interesting.

#

Thanks

gilded yacht
#

Midi assumes that the dc won't change from when displaying the chat card, but if it does then it will use the changed value when auto checking saves.

molten solar
#

In other words, if something was to increase the DC of an item's saving throw (from what is displayed in the item) to a new value, which only shows in the card in chat, Midi will recognise it.

violet meadow
#

@gilded yacht A QQ now that you are around ```js
const spells = game.packs.get('dnd5e.spells');
const spellId = (await spells.getIndex()).find(i => i.name === "Fireball")._id;
const spell = (await spells.getDocument(spellId)).toObject();
spell.data.save = {"ability": "dex", "dc": 15, scaling: 'flat'}
spell.data.preparation = { "mode": "innate", "prepared": true };
const ownedItem = new CONFIG.Item.documentClass(spell, { parent: targetActor });
await MidiQOL.completeItemRoll(trapItem, {configureDialog: false});

Is there a way to make the item upcast? Can we somehow pass a workflow option for spellLevel?
molten solar
#

(In core, the item is cloned with a new level, and same id)
(you also do not need to use getIndex)
(or even find)

#

The dc and prepared are integer and boolean btw, not strings

#

vanishes πŸ˜Άβ€πŸŒ«οΈ

gilded yacht
molten solar
#

And if the save is not changed, but only the displayed value?

gilded yacht
gilded yacht
violet meadow
#

Also from a user in Gearheads asking about DAE:

is there a flag that will halve the healing a character receives from spending hit dice?
data.traits.dr.value | Add | Healing halves hp restored from healing spells, but I also need hit dice healing to be halved for a disease
Midi doesn't intercept Hit Dice rolls right?

molten solar
#

or simply passing an object in item.use

gilded yacht
violet meadow
#

yeah that's what I thought. Could make an onUse Hit Dice healing feature updating the Hit Dice pool in the end if need be 🀷

violet meadow
opaque current
#

I don't suppose there is a simple way to use a "5 ft creature" targeting mode whilst also ignoring self is there

opaque current
#

Oh really? Special will do it?

gilded yacht
opaque current
#

Awesome. Works great, thanks both. For a second I was thinking of weird hacks like temporarily applying immunity to self, or just telling the player that his ability also damages him πŸ˜„

orchid hound
#

"yeah, your ability hurts you too. Why you ask? I dunno, maybe your god doesn't like you all that much"

molten solar
#

and even so, it would be system.level πŸ™‚

violet meadow
#

Yeah only way for now is to change the data.damage.parts manually with some logic for consuming charges etc 😩

molten solar
#

Clone the item

violet meadow
#

yeah

devout flower
violet meadow
#

was testing on a linked actor...

devout flower
#

If that's the same as before, I'll test that one out thought to see.

violet meadow
#

I fixed the issue with the unlinked tokens and from some quick testing it works as intended now πŸ˜…

devout flower
#

Haha thank you for that! No more spontaneous combustion.

#

It's going on 1:30 AM here so I may have to give it a testing later - but it's appreciated all the same. I took a look at the item-macro and with the comments you left, it looks very easy to adapt as needed. πŸ™‚

#

Semi-related question to MIDI-QOL. Is there any sort-of macro repository? I know that's difficult since different ones require different setups. I'm definitely interested in seeing what else people have made, especially MIDI-QOL related. I've stumbled across tons of useful macros in this channel and others.

violet meadow
#

But a centralised macro repo is not available as of right now 🀷

dark canopy
#

the warpgate wiki has about half and half MIDI/Normal macro examples

violet meadow
#

I forgot the badger! bad bugbear

celest bluff
#

yeah I got some, need to release some new ones I have been working on

dark canopy
#

forgivable, i try to stay away in general πŸ˜… but can't say no to a cool example

celest bluff
#

Especially with the latest updates I requested got setup

#

Getting covid has seriously hurt me development wise.. it's like I can write this..... uhhh how do I do that again? What was I working on again? I'm tired zzzz

spice kraken
celest bluff
#

My best effort of concentrating so far has been a 4 level building in Levels for my campaign.

#

Got 2 bosses I need to macro up this week, just need to figure out their mechanics. I may experiment again with delayed explosive templates

#

Maybe do the whole, if targeted damage is aoe but reduced by the number of the targets it hits

violet meadow
#

Oh fancy!

#

I have been so happy with the onUpdateTarget and I keep playing with that one!

plucky bolt
#

I'm trying to write a macro which prompts the GM to enter in a damage value (and possibly a damage type) and create a standard d&d5e damage card. For example, someone rolls physical dice, I could enter that amount into the input. My intent is that this could be used with midi-qol to apply damage with resistance. I've been able to create a dialog with an input but I'm not sure how to transfer that over to a 'damage' chat card the midi-qol can hook into.

spice kraken
celest bluff
#

Guess it depends if you want an item card or not for the damage.

violet meadow
# plucky bolt I'm trying to write a macro which prompts the GM to enter in a damage value (and...

Starting my session so no time to go through it (and change it cause it takes some improvement).
Select the tokens you want and execute the script macro from the hotbar

const d = new Promise((resolve, reject) => {
        let theDialog = new Dialog({
          title: "Damage dealt",
          content: `How many points of damage? <input id="damagepoints" type="number" min="0" step="1.0"></input>`,
          buttons: {
            damage: {
              label: "Enter",
              callback: (html) => { resolve(Number(html.find('#damagepoints')[0].value)); }
            },
            abort: {
              icon: '<i class="fas fa-cross"></i>',
              label: "Quit",
              callback: () => { resolve(false) }
            },
          },
          default: "damage",
        }).render(true);
      });

const dmgpoints = await d;

const options = Object.entries(CONFIG.DND5E.damageTypes).reduce((acc, [value, name]) => acc += `<option value="${value}">${name}</option>`, "");


const f = new Promise((resolve, reject) => {
        let theDialog = new Dialog({
          title: "Damge Type",
          content: `What was the damage type? <select id="damageTypes" type="text">` + options +`</select>`,
          buttons: {
            dmgType: {
              label: "Enter",
              callback: (html) => { resolve(html.find('#damageTypes')[0].value); }
            },
            abort: {
              icon: '<i class="fas fa-cross"></i>',
              label: "Quit",
              callback: () => { resolve(false) }
            },
          },
          default: "dmgType",
        }).render(true);
      });


const damageType = await f;

const targets = canvas.tokens.controlled;
const damage = await new Roll(`${dmgpoints}`).evaluate({async:true})
game.dice3d?.showForRoll(damage, game.user, true);
await MidiQOL.applyTokenDamage([{ type: `${damageType}`, damage: damage.total }], damage.total, new Set(targets), null, new Set(), {});
plucky bolt
#

Awesome! I'll give this a go and alter to fit my needs!

violet meadow
#

no need for 2 dialogs for instance

sudden crane
tidal stone
#

Hello everyone. I need some help with a few gltichy things I am having running encounters.
The first question I have is regarding hit die. In my homebrew rules, I give hit to AC ties to the player. Is there a setting somewhere to adjust this? Currently a tie misses

spice kraken
#

Tie rules should be meets it beats it

#

In terms of auto hits and what not

fallen token
#

since that's functionally what that homebrew rule does

tidal stone
fallen token
#

I'm confused then. That sounds like the normal behavior. Maybe an example would help

tidal stone
fallen token
#

That shouldn't be happening, sounds like a bug or something's off with weapons

#

Was it happening with everyone or just one player?

tidal stone
#

everyone

#

well everyone that has had a tie, only happened a handul of times but it's been different players

molten solar
#

... cover?

tidal stone
#

I'll just have to keep an eye on it if it happens again. Apparently it seems a glitch then

spice kraken
#

Can you show a picture example of it happening?

#

In my experience I've never seen a tie miss

tidal stone
spice kraken
#

You could just test rn if you have the time and show us rather than debug in the middle of a session

tidal stone
#

my next question involves argon and BA, if there a dnd sub discussion for that? So many channels here lol

spice kraken
tidal stone
molten solar
#

BA?

tidal stone
#

actually it might be midi related also cause it involves cards

spice kraken
tidal stone
#

Basically, for example our druid. She uses Starry Form and it prompts to roll to hit

#

and that's it, there is no damage card for Circle of Stars radiant damage

molten solar
#

Have you actually given it a damage formula?

tidal stone
#

it has a damage formula. now it is wierd, the damage card poped up later. Wierd, But what the main issue is in Argon Hud our druid can select Starry Form Archer to activate it and it allows the FIRST attack. The ability last 10 minutes. Next round there is no attack button anywhere, She has to go into her sheet and click attack to attack with Starry Form again. Basically there is no button in the hud to attack with it

#

but this sub channel is for midi lol

fallen token
#

I would set it up with two features. The first feature would consume the wildshape use and maybe apply an active effect at least to remember they're in the form. You could add ATL keys to have their token emit light. Then the second feature would be the bonus action attack. It could be an item a weapon if they prefer to see their attacks in items weapons instead of features.

#

The one catch is if you're using a module to track action uses, which I think Argon does, then you could add the attack to the first feature as well

tidal stone
#

I really dind't understand any of that. Also as far as I know Argon is just a HUD. Midi is what tracks actions and sets workflow

molten solar
#

the damage card poped up later.
Midi has a delay thingamajig, no?

tidal stone
celest bluff
#

More than likely this is what is happening

celest bluff
#

any errors in the console?

#

Could be an illegal dice roll format

vast bane
coarse mesa
#

gives the player an opportunity to throw up shield or absorb elements before the damage comes in

#

etc

chrome cypress
#

So I took the sample fireball on death js from further up the thread and put it on a ring. When I "Execute Macro" I get the error on originItem am I doing it wrong?

#

Ring is on a player, equipped, and doesn't need attunement.

violet meadow
#

Will that be always on, or should the Ring be activated?

chrome cypress
#

In this case I am just trying to get the ring to cast fireball on death since that is (what I think?) the example posted above was

#

could be wrong

#

So the effect would always be on, but only activate? on death

violet meadow
#

On the title bar Ring of Test 1, click on the DAE icon. Create an effect macro.itemMacro | Custom | ItemMacro.name of the item.
Check the box Transfer to Actor on Item Equip

chrome cypress
#

Do I need to change the GoBoomOnZero references in the macro to match the item name?

violet meadow
#

yes, it was meant just as an example I had at hand

violet meadow
#

You can have whatever you want in the flagName, just an identifier so as to be able to differentiate the specific trigger

chrome cypress
#

It does appear to be applying the effect now

#

Tho still doesn't 'trigger' I do see dae debug output mentioning the ring

violet meadow
#

Any console errors when you change the tokens hp to 0?

chrome cypress
#

no

#

Interesting, when I click equip on the item I do get warnings

violet meadow
#

Can you export your item and sent it to me to take a quicker look as it is rather late for me now?

chrome cypress
spice oracle
#

I'm having some issues with adding a sample item (sneak attack) to an NPC character; it doesn't give the prompt to add sneak attack after an attack is rolled with advantage on an NPC, the way it does with a PC

#

Steps to reproduce:

  1. Create an NPC character
  2. Give them the Sneak Attack sample item, and a standard melee weapon
  3. Roll an attack with advantage against a target
  4. Observe that Sneak attack does not activate
#

*Sneak Attack or Auto-Sneak attack

violet meadow
# chrome cypress Here is the export

Try this. I am a bit tired to troubleshoot properly. I changed the item to target self with a permanent duration.

As soon as you move it on the character sheet, use the item once. It should behave afterwards.

I think that the difference is the feature vs trinket item. Not sure now 🀷

violet meadow
vast bane
#

add levels of rogue to the npc

spice oracle
#

I'll add a level of rogue and see what happens

vast bane
#

just add rogue class to their features and level it, ignore the rest

violet meadow
#

From the Sneak Attack ItemMacro ```js
const rogueLevels = actor.getRollData().classes.rogue?.levels;
if (!rogueLevels) {
MidiQOL.warn("Sneak Attack Damage: Trying to do sneak attack and not a rogue");
return {}; // rogue only
}

spice oracle
#

Oop, yeah from that text they definitely need to be a rogue haha

violet meadow
#

this bugbear goes to sleep πŸ‘‹

spice oracle
#

Huzzah!

#

It works, thank you bugbear πŸ€—

vast bane
#

When bugbear talks in third person I read it like the polar bear in we be bears.

spice oracle
#

hahaha

oblique scaffold
#

Hi there, I've been trying to figure out how to automate a feat from the Tal’dorei Campaign Setting book, Mending Affinity. The short version is that any healing from a spell, potion, or ability that the character receives heals for a bonus equal to their proficiency bonus. I'm not sure how to go about that really as it's from any source. Is there any kind of tag that checks for when a actor is healed that I could add the bonus to?

opaque current
#

flags.midi-qol.DR.healing | CUSTOM | -@prof might do it.

#

Inverted damage reduction.

oblique scaffold
#

hmm, I don't seem to be receiving any healing with that effect in place

opaque current
#

Yeah, doesn't seem to work

chrome cypress
#

@violet meadow When I "use" it by clicking the option on the right in the hud I get this error. Clicking the "use" option on the left produces warnings.

deep dust
#

hey ho πŸ™‚ How do you guys handle bonus action attacks?

chrome cypress
#

Could it have anything to do with DAE settings?

deep dust
#

what does your script look like?

chrome cypress
violet meadow
violet meadow
deep dust
#

you mean the "Enforce Bonus Action" option?

violet meadow
#

yeah, but what's the endgoal?

deep dust
#

My rogue player uses two scimitars. One for the normal-action attack, and another for a bonus-action attack. Unfortunately, when she rolls, both rolls are made with full damage bonus, even though the bonus action attack doesn't benefit from it

violet meadow
lean holly
#

How do you call an effect to apply if your attack hits? For example below:

const items = Array.from(this.actor.items);
const weapons = items.filter(item => item.type === "weapon");
const result = await warpgate.menu({
"buttons": weapons.map(weapon => {
return {
        label: `<img src="${weapon.data.img}"/> ${weapon.name}`,
        value: {
                weapon: weapon
                }
            };
        })
}, { title: "Choose a weapon to attack with!", options: { height: "100%" }});

if(!result.buttons) return;
const weapon = result.buttons.weapon;
weapon.roll();
if (weapon.roll) = hit {
const effect_sourceData = {
changes: [{ key: "data.attributes.movement.all", mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM, value: "0"}], 
        origin: args[0].itemUuid,
        duration: game.combat ? { rounds: 1, turns:0, startRound: `${game.combat.round}`, startTurn: `${game.combat.turn}`, startTime: `${game.time.worldTime}`} : {seconds: 6, startTime: `${game.time.worldTime}`},
        icon: "systems/dnd5e/icons/skills/yellow_22.jpg",
        label: "Sentinel Attacked!",
        flags: {dae: {specialDuration: ['turnStartSource']}},
    }
    await MidiQOL.socket().executeAsGM("createEffects", { actorUuid: args[0].hitTargetUuids[0], effects: [effect_sourceData] });
}

hit is not a real call out I guess lol.
Macro-Polo suggested I ask here.

deep dust
#

Ah, so you simply create a "bonus action" scimitar?

violet meadow
#

Yes. No other way without a dialog poping up to ask if that's the secondary attack or not and adjust the damage accordingly

#

Much easier to have a secondary one, dont you think ? πŸ˜„

deep dust
#

Yeah, it actually makes sense. I was just having one scimitar with a quantity of 2...but yeah, it makes sense to have them separate πŸ™‚

violet meadow
#

Or you could learn the keybinds to roll Verastile damage when attacking and have it there

deep dust
#

oh no

#

I tried that

#

It simply added the versatile damage to the normal roll damage

violet meadow
#

I have found that it doesn't bode well with players

#

ah ok, never used it so 🀷

#

Versatile damage, what is that πŸ˜„

deep dust
#

that solution works pretty fine for me, though πŸ™‚ Thanks

#

On another note: I found out yesterday, that Cutting Words DOES trigger as a reaction, but doesn't do anything. Is there a pre-defined Cutting Words somewhere or do I have to create the effect myself?

violet meadow
# lean holly How do you call an effect to apply if your attack hits? For example below: ```js...

ohhhh there are a couple of ways that I think it could work.

can you do this and let me know what it returns? ```js
const items = Array.from(actor.items);
const weapons = items.filter(item => item.type === "weapon");
const result = await warpgate.menu({
"buttons": weapons.map(weapon => {
return {
label: <img src="${weapon.data.img}"/> ${weapon.name},
value: {
weapon: weapon
}
};
})
}, { title: "Choose a weapon to attack with!", options: { height: "100%" }});

if(!result.buttons) return;
const weapon = result.buttons.weapon;

const options = { showFullCard: false, createWorkflow: true, versatile: false, configureDialog: false };

const msg = await MidiQOL.completeItemRoll(weapon, options);
console.log(msg)

violet meadow
limber finch
#

have a question is there a way to split damage types using midi ql, for stuff that deals multiple damages like some spiders doing piercing damage, but also poison damage which requires a save to half for example?

violet meadow
#

and I quote:

Attacks that do some damage and a save for additional damage (like spider's poisonous bite). You need to enable the midi-qol setting "Roll Other Damage on rwak/mwak". Set the "Other Damage" to the poison damage. Midi will notice that the attack has other damage to roll and apply the saving throw to the "Other Damage" rather than the main damage. (Special Trick, if the other damage field is blank AND the weapon does not have the versatile type set midi will roll the versatile damage instead - this is because the dnd5e SRD chooses to make this damage versatile - which I think is wrong).

deep dust
#

yeah, I think I'll need to manipulate the workflow, if I'm correct, in order to reroll the attack roll, right?

lean holly
limber finch
#

And how would i set the damage type for the other damage roll?

limber finch
#

ah

#

is there a way to quickly update compendia so i dont have to do it manually?

violet meadow
#

Also change the 1st line to ```js
const items = Array.from(actor.items);

#

I think if you just continue the macro after what is already in place with a ```js
if(msg.hitTargets.length) {//do stuff
}

dark canopy
#

that....shouldnt be needed -- you can filter the item collection directly

limber finch
#

how does this work? (guessing its for stuff like chromatic orb, but dont see how it works)

violet meadow
#

Ah you mean getting the Array

dark canopy
#

its still just a wasted operation -- the collection is an iterable list already

violet meadow
lean holly
upbeat wedge
#

Is there a way to have extra damage applied on creature type? In other words weapon does 1d4 normally, but if target is undead a 1d6 is added to the 1d4?

violet meadow
# upbeat wedge Is there a way to have extra damage applied on creature type? In other words wea...

Activation conditions.

Roll Other damage for melee/ranged attack needs to be set to activation condition in Midi Settings => Workflow settings => Workflow tab.

In the activation condition field of the item you need a check like ['undead'].includes('@raceOrType')

In the Other Formula of the item you provide the damage, eg
1d6[radiant]

Again readme: https://gitlab.com/tposney/midi-qol#some-tricks-you-can-do for this and more πŸ˜„

lean holly
violet meadow
# lean holly This is the way I am calling the macro.

OK so after the msg is created you will need to do the logic for applying the condition if the attack is a hit and all the you will need for that will be inside the workflow, which will be called as msg.XXX instead of args[0].XXX

lean holly
#
const items = Array.from(this.actor.items);
const weapons = items.filter(item => item.type === "weapon");
const result = await warpgate.menu({
"buttons": weapons.map(weapon => {
return {
        label: `<img src="${weapon.data.img}"/> ${weapon.name}`,
        value: {
                weapon: weapon
                }
            };
        })
}, { title: "Choose a weapon to attack with!", options: { height: "100%" }});

if(!result.buttons) return;
const weapon = result.buttons.weapon;
weapon.roll();
const msg = await MidiQOL.completeItemRoll(weapon);
console.log(msg)
if(msg.hitTargets.length) {
const effect_sourceData = {
changes: [{ key: "data.attributes.movement.all", mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM, value: "0"}], 
        origin: args[0].itemUuid,
        duration: game.combat ? { rounds: 1, turns:0, startRound: `${game.combat.round}`, startTurn: `${game.combat.turn}`, startTime: `${game.time.worldTime}`} : {seconds: 6, startTime: `${game.time.worldTime}`},
        icon: "systems/dnd5e/icons/skills/yellow_22.jpg",
        label: "Sentinel Attacked!",
        flags: {dae: {specialDuration: ['turnStartSource']}},
    }
    await MidiQOL.socket().executeAsGM("createEffects", { actorUuid: args[0].hitTargetUuids[0], effects: [effect_sourceData] });
}
violet meadow
#

And that is an ItemMacro which you use after selecting a token and a target?

dark canopy
#

this.actor.items this looks suspicious

#

this is....the macro?

violet meadow
#

yeah just actor.items as I mentioned before @lean holly

dark canopy
#

(and get rid of the array.from)

violet meadow
#

or make the const weapons = actor.items.filter(item => item.type === "weapon");

#

and delete the const items = Array.from(~~this~~.actor.items); altogether

violet meadow
# lean holly ```js const items = Array.from(this.actor.items); const weapons = items.filter(i...

If I didn't miss anything this should do it ```js
const weapons = actor.itemTypes.weapon;
const result = await warpgate.menu({
"buttons": weapons.map(weapon => {
return {
label: <img src="${weapon.data.img}"/> ${weapon.name},
value: {
weapon: weapon
}
};
})
}, { title: "Choose a weapon to attack with!", options: { height: "100%" }});

if(!result.buttons) return;
const weapon = result.buttons.weapon;

const msg = await MidiQOL.completeItemRoll(weapon);
console.log(msg)
if(Array.from(msg.hitTargets).length) { //in WORKFLOW args hitTargets is a Set and there is no hitTargetsUuids
const effect_sourceData = {
changes: [{ key: "data.attributes.movement.all", mode: CONST.ACTIVE_EFFECT_MODES.CUSTOM, value: "0"}],
origin: msg.itemUuid,
duration: game.combat ? { rounds: 1, turns:0, startRound: ${game.combat.round}, startTurn: ${game.combat.turn}, startTime: ${game.time.worldTime}} : {seconds: 6, startTime: ${game.time.worldTime}},
icon: "systems/dnd5e/icons/skills/yellow_22.jpg",
label: "Sentinel Attacked!",
flags: {dae: {specialDuration: ['turnStartSource']}},
}
await MidiQOL.socket().executeAsGM("createEffects", { actorUuid: Array.from(msg.hitTargets)[0].document.uuid, effects: [effect_sourceData] });
}

Edited!
upbeat wedge
violet meadow
#

@lean holly edited it again. Try now

violet meadow
lean holly
drifting lark
#

Hey is their a way that make it so when my players roll for damage they have the option of using other for versatile damage ? I think last time i tried it just rolled both other and normal damage

violet meadow
#

You can find the keybinds in Configure Controls

#

under MidiQOL

celest bluff
undone sorrel
#

Is it possible to edit a workflow such that only some of the targets grant disadvantage?

Context:
I've created a macro to deal with Marking (attacks against anyone other than the marker are at disadv) automatically for my gm.

Steel Wind Strike (and any other multitarget attack roll) would in theory attack everyone except the marker at disadvantage. 

I've tried editing the workflow directly in various ways (through a macro), or giving actors an effect with the midi-qol.grants.disadvantage flags, but it only seems to actually make the roll at disadvantage when ALL the targets grant disadvantage.

celest bluff
#

you can either do it via DAE or world script

undone sorrel
#

can you elaborate on what you mean? When you say "the roll stage" do you mean before the item is rolled or before the attack is rolled.

If it's the latter I'm already making my changes before the attack is rolled

celest bluff
#

I usually use "midi-qol.preambleComplete"

undone sorrel
#

that's the one I'm using

#

the caster has an effect that runs the macro at that time.

The macro checks if the marker is in the list of targets. If it is everything is as normal. If the targets do not include the marker the attack is at disadvantage

celest bluff
#

filter for it

undone sorrel
#

for SWS?

celest bluff
#

if it's only when having an active effect of x, check for it.. if they have it then change their workflow.disadvantage = true

undone sorrel
#

yes that's what I'm doing in the regular case

#

unless I'm misunderstanding, there is only one workflow right? or does each target have their own workflow?

celest bluff
#
Hooks.on("midi-qol.preambleComplete", function (workflow) {
    let effect = workflow.actor.effects.find(i=> i.data.label === "Disadvantage");
    if(!effect) return {};
    workflow.disadvantage = true;    
});
undone sorrel
#

this is along the line of what I have

knotty valve
#

I have updated Foundry to 10 and DnD5e as well as MidiQOL, Dynamic Effects and the modules that are needed for those modules. I have checked so that all settings are correct, but I cannot get the automation to work. It works for melee and bow attacks when I use action token HUD, but not when I roll from the original DnD5e character sheet. The spells does not work from the action token hud at all (but that is a problem for that module I guess), but no automation when I try from the character sheet. I have turned off all the modules besides the one mentioned above and the problem is still there. I have changed scene. Characters etc. Is this a problem I can fix myself or do I need to wait for 10 to be stable? Thanks in advance!

undone sorrel
knotty valve
# dark canopy did you make a backup?

No, I was stupid. But i haven't played in 6 months so I was lazy and felt that if it goes bad there not much to loose. I can startover without problems was my thought. πŸ™‚

dark canopy
#

i would go back to v9

knotty valve
#

Ok, thanks.

dark canopy
# knotty valve Ok, thanks.

for automation heavy setups, it is recommend to take extreme care when you decide to upgrade major versions. Ensure all of your critical mods are ready to go and make a backup of your user data before you do so

knotty valve
#

Yes, sound like a good plan. I haven't had much problems earlier with new foundry versions, but I guess I took a chance at the bad time. Thanks for your record breaking quick support, by the way. πŸ™‚

spice kraken
#

And always backup before updating

undone sorrel
# celest bluff try preitem roll then

no change.

SWS only targeting the marker is flat roll,
SWS only targeting non-markers (single and multiple) are at disadvantage,
SWS that targets both are flat rolls across the board.

celest bluff
#

how are you hooking on to them? script wise

undone sorrel
#

The caster has an effect on it with flags.midi-qol.OnUseMacroName with the name of a "global" script macro in it, and the second argument is preambleComplete though I just tested it with preItemRoll as you suggested

#

the script is:

const targets = args[0].targets;

let workflow = MidiQOL.Workflow.getWorkflow(args[0].uuid);

const effects = workflow.actor.effects.filter(effect => effect.data.label.includes("Marked"));
const markers = [];

for (const effect of effects) {
    markers.push(effect.data.origin.split(".")[1]);
}

const non_markers = targets.filter(target => !markers.includes(target.actor.id));

let marked = true;
for (var marker of markers) {
    for (var target of targets) {
        if (target.actor.id === marker) {
            marked = false;
            break;
        }
    }
}

if (marked) {
    workflow.disadvantage = true;
    if (workflow.templateData != null || workflow.templateData != undefined) {
        await game.macros.getName("save_buff").execute(...args);
    }
}
#

"save_buff" is a different script that isn't called in this application.

#

For all other applications this works fine

#

but with when targeting multiple tokens simultaneously and trying to give only SOME disadvantage, it just rolls flat

celest bluff
#

yeeah that's not gonna apply anything to them

#
const lastArg = args[args.length - 1];
let tactor;
if (lastArg.tokenId) tactor = canvas.tokens.get(lastArg.tokenId).actor;
else tactor = game.actors.get(lastArg.actorId);
const itemD = lastArg.efData.flags.dae.itemData;

if (args[0] === "on") {    
    const hookId = Hooks.on("midi-qol.preambleComplete", applyDisadvantage);
    DAE.setFlag(tactor, itemD.name, hookId);
}

async function applyDisadvantage(workflow) {
// whatever you want to set to filter it
// examples you could make a property to get and check for
      workflow.disadvantage = true;
}

if (args[0] === "off") {
    let hookId = DAE.getFlag(tactor, itemD.name;
    Hooks.off("midi-qol.preambleComplete", hookId);
    DAE.unsetFlag(tactor, itemD.name;
}
undone sorrel
celest bluff
sleek bone
#

I was redirected to this thread by thatlonelybugbear as I am using MidiQOL and were on the lookout for a way to create an effect that can accomplish the following:

"Yeah, any (Be it single target, multiple targets, etc) healing they do for 6 seconds does double the amount. And it's not just for spells but also for class features; like say Circle of Stars Chalice Druids that can freely add a 1d8 (2d8 after level 10) healing to a creature whenever they cast a healing spell."

celest bluff
#

DamageBonus Macro with DAE will work

undone sorrel
celest bluff
#

attack rolls always roll once against all

undone sorrel
#

πŸ€” That's not how it's supposed to work though; no? I mean I know in physical people do that to speed up play but this isn't physical we're talking about

celest bluff
# sleek bone I was redirected to this thread by thatlonelybugbear as I am using MidiQOL and w...

If it's everybody within the circle, you could use active auras and apply a DamageBonus to them.

if(args[0].tag === "DamageBonus"){
    const lastArg = args[args.length -1];
    if (!["spell","feat"].includes(lastArg.item.type)) return {};
    let damageType = "healing";
    if(lastArg.damageDetail.filter(i=> [damageType].includes(i.type)).length === 0) return {};
    let damageRoll = await new Roll(`1d6[${damageType}]`).evaluate({async:true});
    return { damageRoll: damageRoll.formula, flavor: `("Whatever Item" (${CONFIG.DND5E.healingTypes[damageType]}))` };
}
undone sorrel
molten solar
#

Midi.
The system does not care how many times you roll an attack since damage is not applied automatically (in core).

undone sorrel
#

hopefully something comes of this I only just realised this is a problem even for eldritch blast (post level 5) and it would speed up any multi target attack rolls (like shooting multiple with crossbows) in general

#

Tim created this as an issue 2 years ago and it's still open with no responses or votes.
Does that mean he's aware but it's too low on the prio list to have been changed?
and more importantly should I raise a new issue? not sure if I can even bump this one

sick fiber
#

Apparently you have to use CUSTOIM when you want multiple effects that influence the same derived stat. when using ADD sometimes the fields are string concatenated.

spice kraken
#

but stick with add for things like that

sick fiber
#

but that looks funny in the chat

#

++5

spice kraken
#

But it works, and custom isn't guaranteed to always work like that cause the same concatenation can happen

sick fiber
#

ok, seems like a flaw in the parser to me.. I will use ADD with +<value> as a workaround if that is preferred

coarse mesa
undone sorrel
#

Sometimes that's a waste of time. And for SWS specifically I don't think it's possible?

#

Maybe like genielock multi class but that's getting niche now

coarse mesa
#

Well you might definitely want to shoot the same target twice if it’s almost dead

undone sorrel
#

My point really is that: According to the rules these things should be separate rolls, so I don't think that default behaviour for automation should be one roll for all targets

#

You can't target a creature twice with SWS

coarse mesa
#

Yeah SWS is different than EB or Scorching Ray

undone sorrel
#

And even in that case you could just target 3 and then 1 which would still be faster/easier than all 4 separately

#

And regardless of any case. Simply having the option to do it would be nice

sick fiber
#

currently if you target multiple targets only one roll is compared to all targets AC values

#

e.g. broken feature , as that never comes up

undone sorrel
#

Not sure what you mean by "never comes up"

#

No one casts SWS? Or has homebrew spells/ features with similar function?

coarse mesa
#

I’m pretty sure someone could write a macro to roll attacks for each target individually if that’s what you’re after

undone sorrel
#

That would be a quick fix for what I view to be a fundamental problem

#

I could do it myself

#

The only reason I asked here is because I was confused that it didn't already work like that

#

I wanted to make sure that it didn't work like that

sick fiber
#

fanning out the workflow into multiple attacks rolls; one, per target selected, would be a sensible start

coarse mesa
#

I mean, apart from SWS, how often is this going to be used? There are plenty of folk who make midi macros or even helper modules for various spells

#

But yeah if you ask @gilded yacht I’m sure he’d consider it

sick fiber
#

this is how spell saves work and it is most likely a copy

coarse mesa
#

Even multiattack is typically rolled one at a time in case you want to switch targets (there is a module if you want to roll them all at once tho)

undone sorrel
#

I mean there's a reason I asked if I should raise an issue instead of just pinging him

coarse mesa
#

Of course, it’s a good question

undone sorrel
coarse mesa
#

Now that I’ve pinged him for you… he’ll likely let you know if you should pop a new issue on his repo πŸ™‚

gilded yacht
gilded yacht
spice kraken
#

So basically stick with Add like I had mentioned, correct?

spice kraken
#

I think it's steel wind strike. But I could be totally wrong

sick fiber
#

yea Steel Wind Strike

sick fiber
celest bluff
#

You could just rebuild the attack dice manually and roll it

gilded yacht
strange vine
#

Wondering if anyone can help me... I have very basic scripting knowledge this imported macro seems to fail :

Error:

Macros.js:204 TypeError: damageRoll.toMessage is not a function
    at eval (eval at callScriptMacroFunction (Macros.js:163), <anonymous>:14:16)
    at Macro.eval (eval at callScriptMacroFunction (Macros.js:163), <anonymous>:23:5)
    at Macro.callScriptMacroFunction [as callScriptFunction] (Macros.js:164)
    at Macro.renderMacro [as renderContent] (Macros.js:180)
    at Macro.executeMacro (Macros.js:201)
    at daeMacro (dae.js:708)
    at async Semaphore._try (semaphore.mjs:99)
if(args[0].tag === "OnUse"){
AAhelpers.applyTemplate(args) }
if (args[0] === "on" || args[0] === "each") {
    const lastArg = args[args.length - 1];
    let tactor;
    if (lastArg.tokenId) tactor = canvas.tokens.get(lastArg.tokenId).actor;
    else tactor = game.actors.get(lastArg.actorId);
    const target = canvas.tokens.get(lastArg.tokenId)
    let damageRoll = new Roll(`2d4[piercing]`).evaluate()
    damageRoll.toMessage({ flavor: "Spike Growth Damage" })
    let targets = new Set();
    let saves = new Set();
    targets.add(target);
    saves.add(target);
    await MidiQOL.applyTokenDamage([{ damage: damageRoll.total, type: "piercing" }], damageRoll.total, targets, null, saves);
    let effect = tactor.effects.find(i => i.data.label === "Spike Growth");
    await effect.delete()
}```
molten solar
violet meadow
#

From this ```js
saves.add(target);
await MidiQOL.applyTokenDamage([{ damage: damageRoll.total, type: "piercing" }], damageRoll.total, targets, null, saves);

#

Right now you "tell" the MidiQOL.applyTokenDamage() function to do less damage to the target, like it has succeeded on a saving throw.

celest bluff
#

I rewrote that to use the normal workflow to get the card, I do suggest overwriting concentration on it to false.

gilded yacht
#

Heads up. midi-qol 10.0.5 will require dnd5e 2.0.0-alpha3 and previous versions of midi won't work with dnd2.0.0-alpha3. There are a couple of breakages outstanding that I need to fix before releasing 10.0.5

violet meadow
gilded yacht
#

2.0.0-alpha3 introduces a bunch of exciting config options to item.use() allowing consumption configuration and so on.
If the item hooks can be async I'll move the midi item.use, item.rollAttack and item.rollDamage to be triggered by hooks, rather than wrapping the rolls, which should remove some (but not all) of the incompatibility issue with other roll modules - assuming they align with the new roll formats.

violet meadow
#

Used a ? in if (Number.isNumeric(formData.duration?.startTime) && Math.abs(Number(formData.duration.startTime) < 3600)) { to get rid of it

#

It was on effects from actors coming from v9

gilded yacht
#

Maybe the actor that was causing the problem? I've not seen that issue before, but migration from v9 to v10 is a little hairy at the moment.

violet meadow
molten solar
gilded yacht
violet meadow
#

Ah OK. I just saw the issue in the github!

gilded yacht
#

It came up in a DM querying how to do an item roll with advantage/disadvantage etc.
MidiQOL.completeItemRoll(item, {workflowOptions: {advantage: true}}) allows you to roll an item with advantage. I'll make a note to document all of the workflow options that can be passed, but advantage/disadvantage/fastForward/versatile are few that come to mind.

molten solar
gilded yacht
molten solar
#

I personally prefer not, but it probably won't affect me either way.

gilded yacht
undone sorrel
#

And yes sws is Steel Wind Strike (spell from XGE)

molten solar
gilded yacht
gilded yacht
# molten solar I can imagine zero need for that

If there are no targets selected when you roll prompt the user to select some targets before continuing.
For example, midi requires you to have selected a target before continuing the roll. Optionally, rather than failing the attack, prompt the user to select targets if there are none selected and when they are finished proceed with the roll

spice kraken
#

Can this be solved with the multiattack module?

gilded yacht
undone sorrel
#

Multi attack module? πŸ€”

violet meadow
#

yes, it was working at some point together iirc

opaque current
#

Pretty sure Multiattack lists itself as being incompatible right?

spice kraken
molten solar
#

You just cancel the roll 🀷

gilded yacht
undone sorrel
#

Is that not what currently happens? I.e cancelling the roll with a ui warning?

opaque current
#

There are different options for it

gilded yacht
violet meadow
# opaque current There are different options for it

This is what I was remembering:

For Midi-QOL:

const weapons = ["Longsword", "Longsword", "Dagger"]; // Make two longsword attacks and one dagger attack
const actor = canvas.tokens.controlled[0].actor; // GM users could pre-define multiattack rolls for various actors
game.MA5e.midiMA5e(weapons, actor) // actor argument is optional (default set to "canvas.tokens.controlled[0]

And update changelog 5.2.0 Re-implemented compatibility with Midi-QOL and Better Rolls for 5e 🀷

undone sorrel
gilded yacht
spice kraken
opaque current
#

Yeah thats what the snippet is from

#

I wouldn't use this for general multiattacks, but being able to do so for some abilities that specifically roll against multiple targets is pretty useful

gilded yacht
cedar forum
#

Hello, what is the best way to apply adv/diasdv to an active defense roll (like say, an undead were attacking a PC who is under the effects of protection from evil and good)?

#

Hotkeys do not seem to work for me

spice kraken
#

ctrl/alt don't provide adv/disadv? Double check your keybinds

opaque current
#

That is something that I would usually do manually, keybind or otherwise

cedar forum
#

They do normally. Not for active defense rolls

opaque current
#

What is an active defense roll

#

Typically Protection from Evil and Good is just Attacker has Disadvantage

cedar forum
#

There is a midi setting for active defense, which forces players to roll to defende, rather than enemies rolling to attackβ€”inverting the math and narrative

opaque current
#

I see

gilded yacht
undone sorrel
marsh crescent
#

Just for other people to search, if using Midi-QoL for Reaction Processing turn off Target Reacts module. I learned the hard way that they do not play nice with one another (taking the game to a grinding halt).

spice kraken
#

Also for those that want it. I got a module commissioned for LMRTFY to add a Fail the saving throw/skill/check which treats the fail as -1. This will be useful for overtime effects when it's something like grappled where you need to use an action to attempt the check to remove the condition but instead of trying to escape they attack/cast a spell.

#

This was important (at least for me) cause if you close the prompt from LMRTFY in an overtime effect, you cannot continue to the next combatant on the combat tracker without a save being rolled

strange vine
molten solar
# gilded yacht If there are no targets selected when you roll prompt the user to select some ta...

So clearly I am missing something here.

  • You want to prompt the user to make some targets if they don't have any. I.e., a quick dialog, which is not async.
  • While they fiddle with the prompt, the roll should not proceed.

Right?

So if they have zero targets (or is it no matter what? Doesn't matter), why not just pop the dialog, cancel the roll (return false), and have the OK button in the dialog start the roll over?

violet meadow
# strange vine It does require a saving throw at some point! change from Zhell also removed the...

Try this ```js
if (!game.modules.get("advanced-macros")?.active) { ui.notifications.error("Advanced Macros is not enabled"); return }
if(args[0].tag === "OnUse"){
AAhelpers.applyTemplate(args) }
if (args[0] === "on" || args[0] === "each") {
const lastArg = args[args.length - 1];
let tactor;
if (lastArg.tokenId) tactor = canvas.tokens.get(lastArg.tokenId).actor;
else tactor = game.actors.get(lastArg.actorId);
const target = canvas.tokens.get(lastArg.tokenId)
let damageRoll = await new Roll(2d4[piercing]).evaluate({async: true});
damageRoll.toMessage({ flavor: "Spike Growth Damage" })
let targets = [];
let saves = [];
targets.push(target);
saves.push(target); //this is not needed if no saves are present and change in the line below the second set to: new Set()
await MidiQOL.applyTokenDamage([{ damage: damageRoll.total, type: "piercing" }], damageRoll.total, new Set(targets), null, new Set(saves));
let effect = tactor.effects.find(i => i.data.label === "Spike Growth");
await effect.delete()
}

strange vine
#

oh nice that does apply damage

strange vine
violet meadow
#

You are not creating the save at all in this macro

#

Let me check the AA included one

celest bluff
#

There is no saving throw once in it, saving throw to spot and avoid walking into it in the first place

strange vine
#

ooh the save is to perceive it

#

well in that case it works perfectly, thank you again!

celest bluff
#

I use this version

if (!game.modules.get("advanced-macros")?.active) { ui.notifications.error("Advanced Macros is not enabled"); return }
if (args[0].tag === "OnUse") { AAhelpers.applyTemplate(args) }
if (args[0] === "on" || args[0] === "each") {
    const lastArg = args[args.length - 1];
    let tactor;
    if (lastArg.tokenId) tactor = canvas.tokens.get(lastArg.tokenId).actor;
    else tactor = game.actors.get(lastArg.actorId);
    const target = canvas.tokens.get(lastArg.tokenId);    
    const itemD = lastArg.efData.flags.dae.itemData;
    itemD.data.components.concentration = false;
    const damageType = "piercing";
    let damageRoll = await new Roll(`2d4[${damageType}]`).evaluate({ async: true });
    await new MidiQOL.DamageOnlyWorkflow(tactor, target, damageRoll.total, damageType, [target], damageRoll, { flavor: `(${CONFIG.DND5E.damageTypes[damageType]})`, itemData: itemD, itemCardId: "new" });
    let effect = tactor.effects.find(i => i.data.label === itemD.name);
    if (effect) await effect.delete();
}
strange vine
violet meadow
strange vine
#

that one seems to send out the damage twice

celest bluff
#

You probably have 2 active effects running

strange vine
#

im not sure, the first macro applies it once

#

and this is all a bit over my head haha

#

is this javascript?

violet meadow
#

yes

strange vine
#

i should learn javascript then

#

thank you all once again in any case

violet meadow
#

Spike growth is a spell that is not that straightforward to automate in any case.

This is a macro from Freeze that you could execute with a target selected and deal some damage with input for distance travelled: <#macro-polo message>

celest bluff
#

I have a damage on movement for single target on Arcane Archer pack for my Grasping Arrow. Asks if each round if they want to attempt to remove it, else deals damage when they move.

violet meadow
#

My funniest macro is one that automatically deals more damage (and adds some effects) if the attacker has moved at least 10ft in a straight line in the combat round before attacking!

gilded yacht
violet meadow
#

Or skill checks?

coarse mesa
#

For escaping grapples? It’s interesting to see they’ve changed that to a saving throw in OneD&D… paving the way to make things easier on themselves in the VTT space maybe

spice kraken
#

I'm still sticking to acr/ath. Just makes sense to me

vast bane
celest bluff
sharp glade
#

how would i go about making an item macro for a spell that would let the user choose between radiant and necrotic damage with a pop dialog? Particularly for the spell Destructive Wave. I know how to use item macro to pop up the dialog and let the user choose an option, but i dont know how to affect how midi qol's workflow to change the spells damage type

pastel sonnet
#

I dont get it. I did that and the extra 1d6 damage die does not apply. I have Item Macro module installed. Anyone else having the same problem?

pastel sonnet
#

I'm using Foundry 9 269 and DND 1.6.3. Modules updated.

celest bluff
pastel sonnet
#

Bardic Inspiration MQ/DND1.6 is adding 10 to the roll and I don't know why...

celest bluff
#

I wrote my own version of hunters mark which still works.. guess I should test it if it still works

pastel sonnet
celest bluff
#

yeah it still works

#

ah I never published it

pastel sonnet
celest bluff
#

I'll change that

pastel sonnet
sharp glade
lost estuary
#

I am looking to create an item and have it output healing dependant on the roll. 10 or higher, heal for the amount rolled. 9 or lower, damage for the amount under 10 it rolled (1 being 8 damage). The roll would have proficiency and tool bonuses (from item) applied.

is this possible?

coarse mesa
strange vine
#

does let tactor; means target actor and is there one that can be 'any actor'?

spice kraken
#

If I'm not mistaken, let whatever_you_put_here is just a variable. So if you want the selected token it would be
let tactor = canvas.tokens.controlled[0]; and you would refer to tactor wherever you need something

#

Like this macro that deletes sequencer effects on the selected token

let tokenD = canvas.tokens.controlled[0];
await Sequencer.EffectManager.endEffects({ name: "*", object: tokenD })```
strange vine
#

basically a macro I have seems to create an effect that only applies to the actor whose turn it is

#

but I want it to apply to any actor

spice kraken
#

you can use the first line I have above to reference the selected token

strange vine
#

hm unfortunately that didnt work

spice kraken
#

If you put the full macro here someone smarter than me could probably help

strange vine
#

ya know I think i figured it out πŸ˜„

celest bluff
proud token
#

It seems like the "multi-attack 5e" module doesn't work with Midi QOL. A) Is there a fix for that? B) Is there a way within Midi QOL to set it so players can do multiple attacks with one click? Thanks!

spice kraken
#

You can click the Attack button in chat again

violet meadow
spice kraken
proud token
# spice kraken

How do you get it to pop up the additional attack buttons?

spice kraken
#

Misc settings

undone sorrel
#

so using flags.midi-oql.onUseMacroName you can call a macro when you initiate a workflow but is there a way to call a macro when you're targeted?

violet meadow
undone sorrel
#

My gm has a feature that makes it so that if you're missed with an attack, creatures have disadvantage to attack you for the rest of the turn

#

with the flag above it would be a no brainer but it didn't work the way I thought it would

undone sorrel
#

I also figured there would be some kind of thing I could do with flags.dae.onupdatesource

#

but idk which key to check for the update

#

since it would hev to before the attack is rolled to impose the disadv

violet meadow
undone sorrel
#

but the inital attack has to miss? can you set the reaction to take that into account?

violet meadow
#

Nope as things are right now.
Reaction manual means that it won't be triggered by anything except the user rolling it

undone sorrel
#

also that would consume reaction right? or well add the"reaction effect"

sudden crane
#

There is no reaction on miss, someone ask for it but I think the dev said he would not implement it because it could be done manually

undone sorrel
#

I guess that's also an option

violet meadow
undone sorrel
#

oh did notknow that would still work

violet meadow
#

I don't remember now if it already is implemented for v9. At least an initial implementation must be already in place. Check the MidiQOL release notes

vast bane
sharp glade
# celest bluff

This is great, thank you! I'd never messed with having an item macro fire at different times. I'd always just stuck with the default. Having the freedom to use it at any point during the workflow opens up a lot of possibilities!

celest bluff
#

You could write world script to intercept weapon attacks and if hitTargets are 0, then apply active effect

undone sorrel
#

but wouldn't the constant checks cause slowdown. Or is it not that much of an overhead if I return early?

celest bluff
#

You would filter it so it only runs on missed

undone sorrel
#

I'll check it out and see

celest bluff
#

You would hook on the item roll before damage is dealt

undone sorrel
#

wouldn't I have to hook onto every item roll?

gilded yacht
proud token
gilded yacht
vast bane
#

If what you want is scorching ray/edritch blast i believe there are already automation friendly macros out there.

gilded yacht
celest bluff
fading scarab
#

Is there a way for a token being hit by an attack to damage the token that is attacking it? (i.e. like a "thorns" effect)

gilded yacht
#

@violet meadow FYI - I remember now a solution to the adding dex.mod to str.save/check which has been a problem for ages. If you set

data.abilities.str.bonuses.save/check CUSTOM @abilities.dex.mod

It will correctly evaluate the bonus when doing a roll, but won't be displayed on the character sheet (just like the bonus fields when configuring the ability).

ashen hull
#

copying from the main section:
I want to add a new physical damage type with a world script. How do I categorize it as a physical type so midiqol physical damage reduction and such will recognize it?
or if there's a better way of adding that, I'd like to know it

sudden crane
# fading scarab Is there a way for a token being hit by an attack to damage the token that is at...

With an aura that applies an onusemacro on the tokens in the aura, the onusemacro could be called after the attacker attack is complete and it would apply damage to it. You can see my implementation of Flames of Phlegethos in the Gearheads Discord server.
I think also that @violet meadow published a macro for reactive damage either here in the macro-polo channel or in the Gearheads Discord ,

#818801691864203324 message

digital lagoon
#

i wonder, is there a way to automate or apply cover in any way? or is it not something midiqol can do?

dark canopy
dark canopy
#

yea

digital lagoon
#

cool thanks

sudden crane
#

And I don’t think there is any config from dnd5e that contains a list of damage types that are β€œphysical” on which midi could lean on

fading scarab
sudden crane
molten solar
#

It's in the top post here. ( πŸ“Œ )

willow verge
#

Hey guys πŸ‘‹

I'm working on an Intellect Devourer. To summarize, the Devour Intellect effect in supposed to only transfer to the target if 3d6 rolls equal to or higher than the target's INT score. So I was wondering if its possible to put that in the Activation Condition? Something along these lines:

"@target.abilities.int.value" <= 3d6

I'm just not sure how to write the 3d6 part of it. Any thoughts? Can this be done? Thanks

void swallow
#

i've been trying to make an npc with adaptive immunities, (after taking damage they become resistant to that damagetype and lose the oldest resistance)
i've got a working macro figured out but have hit a few annoyances:
-i'd like the macro to trigger on taking damage, currently i'm using a reaction item with this as onuse macro but that still needs me to confirm via midiqol popup
-i'd like it to apply damage first, then do the resistances for next time (currently doing this with flags and applying on next macro call, messy but works)
-it outputs a chat card for the reaction item every time, which i'd prefer it didn't
so i'm asking if anyone knows of better ways to do any of these 3 things

violet meadow
sudden crane
willow verge
strange vine
#

wondering if anyone can help me adjust this macro not to do initial damage?

if(args[0].tag === "OnUse"){
AAhelpers.applyTemplate(args) }
if (args[0] === "on" || args[0] === "each") {
    const lastArg = args[args.length - 1];
    let tactor;
    if (lastArg.tokenId) tactor = canvas.tokens.get(lastArg.tokenId).actor;
    else tactor = game.actors.get(lastArg.actorId);
    const target = canvas.tokens.get(lastArg.tokenId)
    let damageRoll = await new Roll(`2d4[piercing]`).evaluate({async: true});
    damageRoll.toMessage({ flavor: "Spike Growth Damage" })
    let targets = [];
    let saves = [];
    targets.push(target);
    saves.push(target); //this is not needed if no saves are present and change in the line below the second set to: new Set()
    await MidiQOL.applyTokenDamage([{ damage: damageRoll.total, type: "piercing" }], damageRoll.total, new Set(targets), null, new Set(saves));
    let effect = tactor.effects.find(i => i.data.label === "Spike Growth");
    await effect.delete()
}```
shadow viper
#

Hi,

Since I update the module earlier today, the critical damage doesn't seem to work anymore.
Am I missing something in the module config, or elsewhere ?

celest bluff
#

If they end or start whichever it's set to then they'll take damage instead of each step

dense tusk
#

Hey all. Trying to automate a spider bite attack. I asked a few days ago in #513918036919713802 and they had it setup like the following picture so that it did full Piercing damage from the bite and then caused a con save that would give half damage when complete. I'm struggling to get this to work and it just seems to do the piercing damage without the poison save and damage.

celest bluff
celest bluff
#

Then the options in the bottom will let you do full damage

dense tusk
#

I see, this section

celest bluff
#

Yeah

#

So set the full damage save on the item

dense tusk
#

Got it. Didn't realize that was in here. Going to have to play around with it a bit more but i think i got this working. Just not sure if it will break something else.

celest bluff
#

Alternative is macro running on failSaved then deal damage to that array

strange vine
celest bluff
#

They have to end or start their turn. On activates it when applied

#

You would have to write the whole thing differently to trigger on isMoved instead

#

Which would probably be the better approach

#

I'll write it up when I get home in an hour or 3

terse briar
#

hey guys....

#

so im playing a warlock who wants to cast hex on a target. I've already got DAE set to add the "hex" effect to the target. Now I just want to automatically appy the additional 1d6 necrotic damage when I attack it with say firebolt

#

any idea how to achieve this?

celest bluff
gilded yacht
# terse briar hey guys....

A damage bonus macro, have a look at the midi sample items hunter's mark damage bonus macro code as a sample, or get one already written as above.

cunning mural
#

In midi-qol, how do I make it so one damage formula is dependent on a saving throw? Using the giant scorpion's sting as an example, how would I go around to make it so that the poison damage is halved on a successful saving throw, as opposed to all damage from the attack?

orchid hound
#

right, reread that, just looking to make one damage type halved

cunning mural
#

Yeah, or just one damage type dependant on the saving throw

violet meadow
#

Define the saving throw and then it should work

#

It would be really good/helpful if you take a look at the MidiQOL readme. Check for a link in the pins of this thread!

spice oracle
#

What does "4 point checks" mean in Walls block ranged attacks? It says it requires DND Helpers, though I don't know what this is

orchid hound
#

Dnd Helpers is a module

spice oracle
#

Aye; what does 4 point checks mean though?

#

I'm curious if it's something I want as a feature

#

OOoh wait-

orchid hound
#

talking about how walls are read and rather or not they block ranged attacks

#

it checks the four points of the token

spice oracle
#

Yeah, it's a bit obscure but I found the description on the module's wiki:

Cover Calculator
Has two modes for cover in relation to walls: Center Point and Four Corner. Cover from tiles and tokens are (currently) only calculated from Center Point.

  • Center Point - a target token's cover is based on foundry's player vision rendering (center point of self to 4 corners of target)
  • Four Corner - direct implementation of DMG rules, where vision is computed from each occupied grid point and the corner granting the target the least cover is chosen.
    A more detailed discussion of this can be found on our Wiki
orchid hound
#

yep

#

the tips in the module help, but to really understand things, reading the docs is best

spice oracle
#

Aye πŸ™‚ It was hard to locate

orchid hound
#

yeah, there is a lot of it in there....

#

But with midi covering so much, its to be expected

winter silo
#

@celest bluff or anyone else,
With the item macro for Toll of the Dead, do you know how to tweak the macro so the damage dice change based on Level instead of health?

if (args[0].macroPass === "preDamageRoll") {
    const target = await fromUuid(args[0].targetUuids[0]);
    const needsD12 = target.actor.data.data.attributes.hp.value < target.actor.data.data.attributes.hp.max;
    const theItem = await fromUuid(args[0].uuid);
    let formula = theItem.data.data.damage.parts[0][0];
    if (needsD12) 
        formula = formula.replace("d8", "d12")
    else 
        formula = formula.replace("d12", "d8");
    theItem.data.data.damage.parts[0][0] = formula;
}```

So at Level 1, it does 1d4 
At lv5, it does 2d6 
At lv10, it does 3d4 
At lv17, it does 5d6 

Something like that.
celest bluff
#

@winter silo

if (args[0].macroPass === "preDamageRoll") {
    const tokenD = canvas.tokens.get(args[0].tokenId);
    const actorData = tokenD.actor.getRollData();
    const theItem = await fromUuid(args[0].uuid);
    let dieNum = (Math.min(Math.ceil(actorData.details.level/6), 2));
    let dieFace = (Math.min(Math.ceil(actorData.details.level/6),2)*4);
    theItem.data.data.damage.parts[0][0] = `${dieNum}d${dieFace}`;
}

That should be it

winter silo
#

Could you provide screenshots of this being used? Somethings not clicking for me, I apologize

celest bluff
#

setup the item exactly the same under the item details for item macro line

winter silo
#

Ah yeah that did it

molten tundra
#

was directed here from module discussion, i have a strange question is there a way with Midi QOL or something else to reverse healing (from any source) so it damages a monster instead ?

spice kraken
#

like from a regular attack or some item/spell specifically?

celest bluff
#

you have 2 ways of pulling this off, either have the item itself do it or a world script

molten tundra
spice kraken
winter silo
# celest bluff <@197561019864711170> ```js if (args[0].macroPass === "preDamageRoll") { co...

This works well. The only issue I'm having is the math formula.

let dieNum = (Math.min(Math.ceil(actorData.details.level/6), 2));
let dieFace = (Math.min(Math.ceil(actorData.details.level/6),2)*4);

At lv7-20, the damage dice stays at 2d8 instead of what I'd need.

Is there a way I can directly put in the damage dice I'd want at a certain level?
Because the damage dice progression for some attacks is not clean. It could go from a 2d4 to a 11d6, and I don't think that math formula above is suited for that?

molten tundra
celest bluff
winter silo
#

When you have the time, could you provide an example of the macro I'd use for that?

Using the following milestones in the example:

Level 1, it does 1d4
At lv5, it does 2d6
At lv10, it does 3d4
At lv17, it does 5d6

I often need to see an example to understand something, so it would be greatly appreciated

spice brook
#

Hello again! I am trying to implement Vicious Weapons properly with Midi-QOL. I am trying to use Activation Condition so that the 'Other Formula' only triggers when the Attack Roll is a dirty 20 or higher. So far I have "@workflow.attackRoll > 20" (ignore the " ") in the Activation Condition, but the syntax is incorrect. Does anybody know the correct way to write that?

long pivot
#

Hey, does anyone know why enabling roll automation support completely ruins the chat rolls and stretches the images?
I'd really like to fix this.

#

This is what it should look like

spice kraken
#

Do you have any other roller modules?

long pivot
#

with midi uninstalled everything works fine as well

spice kraken
#

Not sure why that's happening for you. Everything looks normal for me in my game

long pivot
#

😦 breh well thank you for helping either way

spice brook
#

Doesn't CUP alter the cards too? Could be conflicting with MIDI.

long pivot
#

it happened before we had CUP installed

#

so thats not it sadly

celest bluff
spice brook
#

Vicious Weapons aren't for crits, they're for any roll above a dirty 20

celest bluff
spice brook
#

So if you roll a 15, and have +5 to the roll, you activate it, but don't crit.

celest bluff
#

oh yeah imp crit

celest bluff
spice brook
#

Attack Rolls
When you make an Attack, your Attack roll determines whether the Attack hits or misses. To make an Attack roll, roll a d20 and add the appropriate Modifiers.

#

I don't think it does - an Attack Roll is a D20 + modifiers

celest bluff
#

it says when you roll a 20 on an attack roll, this means before modifiers

spice brook
#

Based on what? If an attack roll is 1D20+mods, then a 20 on the attack roll is dice+mods being 20 or more

celest bluff
#

then again you are the GM, run the item how you want. You'll need to macro it, if you want to be on a roll 20 with bonuses

#

theres a ton of comments and reddit posts talking about the item. they all say nat 20

spice brook
#

So it's just a weaker Sword of Sharpness?

#

It's pretty sloppy writing if so lol

celest bluff
#

it is, a lot of things are badly written. They should let the MTG crew write the verbage

spice brook
#

Well this makes my life easier anyway. Thank you.

molten tundra
strange vine
undone sorrel
#

When provided the proper arguments DamageOnlyWorkFlows called from macros should apply the damage automatically right?

fading scarab
#

Is there a way to check for size category of targeted tokens? (i.e. such and such feature does something extra to certain sizes of creatures)

violet meadow
#

Now if you have more than 1 targets you would need something different

gilded yacht
gilded yacht
idle kelp
#

@spice kraken hello! sorry to do this again but how would you go about making it so that

If a creature attacks a creature inflcited w/ frostbite, they get dealt extra damage

as well as

Instead of the duration ending at the end of the turn, it ends when a certain attack is done?

spice kraken
#

Oh, this is midi, haha

#

Well if it's a specific attack it probably needs a macro

#

If it's any attack, go to the duration section of the active effect, and add a special duration of is hit or whatever

celest bluff
#

This looks like a homebrew feature

spice kraken
#

Homebrew frostbite

#

Basically just a save at the end of a turn, no damage or whatever

celest bluff
#

a few ways to do, onUpdate to monitor hp, then if they're reduced, go into the applying more damage or you can do a double active effect

#

then have isDamaged as the removal trigger

#

you can then apply the extra damage

#

problem with onupdate, it'll trigger for any hp changes

idle kelp
#

this is what i have initially thanks to supernaafeh, how would you change it if "any" attack is dealt and hits, extra damage is dealt?

spice kraken
#

Keep in mind they seem very new to midi. So probably no macro skills

idle kelp
#

Guilty as charged hehe, is there a way to 'save' the effects? so i wont make the same effect again for new weapons/abilities

spice kraken
#

Move it to the items tab

#

But look at the pins. All this is pretty straightforward when you read the readme. Especially the overtime effects part

idle kelp
idle kelp
#

I still cant seem to be able to make it work. I can't seem to figure out how: if i attack a creature it deals + (x damage)

violet meadow
violet meadow
fading scarab
#

Thanks for checking back in though!

worldly fern
#

When I make an attack against a foe and the attack requires a save (eg for poison, being knocked prone, etc), if the foe makes the save, the damage is halved even if it has no connection to the damage result. EG. If i attack with a wold and it does 6 damage and the player needs to make a save vs trip, if the player makes the save, he takes 3 points of damage. How do i fix this...thanks

violet meadow
#

Full Dam Save is what you are looking for.

worldly fern
#

Thanks....so do i have to do this on every creature in the actors tab and every creature imported or is there a macro or something to do this.

violet meadow
#

MidiQOL's readme is a treasure if you take some time to go through it (a must if you want to use it successfully IMHO) and a link is pinned on this thread.

#

You will find the aforementioned option in Midi Settings => Workflow Settings => Workflow tab:

barren flume
#

How would I get Midi to accept when a roll should be with advantage or a modifier? E.g. we use flanking in our games but I can't get midi to apply advantage on attack rolls

violet meadow
#

Then you will find options for Check Flanking.

#

If you are also using DFreds CE module, there are more options available

barren flume
#

Will this also let me tell my players that they have a modifier and they can apply it?

#

e.g. enemy has half cover so they have a negative modifier to hit

violet meadow
worldly fern
#

Thanks for the help...appriciated πŸ™‚

barren flume
#

Is there a way to have it accept the modifier before the roll at all or does that kill all automation?

violet meadow
#

There you can see the automated calculation made from Dnd5ehelpers and either choose to apply automatically or wait for user input

#

If you then attack, the correct (/chosen) modifier will be applied

barren flume
#

So the only way to get midi automation to work with modifiers is to use dnd5e helpers?

#

Do I need to enable combat action management for that to pop up?

violet meadow
#

And then in MidiQOL Optional tab again.

barren flume
#

Awesome, thank you!

#

Hopefully this gets it all working

violet meadow
#

I have to say that it is working as intended for me, but it might be a bit overwhelming to understand the synergy at first πŸ˜…

#

So feel free to post any issues πŸ˜‰

fallen token
#

If you want the normal dialog to add other, random modifiers then configure Midi to not fast-forward rolls

violet meadow
#

@cloud tiger so as not to post in #macro-polo. An older version of Arcane recovery working with MidiQOL as an onUse ItemMacro | After Active Effects

spice kraken
#

Are they looking for the item macro? Cause I have one

violet meadow
#

Seem I am not able to attach it rn πŸ€”

spice kraken
coarse mesa
violet meadow
coarse mesa
#

Yeah auto works 90% of the time for us… just sometimes there’s something in the way that isn’t actually supposed to provide cover. I’ve just been adding +2 to my attack roll in those cases

cyan turret
#

For MIDI, does anyone know the call for "extra critical hit damage". I see it in the weapon option - but I'm trying to make an ability that increases crit hit damage

shell cobalt
#

Olla people o/
I'm using current version of dnd 5e and Midi and wondering if it is possible to somehow add 5 to every 'healing' that is rolled by people without individually adding it to every ability, spell and such?

violet meadow
#

Or look at the pins in this thread for a link to the spreadsheet with the flags that can be used with MidiQOL.
||flags.midi-qol.grants.criticalThreshold||

violet meadow
shell cobalt
violet meadow
#

That sounds like world script territory

#

MidiQOL would do that for an Actor for example with a macro.

shell cobalt
#

I'd also be happy if I can just make it a feature that I can add to the Player Characters

violet meadow
#

Would that also include potions of healing?

molten solar
#

It is NOT currently easy to modify rolls in this precise way with just a world script

shell cobalt
#

Yeah. More precisely it should be any magical healing, but just adding 5 to every healing is good enough for like almost all purposes

molten solar
#

you'd have to scan the chat log for new messages, get the item ids and whether it's healing at all, etc
then update correctly doing roll manipulation, stuff you probably cannot even do as non-GM

#

(easy as pie in v10 tho)

violet meadow
#

For MidiQOL, you would need use Midi hooks that are already in place and setDamageRoll to what you want, which takes care of the roll manipulation

violet meadow
shell cobalt
#

I tried an active effect with a midi flag for healing DR set to -5 but that didn't seem to do anything

violet meadow
#

Can you try data.bonuses.heal.damage | Add | +5 as I cannot check it now?

#

@shell cobalt ok that should work this

#

With DAE you can also use data.bonuses.heal.damage | Custom | 5 to get rid of the double ++

shell cobalt
#

I see no double + so that is fine. But yes that also works. Thank you :)

violet meadow
#

You can create a feature that you will drag on each Actor.
Make it Transfer to Actor on Item Equip and should be good

placid sorrel
#

are shortcut modifiers working? I cannot find how to throw damage or crit damage directly with keyboard shortcut modifiers

opaque current
#

They work when you click "damage". If you are auto rolling damage, then not so much.

violet meadow
#

Yeah, you would need Auto Fast Forward Damage checked, Auto rolling damage set to **Never **and use the (fast) Damage button on the chatMessage to get them going

sullen trout
#

anyway to fix the empty "()" when the damage is 0?

violet meadow
#

Never occurred to me before πŸ˜…

sullen trout
#

is it also possible to show both rolls when it has adv/dis?

violet meadow
#

It should already do that.

#

Click on the Disadvantage field and it will appear, no?

sullen trout
#

oh ok, I was trying to make midi look and work as closely as possible as better rolls, since it's what we're used to in my campaign

#

thanks

limber finch
#

So i have a question, how would one make a feature that places down a measurement template and rolls 1d4 fire damage if a character starts their turn in the fire?
and on a separate note how would one create a feature that places a measurement template that calls for save of some kind or would just apply an active effect if they enter the measurement template or start their turn there

violet meadow
limber finch
#

have that

#

but still dont get how to apply the effect to the measurement template and not any character

#

as i wouldnt want them to burn if they arent in the fire zone

violet meadow
#

OK are you familiar with MidiQOL macros and such?

limber finch
#

know of them

#

but in general i suck at macros

violet meadow
#

Alright give me 5 to make an example of the fire damage

limber finch
#

thank you

violet meadow
#

What's the radius of the template?

limber finch
#

5ft

#

"When fired on the ground it creates a burning surface that deals 1d4 fire damage to anyone starting their turn on it. This surface lasts for 5 rounds and has a 5 feet radius."

violet meadow
#

Download the attachment. Create a new Spell in the Items Directory (right sidebar of Foundry), right click on the new Item and Import Data.

limber finch
#

so it says for item macro no item macro found

#

wait

cerulean phoenix
#

I need help, how does
flags.midi-qol.grants.critical.range work?

limber finch
#

it does work nvm, had to apply the effect to someone

#

did not get that arrow when i used it like you send it

#

did get it when used with the magic item module as part of a magic item

violet meadow
violet meadow
limber finch
limber finch
violet meadow
#

Ah alright, the warning popped up when you used the Item I sent you from the Magic Items tab of Token Action HUD ?

limber finch
#

no from the spellbook tab on the (ogl) character sheet where it was provided by the magic item that has this ability

violet meadow
#

ok ok

limber finch
#

basically I wanted to create an arrow that does a when shot at a person and b when shot at the ground, creating a surface of 5ft radius

limber finch
#

so casted the fire damage as a spell (not from a magic item)
applied the effect to the creatures within the area
they take fire damage on their turn
guy walks in and he also takes the damage on his next turn
one of the original creatures walk out and on his next turn still take damage

violet meadow