#MidiQOL

1 messages · Page 21 of 1

vast bane
#

yep thats what caused it, dumpstat int pally

#

he got stunned and then thankfully Halleth was with them and curb stomped it before the next turn

coarse mesa
#

Definitely, if you can make it feel like it's due to their bad choices and not forced

molten solar
#

Wondrous.

#

Gonna need to reskin them somehow to fit in a feywild-esque location tho

vast bane
#

They rolled sets of stats, and 3 of the 5 players picked the set with a 6, so theres 1 dumpstat int and 2 dumpstat cha's and they are fighting intellect devourers and maurazi or whatever, which drain charisma lol

violet meadow
#

Intellect Devourers are really high up in the list of potentially deadly foes, which do not make such a bad first impression 😄

molten solar
#

All my players dumped Wis. Maybe I'd do "Fey Wisdom Devourers" ✍️

coarse mesa
#

In DotMM they were a huge PITA until we were high enough to cast Greater Restoration... you end up with a coma'd character you'd need to haul back to Waterdeep to get fixed up

vast bane
#

instead of working on that smite to smite me bugbear, I'd love that workable skill challenge macro that applies AE's/status effects on success 8)?

molten solar
#

Requestor

vast bane
#

the next attack after the creature is stunned, they can jump into the body

#

and thats instant death

coarse mesa
vast bane
#

yeah

#
let results;
const attacker = canvas.tokens.get(args[0].tokenId);
const {object: target} = await fromUuid(args[0].hitTargetUuids[0]);

const skilltoberolled = target.actor.data.data.skills.ath.total < target.actor.data.data.skills.acr.total ? "acr" : "ath";

results = await game.MonksTokenBar.requestContestedRoll({
    token:attacker,
    request: 'skill:itm'
},{
    token: target,
    request:'skill:ins'
},{
    silent:true, 
    fastForward:false,
    flavor: `${attacker.name} tries to get ${target.name}'s attention with a taunt.`, 
    callback: async () => {
        const attackerTotal = results.getFlag("monks-tokenbar", `token${attacker.id}`).total;
        const targetTotal = results.getFlag("monks-tokenbar", `token${target.id}`).total;
        if (attackerTotal >= targetTotal) {
            if(!game.dfreds.effectInterface.hasEffectApplied(`${attacker.name}`, target.actor.uuid)) {
                await game.dfreds.effectInterface.addEffect({ effectName: `${attacker.name}`, uuid: target.actor.uuid});
                ui.notifications.info(`${attacker.name} successfully taunts ${target.name}`)
            }
        }
        else ui.notifications.info(`${target.name} resists the shove attempt from ${attacker.name}`)
    }
});
coarse mesa
vast bane
#

it works if the DM fires it, fails if a player does for the effects

molten solar
coarse mesa
vast bane
#

and I know it has the wrong emote at the end, but since it fails to fire, the emote doesn't matter 8)

molten solar
violet meadow
vast bane
violet meadow
#

Try something quickly cause the fibre to my house was destroyed and my main server is off line...

Create a script macro to be run as GM. Throw the macro you attached as is in there.

Then on the Item, create another script ItemMacro (NOT run as GM) ```js
game.macros.getName("name of the other macro").execute(args[0]);


👆 this one will take the place of the Item onUse macro you had before on the item
#

Does it do it?

vast bane
#

(named TestTaunt

let results;
const attacker = canvas.tokens.get(args[0].tokenId);
const {object: target} = await fromUuid(args[0].hitTargetUuids[0]);

const skilltoberolled = target.actor.data.data.skills.ath.total < target.actor.data.data.skills.acr.total ? "acr" : "ath";

results = await game.MonksTokenBar.requestContestedRoll({
    token:attacker,
    request: 'skill:itm'
},{
    token: target,
    request:'skill:ins'
},{
    silent:true, 
    fastForward:false,
    flavor: `${attacker.name} tries to get ${target.name}'s attention with a taunt.`, 
    callback: async () => {
        const attackerTotal = results.getFlag("monks-tokenbar", `token${attacker.id}`).total;
        const targetTotal = results.getFlag("monks-tokenbar", `token${target.id}`).total;
        if (attackerTotal >= targetTotal) {
            if(!game.dfreds.effectInterface.hasEffectApplied(`${attacker.name}`, target.actor.uuid)) {
                await game.dfreds.effectInterface.addEffect({ effectName: `${attacker.name}`, uuid: target.actor.uuid});
                ui.notifications.info(`${attacker.name} successfully taunts ${target.name}`)
            }
        }
        else ui.notifications.info(`${target.name} resists the shove attempt from ${attacker.name}`)
    }
});
#

missing a letter

violet meadow
#

lol ```js
game.macros.getName("name of the other macro").execute(args[0]);

#

I think you copy pasted ame.macros.getName("name of the other macro").execute(args[0]);

vast bane
#

yeah, also MTB is acting weird

#

and let me confirm the effect is setup right still

#

it said 2 insight rolls were rolled but the pally rolled with a +10 so....the UI is wrong but the rolls were right

dry heron
#

Hey, new here 👋
Trying the "Return a damage bonus" and passing back (With console log to confirm)
return [{ damageRoll: '1d6[fire]', flavor: "Bonus" }]

But it doesn't add the extra dmg?

vast bane
#

it also prompted the roll for the GM twice

#

and mtb didn't resolve till I expanded the rolls by clicking on them, no green checkmark till then

violet meadow
vast bane
#

hol up, I dunno why, but it is working fully fine now once I got the effect setup again, as I had renamed it for the other way

#

yeah its totally working now

#

wait....GM has same target and selection as player... so that could be a false positive right?

dry heron
violet meadow
#

OK I will take a look at the player's side some time tomorrow, if my INET is up.

violet meadow
dry heron
vast bane
violet meadow
vast bane
#

do players need to have access to the folder macro?

violet meadow
#

Nope

#

Hmm at least I don't think so 🤔

dry heron
violet meadow
dry heron
#

Babies first Hunters mark (just got Foundry yesterday 😅 )

#

I have more worked out, checking if the token has hunters mark applied etc, but stripped it all out just trying to get the bonus dmg at all working

#

The SAMTEST Log procs in console before the midi-qol | DmageRollComplete elapsed 14ms

violet meadow
# dry heron

OK so if you open console, it probably will have an error of unresolved string when you use that. Change the damage formula on the item to ```js
1d8 + @mod + 2

dry heron
#

The dmg formula atm is: 1d8[piercing] + @mod + 2

#

I added bonus to see if it would do anything, but it just takes the Attack roll bonus stat (no errors)

vast bane
#

@violet meadow thank you for making that skill challenge work, gonna open up so many neat tricks. Taunt, shield bash, shove

violet meadow
#

Then create a DAE flags.dnd5e.DamageBonusMacro | Custom | Hunters Mark

#

Delete the onUse macro you have there

dry heron
#

Than roll dmg?

violet meadow
#

Ohhhhh lol. I thought you were creating a feature or spell named Hunters Mark

#

And I was suggesting to put that DAE on the Hunters Mark Item

dry heron
#

Nope, I set up that to apply an active effect already, I have
`game.user.targets.forEach(i => {
let name = i.name;

console.log(i.actor.effects)

i.actor.effects.forEach(j => {
    console.log(j)

    if (j.label == "Hunter's Mark") {
        GenerateRoll(i);
    }

})

})
`

#

So this is just for the On hit of the Rapier to check if it should ALSO do extra dmg on a target that has hunters mark on it

#

And all the above works, except the basic grab extra dmg

#

Which i can't get to work without any thing else lol

violet meadow
#

OK so as a sidenote, seeing you are already using MidiQOL to a certain extent 😛

Go to MidiQOL sample Items compendium and take a look at the already created Hunter's Mark item

coarse mesa
dry heron
#

I started a coupole hours ago when I went mad with modules lol
I've got some scripting background in JS so was pretty easy getting started, but this stumped me

violet meadow
#

MidiQOL and DAE readme plus the sample items compendium will give you some good ideas then

molten solar
#

could use babonus. 😎

dry heron
#

I've been giving them a read, but just getting the basic "Add an extra dice of dmg" via the "Return a damage bonus" macro field not working is just odd

violet meadow
#

To make what you are doing work though, I think you can do it as follows.

The Hunters Mark DAE on the Rapier, go to the Details of it and make it Transfer to actor when item is equipped

#

Then change the Rapier back to targeting enemies 😛

#

Lastly do a check on the Hunter's Mark macro for the effect being present on the target

dry heron
#

I've got it atm where a player can cast hunters mark, it applies a DAE to an enemy giving them the hunters mark status effect, than on dmg I have it read if the target has that effect, if so roll extra dmg

But the roll extra dmg part never get's added (Without any checks, just the raw return 1d6 more dmg lol)
Reading some extra docs atm

vast bane
#

I'm a lil confused though, isn't hunter's mark already made?

dry heron
#

It is, but I figured it was a good way to learn 😅

violet meadow
#
if (!args[0].hitTargets[0].actor.effects.find(eff=>eff.label === "name of the hunters mark condition you put on the enemy")) return;
return { damageRoll: '1d6[fire]', flavor: "Bonus" }
vast bane
#

Well look at tim's version 8)

molten solar
violet meadow
#

yes but .. 😄

vast bane
#

Does it do doors though

molten solar
#

Sure.

#

Have the door spawn a template with a babonus

#

idfk 🙃

violet meadow
#

@dry heron the messages ended up a bit far apart. Does it make sense?

dry heron
#

So I just tried it with a DAE Temp effect that adds the Extra dmg, and that worked fine

#

So it seem just the Midi QOL Fields On use macro bonus dmg, while it runs it doesn't actually use the data

violet meadow
#

That is doable as well. You scan set it up with a myriad of ways tbh

violet meadow
dry heron
#

Ye

violet meadow
#

In principle it should be the same as doing that with a DAE 🤔

dry heron
#

I don't want to use the DAE on the Rapier as than i get the Status DAE popup as an effect

#

Hence hoping I could do it via the Field bonus

violet meadow
#

OK, so best solution, get the Hunter's mark item from the compendium which is the RAW version.

You cast the spell and then all attacks get the bonus added

dry heron
#

Does it care about which target your actually hitting?

violet meadow
#

Yes. When you cast the spell it passes a Hunter's Mark effect to the target. And then it adds the bonus damage only against that one

#

Hunter's Mark and Sneak Attack from the MidiQOL compendium are 2 good examples of what can be done

dry heron
#

Tried and worked, now to understand

violet meadow
#

(just go through. If you already have js background its gonna be a field day.

But make sure you install the ItemMacros module, cause the macros are "stored" on the items by utilizing that module (and to use it alongside MidiQOL, make sure that the Sheet Hooks in the ItemMacro settings are off)

vast bane
#

@violet meadow is quick roll to chat one of the modules you can't have with midi?

violet meadow
#

If there is an issue I would guess it is a good possible culprit.

#

I have no idea if or how that works though

dry heron
#

How can I see the properties of the ItemMacro?

violet meadow
#

If you activate the module, on the items title bar there is gonna be a tab

dry heron
#

Oh weird, I guess I don't have the Module installed, but its till worked

violet meadow
#

Get also Monaco module or Macro editor + Ace Library for some better macro editing tools

violet meadow
dry heron
#

And gotcha, grabbing

violet meadow
#

give the Importer settings a good read because it is a common source of issues. It works, but you need to know what you're doing 😅

dry heron
#

So far so good with some tests, I ran through a tut as the first thing I did, one of the major sells to bring me from Roll20 😅 (Plus the campaign exporter)

vast bane
#

its great for like adventures and monsters, but the players sheets, make from scratch if you are automating

dry heron
#

Oh? my players stuff came in all good, what should I look out for?

scarlet gale
#

I always just import players with it first, then check feature that I've edit with the ignore feature from that module

vast bane
#

I mean we just had a dndbeyond importer problem being the culprit over in module troubleshooting

violet meadow
#

yeah, as I said, you kinda need to read the label with that one 😄

vast bane
#

reckless attack from dnd beyond imports too blank to fire dfreds CE right in midi

#

dnd5e's srd version works just fine

dry heron
#

Aha

vast bane
#

but your players sheets are the things you are gonna automate THE MOST so that stuff, get your hands dirty with and get right up in there on them

#

isn't there also a setting that constantly tries to update sheets from beyond? turn that stuff off

scarlet gale
#

Any time you edit a feature or spell, I'd recommend hitting the importer button on the top of the sheet and checking "Ignore this item when importing the character"

scarlet gale
vast bane
#

the problem with reckless was that it had no targets setup

#

but the srd did or something, I dunno

violet meadow
gilded yacht
#

The new dnd5e hooks are a good way to handle modifying rolls, and all the data that will get used are passed in. Unfortunately they are not awaited, so you need to do the prep in something that is awaited. Here's a version of the minion macro that seems to work (it's v10, if on v9 change .system to .data.data. One nice thing about the dnd5e hooks is that if the roll is a critical then the damage is modifi2ed accordingly.

if (game.minionHookId) Hooks.off("midi-qol.preDamageRoll", game.minionHookId);
game.minionHookId = Hooks.on("midi-qol.preDamageRoll", async (workflow) => {
    const isMinion = workflow.actor.items.some(i => i.name.toLowerCase() === "minion");
    const isGroupAttack = workflow.item.system.activation.condition.toLowerCase() === "group action";

    if(!isMinion || !isGroupAttack) return;

    const title = "Minion Attack"
    const options = {
        "inputs": [{
            label: `<p>How many of this minion attacked?</p>`,
            type: "number",
            options: 1
        }],
        "buttons": [{
            label: "Attack"
        }]
    }
    const result = await warpgate.menu(options, { title, options: { height: "100%" }});
    const numMinionsAttacked = Number(result.inputs[0]) || 1;
    const totalDamage = Number(workflow.item.system.damage.parts[0][0]) * numMinionsAttacked;
    const damageType = workflow.item.system.damage.parts[0][1];

    const damageHookId = Hooks.on("dnd5e.preRollDamage", (rolledItem, rollConfig) => {
        if (rolledItem !== workflow.item) return;
        rollConfig.fastForward = true;
        rollConfig.parts = [`${totalDamage}[${damageType}]`];
        Hooks.off("dnd5e.preRollDamage", damageHookId);
    })
    return true;
});
scarlet gale
#

Looks like Foundry has the function I need:

quadraticIntersection(p0, p1, template.center, template.shape.radius, epsilon=0)
scarlet gale
#

Works pretty well

#

Diagonal movement needs to be looked at, I need to figure out a better way to handle it.

#

I'd also like to figure out how to make the damage cards less spammy. I'm applying the damage in increments to deal with concentration saves.

#

@molten solar quadraticIntersection could be used to tell if a token has passed through a circular template, it'll have 2 points if so. I assume there would be something similar for square templates if you would ever consider a trigger for tokens that move through a template but don't end in it.

#

Routinglib might also solve the movement calculations, since it would also take into account rough terrain.

glass lynx
scarlet gale
#

Knew I should have looked at this at the start

glass lynx
#

You'll still have to piece them together, though, as that's only geometric primitives. A cone for example would be an Arc plus two lines. A rectangle four lines, etc.

scarlet gale
#

For the moment, I just need to figure out the distance a token traveled after entering a circle template

#

I have the start and end positions as well as the template data.

glass lynx
#

"easy". That's exactly what Terrain Ruler is doing in gridless mode if circular terrain is present. Just dig around in the code a little 🙂

#

That is, if you're working in girdless. On gridded, you probably want to just check for each square along the path "is this point in the circle?" and then count the step accordingly, since the exact intersection point has little meaning on a grid

scarlet gale
#

yea, that's where I was running into trouble, I couldn't figure out how to go about that

#

The way I have it gets me the exact range, but that doesn't help when I want to follow the diagonal rules from DnD

#

terrainRuler.measureDistances I think should be all I need

glass lynx
#

If you're fine with calling that function (it's of course not optimal, since all the terrain calculations may be unnecessary overhead), you can check the ray you passed into that function after the call. Terrain Ruler adds a field to it terrainRulerVisitedSquares that tells you exactly which squares are visited by the ray.

molten solar
glass lynx
#

There's also Foundry's Ruler._highlightMeasurementSegment, which code that takes a start and end point and highlights every square of the move. Since that code needs to figure out every square visited, you could adpat it to your purposes. (Beweare, it only works properly if start and end point are on the center of a grid cell. If they aren't it may skip squares here and there)

scarlet gale
#

Since it's 2d4 for every 5 feet moved

#

that normally turns into 4d4 cause it's rough terrain

violet meadow
#

Wait is this part of the spell? The rough terrain?

molten solar
#

oh look who's up early after less than 6 hours of sleep

scarlet gale
#

The area becomes difficult terrain for the duration. When a creature moves into or within the area, it takes 2d4 piercing damage for every 5 feet it travels.

violet meadow
#

Who needs sleep when there is coffee right?

scarlet gale
#

Effectively 4d4 unless you have the means to avoid difficult terrain

#

I have the template making itself difficult terrain with Enhanced Terrain Layer already.

violet meadow
#

I always rule against that. Tbh I never considered that 😁

scarlet gale
#

There are a few obscure class features and spells that get around difficult terrain.

violet meadow
#

Yeah but as you say the most common thing is for creatures to not have something like that, so I would expect some clarification in the spell description of that was the case. Oh well, still I would force it to do 2d4 for each square no matter what on my table

scarlet gale
#

You move at half speed in difficult terrain--moving 1 foot in difficult terrain costs 2 feet of speed.
2d4 for every 5 feet. It's pretty explicit.

coarse mesa
#

We’ve always ruled it that way. How far you travel, not how much movement you spend doing so (2d4 per square)

scarlet gale
#

I'm pretty sure the spell is worded the way it is to allow class features and other spells to help you avoid the difficult terrain part.

coarse mesa
#

2d4 per 5’ is still nothing to sneeze at, especially if it’s forced movement (eg repelling blast)

scarlet gale
#

yea

#

Place down spike growth and start thorn whipping people through it

coarse mesa
#

Spike Growth + Plant Growth is crazy… one halves your movement speed… the other makes you spend 4’ for every foot moved

scarlet gale
#

ouch

coarse mesa
#

Most creatures move one square per turn

violet meadow
#

I just reread the spell and it mentions per 5 feet it travels.
So I would rule that 2d4 per square, no matter what 🤷

#

But now morning coffee!

scarlet gale
#

yes, but it also says you're in difficult terrain

#

meaning 1 foot costs 2

violet meadow
#

Throw down a spike growth spell and get your warlock to send a couple of repelling blasts to the right target :chefkiss

scarlet gale
#

making 5 cost 10

#

Guess I should lookup a ruling for this

violet meadow
#

It costs you double but you still have traveled 5 ft in the end

scarlet gale
#

Guess that makes sense

#

2d4 it is

#

¯_(ツ)_/¯

coarse mesa
scarlet gale
#

I can't figure out what kind of data to be passing off to this function.

#

I may just call it a day and look at it another time.

#

Spike growth is SRD right?

#

Requires midi-qol and Zhell's template macros module.

#

Weird, the item macro is cleared out but it still shows it in the exported json

violet meadow
scarlet gale
#

Just as long as it doesn't actually run it won't matter.

violet meadow
#

Yeah I just saw that initially in some MidiQol sample items and I was like 🤔 but then 🧠

scarlet gale
#

At any rate, if anyone more familiar with the measuring features in Foundry is around, I'd love to see a better way to handle the distance calculation I'm doing.

hot flower
#

is there a flag in midi that prevents critital hits from critting? Like with adamantite armor?

#

This armor is reinforced with adamantine, one of the hardest substances in existence. While you're wearing it, any critical hit against you becomes a normal hit.

scarlet gale
hot flower
#

that's it. found it, thank you.

#

i was missing it in the list of flags.

scarlet gale
#

Yea, I noticed that too

glass lynx
scarlet gale
#

I noticed lol

tepid remnant
#

(v9) I have a tricky question. Is there a way to apply an aura effect (currently using Active Auras, midi, and dae to other similar things) to allied tokens within range but have it disable when the source actor moves and only when the source actor moves? If I use the "isMoved" special duration, it gets applied to the allies which is not what I want.

Use case is an ability that allows a frontline tank to dig in their heels and become a bulwark for their allies. Any ally within five feet gains a bonus to AC and dex saves (basically half cover). The effect should persist until frontline tank decides its time to move.

scarlet gale
#

special duration of moved to remove the effect

#

then have it as an aura

#

oh, wait

#

that applies to the allies that move too?

celest bluff
#

Make sure to check apply only once per turn

violet meadow
coarse mesa
#

Or set the aura to apply a CE that won’t expire when the affected tokens are moved? 🤔

violet meadow
#

Or Template macro on the spot 😄

kind cape
#

Yeah you can do this with two effects, first one is expired on move and applies the second effect, which is the aura

violet meadow
#

Yeah I was going the macro way but same principle 😄

kind cape
#

It's basically the same I did for my Twilight sanctuary, since that one applies a light to the caster only

celest bluff
#

if expire is isMoved shouldn't reapply it until the next combat round

tepid remnant
#

How do I get at other effects inside the Active Effect interface? I see you can do StatusEffect but that seems to only have the default stuff. StatusEffectLabel seems to just change the label of the effect whereas I was hoping it was going do some kind of look up.

kind cape
violet meadow
#

macro.CE can do it.

tepid remnant
kind cape
#

Damn phone typing is slow 🙃

tepid remnant
celest bluff
#

You aren't applying this to the primary DAE affect right?

#

You would create an additional affect inside with these settings

#

the aura applies an active effect on the target

#

the base effect runs on the caster

tepid remnant
#

Ah ok, yes that is what I'm working on now

#

I didn't know about nesting effects

celest bluff
#

can look in your compendium at Active Auras Auras to see examples

tepid remnant
#

Thank you all! I got it working now. I really really appreciate the help

acoustic jasper
#

Is it possible to check an Active Effect by name in "Activation Condition"? For example I want to give my Gnoll Bite some extra damage if the target is "Prone".

violet meadow
acoustic jasper
#

great, thanks

violet meadow
#

Are you v9 or 10?

acoustic jasper
#

10

late briar
#

Build a bonus seems to be the ideal module for everything now? XD

molten solar
#

It can certainly do that entire 'activation condition'.

late briar
#

Can I make Divine Smite with BAB?

molten solar
#

Sure why not

late briar
#

Oh you're the author!

violet meadow
#

@acoustic jasper check the edited one.

#

I will test them later to make sure

acoustic jasper
#

it's working 😉 (the first one added extra damage every regardless of the condition)

violet meadow
#

Just note that it will misbehave if you have more than 1 target.

acoustic jasper
#

noted

violet meadow
#

Need to check the newest MidiQol whether it can deal with that. I know you can check @target but I think it points only to the actor or synthetic actor rollData.

molten solar
#

Getting roll data from game.user.targets.first().actor.getRollData() would be the synthetic actor

violet meadow
sudden crane
violet meadow
#

Makes sense 👍

late fractal
#

Hello again! I am on V10, using MidiQol and also Convenient Effects. I am trying to implement the attack "Claws" on a Ghoul, which has damage, a DC10 Con save, on fail a paralysis effect. I have managed to make a convenient effect called "Ghoul Claws" that will mimic paralysis and apply on hit, but I cant seem to figure out the DC10 Con save before applying the effect. Any hints on how to do a roll before applying an effect?

violet meadow
#

@vast bane are you around?

vast bane
late fractal
#

@violet meadow i have tried adding a save, but it saves for half damage not applying the effect

vast bane
#

poundin the walls of my cubicle atm but can remote to my server

violet meadow
# vast bane yar

Divine Smite in v9 sample items. Does it have an activation condition for undead?

violet meadow
vast bane
late fractal
vast bane
#

theres two smites in v9

late fractal
vast bane
violet meadow
# vast bane there are two of them, the automated item macro version does not prompt for dama...

get the second one (no macro one), create an on use macro preDamageRoll ```js
//v10 only
const getMessage = game.messages.contents.filter(mes=>mes.content.includes("<div class="dnd5e chat-card item-card midi-qol-item-card"")).at(-1);
const item = await fromUuid(getMessage.flags['midi-qol'].itemUuid);
if (item.getRollData().item.actionType === "mwak" && getMessage.flags['midi-qol'].isCritical) {
setProperty(this,'isCritical',true)

//<this> in the setProperty above, is the same like doing a <const workflow = await fromUuid(args[0].uuid)>
//and using <setProperty(workflow ,'isCritical',true)>
}

Attack normally and then roll the Divine Smite
vast bane
#

add it to the existing divine smite item macro?

violet meadow
#

Get the one that doesn't have a macro. The one with the activation condition

#

And put that in the empty (should be) ItemMacro

#

Change the crit threshold of the item to 2 or something to get a critical easier

vast bane
#

not sure what you wanted me to test but its doing weird stuff and still isn't critting the fiend/undead

violet meadow
violet meadow
vast bane
#

the first line of the item macro has bad syntax

violet meadow
#

ok its the message data

molten solar
#

If there ever was a single feature that needed its own module it would be Divine Smite. Never has one tiny thing needed so much attention. 😄

vast bane
#

mine is working just fine 8)

molten solar
#

But it's not just you is it, it's hundreds of people

violet meadow
#

Can you quickly change to this mes=>mes.data.content.includes

#

Damn don't remember how that was

vast bane
#

I think alot of people are using midi's divine smite not realizing its notcritting right

#

kinda poetic that Midi-qol cannot read midi-qol

#

its like inception or something

violet meadow
# vast bane kinda poetic that Midi-qol cannot read midi-qol
//v9 Foundry
const getMessage = game.messages.contents.filter(mes=>mes.data.content.includes("<div class=\"dnd5e chat-card item-card midi-qol-item-card\"")).pop(); //at(-1) for Zhell
const itemUuid = getMessage.data.flags['midi-qol'].itemUuid;
const item = await fromUuid(itemUuid);
if (item.getRollData().item.actionType === "mwak" && getMessage.data.flags['midi-qol'].isCritical) {
    setProperty(this,'isCritical',true)
}

Now?

late briar
#

What is that arcane code

vast bane
late briar
#

Why is there a set property method

vast bane
#

checking fast forward version now

#

fast forward is not critting

violet meadow
#

damn edited

vast bane
#

however, I am cheesing the crits by making the threshold 2 and up...is that a problem?

violet meadow
#

nope

#

I had a data missing

vast bane
#

there was no errors 0_o

violet meadow
#

yeah but the check was not evaluated to true so it didn't register anything

vast bane
#

no crit with fast forward fully on

#

and if I turn off fast forward and manually crit it, the fiend/undead die does not crit

late briar
#

Probably because Critical Others property is broken?

#

Since that should make the other roll Formular also crit

violet meadow
#

ok I will test it later on v9 and come back

#

Now I am taking a look at the new v10 features of MidiQOL and DAE 🤌

late fractal
# violet meadow Try this.

worked! Took out my "Ghoul Claws" convenient effect as it was also applying that. Now to figure out how to have players roll to break every turn...

violet meadow
#

@vast bane send me your midi settings pls. Works for me 😄

vast bane
#

is it designed around calling the last message?

#

cause the attack is not the last message, Maxwells is

violet meadow
#

the last message that has some midi specific content (that's the hope at least)

vast bane
#

cause were testing crits, maxwell keeps firing

violet meadow
vast bane
#

is preitemroll all?

violet meadow
#

oh 😅
called before the item is rolled

vast bane
#

so heres the thing

#

that item already works

#

whehter the item macro is in or not

#

the problem is the other formula doesn't crit

#

so again, fiend/undead die is not doubling

vast sierra
#

And yet the suggestion to just use a spell (not the midi feature) and click Critical when damage prompt, still persists 😉

vast bane
#

again, crit doesn't work in other formula, so the fiend/undead die does not double

late fractal
vast bane
#

and for the record, my way works whistles

violet meadow
#

OK I will test it when I am on my v9, thanks

vast bane
#

probably have to put the fiend/undead stuff in the item macro somehow

#

but that also kinda defeats the purpose of the no macro smite version

#

and the actual item macro smite doesn't crit at all

#

I just created buttons in advantage reminder and work it all out in the attack roll

molten solar
#

I think you need more AR flags

vast bane
#

I think thats just 1 flag

#

the test was bogus and deleted already forgot it was there

#

One flag:

violet meadow
#

@gilded yacht when you are not fast forwarding damage rolls and you click Critical hit on the damage roll card, the Other Formula doesn't crit even if the Crit Other formula is selected.

#

@vast bane with your settings and the macro I shared, when you click on the Critical Hit the other formula is rolled doubled for me at least 😄

vast bane
#

it wasn't for me /shrug I tested fast forward and manual

#

show me the damage card lol

violet meadow
#

🤷

vast bane
#

fast forward or manual?

violet meadow
#

You need to score a critical hit with a melee weapon first. Then Use the Divine Smite feature with the ItemMacro | before the item is rolled and click the Critical button

vast bane
#

I'm even rolling 20's cause I'm using df manual rolls to do it instead of crit threshold manipulation

#

what version of midi do you have

violet meadow
#

0.9.83

vast bane
#

same

#
const getMessage = game.messages.contents.filter(mes=>mes.data.content.includes("<div class=\"dnd5e chat-card item-card midi-qol-item-card\"")).pop();
const itemUuid = getMessage.data.flags['midi-qol'].itemUuid;
const item = await fromUuid(itemUuid);
if (item.getRollData().item.actionType === "mwak" && getMessage.data.flags['midi-qol'].isCritical) {
    setProperty(this,'isCritical',true)
}

this macro right?

acoustic jasper
#
damageRoll=5,
damageType=healing,
condition=@attributes.hp.value > 0 && @attributes.hp.value < @attributes.hp.max``` - another question about detecting effects - this is Midi-qol Regenaration (for OverTime effects). I created an effect "Silvered" and I would like for it to block the regeneration - can I add some condition here so it wont heal IF Silvered is present?
vast bane
vast bane
violet meadow
#

Make an attack normally and do critical damage. Then open console and type ```js
console.log(game.messages.contents.filter(mes=>mes.data.content.includes("<div class="dnd5e chat-card item-card midi-qol-item-card"")).pop().data.flags)

#

are there any midi-qol flags in that message?

violet meadow
#

and the Item is mwak and the creature Undead type set in the dropdown menu

vast bane
violet meadow
#

the Undead doenst matter nvm

violet meadow
vast bane
#

merge card shut off and now my attacks refuse to crit

#

yeah crit no longer working and all i did was turn off merge card, the attack crits, just brainfarted its not a greatsword but a longsword

#

Here is my full workflow in console with it working alright except for that one missing fiend/undea die:

violet meadow
#

OK so there must be an issue with the Crit Other Formula anyways, that's why I pinged tposney (has anyone reported that as an issue in midi and if not why? :D)

#

BUT with your settings when an attack is critical, combined with the script does make the Crit Other actually double up\

vast bane
#

I don't see that on my end

violet meadow
#

Now as to why its not happening for you I am at a loss rn

vast bane
#

wait a minute

#

why is your smite different than my smite?

#

you aren't using midi srd's smite

#

errr midi sample item smite

#

Let me see yours:

violet meadow
vast bane
#

I have flavor!

#

AND you have critical other lol

#

I didn't know I had to do that

#

There we go

violet meadow
#

Flavor doesnt matter

#

Crit other does

vast bane
#

Yeah, but it got me lookin in the right spot

#

now we need to remember who it was that was reporting the problem, cause that was their mistake, they didn't have critical other checked

violet meadow
#

But only for the first Divine Strike. If you click again on Divine Strike after the crit, and try to crit again, it will not roll double Other Formula. Correct?

vast bane
#

yeah smites now working perfectly, do we even need the item macro then?

violet meadow
#

If you roll again Divine Smite, without a melee attack first, the Other Formula will not be doubled, if you press on Critical hit

vast bane
#

yeah I just tried without the item macro, it is infact bugged without fast forward

#

no critical flag on the roll, if you manually force it, the other doesn't crit

#

ok heres my question to you then

violet meadow
#

pretty much

vast bane
#

can you edit the item macro to make JUST that smite fast forward?

violet meadow
#

yes if needed

#

hmm 10 easier though

vast bane
#

please, cause I don't want him to have fast forward stuck on for smite

violet meadow
#

give me a sec to make sure

violet meadow
violet meadow
#

up top better to be safe, if you use it within the same ItemMacro. At least not inside the if check

violet meadow
#

@gilded yacht DAE v10.0.10 macro.createItem | Custom | drag and drop item from a compendium or sidebar or wherever in the effect value field!!! is one of the best QOL improvements ever brought forward!!
🙇‍♂️

vast bane
#

what is the use case for that?

violet meadow
#

An effect which when ON, creates the linked item in the inventory

#

Off deletes

short aurora
#

Twilight Sanctuary seems like a good thing for that, it adds an aura and a reaction thing as well, right?

#

Basically any feature that gives you several options or stark differently working options

vast bane
#

so like.....Shadowblade?

short aurora
#

Yup, gives you the weapon, yeah

vast bane
#

so lots of mutates really

#

replace some warpgates with midigates

violet meadow
#

You write 0 of them though

#

just drag the item on the effect value field and good to go

short aurora
#

Much love to this feature

vast bane
#

yeah that could also be spiritual weapon

violet meadow
#

yes

#

and spirit guardians, fire blade etc

vast bane
#

and it'd work with bless!

#

nah not spirit guardians, wait is his v10 sg not working? oh yeah...active auras...damn

violet meadow
#

What you could do with MidiSRD and macros for some spells, can be done with setting up just 1 DAE effectively

vast bane
#

Throw stone!

violet meadow
vast bane
violet meadow
#

Yeah I hate that. Too many popouts and cant bother, especially if I use that from time to time

#

Make a weapon, click that, done

vast bane
#

I prefer the sample item and active auras /cry

violet meadow
#

If you have lots of space it can be OK

vast bane
#

love the automated version

violet meadow
#

Yeah but to be honest I am scaling back a bit on that.
Active Auras being kinda of off for some time in v10 was a good thing 😅

vast bane
#

is there a way to also auto roll them as the ae is applied?

#

cause that'd make ice knife really easy

violet meadow
#

Meaning? An attack immediately?

#

Would need to use a macro to auto roll it when created

vast bane
#

ooh another good use case, wither and decay

violet meadow
#

But Ice Knife is an easy macro with MidiQOL and you can even trigger a targets selection

#

Wither and Bloom?

vast bane
#

aoe damage, and then an ally in the aoe can heal expending a hit dice

#

item would need an item macro to expend targets hit dice though

violet meadow
#

I think I had made one 🤔

dark canopy
vast bane
#

but the new midi thing is a drag and drop

#

so no macro required

violet meadow
#

If you give the item to another target, you will still need to account for the sourceActor's spellcasting mod etc though

vast bane
#

wonder if dfreds gonna start doin stuff with his ae's for this lol

violet meadow
#

it might be a bit off the immediate scope of DFreds CE to include all the spells known to humanity which add stuff like that 😄

#

I can also see a macro.createToken in place, but I think that this is yet to be implemented 🤔

coarse mesa
#

If Tim’s Font of Magic lets you convert pact slots I might have to update to v10 😯

acoustic jasper
#

can you toggle an effect via macro? I know midi-qol can Toggle an effect via Item, but can you add an inactive effect and for example toggle it via macro on saving throw failure?

dark canopy
#

effect.update({disabled: !effect.disabled}) iirc

acoustic jasper
#

thanks

#

and efect name? or ID? How does the macro know which effect to diable?

#

disable

dark canopy
#

you find it from actor.effects

molten solar
coarse mesa
molten solar
#

surprised if he did not. an easy add tbh

#

and if he did not, just ban multiclassing too.

celest bluff
#

I need to update mine

coarse mesa
#

@molten solar Tim must have heard you badmouthing Sample Compendiums in here… so he put you in one 😂

molten solar
#

The only good number of module compendiums is zero module compendiums. 😠

coarse mesa
violet meadow
#

I don’t like sorcerers and make them do stuff manually

late briar
#

Is it important that I modify a midi-qol itemCard synchronly?
Basically lets say I run a ItemMacro after active effects application that has a dialog and confirming the dialog modifies the itemcard with a damage only workflow, is that fine?

violet meadow
#

Does it misbehave at any point?

late briar
#

well I am asking before trying

violet meadow
molten solar
#

ok grampa, let's get you in bed

coarse mesa
molten solar
#

and when halflings were hobbits

violet meadow
#

It was back in the day when d&d was hard and outlawed!

molten solar
#

The good ol' days of wizards casting exactly 1 cantrip and then having to use a crossbow

violet meadow
#

Exactly

#

Use it wisely

coarse mesa
#

To think we used to do THAC0 in our heads 😮

violet meadow
#

That 1 magic missile!

acoustic jasper
#
console.log(scene)
last.parent.effects.forEach(effect => {
    console.log(effect)
if (effect.label === "Slow")  effect.update({disabled: !effect.disabled});
if (effect.label === "Hold Person")  effect.update({disabled: !effect.disabled})
})``` eh I have no idea what I'm doing - I used "Effect Macro" so this Macro on DAE activates every time I do a saving throw. I have no idea how to make it trigger only if the saving throw fails :/
molten solar
#

🤔

violet meadow
#

Won’t work within midi as is

coarse mesa
#

Kids these days don’t know how easy they’ve got it

molten solar
#

Actually lemme just check if I pass the info to EM...

#

Oh yeah I do

#

this.roll

violet meadow
#

Well do you now? 🤔

molten solar
#

this.roll and this.abilityId

acoustic jasper
#

Trying to understand 😄

scarlet gale
#

@molten solar Template macros doesn't like it when there isn't a move animation.

violet meadow
#

Broken promises…

molten solar
#

on tokens?

scarlet gale
#

Might be from drag ruler allowing you to skip the animation when you hold down alt

molten solar
#

I presume all it does is add {animate: false}.

coarse mesa
#

See, D&D is so easy now

violet meadow
#

(Not being a native English speaker, getting the players handbook and trying to understand THAC0 around 12 years old was an ordeal)

coarse mesa
#

You’re not a native English speaker 🤯

celest bluff
#

everybody loved 🌮

scarlet gale
#

Checking the other module that messes with it

molten solar
scarlet gale
#

Since just having drag ruler and template macros doesn't break it

molten solar
scarlet gale
#

ah cool

molten solar
#

it's when adding {animate:false}

scarlet gale
#

Speaking of, could you add that as info

coarse mesa
molten solar
#

idk lol

molten solar
violet meadow
celest bluff
scarlet gale
#

oh like the start and stop position, whether the move was animated or not

molten solar
#

Oh good idea

#

I'll just add the entire context object from the hook.

scarlet gale
#

nice

#

I was thinking that most common solution to getting out of a spike growth is to misty step away. Then I realized I need to take into account people getting in and out of the template without actually moving through it.

violet meadow
#

And then you have to deal with fly speed! 🙀😎

scarlet gale
#

Easy enough to just check the token elevation.

violet meadow
#

And burrow 👻

molten solar
#

Easy enough to just check the token elevation.

violet meadow
#

And polymorphing into a snake and slithering through

molten solar
#

Easy enough to just check the token slitheration.

violet meadow
#

Door macro!

molten solar
#

Apply macro directly to the door.

scarlet gale
#

Have the template macro make some doors around the edge of the template. Add a door macro to those and have the player get an effect when they open the door, so we can apply an effect macro.

molten solar
acoustic jasper
#

no :/ I'm using OverTime to force the actor to roll at the end of each turn. But I don't know how to extract DC from that for my macro.

scarlet gale
#

label=Hold Person (End of Turn),turn=end,saveDC=@attributes.spelldc,saveAbility=wis,savingThrow=true,saveMagic=true

acoustic jasper
#

yeah but I want my macro to toggle another effect when you fail this save

molten solar
#

does midi add targetValue to saving throws? 🤔

scarlet gale
#

Should be able to add macro="world macro name" to that list

violet meadow
#

And that will have access to who saved or not

molten solar
#

console.log(this.roll.options.targetValue)

#

(using EM)

violet meadow
#

Hmm I cannot check now but you can implement a patch to use EM with midi 🤔

#

Do you define Item in EM Zhell?

molten solar
#

in a saving throw? no

#

there is origin

violet meadow
#

Item.uuid?

molten solar
#

... in a saving throw?

scarlet gale
#

Origin has the info you'll need as long as the effect was setup as a DAE on the item.

molten solar
#

origin.system.save.dc

acoustic jasper
#

oh yeah I see it

molten solar
#
const target = origin.system.save.dc;
const {total} = await actor.rollAbilitySave("cha", {event});
if(total < target) return;
const e1 = actor.effects.find(i => i.label === "Slow");
const e2 = actor.effects.find(i => i.label === "Hold Person");
await e1?.update({ disabled: !e1.disabled });
await e2?.update({ disabled: !e2.disabled });
vast bane
#

isn't that the same as overtime?

#

isn't hold person already a premade?

scarlet gale
#

They're doing something else on top of hold person

vast bane
#

Shouldn't it be called something else then lol?

scarlet gale
#

¯_(ツ)_/¯

acoustic jasper
#

Hold Person is just an example 😉 I'm trying to make a Medusa Gaze "a creature that fails the save begins to turn to stone and is Restrained. The Restrained creature must repeat the saving throw at the end of its next turn, becoming Petrified on a failure or Ending the Effect on a success. "

vast bane
#

ok, so its not really paralyzed either

acoustic jasper
#

effect name is just a semantics here 😉

vast bane
#

well in midi qol they all do a bunch of different things to actors but yeah, so the additional effect you want to add is petrified when they fail for the third time?

#

I would instead mark them defeated

#

unless someones pulling out a greater restoration, thats essentially whats really happening

violet meadow
#

Just a macro on the overtime would do it too. Getting the save result, putting it up on a flag and checking again next turn

scarlet gale
#

A lot of options

#

EM means the macro is embedded

#

Instead of having to reference a world script

vast bane
#

yeah huge fan of EM cause it stores it like item macro

acoustic jasper
#

how to add macro on overtime?

scarlet gale
vast bane
#

which then makes oskar's project easier to share as a premade

violet meadow
#

Indeed. I Like the options.

summer frost
#

So, a possibly obscure question.
tposney's implementation of Melf's Minute Meteor turned the individual meteors into a Feature rather than an (inventory) Item.
I kept thinking the spell was failing because I kept looking for something on the Inventory tab.
Is there a compelling TECHNICAL reason that a Feature would be preferred?

molten solar
#

Doubtful

summer frost
#

That's what I thought - but figured there might be something that I was missing. Thx.

scarlet gale
#

I do the same thing when I make spells that give you special actions. But I also flag them to get auto favorited so they are more visible when using Tidy sheet.

violet meadow
#

Yeah I guess up to personal preference

scarlet gale
#

I also have started using Custom Character Sheet Sections to separate them out on features as well.

coarse mesa
#

Inventory is probably going to make them easier to find via Token Action HUD for a spellcaster fwiw

molten solar
#

yall dont use ephemeral items? 🤔

vast bane
#

new midi has...something new

molten solar
#

ive seen it

violet meadow
#

When needed. I like seein them on the sheet

molten solar
#

For something like Flame Blade, I just do an if/else depending on if the actor is concentrating on the spell.

scarlet gale
#

I tend to just warpgate features onto the sheet using effect macros for the on creation and on deletion.

violet meadow
#

Now you need only a dae if you have the item somewhere on your world, or a compendium

scarlet gale
#

That's cool

#

My actual game is on v9 still, but moving to v10 going to be so nice.

molten solar
#

because of Door Macro?

acoustic jasper
#

@molten solar await e1?.update({ disabled: !e1.disabled }); await e2?.update({ disabled: !e2.disabled }); - and if I want the effect to be removed and not disabled?

violet meadow
#

Our group was on hiatus. Now they are for some surprises.

The first of them, when they open the door we conveniently stopped just before last session

molten solar
#

e1.delete()

#

(or deleteDialog(), whichever you prefer)

violet meadow
#

Not that old!

molten solar
#

The trick is to ask about Midi in the wrong place. 🧹

violet meadow
#

Zhell is to blame!

molten solar
#

🤏

dry heron
#

Badger, I need your help again 😦

#

Findnearby is not accepting my Token reference

#

It claims it isn't a token type

#

Even if I pass iot just the ID of the Token as the function can interperarte the string, it returns null

vast bane
short aurora
dry heron
#

I passed the Token ID, will try the Uuid

#

Perfecto, thanks @short aurora 👍

#

I should have read the function better, my bad

dark canopy
#

looks around who me?

celest bluff
#

MidiQOL.findNearby ?

violet meadow
#

MidiQOL.findNearby?

molten solar
#

midiQOL.findnearby

violet meadow
#

case sensitive you...

molten solar
#

No I'm not

celest bluff
#

uses canvas token, doesn't work with documents

violet meadow
#

In the meantime it was solved 😛

#

MidiQOL.findNearby() v10.0.15 onwards accepts tokenUuids too 🤌

#

well... something is missing in that sentence 😄

molten solar
#

The uuids didn't change. Did they? 🤔

violet meadow
#

The Midi function did though to be able to use the tokenUuid too 🤷

acoustic jasper
#
dc = origin.system.save.dc;
roll = this.roll.total;
if (roll < dc) {
const e1 = actor.effects.find(i => i.label === "Slow");
const e2 = actor.effects.find(i => i.label === "Hold Person");
await e1?.update({ disabled: !e1.disabled });
await e2?.update({ disabled: !e2.disabled });
}
if (roll >= dc) {
    const e1 = actor.effects.find(i => i.label === "Slow");
    const e2 = actor.effects.find(i => i.label === "Hold Person");
    await e1.delete();
    await e2.delete();
}``` Ok the macro works great. But If I attach it to "trigger on saving throw" it will trigger on any saving throw no related to the effect. So I think if I'll use EM, but "Trigger at the end of turn" it will work fine - but I need to add roll request and don't know how.
violet meadow
#

What is last = arguments[arguments.length-1]; ?

molten solar
#
const dc = origin.system.save.dc;
const {total} = await actor.rollAbilitySave("cha");
if(total < dc) { etc etc etc
#

(please use const or let when you declare a variable)

violet meadow
#

Effect macro lastArg missed chance :/

molten solar
#

I don't know what arguments is 🤔

violet meadow
#

I think they were trying to implement some MidiQOL/DAE specific code to EM ?

molten solar
#

Oh that won't get you far. Surprised it does not error out. 🤔

violet meadow
#

Wait I thought that was just miscopy pasted !

#

Are last/dc/roll all defined in EM?

#

@molten solar lol

molten solar
#

huh.

#

So it's... a Function thing? 🤔

violet meadow
#

At last! The args[0] corruption has started

#

But how 🤔

acoustic jasper
#

well yeah - I think I'm lost - I need to make overTime macro - probably will be easier

molten solar
covert mason
#

How would I word proficiency in wisdom saves in an active effect?

acoustic jasper
#

@smoky smelt

violet meadow
acoustic jasper
#

yeah - I'm trying anything at this point

violet meadow
#

use backtics to put
@prof inside

#

So create a script macro.
Call it in the Overtime effect.
Did you check the MidiQOL readme?

acoustic jasper
#

Yeah I'm reading it right now - I think I can manage the macro, but I don't know how to input it in DAE

violet meadow
#

OK create the macro in your hotbar or macro folder.
And use its name in the Overtime effect to call it

acoustic jasper
#

(can it be an Item Macro)?

violet meadow
#

not in this case

acoustic jasper
#
saveAbility=wis,
saveDC=@attributes.spelldc,
macro="1234T",
label=Hold Person``` - so smething like that? (if 1234T is my macro name)?
#

Ok great, I'll work on it then. Thanks

violet meadow
#

In the macro you will be able to grab all the args[0] and the successes and failures of the OverTime saving throw will be included. You can apply any logic after grabbing the relevant results

acoustic jasper
#
    const e2 = actor.effects.find(i => i.label === "Hold Person");
if (args[0].failedSaves.length) {
    console.log("fail");
    await e1?.update({ disabled: true});
    await e2?.update({ disabled: false});
} else {
    await e1.delete();
    await e2.delete();
}``` - ok this one works with OverTime. When the actor gets Slow and succeds the effect ends. If fails he gets Hold Person. However there is some strange thing next - when save succeds on Hold Person the effect is removed... and then reapplied again.
vast bane
#

do you have cub/dfreds installed?

acoustic jasper
#

both

vast bane
#

are both trying to manage conditions?

#

that is typically the source of most toggle spams

#

turn off enhanced conditions in cub

acoustic jasper
#

still happening

#

ok I know nvm

acoustic jasper
#
    const e1 = actor.effects.find(i => i.label === "Slow");
    const e2 = actor.effects.find(i => i.label === "Hold Person");
    const e3 = actor.effects.find(i => i.label === "TEST321");
if (args[0].failedSaves.length) {
    {
        if (e1.disabled)
{
    //await e2.delete();
    await e2?.update({ disabled: true});
    await e3?.update({ disabled: false});
}
    else
    {
    console.log("fail");
    await e1?.update({ disabled: true});
    await e2?.update({ disabled: false});
    }
    }
}``` - ok It's working. 3 Stage macro that disables the previous stage and enables the next one on the list.
vast bane
#

Can you screenshot your active effect that goes with it?

acoustic jasper
#

i was testing it on Hold Person from Midi v10

vast bane
#

if anyones curious where I'm putting it in battletech, its going in the heat table application

acoustic jasper
#

but 1 problem - for some reason there is a conflict with both CE and CUB

vast bane
#

you could probably use this macro for exhaustions

#

well probably not actually

acoustic jasper
#

if you add a condition from CUB or CE (for example paralyzed) 2 things happens - with CUB the last stage wont fire (second goes inactive but the 3rd wont go active)

#

with CE the last stage goes active but the Paralyzed condition from second stage stays

#

dont know why this is happening

vast bane
#

are both active?

acoustic jasper
#

I've deactivated enhanced from CUB

#

but CE still had this problem

vast bane
#

and its still throwing the error?

acoustic jasper
#

its not an error

vast bane
#

weird

short aurora
#

How are you adding the effects that this thing is enabling?

vast bane
#

i think hes' adding all three but 2 and 3 are deactivated, which is probably problematic for midi

acoustic jasper
#

maybe

vast bane
#

are you using statuseffect or Macro.ce?

acoustic jasper
#

maybe tposney one day will add an ability to add effects to a OverTime like he addes macroCreateItem now

#

so there wouldnt be any need to put them all on inactive at once

#

"turn=end,
saveAbility=wis,
saveDC=@attributes.spelldc,
macro="1234T",
label=Slow" - I'm using this for OverTime Dae

#

1234T is the name of the macro

#

so if the save succeds the whole thing ends

#

if the effect fails - we're going to the next stage

fading scarab
#

what's the attribute key for adding a bonus to saving throws via active effect?

acoustic jasper
#

@fading scarab "system.abilities.dex.save" - for dex

vast bane
fading scarab
#

Ah, thanks. I knew it was in there somewhere.

molten solar
#

system.bonuses.abilities.save

#

that's the global one

acoustic jasper
vast bane
#

you can typically sus out the keys by typing part of it with the period, and pro tip, dae always shows 10 results, you have to mouse scroll to see the other 7:(unless theres less than 10 results that match)

molten solar
#

Also a pro tip: you have the console open anyway probably. Just log an actor.

#

for all those core keys 👌

vast bane
#

I rarely open the console for stuff like that

#

dae auto completes

molten solar
#

You never write macros.

vast bane
#

I don't even need to look up advantage remidners keys cause you can just type message. and get all of his keys in dae

molten solar
#

It was specifically for everyone but you lol

vast bane
#

its an active effect not a macro

molten solar
#

Everything happening here always involves a macro

vast bane
short aurora
#

@molten solar would a macro adjusting multiple effects be more "stable" if you threw them in an updateEmbeddedDocuments, instead of doing like Oskar did, finding and updating each individual effect? Or should it perform the same?

molten solar
#

A batch update is always preferred. The difference here is negligible.

vast bane
#

I'd imagine a better way would be Effect macro set to delete the first and add the second, and then delete the second and add the third

#

but I think his problem was EM doesn't work well with overtime?

acoustic jasper
#

there is a problem with this approach - for example if someone is concentrating on the effect

molten solar
#

Similarly, you can skip the disable or deletion, and just change all data of the effect. Just swap it out with a whole new set.

acoustic jasper
#

if you remove the first one, concentration ends

#

when you swap it, it's always connected to a concentration

vast bane
#

why would it end? that must be a v10 thing?

short aurora
#

I think it was out literally in last update

vast bane
#

concentration ending can end an effect, but not vice versa right?

#

I thought that was a long standing issue with concentration stuff

acoustic jasper
#

it can BUT even if it won't - still if you remove the first one

#

conc wont be connected to the second one

#

(at least I think it wont)

vast bane
#

instead of deactivating them, just rename the effect and change its image and keep it all one effect?

#

oh wait that won't work, cause we're in midi and each effect is automated

acoustic jasper
#

what? How could i keep them all in one if I want them to change 😉

short aurora
#

That's probably a missing flag. I am still confused how you are checking for 3 conditions in the macro. How are the other two applied?

vast bane
#

Krig they are all applied on cast

acoustic jasper
#

you're applying all 3 with one Item - 2 are inactive 1 active

vast bane
#

but two are set to disabled

acoustic jasper
#

all are OverTime

vast bane
#

I love the concept, I very much will probably use this for heat in battletech

acoustic jasper
#

so whenever you fail a save one is disabled and the other one activates

#

it's not mine - it's litteraly in 5e Medusa Gaze and was in some effects in 4e

vast bane
#

no I mean applying all the array of effects but only having one toggled and going in an order

acoustic jasper
#

yeah - I want to give to some monsters with diseases and curses

#

so the disease can get more severe with time

vast bane
#

for my idea, battletech behaves like magic the gathering turns, theres an ending heat phase, so I'll have a macro that reads the value of heat on the actor, and enable the effect based on that value

acoustic jasper
#

oh cool

violet meadow
#

@acoustic jasper you don’t need to put all 3 on the actor when first created. You can delete and add another in the macro.

#

You just need a flag to check how many failed saved there ve been and add/re,ove accordingly

acoustic jasper
#

but I would need to create each one via macro - I wanted to created a fast template - so I can apply it to many different effects

vast bane
#

Why would medusa's gaze be a concentration effect also, now that I'm thinking about it? Hold Person sure...but that other thing...

acoustic jasper
#

I this form I can create effects via DAE and just apply 1 macro to them (all I need to do is change the names)

vast bane
#

I could see your macro working for if they fail by more than 5 things too

acoustic jasper
#

yeah thats easy to add

vast bane
#

Poisoned if they fail, paralyzed if they fail by more than 5

#

Immune to poison if they succeed 0_o

acoustic jasper
violet meadow
#

From CE yes. You can either toggle them or add remove

acoustic jasper
#

but adding each effect to a new macro takes time and I cannot do it on the fly just before the session

#

ok wait - so I can create a repository in CE

violet meadow
#

All in one macro

acoustic jasper
#

and toggle them from there?

violet meadow
#

Yeah that too

#

Read about the DfReds CE API

#

Or just check the included compendium with functions for DFReds CE

vast bane
#

Beach worthy reading right thar

violet meadow
#

I didn’t write even one of the DFreds correct above 😅

acoustic jasper
#

ok it's quite easy 😄

violet meadow
#

It is isn’t it?!

acoustic jasper
#

the only problem is (again) if I want to retain concentration

#

secondary effect (created via CE) is not connected to the concentration anymore

violet meadow
#

You can dig through the concentration effect data and just change its origin I imagine

Edit: probably not origin but if you log the concentration data/system you will get it

short aurora
#

tposney did just write in the notes that multiple effects on different targets can all be ended to end concentration, so I imagine it should be possible to put them on all your effects, at least that's how I read this

* Small change to concentration processing. If the last active effect/template associated with the concentration effect is removed concentration will be removed. For example, if you bless 2 characters and then bless is removed from both of those characters, concentration will be removed from the caster.```
#

... why did I write that was js stare

violet meadow
#

Yeah concentration will stay up until the last of the affected creatures stops being under the influence of the effect

acoustic jasper
#

sadly it's not working like that

#

when I remove the first effect (the one that was active on cast)

#

the Concentration is removed with it

#

maybe it's because the other two were inactive

violet meadow
#

Yeah. Before removing it, access the concentration data and change its target (kinda)

#

Oh I am curious now, but I am in bed 🛌

acoustic jasper
#

oh and sadl

#

y

#

CE doesnt go well with OverTime

#

"saveDC=@attributes.spelldc"

#

CE can't get it

#

even if an effect on an item (on an actor) will call for it

vast bane
#

are you trying to do overtimes with dfreds premades?

violet meadow
#

Oh wait a sec. What does your workflow look like now?

#

Are you exchanging overtime effects with new DFreds CEs?

acoustic jasper
#

I've created a new effect on CE - then added overtime to it. Then created an effect on an item with CEmacro that triggered the first one

#

then an actor used the item on another actor to apply the effect - sadly CE wasnt able to get spellDC like overtime normaly does

vast bane
#

is there a way to make an effect apply if a save is failed, and then also another effect apply only if fail by more than 5?

acoustic jasper
#

if (args[0].failedSaves.length) {} - that's what I was doing all day 😄

violet meadow
#

Just keep in mind that there might be multiple targets 😅

acoustic jasper
#

ok I'll try to poke it some more tommorow. At least it's working - kinda 😄

violet meadow
#

Or that kind of workflow

acoustic jasper
#

yes - and the target is making that save at the end of his turn

#

So first roll - saved=nothing; failed=restrained. Second roll (at the end of a turn) - saved = restrained ends; failed = restrained ends but petrified begins.

violet meadow
#

Yep gotcha!

Hmmm should I check if I have enough battery on the potato laptop? 🤔

acoustic jasper
#

It's not that hard for a Gaze specificly, but if I want a template - where I could swap a creature (so DC changes) and add a third step (for example Restrained -> Paralyzed -> Petrified) thats where it gets tricky 😉

violet meadow
#

Well you could create the whole overtime effect programmatically in a macro on use. There you would be able to set the overtime dc to whatever you want

#

And it is the best kind of template actually 😅

molten solar
#

pops back in
sup, whatchall doin at this hour?

#

still medusa?

violet meadow
#

It’s more of a global phenomena by now!

molten solar
#

Oh, are we generalising?

violet meadow
#

Overengineered solutions to 5e edge cases. What a blast!

twilit storm
#

Hello!
I am having a problem with the module interface. There is no checkbox in the options that should, and I really don't know why that is.
I disabled all the other modules, but it's still like that.

vast bane
#

I'm just here so I don't get fined

violet meadow
twilit storm
#

Thanks, anyway!

vast bane
#

@pulsar apex did it work after the update?

pulsar apex
#

just finished the update. it got stuck on a loop trying to update some module that i didn't mean to install

#

it was the update

vast bane
#

link the actor on the map, or open the actors sheet in the side bar, click prototype, and then link the data there, and drag him out anew

pulsar apex
#

the artificer has class based reactions that midi was never prompting me for

#

so it was just waiting for the timeout

vast bane
#

so its all working now?

pulsar apex
#

yep seems so

vast bane
#

k we'll chalk that up to probably it being just needing to restart, and the update fixed it accidentally

pulsar apex
#

just a question btw. the full automation like this. do you ever run into trouble with features that require players to decide things before results of rolls are known?

vast bane
#

I don't use full automation

#

infact I suggest turning it all back to what you had before if thats what you preferred

#

I'm one of the weirdos that just use midi for effect transfers mostly, I prefer fast forward to be off and for the buttons to remain in chat lol

celest bluff
#

I try to write my code so there's only a few choices to make

vast bane
#

if you go through midi's settings, and you don't know what something is, you can snippet it here, and ask and I'm sure 10 of us will reply pretty quickly with the answer

pulsar apex
vast bane
#

Your reaction setting is set to show the attack total fyi, you can hide it on reaction prompts

#

it even hides it from the GM

#

I'm sure plenty of the guys in here will coax you along for midi syntax and macros and all that jaz, but if you want UI centric semi automation, I'm a huge fan of advantage reminder module, if you don't fast forward in midi, its far simpler to setup and it doesn't require a major in computer science

celest bluff
vast bane
#

yeah but the repos are quite shallow in depth in v10 atm, missing a midi srd replacement

celest bluff
#

then you can always look at the code and learn from it

#

Yeah I am slowly updating all of my stuff

#

while releasing new stuff

vast bane
#

Theres a small chance I might be on v10 around thanksgiving though! I get a week off from the table then and that might buy me the time I need to tweak all the v10 breakages

#

the newest midi has really got me longing for v10 now lol

#

I love me drag and drop simplicity

celest bluff
#

think i've written some artificer things, I did have one in my campaign for a tiny bit.

pulsar apex
#

alrighty well Moto thank you for all the help and I'm sure i'll be back here tomorrow to figure out why the hell blade ward isn't adding resistance like it should. but for now i'm going to bed

vast bane
#

in v10 system flags usually say system.dnd5e.something, midi flags usually have midi in the name.

pulsar apex
#

-_- well at least now I’ve got a place to start because I definitely used the midi flags

vast bane
#

thats for things like heavy armor master

#

I think we all make those mistakes, rookie mistake is all

coarse mesa
celest bluff
#

I'll test and see what I can do

#

Looking over the code I did remove pact slots

coarse mesa
#

I saw that lol... why all the sorlock hate 😆 The one Tim added into the Midi compendium is just Zhell's with a couple of extra lines at the start – so nothing new on the pact front

vast bane
#

I don't allow features with pact slots at my table so /shrug

celest bluff
#

if I remember it messed with keys

#

cause it doesn't follow a number format

coarse mesa
#

I swear I play my slots responsibly

celest bluff
#

I could see if I push it in afterwards, if that'll fix it

#

I don't have time tonight to work on it, I gotta design a couple maps for tomorrows session

#

last minute push lol

coarse mesa
#

All good, no pressure at all! Thanks

#

Hope your session goes well

celest bluff
#

should, my players are exploring a maze dungeon, which can be less of a maze if they remember to use the amulet they stole

#

Think i need to make my shadow creatures deadlier

river urchin
#

I've been searching for a while but i don't seem to find an answer, just people assuming what it does, so: what is fast forwarding something in midi?

vast bane
#

Its important to understand that auto attack and auto damage is not the same thing as fast forward. Those settings are the skipping of having to press the attack and damage buttons in the chat card.

river urchin
#

aaaah gotcha

#

thanks

river urchin
vast bane
coarse mesa
#

Playing around in v10 and I notice Wasp has this feature in Item Piles... I'm sensing Zhell's hand in it for some reason 🧐

violet meadow
#

Only if the merchant’s shop has a … Door

molten solar
#

But nah, IP always had a feature to execute a macro when interacting with piles, this is probably just an extension of that.

#

I don't currently use it 🙂

coarse mesa
#

It’s incredibly well thought out and feature rich, I take my hat off to Wasp… can’t wait to start using it properly

coarse mesa
#

Our beloved babonus has been granted a snippet by the Google algo lol

#

Step 1, implement the alchemist…

violet meadow
#

Back to the AD&D topic ... ban all but THE 4 CLASSES

river urchin
#

any alternative to dnd5e helpers that works with midi to calculate cover?

coarse mesa
violet meadow
#

Is it behind the patreon or not? 🤔

coarse mesa
river urchin
coarse mesa
#

Yeah that’s a bit misleading for v10… tposney will remove that reference eventually no doubt

#

Maybe he’s waiting for the Simbul module and will fix it then

vast bane
#

a few modules were lost in the v10 update, and the mod authors are all workin hard to bring them back to us, dndhelpers, active auras, and active token effects come to mind

#

midi srd to a lesser extent, cause you can just install a v9 and bring them over manually via copying the compendiums to the world.

violet meadow
#

Question for ones that hide Item Details on chat card from system settings and MidiQOL settings.

Do you think that creating a listener that would open a pop-up description on click (or render the Item Sheet directly) would help?
The click would be on top of the Item's Icon on the chat card created

#

And/or show description on hover 🤔

vast bane
#

I used to, but I trust my players to roleplay so they collapse by default and I don't hide GM stuff

violet meadow
#

Fair point

#

Maybe right click on Item name opens up Item Sheet

coarse mesa
#

We have them collapsed by default, but it is handy having it expand if needed

vast bane
#

my players police each other and shame anyone who peeks lol

coarse mesa
#

Are we getting a Bugbear’s Little Details module?

violet meadow
#

Nah I mean it doesn't make sense a module to do that. A PR would be enough 🤷

coarse mesa
#

Hey wasn’t there some chatter about another mystifying module a while back… any movement on that? Or was it dnd5e?

molten solar
#

There is a PR for the system for hiding details on unidentified items.

coarse mesa
#

Ah

#

I see Forien’s isn’t v10 yet

molten solar
#

OOOOOH what is THIS

kind cape
molten solar
#

Looks like a third-pact-caster in the future to me

violet meadow
#

that's some good sh#t

tepid remnant
#

Is there a shorthand way of getting the result of a previous roll/workflow? I'm looking to implement something that will take care of features like Ancestral Guardian Barbarian's Spirit Shield or the Interception fighting style where one actor rolls some dice and subtracts it from the damage of the previous role.

My idea is just to snag the result of the previous roll, set that to be the minimum result and alter the roll of the protection item to include that limitation to something like min(1d10, damage) and have it apply that amount of healing. Open to suggestions for better ways though. I didn't see a way to have an actor react to an ally getting hit using the reaction processing.

violet meadow
#

And the issue with workflows is that they won't be universally available, but instead on the local client, so you might not be able to tap into them.

#

Could get the info from the ChatMessage after the attack and use the "reaction" item to give back (with some caveats like what happens if you were supposed to stop some concentration damage)

vast bane
#

for interception couldn't you do a short duration DR?

#

reaction

violet meadow
#

Its on a different actor. The ally helps them

vast bane
#

yeah, I didn't say automatic reaction

#

as long as you aren't a fast forward fanatic, it could work right?

violet meadow
#

Ah yeah, I thought you meant a reaction processed by Midi

vast bane
#

fast forward breaks all the reactions anyway

#

if you auto apply damage just undo the damage and have the reaction fire if they didn't do it fast enough

tepid remnant
#

I have fast forward on but things shield, deflect missle, etc seem to work just fine. It just pauses for a moment waiting for the target to select a reaction

vast bane
#

yeah cause they target the caster

#

ask a lore bard how he likes fast forward in midi

tepid remnant
#

Haha that is a good point

vast bane
#

reactions from other players have no time to do anything

#

emboldening bond 2.0(reactive bond) another reaction that can't happen when fast forward is on

tepid remnant
#

Hmm I guess its a choice of functionality vs time saving. The fast forward rolls really feel like they speed things up and my group is used to it from using better rolls all the way until v9.

#

Decisions, decisions

vast bane
#

you could also reimagine the reactions that are for others by making EVERYONE have them

#

I'd just handle interception and reactive bond manually, but thats cause I can't even write a hello world script

tepid remnant
#

Yes I thought about that as well. My first idea was to have an aura that grants the reaction item, the target could then ask if its ok to use the reaction, they use it, and the aura would get turned off until the start of the source actor's turn. I think this is what thatlonelybugbear was suggesting actually.

short aurora
#

Someone did have a journey writing a world script to impose disadvantage on attacks towards allies here, so I imagine it is possible to fully automate, but I don't think there's any quick swap solution. I want to say it was aspect of the hawk or something related, but I can't quite remember

vast bane
#

wow, that new midi, if it infact works like that, active auras are gonna be nuts

scarlet gale
#

@violet meadow What would the update effect as midi-qol looks like?

vast bane
short aurora
#

It is, it's the concept of a thing. Being able to use your reaction on something happening to an ally.

kind cape
violet meadow
tepid remnant
violet meadow
#

@unborn star can you ping me here, or reply to this msg, with what you want to do for the AC based on HP, so as to be able to find it easier?

unborn star
unborn star
# violet meadow v10?

oh, no I haven't updated, since two of my friend lost their worlds doing that. Still rocking my trusty v9 - build 280

unborn star
violet meadow
#

But the worlds lost in not a common thing. Did they ask around in #1014592525161467974 ?
They would probably get sorted

unborn star
unborn star
scarlet gale
#

@violet meadow New issue, deleting the effect with midi doesn't seem to clear out the effect from macro.tokenMagic on it like a normal deletion would.

sudden crane
violet meadow
violet meadow
#

Were any also in the first place? Need to open up Foundry to remember how does this work

sudden crane
scarlet gale
#

There is one on the token

violet meadow
#

The Active aura or some other sort of modules combo, would need to create on the allies of the sourceActor a reaction item (must be using normal MidiQOL reaction workflow and probably make it a 0 reaction one).
If the attack triggers, the target would ask (verbally) the sourceActor OK to use?
If yes, they use it.
A macro onUse on that Item would take care of "consumption" of the correct token.actor's reaction

violet meadow
#

Can't you create a DFreds custom Mirror Image effect and do that easier? 😅

violet meadow
scarlet gale
#

Surely tokemagic has a function to delete effects off a token

violet meadow
#

yeah

#

documented in the repository

scarlet gale
#

TokenMagic.deleteFilters right?

violet meadow
#

sounds about right

scarlet gale
#

What do would I pass if it wants a placeable? Can I just give it the token?

violet meadow
#

yeah the token should be fine. You can provide a filterId too iirc

#

Otherwise it would delete all from the token

scarlet gale
#

yea

violet meadow
#

So I do remember that at some point in the workflow an Array of available reactions is being assembled.
If you could inject others in there based on a findNearby function logic, it could do it

#

Hmm but then you would need to create an ephemeral Item to roll, or use some socket to roll an item as another client or whatnot

jagged cairn
#

How would you guys go about making an effect that retrieves the last dice rolled by the player and uses that number as the modifier for the effects?

#

Mostly

scarlet gale
#

Wrap the roll in [[ and ]] in the effect.

#

If you want it to always be the same number

#

aka

#

[[1d4]]

sudden crane
jagged cairn
scarlet gale
#

Keep in mind you'll have different rolls between the two of those.

violet meadow
#

This discussion actually prompted me to try creating Reactive Damage effects utilising Hooks like midi-qol.RollComplete some actor update and moving away from what I was doing before with Active Auras.

#

Like damaging creatures who attack you within melee range after their attack

scarlet gale
#

Unless there is a more clever way, I think you'll need to sync up their values with an itemmacro.

#

@jagged cairn

jagged cairn
#

Lost me there, how would i go about that?

violet meadow
scarlet gale
#

Is there a @ thing for the item damage rolled?

violet meadow
#

@damage

scarlet gale
#

Have the item roll a no damage roll

#

then use @damage

sudden crane
violet meadow
#

You would need to roll the Item every session though like so hmmm

or actually every time you connect

(or you can't go wrong with an Effect Macro/or DAE trigger per creature's turn, that would check for an existing hookID saved in a flag on the creature and if none present with that ID, renew the Hook call)

jagged cairn
#

Ty!

scarlet gale
#

🥳

#

Figured there had to be something easier than a macro for that

jagged cairn
#

Very nice since they can see the number they rolled before applying the effect

violet meadow
#

Oh I think my Fire Shield just got much more straightforward to implement! testing!

scarlet gale
#

Couldn't figure out the token magic filter thing. So I just decided to make my own macro that's tagged as run as GM.

#
let actor = args[0];
if (!actor) return;
let effectName = args[1];
if (!effectName) return;
let effect = actor.effects.find(eff => eff.label === effectName);
if (!effect) return;
effect.delete();```
#
function deleteEffect(actor, effectName) {
    return game.macros.getName('Chris-DeleteEffect').execute(actor, effectName);
}
violet meadow
#

yeah why not 👍

scarlet gale
#

Less easy to share, but whatever