#MidiQOL

1 messages ยท Page 8 of 1

static wind
#

each swing, and should be from the first hit

tepid dock
#

Anyone know, when ammunition is pulled through a weapon, does Midi Overtime effects carry through also?

kind cape
kind cape
#

Alright, lets see what I can do

kind cape
#

Oh, V9 or V10? @static wind

static wind
#

Youโ€™re really doing it? Thank you so much ๐Ÿ˜ญ

kind cape
#

Yeah, its a fun little project ^^ Might need to have one of the guys in the polo channel look it over for V10, there are some changes, but hopefully it will be easy

#

Okay, so I got it generally working for V9, not sure how broken it will be on V10 ๐Ÿค”

#

Just to test it, here is how you do it for V9, most of it should be the same, code will be slightly different.

First add the following code as an ItemMacro on the item, using the little button at the top of the item sheet:

let item = args[0].item;
let macroPass = args[0].macroPass;
let actorD = args[0].actor;
let stackingEffectName = "Stacking";

const bonusDamageFlag = "bonusDamage";

async function createEffect() {

    let effectData = {
        "changes": [],
        "disabled": false,
        "icon": "icons/weapons/swords/greatsword-crossguard-blue.webp",
        "label": stackingEffectName,
        "tint": "",
        "origin": item.uuid,
        "transfer": false,
        "flags": {
            "world" : {
                "bonusDamage" : 0
            }
        },
        "duration": {
            "seconds" : 60
        }
    };
    await actorD.document.createEmbeddedDocuments("ActiveEffect", [effectData]);

}

async function incrementEffect() {
    const currentValue = getEffect().getFlag("world", bonusDamageFlag);
    if(currentValue < actorD.data.details.level)
    {
        await getEffect().setFlag("world", bonusDamageFlag, currentValue + 1)
    }
}

function getEffect() {
    return actorD.effects.filter(effect => effect.data.label === stackingEffectName)[0];
}

if(macroPass === "preAttackRoll") {
    if(getEffect() === undefined) {
        await createEffect();
    }
    await incrementEffect();
}

if(macroPass === "DamageBonus") {
    const currentBonus = getEffect().getFlag("world", bonusDamageFlag);
    return {damageRoll: "" + currentBonus, flavor: stackingEffectName};
}

Then go into the item details, and set the following near the bottom (image)

#

And I believe the V10 macro should be the following:

let item = args[0].item;
let macroPass = args[0].macroPass;
let actorD = args[0].actor;
let stackingEffectName = "Stacking";

const bonusDamageFlag = "bonusDamage";

async function createEffect() {

    let effectData = {
        "changes": [],
        "disabled": false,
        "icon": "icons/weapons/swords/greatsword-crossguard-blue.webp",
        "label": stackingEffectName,
        "tint": "",
        "origin": item.uuid,
        "transfer": false,
        "flags": {
            "world" : {
                "bonusDamage" : 0
            }
        },
        "duration": {
            "seconds" : 60
        }
    };
    await actorD.document.createEmbeddedDocuments("ActiveEffect", [effectData]);

}

async function incrementEffect() {
    const currentValue = getEffect().getFlag("world", bonusDamageFlag);
    if(currentValue < actorD.details.level)
    {
        await getEffect().setFlag("world", bonusDamageFlag, currentValue + 1)
    }
}

function getEffect() {
    return actorD.effects.filter(effect => effect.label === stackingEffectName)[0];
}

if(macroPass === "preAttackRoll") {
    if(getEffect() === undefined) {
        await createEffect();
    }
    await incrementEffect();
}

if(macroPass === "DamageBonus") {
    const currentBonus = getEffect().getFlag("world", bonusDamageFlag);
    return {damageRoll: "" + currentBonus, flavor: stackingEffectName};
}
#

But I will need you to test it @static wind

vast bane
kind cape
static wind
static wind
kind cape
#

Hmm, did you use the second code block?

static wind
#

yup

kind cape
#

Could you change line 3 from:
let actorD = args[0].actor;
to
let actorD = args[0].actorData;
and then try again

static wind
#

ok

kind cape
#

Alsoo

#

This will only work when triggered from an attack roll, it will not work when triggered from the macro bar or the "execute macro" button

static wind
#

yep, I'm using the item

#

another error now, I think

kind cape
#

Gimme a hot minute, I will boot up my V10 instance and get this working! ๐Ÿ˜› Thought I could get away without that

static wind
#

i'm giving you too much work ๐Ÿ˜ญ

#

its not needed

kind cape
#

Its fine, I do a bunch of programming in my free time, don't worry ๐Ÿ‘

static wind
#

thank you thxblob

kind cape
#

Try this one @static wind

let item = args[0].item;
let macroPass = args[0].macroPass;
let actorD = args[0].actor;
let stackingEffectName = "Stacking";

console.warn("Actor", actorD);

const bonusDamageFlag = "bonusDamage";

async function createEffect() {

    let effectData = {
        "changes": [],
        "disabled": false,
        "icon": "icons/weapons/swords/greatsword-crossguard-blue.webp",
        "label": stackingEffectName,
        "tint": "",
        "origin": item.uuid,
        "transfer": false,
        "flags": {
            "world" : {
                "bonusDamage" : 0
            }
        },
        "duration": {
            "seconds" : 60
        }
    };
    await actorD.createEmbeddedDocuments("ActiveEffect", [effectData]);

}

async function incrementEffect() {
    const currentValue = getEffect().getFlag("world", bonusDamageFlag);
    if(currentValue < actorD.system.details.level)
    {
        await getEffect().setFlag("world", bonusDamageFlag, currentValue + 1)
    }
}

function getEffect() {
    return actorD.effects.filter(effect => effect.label === stackingEffectName)[0];
}

if(macroPass === "preAttackRoll") {
    if(getEffect() === undefined) {
        await createEffect();
    }
    await incrementEffect();
}

if(macroPass === "DamageBonus") {
    const currentBonus = getEffect().getFlag("world", bonusDamageFlag);
    return {damageRoll: "" + currentBonus, flavor: stackingEffectName};
}
kind cape
#

Nice, just had to find the right replacements for V10 ๐Ÿ˜…

static wind
#

omg thank you so much

kind cape
#

There are 2 things you might want to adjust:
"icon": "icons/weapons/swords/greatsword-crossguard-blue.webp", to set the image of the effect that is used for the stacking AE
let stackingEffectName = "Stacking"; to set the name of it

static wind
#

ok!

#

thank you very very much

errant gull
#

Is there a way to use an NPC ability that will automatically target only the NPC's enemies (ie player characters and their allies) within a 30 foot radius?

spice kraken
#

I've never got this to work in v9 but you can try this

errant gull
#

Yeah, I'm using v9 right now, it's not working.

spice kraken
#

If that doesn't work and you don't auto apply damage, just do this and center it on the caster

kind cape
#

Shouldn't it be 30 feet enemy?

spice kraken
#

You don't want enemy because the enemy of enemies is ally

#

If I understand it correctly

kind cape
#

NPC's enemies (ie player characters and their allies)

#

Is what was said ๐Ÿค”

errant gull
kind cape
#

With that being said, make sure this is on @errant gull

spice kraken
kind cape
#

Otherwise it will definitely not work

errant gull
#

Oh, interesting. You're right. It does target its own allies, but not itself. That's at least half-way there, I can dig it.

spice kraken
errant gull
#

I think you're right.

spice kraken
kind cape
#

Might be you are right, can't be bothered testing that one right now as its just changing the dropdown if its opposite ๐Ÿ˜›

spice kraken
#

Yeah, plus the whole 30 | Feet | Enemy doesn't even work for Gambet and me on v9 anyways

#

Might be a v10 only thing

errant gull
#

That's a bummer. I'm still waiting for like 30 modules to update to v10, haha.

spice kraken
kind cape
#

Internet is a bit funky today

#

Trying to upload a video of it working ๐Ÿ˜…

violet meadow
spice kraken
#

Nope

violet meadow
#

I guess token's disposition is set up?

spice kraken
kind cape
#

Finally!

spice kraken
#

My midi settings

violet meadow
spice kraken
#

In combat or out

violet meadow
#

shouldn't matter tbh iirc

spice kraken
#

No dice

violet meadow
#

does Ally work?

spice kraken
#

Let me try

spice kraken
kind cape
#

Could you screenshot your workflow tab in the settings? The exported settings file is hard to quickly parse ๐Ÿ˜…

violet meadow
# spice kraken Nope

well damn, I am still away and just switched off my remote instance. I could check tomorrow too, if fotoply doesn't come up with a solution ๐Ÿ˜…

kind cape
#

There's the issue! Auto target for ranged target needs to be on ๐Ÿ˜›

spice kraken
#

Ah there we go

#

For some reason I thought that was similar to late targeting

#

@errant gull ^^

kind cape
#

Tbf, its not the best named one, I had it off for the longest time because I didn't understand it either ๐Ÿ˜…

spice kraken
#

I'm assuming the Special is the same with templates and doesn't target the source actor

#

Yup

#

Well that's gonna make thunderwave (or clap, idr) easier to manage, haha

errant gull
#

Haha

#

That instantly solved the problem.

#

Thank you!

vast bane
violet meadow
#

I automate everything and in game I have one headache less. Now before game its a different story, but that's expected ๐Ÿ˜„

stoic seal
#

Same here

spice kraken
vast bane
#

The dice tell the story, not me.

#

If you want to automate damage AND fudge, just install DF manual rolls, theres a setting the DM can turn on that hides the rolls being manually entered for himself. It works with midi, has issues with a few other modules though.

spice kraken
#

I fudge in favor of the players. Balance is the hardest thing for me since I usually make up everything on the spot based off what the players choose. Sometimes the monsters are definitely too hard so I tick away more hp than what they deal

plain forum
#

what is syntax to add more sizes in this?
"@target.traits.size".includes("sm")
for example ("sm","med") does not seem to work

#

activation condition btw

spice kraken
#

No clue if this will work but try ['sm', 'med'].includes('@target.traits.size')

plain forum
#

will do

plain forum
unreal wind
#

so, I seem to have an issue with Toll the Dead. When I click the icon with a target selected, I get an exception:

#

not sure if this matters but spells were imported a few weeks ago from DBDBeyond importer if htat matters

spice kraken
#

I would ask in mr. primates discord if the macro was also made from there

unreal wind
#

is he in League, or does he have is own discord?

bold rockBOT
#
Community Dev/Creator Discord Servers

Foundry VTT's broader community is home to a number of awesome developers and content creators, many of which have their own communities to offer support for their modules, systems, and Foundry content. Check out their Discord servers below.

spice kraken
#

His own

unreal wind
spice kraken
#

Well if the spell was gotten from the importer and it had the macro, there would be the best bet of getting help

vast bane
#

That is the version that had the dex tie breaker all screwed up

#

As for Toll the dead...bruh its Midiqol, trust in the Tposney.

unreal wind
#

well crap.. I can update it. says the version is undefined

#

is it safe to uninstall the game system and then reinstall?

vast bane
#

back up your world before updating systems I believe

#

you can install over top with a manual manifest

#

but backup the world just incase

unreal wind
#

the foundryuserdata directory or below that?

vast bane
#

no no no no no no

#

go to dnd5e's published system page on foundry, right click the 1.6.3 install manifest link and copy url

#

click install system inside foundry, paste the manifest into the bottom here:

#

backup your world

unreal wind
#

yes thats the part I was questiong

vast bane
#

oh lol

unreal wind
#

this is installed on a remote server so..

vast bane
#

I dunno how to backup remotely, but I bet if you asked @bold rock he'd have a tip or two about backing up your world.

unreal wind
#

I jsut need to know the dir as i THINK I used the defaults

vast bane
#

Well when a moderator catches it he will answer lol

unreal wind
#

gratz

vast bane
#

I always just backup the whole userdata folder minus the modules sub directory

#

I duplicate it, and delete the duplicates modules folder cause I don't need 1000 copies of jb2a's animation database

ancient flare
#

Hopefully simple midi-qol question. Can I set midi to show DSN rolls to me as a GM, but only display "hit or miss" to the players? I'm trying to avoid my players from "meta-ing" dice rolls from the creatures.

unreal wind
#

ok, I think I found the issue, or at least the root of the issue. When I compare the MidoQOL Sample Items/Spells version of Toll the Dead, I see BOTH versions have this On Use Macro but can't find the actual macro so I assume that's what is failing. Same with Spiritual Weapon, Flaming Sphere, etc. I assume none of those would work in that case if ItemMacro can't be found:

vast bane
#

are you on v10?

unreal wind
#

no v9

#

Item Macro is installed though

vast bane
#

yeah whats your error/problem then it definitely works on v9

#

what isn't working about toll the dead?

unreal wind
vast bane
#

versions of dae, item macro, and midi?

#

and what are you using for saves?

unreal wind
#

hang on, I tend to update modules frequently

vast bane
#

you shouldn't unless something is broken imo

#

you want stability, they aren't offering 7 cupholders with every module update

#

Does the character in question have a class level? or is it an npc?

unreal wind
#

MidiQOL is 0.9.76
DAE is 0.10.28
ItemMacro is 1.6.0

#

character built and imported with the DNDBeyond importer

#

with Midi, I am going for a partial automation, leaning on the less automation side

vast bane
#

drag out one of the dnd5e starter heroes that is a cleric or wizard and give them toll the dead and see if it works

unreal wind
#

sure.. hang on a sec

vast bane
#

I bet your problem is the importer

#

but your midi is behind on version, should not be an issue

#

if the actor has a broken class setup that could be an issue

unreal wind
#

ok, that spell is not on the default actor cleric's list, so I pulled from DND Spells Compendium entry

vast bane
#

nope your problem is a bad setup

#

that is probably fixed in midi .79

unreal wind
#

if I need to, I can just as easily delete that one actor and reimport

vast bane
#

It is suppose to be pre damage roll, not after effects

#

you likely have a version before it got fixed

#

cause your midi is 3 versions behind mine

unreal wind
#

fix?

vast bane
#

the very first line of the macro says it needs to be done pre damage roll

#

so where you saw Item macro--- after active effects, change after active effects to um....

#

I dunno if your version has pre damage roll or before the damage roll

#

Its at the bottom of the details on toll the dead

#

you have a different sheet UI than me so mine looks different than yours

unreal wind
#

perhqps this will help

vast bane
#

yeah at the bottom there, change after active effect to before damage roll or pre damage roll

unreal wind
#

should I upgrade the module as well?

vast bane
#

he changed the wording of the drop downs around the time of your version so I dunno if its before or pre for your drop down

#

probably

#

I don't even know if I'm on the newest lol

#

but the only thing breaking toll the dead is that drop down

#

its firing too late in the workflow

#

in my version of midi it comes packaged as before, not after so he clearly fixed it between .76 and .79

unreal wind
#

well.. PERHAPS all the updating I SAID I was ddoing was on my local v10 testing version...lol

#

hmm no such luck

#

wait... hang on a sec.. seems midi did not actually update

#

yea still failing

vast bane
#

can you show me your items detail page again?

unreal wind
#

the spell details?

vast bane
#

cause I didn't say updating would fix it, I clearly said changing it to pre damage roll would

#

updating midi does not change any sample items already in play

#

you need to change toll the deads item macro to fire before damage roll, its literally a drop down right in that image

unreal wind
vast bane
#

disable all but midi, dae, socketlib, and libwrapper and find the culprit

#

wait a minute

#

thats not midi's toll the dead

#

no way would tposney put flavor in the chat message

#

is that a beyond imported item?

unreal wind
#

yep

#

I did test the midi version as well

vast bane
#

delete it, navigate to Midi sample items, drag his toll the dead to the sheet

unreal wind
#

but taht was early on in troubleshooting

#

good news it's a different result.. bad news it's still an error

vast bane
#

link the exact same thign you just did to me

unreal wind
#

top is original error, bottom is with Midi version

vast bane
#

find the culprit starting with midi, dae, socketlib, and libwrapper, and before you start this, make sure you dragged out the right toll the dead

unreal wind
#

MidiQOL Sample Items -> Spells -> Toll the Dead

vast bane
#

do you have Better rolls, roll groups, Minimal rol enhancements, or Ready Set roll installed?

unreal wind
#

hang on< I THINK I disabled all of those but let me check

#

none

vast bane
#

what are you using for saves in midi?

unreal wind
#

I belive I had better rolls for 5e but removed

#

you want the saves config settings?

vast bane
#

what comes up for a prompt?

#

the macro only works with automation so if its set to none...that'd do it

#

Monks Token Bar, LMRTFY or midi's built in prompt

unreal wind
#

I seem to think someone else was having an issue with this earlier today wit their settings

#

I have Monks and LMRTFY

#

and its using Monks

vast bane
unreal wind
vast bane
#

I would start find the culprit and try with just midi/socketlib/libwrapper and work from there ttill it breaks

#

having both lmrtfy and mtb installed is redundant, pick one, disable the other

unreal wind
#

thanks, I will likely come back to this later as so far as I know this is the only spell that breaks

#

and I hve a game Friday and lots to do in the little time i have left

#

I appreciate all the assistance

vast bane
#

can you paste the item macro here thats in toll the dead? click item macro at the top of toll the deads entry

#

or snippet it

unreal wind
#

im not sure I underatant what you mean

vast bane
unreal wind
#

OH

#
    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;
}```
#

I had no idea tht was up there.. thanks

vast bane
#

are you targetting someone when you roll?

unreal wind
#

yes

vast bane
#

what are you targetting?

unreal wind
#

I do have fast forwward rolls turned on though

#

just in case

#

a goblin

#

so normal npc

vast bane
#

srd goblin or an imported goblin?

unreal wind
#

great queswtion.. it's one of the top down goblins

#

so not SRD

vast bane
#

eh dnd5e's goblin is a top down

#

yeah I dunno, I think its a module conflict

unreal wind
#

yea it looks like args is empty

#

so the first line is failing

vast bane
#

Better Rolls for 5e, Minimal Roll Enhancements for v9

#

or you have roll automation OFF for midi

#

show us your actual attack workflow

unreal wind
#

I don't have either of the roll ehancements

vast bane
#

do you even have midi automation on?

unreal wind
#

I do NOT have roll's on.. buttons to the chat cart and the users click thos

vast bane
#

that is probably it

#

you aren't even using midi

#

You are crossing the stream with vanilla dnd5e lol

#

Thats a first

short aurora
unreal wind
#

yes it's empty I did a console.log(args)

vast bane
#

if roll automation is off, then midi is not overriding the roll

#

therefore theres no args

unreal wind
#

at the beginning of the item macro script

vast bane
#

What do you have here:

unreal wind
#

yes

#

thats on

vast bane
#

yeah you gotta have a roller installed

short aurora
#

They also said they fast forwarded rolls earlier, figured that was a prerequisite. Let me just find out which module actually populates args...

vast bane
#

there are a few other rare ones out there too, just br and mre are the two most noteable conflicts

#

midi does args

#

Joe, show us your attack in chat

unreal wind
#

for an attack spell? the chat card?

vast bane
#

for toll the dead

unreal wind
#

nothing gets to the chat

vast bane
#

just show us the actual chat when you roll the item

#

whaaaa

unreal wind
#

nope

short aurora
#

Is there a red console error message when you roll the item?

vast bane
#

yes hes linked it

short aurora
#

Oh right, mb

vast bane
#

change your midi setting for saves to

#

and what version of monk's token bar do you have installed

#

oh actually, do you even have monk's token bar installed? cause that would throw THAT exact error I think

#

if your midi settings was pointing to a save module that wasn't installed or enabled

unreal wind
#

yes I do have Monks

vast bane
#

Monk's Token bar right? cause he has like 15 modules named monks

unreal wind
#

yes

vast bane
#

what is the version of it, and then try to change it to chat message instead like my image above and try to throw the save

#

or rather roll the tolll the dead

unreal wind
#

yes, set to Chat message, same thing

vast bane
#

you have a bad install, find the culprit till you find the module screwing up midi

#

have you tried sacred flame?

unreal wind
#

hmm I don't see sacred flame in midi

short aurora
#

For a quick check if it's Midi, you can also just enable Midi QoL, socketlib and libwrapper. I did note you had an error message from blood n' guts which is way old

unreal wind
#

or you do mean SRD?

vast bane
#

just use basic sacred flame from srd

#

not imported

unreal wind
#

sacred flame sends to chat, I roll the damage, I roll the save on the chat card, and the damage is applied

vast bane
#

can you show us the chat entries?

unreal wind
#

I have require target turned on, and late targetting on

#

but in all these cases, I do have a single target selected withhin range

vast bane
#

only thing I got left is install find the culprit and follow it till it breaks with all modules, toll the dead definitely works from midi sample items

#

you got something messing with it

unreal wind
#

yep... will just end up messing with it after the weekend

#

fortunately, the sorcerer spells all seem to work and a quick check of the other spells for the cleric appear to work fine

vast bane
#

I think what will break is any automated macro item like somethign from midi srd or midi sample items

#

but also, find the culprit is pretty fast

#

you can immediately find out if its a module by disabling all but midi and its dependencies and firing the spell

#

Are you rolling it off token action hud?

unreal wind
#

no, off of the char sheet

vast bane
#

vanilla sheet?

#

no you have a sheet module I remember

#

yeah all signs point to module conflict, thats your next step to solving it

unreal wind
#

soooo ummm the main reason why I am delaying Find the Culprit is I need to take time to remove all the modules I tried and disabled but did not remove

#

thanks

vast bane
#

find the culprit streamlines turning on and off everything and it remembers what you had on/off before you started

#

when you activate it, it asks you what you want to turn on for initial test, then you get refreshed page, try the spell, if it succeeds, say no, and it slowly adds things in till it breaks, when you finally say yes, it will then revert you to the modules you had enabled before you ran find the culprit

#

if it breaks with just midi, socketlib, and libwrapper then you are in unknown territory

#

Find the culprit is a module btw, incase you aren't connecting the dots

unreal wind
#

its sleepy time for me. thaks for all the help Moto

vast bane
#

What would I put in an activation condition if I wanted it to roll other damage if the source actors health is above 50%?

#

Trying to setup a swarm creature

violet meadow
vast bane
#

@violet meadow I wanna pull off the swarm mechanic where they do 4d4 at full health, but 2d4 at half, by making their main attack do 2d4, and if their activation condition is true, do an additional 2d4 in other damage, is that possible? Have activation condition be something like full health?

#

does midi's wounded status icon apply a flag?

violet meadow
vast bane
#

oh I was trying to find a flag for it lol that works too

#

That works perfectly

violet meadow
vast bane
lean holly
#

Did midi change a flag?

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'total')
[Detected 1 package: midi-qol]
    at eval (eval at callMacro (workflow.js:1446:15), <anonymous>:113:27)
    at async Promise.all (index 0)
    at async Workflow.callMacros (workflow.js:1375:13)
    at async Workflow._next (workflow.js:893:7)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
    at async Workflow.next (workflow.js:261:10)
upbeat wedge
#

Is there a way to manage feats like Lucky where a second roll is made only if the player wants, but has to decide prior to the result of the first roll?

fallen token
#

If you use that, it can pop up a dialog on each d20 roll that it applies to. The pop up will show you the result of the roll and ask you if you want to use Lucky. Might get annoying for the player since they'll get a pop up so often, but it's doable

upbeat wedge
#

OK, thanks I will play with it and see how it works

fallen token
opaque current
#

Is this horrendous alignment coming from core Foundry or something Tim would need to fix ๐Ÿค”

fallen token
#

although... the title could probably be shortened if we're being honest

#

always bothered me why it was so "wordy"

opaque current
#

Well it was literally just DAE, but then I think the intention was to not confused it with core Active Effects

#

But frankly, DAE would be fine.

fallen token
opaque current
#

The title seems to just be the name. Even if it was dropped onto a second line - why the centre alignment?!

fallen token
#

looks like some tab styling CSS is poking through

.tabs .item {
  text-align: center;
}
opaque current
fallen token
#

something should be added to this CSS selector so the text isn't centered

.package-configuration aside.sidebar nav.tabs .category-tab
opaque current
#

Reported as a bug. Kim can figure it out.

#

In the meantime I will live with my manual adjustment. Until DAE updates lol

upbeat wedge
violet meadow
lean holly
#

It used to work, though it has been a month since the player tried to summon their fire spirit.

violet meadow
#

Macro?

lean holly
violet meadow
lean holly
#

No, V9

#

I wont upgrade to V10 until all my macro makers, (yourself included) have V10 macros lol

violet meadow
#

Oh that's a big one.
I will take a look when I am on my pc
There is an id in a canvas.tokens.get(id) call that seems not defined but I cannot check it better now

unreal wind
#

unfortunately, there is now a non error scenario in Toll the Dead where the damage is not accurate. when I ckick the "Damage" button in the chat card, it always rolls d12 regardless of the target's health total

violet meadow
unreal wind
#

The Midi sample one IIRC.. Moto was helping me last night and we did a lot of things

#

deleted old copy and pulled from the midi samples.. I don't have time to test in depth, but I THINK it looked right.. will mess with later

violet meadow
#

I will take a look too later

unreal wind
nocturne frigate
#

How can i disable this reaction pop up in Midi?

violet meadow
lean holly
spice kraken
#

Or change the details tab action type to reaction manual or damaged, whatever is relevant

#

I personally would do reaction manual and tell the player to remember they have it

nocturne frigate
#

So to OFF to disable it?

lean holly
#

Or manually change all your reactions abilities to Reaction Manual instead of Reaction.

#

IE go to absorb elements, and edit the item > details > activation cost > Reaction manual

nocturne frigate
#

I see. Is there a way to allow to roll damage even if the attack wasn't rolled?

torpid kestrel
#

I'm trying to code a feature in 5e for Inspiring Leadership. My first pass was to add an item macro that I hoped would add temp hps to all targeted tokens (I'll add the correct calc for determining the amount of hps later). However this only applies the hps to the owned token. I originally posted this in the 5e board, but was told it couldn't be done. So I'm now thinking it will need to be done through midi qol. Can someone point me towards a couple of samples where 1. an action is being applied to all targeted tokens. 2. Temp hps are being applied? I'm very new to foundry and appreciate all the help being provided for me to learn. for(let tok of canvas.tokens.controlled){
await tok.actor.update({"data.attributes.hp.temp": 10});
}

opaque current
#

can't you just do this with base midi

spice kraken
#

Yeah

lean holly
#

Instead of a macro, turn it into a spell of range (what ever like 30ft) healing temp HP.

spice kraken
#

And this

#

I don't auto add damage so you can manually decide who not to give the temp hp for if you have more than 6 people there

opaque current
#

I went with this and assumed they would be targeted

#

Rather than AOEd

spice kraken
#

Let me test

opaque current
#

@torpid kestrel See our comments above โ˜๏ธ

spice kraken
#

Yours didn't work for me

opaque current
#

Works fine for me

#

rekt

spice kraken
#

Can you export and dm the item to me?

opaque current
spice kraken
#

Are you manually targeting?

opaque current
#

Yes

spice kraken
#

Ah that's why

#

I was using the auto target thing

#

Targeting for me worked too, but wanted to speed that up

opaque current
#

But what if there are too many allies nearby?!?!?

spice kraken
#

Then they don't apply the healing damage

#

Or undo if you do auto apply

opaque current
#

Fair enough

#

TBH that is a really strong feat. My players are level 3, and it adds a free 6 temp HP to the entire party after every short or long rest.

spice kraken
#

No one has it in my game so I don't have to worry about that

lean holly
hazy urchin
#

Hello party people... im trying midi qol for the first time and i am having a weird issue where the HP update card, which shows as the whitish "only for gm eye" card, is actually visible for all players. If i delete it with my all powerful gm ability, it disappears from the gm chat bar, but stays in the player chat bar. Help? my players screen currently looks like this ๐Ÿฅบ

spice kraken
#

So you want this (left player, right gm)

hazy urchin
#

yup

spice kraken
#

Switch your chat roll to Private GM Roll

#

Players will still see the apply damage section if they are attacked

#

Or rather any actor they own

hazy urchin
#

oh this is happening when i am rolling as the GM and i have private GM roll activated

#

but it is showing up in the player screen regardless

spice kraken
#

v9 or v10

hazy urchin
#

and when i try to delete, it goes on the gm screen but stays on the player

#

v9

spice kraken
#

Can you export your midi settings and dm them to me

hazy urchin
#

2 secs

spice kraken
#

And just to make sure I'm on the same page. If the token on the right (has no player ownership) attacks the zombie (also no player ownership), the barb (is player) will see damage application option in chat?

torpid kestrel
hazy urchin
spice kraken
#

You probably have a module conflict

hazy urchin
#

i have an enemy npc attack a pc. the damage breakdown/assign card shows up on both screens

spice kraken
#

That's supposed to happen

#

Players will see the damage application card show up for any token they own

hazy urchin
#

but for all players?

spice kraken
#

Let me check for other players

opaque current
#

Do they have some permissions for other PCs?

hazy urchin
#

and it doesnt delete when i delete it as gm, stays put

#

limited view

#

only 1 owner

spice kraken
#

Same happens for my game but it's not an issue. As long as they don't have permissions, they can't apply the damage

hazy urchin
#

its more a tidy issue i suppose lol

spice kraken
opaque current
#

I just don't use player damage cards tbh

spice kraken
#

Same with if players are attacking npcs

hazy urchin
#

yeah see for me when i have logged into other players screens, they would see naafeh's damage calc

#

going by your example

spice kraken
#

So for you, player attacks npc and they still see damage application card?

hazy urchin
#

yup

spice kraken
#

Let me check with your settings for that

#

Doesn't happen for me with your settings

hazy urchin
#

f-ing weird...

spice kraken
#

Disable all modules except midi and the dependencies and try

hazy urchin
#

yay... i hate this bit of foundry ๐Ÿ˜…

spice kraken
#

Easiest way is use find the culprit

#

Click midi, select yes, and then test

hazy urchin
#

i know, ok. i'll have a look into that

#

as you've been really helpful, can you help a newb with 1 final thing i just realised?

spice kraken
#

Sure

hazy urchin
#

never mind, that 1 i worked out

#

up cast spells issue

spice kraken
#

Chances are you had skipped resource consumption option I'm guessing

hazy urchin
#

yup

#

so i have only midi, lib and socket lib active. i'm still getting that damage output card appearing and getting stuck

ancient flare
#

I asked this question last night and it kinda got buried. Wondering if someone can help with hopefully a simple midi-qol question. Can I set midi to show DSN rolls to me as a GM, but only display "hit or miss" to the players? I'm trying to avoid my players from "meta-ing" dice rolls from the creatures. Picture of GM workflow, rolls are done as public from dice tray.

lean holly
#

What you have looks right. Show Hit/Miss to players then damage total on hit.

ancient flare
#

yup, and it shows that to the players...but it also shows the 3D dice roll. I don't want them to see that

lean holly
#

Then I think you want to check the box just under the hide details

#

"Hide GM attack/damage/saving throw 3D dice rolls"

#

As long as you merge your cards that is

ancient flare
#

I will try that again. I tried that route first and I do merge cards

#

So, selecting hide does in fact hide the dice..but hides it from me too. I still like seeing the virtual clickity clacks....(dice goblin - yes)

#

Is there a way for it to hide the dice from just players?

vast bane
#

You can turn off dice from the DM, worst case scenario.

ancient flare
#

Ok, so Iโ€™m guessing midi doesnโ€™t facilitate what Iโ€™m looking for-die rolls initiated by GM, visible to GM, not visible to players, but still displays the card indicating hit/miss to the player.

kind cape
#

Is there a way to use DFreds/MIDI/MonksTokenBar or similar to request a saving throw from an unowned token? I have a macro that works great when I use it, but when my player uses it it does not trigger the saving throw. I suspect its due to permission issues ๐Ÿค”

Case: My player has a weapon that on hit triggers a saving throw on the target.

lean holly
kind cape
lean holly
kind cape
#

I think I found it, sneaky setting!

#

Let me just test first, but on my first read over I did not see it ๐Ÿ˜…

#

Yep that fixed it, thanks! ๐Ÿ˜„

lean holly
#

someone here had to screen shot it for me, so I feel ya lol!

kind cape
#

Now to make the effect from DFreds apply ๐Ÿค”

lean holly
#

freeze has a macro in macro polo which does contested rolls and on failure applies dfreds.

#

you may be able to edit that for yourself.

kind cape
#

Hmm, seems like a good starting point

lean holly
#

V9 anyway, not sure about V10

kind cape
#

Most automation is on V9, me included ๐Ÿ˜›

kind cape
#

I don't understand this, looking at the code for DFReds this should work, but it doesn't ๐Ÿ˜ญ

#

Hmm, I think I figured out why, the macro is not calling my callback function for some reason ๐Ÿ˜ข Even though it is on the DM

vast bane
#

midi does this all the time

#

what on earth are you doing in the macro to break one of the most basic parts midi does

#

saving throw on hit? Look at the giant spider stat block

#

Are you trying to run a mtb macro via dae on hit? If so make sure the players have permissions to the macro

kind cape
vast bane
kind cape
#

Currently trying to figure out what kinda item I need to pass to MidiQOL.completeItemRoll, and wether I can use a JSON item, so that I can just create it dynamically and use the exisiting MIDI flow

#

But my macro already works, just for GM only ๐Ÿ˜ข

vast bane
#

If you need contested rolls, this is what I use as an item macro for contested automation:
Shield Bash

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:ath'
},{
    token: target,
    request: `skill:${skilltoberolled}`
},{
    silent:true, 
    fastForward:false,
    flavor: `${target.name} tries to resist ${attacker.name}'s shove attempt`, 
    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('Prone', target.actor.uuid)) {
                await game.dfreds.effectInterface.addEffect({ effectName: 'Prone', uuid: target.actor.uuid});
                ui.notifications.info(`${attacker.name} shoves ${target.name} to the ground`)
            }
        }
        else ui.notifications.info(`${target.name} resists the shove attempt from ${attacker.name}`)
    }
});
vast bane
kind cape
#

Well it used to be, moved it into a dedicated macro to try the "run as GM" option

vast bane
kind cape
#

Also the above is basically what I did, but the callback in the request was never getting called

#

Yes, 99% of the macro executes, just not the callback from MTB requestRoll

vast bane
#

Is the setting for MTB set to allow players?

kind cape
#

yes, that was my first issue, which is fixed now

violet meadow
#

What's the macro that is not firing?

kind cape
#

Just gonna paste part of it, but basically this part is not working (should be able to be run on its own, as a weapon on use macro):

let target = canvas.tokens.get(args[0].targets[0].id);
let result = await game.MonksTokenBar.requestRoll([target], {request:'save:con', dc:16, silent:true, fastForward:false, rollMode:'request', callback: async () =>{
    let total = result.data.flags["monks-tokenbar"][`token${target.data._id}`].total;
    if(total < 6) {
        game.dfreds.effectInterface.toggleEffect("Lightning Inhibition", {uuids:args[0].targetUuids});
    } else if (total < 16) {
        game.dfreds.effectInterface.toggleEffect("Reaction", {uuids:args[0].targetUuids});
    }
}});
kind cape
violet meadow
vast sierra
#

(how are you testing? do you have a GM account logged in, when testing as a player?)

kind cape
#

Hmm, interresting, doesn't fix my above case though, but does fix my simpler cases (where there is only 1 save DC)

kind cape
violet meadow
kind cape
#

Doesn't run, already tried console.log at the root of it ๐Ÿ˜…

#
let target = canvas.tokens.get(args[0].targets[0].id); //Runs
let result = await game.MonksTokenBar.requestRoll([target], /*runs*/ {request:'save:con', dc:16, silent:true, fastForward:false, rollMode:'request', callback: async () =>{
    let total = result.data.flags["monks-tokenbar"][`token${target.data._id}`].total; // Does not run
    if(total < 6) {
        game.dfreds.effectInterface.toggleEffect("Lightning Inhibition", {uuids:args[0].targetUuids});
    } else if (total < 16) {
        game.dfreds.effectInterface.toggleEffect("Reaction", {uuids:args[0].targetUuids});
    }
}});
violet meadow
covert mason
#

I'm looking to automate this healing/damage effect via the OverTime active effect flag. Is anyone willing to help me out with this? :>

The Risen Reaper chooses a target it can see within 60ft of it. The target must succeed on a DC 18 Constitution saving throw or be cursed for 1 minute. While cursed, the target suffers 2d8 necrotic damage at the start of each of its turns. The Risen Reaper regains hit points equal to the amount of necrotic damage dealt. The target can repeat the saving throw at the end of each of its turns, ending the curse on a success.

violet meadow
covert mason
#

Thank you so much

covert mason
# violet meadow I can write something for that on Monday that I will be back home! If noone else...

Oh, I made a little alteration to the effect. ๐Ÿ˜…

The Risen Reaper chooses a target it can see within 60ft of it. The target must succeed on a DC 18 Constitution saving throw or be cursed for 1 minute. While cursed, the target suffers [[/r 2d8]] necrotic damage at the start of each of its turns. A creature of the Reaper's choosing within 60ft of it that it can see regains hit points equal to the amount of necrotic damage dealt. The target can repeat the saving throw at the start of each of its turns, ending the curse on a success and taking no damage.

#

A creature of its choosing.

north ocean
#

Hey there, Is it a Midi setting that stopping my spell descriptions from showing up in chat? Nothing happens when i click the name in the chat card either.

orchid hound
#

could be, there is a setting in midi to collapse the chat cards. also one in system settings. check both

vast bane
green wolf
#

is there any other patreon like jb2a for animations?

spice kraken
green wolf
#

roger will move there

opaque current
#

Is there a setting for removing the attack button after having made the attack? I'm sure that's how it used to be

vast bane
#

Are you sure you aren't crossing the streams?

#

I don't even see my versatile buttons and I have my setting where it doesn't delete the buttons

#

Did you at any time have MRE installed?

#

Oh wait, wrong tab bud, your the GM, your settings are in GM tab

opaque current
#

It's set for both, and I tried turning off all the autorolling for both PC and GM too

#

Will try FTC just in case it's a mod interaction ๐Ÿคทโ€โ™‚๏ธ

vast bane
#

Show me the details of that weapon

#

I never see versatile buttons

opaque current
#

? They show for any versatile weapon with versatile damage

#

Assuming no autorolling damage

vast bane
#

I host for a paladin who uses a longsword, hes never had that button show up, I'm checking to see if I deleted his versatile field

#

did you hit save in the workflow button and save outside, or just x out

opaque current
#

save, save and save some more

#

Do you not see the attack button?

#

I tried FTC and seemed to be present with only midi

vast bane
#

try refreshing maybe its a cache issue

#

I removed the versatile field on my pally players longsword, when I refilled it in proper hes got the button again, but I actually use that setting, I prefer buttons to remain

opaque current
#

After ctrl F5, with non-PC, and everything set to basic in GM tab

vast bane
#

versions?

opaque current
#

FVTT 9.280
DnD5e 1.6.3
MidiQoL 0.9.81

vast bane
#

I haven't updated to 81 or newest v9 foundry yet but mine are poofing when I toggle

#

I matched everything but your foundry version and am not experiencing your issue

#

I'm on build 269 of v9

opaque current
#

Send me your midi settings

#

I just launched a sandbox world with nothing but Midi, Socketlib, and TidyUI and it still happens

#

And I'm fairly sure it's been happening before now

vast bane
opaque current
#

Seems to always happen if not autorolling/autoforcing damage roll

#

wtf is "misses (6/4)"

vast bane
opaque current
#

Gross

vast bane
#

Drow poison applies poisoned conditionif you fail a DC 13 con save. If you fail by more than 5, you are also rendered unconscious. Is there a way to automate this? Right now I have the excess unconscious handled manually and have a reminder in the chat flavor text box to track saves.

#

I'm thinking an item macro that mimicks a save or unconscious item, where the DC is 5 lower? Unless somehow I can put it in an activation condition?

#

but it would need to reference the same save as the weapon?

short aurora
#

Oh nevermind, it does not show the roll there, hmmmm, wonder where that is saved then

upbeat wedge
#

I am still trying to figure out if there is a way to make the Lucky feat work. I have pulled in one of the midi-qol Lucky options, but when the player rolls, they do not get the chance to reroll prior to knowing the outcome. Is there no way to do this?

vast bane
#

just alot of tables don't follow it

short aurora
#

It's before knowing the outcome, I don't think midi qol automatically stalls for that

upbeat wedge
#

The way I understand the rule is the player can see the die roll, but not if the roll succeeded or not. The player can then opt to roll a new die

vast bane
#

there is because legendary resistance does it that way from midi sample items

#

which is especially weird cause the DM knows, but it hides our save result till we choose

upbeat wedge
#

Testing that and it is working the same way. Player is not given the option for reroll

short aurora
#

Yeah, I don't get that with the legendary resistance thing either. Foundry v9.269, Midi 0.9.79. Unless the stuff's coded into Midi, I also don't really see a macro or an item flow that would suggest it does anything automatically either

#

Aaah it's effect flags

#

Still don't do it none but it's supposed to looking at the effects

upbeat wedge
#

I was hoping it would be like the shield spell and automatically ask to be used or not

#

Maybe there is no way to do this, making Lucky useless online

short aurora
#

Ah, no, there we go. The Lucky (Resource Usaage) 0.9.26 works for me

upbeat wedge
#

I am V 10 of foundry

vast bane
#

did you set a resource for lucky Kabkal?

short aurora
#

If you drag that particular item onto the sheet, it makes your third resource field into a Luck Points resource, and I also shamefully needed to refill it before it worked >_>

upbeat wedge
#

OK, I did not reset the resources last time I tried that one

#

Ok, it is asking to use the roll, but it is not subtracting the resource

short aurora
#

Edit the feature to make it use that resource box, you can't have that preselected in features in core DnD

#

It currently just has a limited use of 1/1, you want resource consumption attribute resources.tertiary.value 1

upbeat wedge
#

So you have to click on the box to use the feat, and then click on the feature to remove the count?

short aurora
#

No, does it automatically here

#

Just has to edit the feature to use that resource first

upbeat wedge
#

Then I have something set incorrectly here

short aurora
#

Actually subtracts it without even setting it, now that I double test. Feature's supposed to overwrite everything and work "out of the box" as long as you have at least 1 in your third resource box.

upbeat wedge
#

This is how I have it set

#

And now 2 of 3 in resources

short aurora
#

Do you get a console error when it triggers? I'm not on v10 so I can't test along ya

#

Triggers as in, you opt to use the resource by way of the dialogue prompt

upbeat wedge
#

No errors

#

I get the prompt, I see both rolls, and it is taking the higher of the two rolls

short aurora
#

Out of ideas, throw an issue on the github. :p It looks definitely possible and there's presumably a snafu, remember to include your midi qol settings

upbeat wedge
#

OK I will see if I can figure out how to do that. Thanks for your help

short aurora
#

@gilded yacht Can I refer to all steps of the workflow in activation condition with midi qol? I can't seem to compare @workflow.saveResults[0].total so I can do something like deal extra damage if the target's save is less than a set value, e.g. @workflow.saveResults[0].total > 10. It seems to work with other things like @workflow.attackRoll._total so wondering if I'm looking at the wrong workflow

gilded yacht
#

That looks to be a bug. I'll investigate

kind cape
#

Actually, that message above by Krig just gave me an idea for how to do it..

But am not at home right now and will require an item macro ๐Ÿค”

gilded yacht
opaque current
#

tposney - any way of having this "attack" button go away?

Settings are set to remove attack and damage but they only disappear once damage is rolled

gilded yacht
#

Yeah, it's a bug. I'll push a fix in the next v10 release (10.0.12 from recollection)

gilded yacht
mellow atlas
#

Hi all. I am using midi QOL for targeting during combat. Speeds things up. Wanted an easy way to give the +2/+5 for various covers, but the manual system from DnD 5e helpers seems independent, and not playing with the midi system

dark canopy
#

Assuming v9? I think there are settings in midi for which cover system to use

gilded yacht
spice kraken
#

It's the Walls block ranged attacks setting

mellow atlas
#

No way to do it manually?

gilded yacht
# mellow atlas So only for automatic cover yeah?

If you are using dnd5e helpers and it upgrades the AC of the target, then that should be reflected in midi's hit/miss calculations (at least as far as my hazy memory of the workflow) - I think dnd5e helpers will add an effect to the target to give it a bonus to AC. Top be honest it's been months since I looked at this so could all be nonsense on my part.

dark canopy
#

Effect on the attacker

spice kraken
#

But only for v9 I believe cause there isn't a v10 version of helpers

dark canopy
#

Cover on target can be turned off and use can use the R key for manual checks

mellow atlas
vast sierra
spice kraken
#

Another reason I'm glad I'm still on v9 and will be for some time

dark canopy
#

Since it's MIT. Our cover calculator could be integrated directly into midi. I really like it, maybe it will come back in the future in some form

snow quarry
#

Hey all! Would it be terribly complex to have a 'Cover' condition that only applied to ranged attacks?

Ideally it would somehow detect the angle (which I doubt is possible) but the first option should be!

#

example

dark canopy
#

Iff v9. 5e helpers

snow quarry
#

Oh neat, I'll try to find out if it we works with sw5e, thanks!

dark canopy
#

Is it a full system or a mod?

snow quarry
#

It it it's own system. But so far most 5e stuff works with it that I've tried

dark canopy
#

Ah. Helpers won't, sorry

snow quarry
#

Bummer. Then back to the OG question! I'm sure midiqol has a way to differentiate between Melee and ranged, right? I'm just unsure how to do that part

mellow atlas
#

I want to use Spiritual Weapon every turn using Midi QOL. Was recommended to pop out the spellcard. How do you guys handle such spell effects which last through multiple rounds?

opaque current
#

Warp Gate to spawn an actor IMO

kind cape
#

Isn't that in the sample module already?

kind cape
mellow atlas
opaque current
#

A mod for spawning stuff basically

mellow atlas
#

Triggering an actor + consuming the spell slot does sound the most reasonable. I will look into the Warp Gate module, thanks!

kind cape
#

@mellow atlas Are you on V9 or V10?

snow quarry
#

Once I get a template I can tweak it for my 4 layers of cover within sw5e

#

Reason being is I use alot of automation so ideally I don't want Things to hit that shouldn't

kind cape
#

Well, easiest way, since you will have to apply the condition manually anyway, is just to give the person +2 AC. But if you really want it to reduce the attack instead then you will want to use flags.midi-qol.grants.attack.bonus.rwak with a negative add, eg.

#

Of course all of this assumes you want to apply a condition to the target, if you instead want to apply it to the attacker you will want to use data.bonuses.rwak.attack

snow quarry
#

I'd apply the condition to the target for this

dark canopy
#

Keep in mind permission issues with unowned tokens

#

Helpers applied it to the attacker for this reason

mellow atlas
short aurora
#

DFred's Convenient Effects works with sw5e if that's anything, it has status effects for covers already implemented per dnd5e rules, can adjust those if you want.

kind cape
snow quarry
kind cape
#

@vast bane Here is a setup for having additional effects applied if they fail an additional DC:

Any initial effects that always happen if the save is failed can go directly on the item.

Set an onUse to happen "After Active Effects".

Call a macro, here is the code, should be easy to modify:

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

let saveResult = workflow.saveResults[0].total;

if(saveResult < 5) {
  await game.dfreds.effectInterface.addEffect({ effectName: "Lightning Inhibition", uuid: args[0].targets[0].actor.uuid });
}

(This is an example of a DC 16 item with an additional effect at DC 5)

violet meadow
kind cape
violet meadow
#

Yeah that doesn't sound doable. I was talking about your shared macro example

kind cape
#

Well thats what that macro was for ๐Ÿ˜› But with 1 effect always applied and 1 conditionally based on save

#

(Always if the save is failed)

violet meadow
#

Ah I just checked the macro not the premise of it ๐Ÿ˜

kind cape
#

Makes sense ^^

short aurora
vast bane
#

So for my item, it would read if(saveResult < 8)

kind cape
#

Yeah, that is correct, my case was a DC 16 and DC 5 ^^

vast bane
#

k, so it needs to change for various effects if the DC changes, just makin sure cause the 5 had me almost there just cause my qualifier was also a 5

kind cape
#

Ah yeah ๐Ÿ˜…

#

It should be possible to fetch the DC and set the extra DC based on the primary one thoug

scarlet stump
#

does anyone have a way to build some automation for "upgradeable" conditions, like Exhaustion? So that the first time it is applied it's Condition Tier1, then Tier2 and so on. I have a script for that but it's a large unwieldy beast that leverages dfreds macros to remove the existing one and adding the new one, but maybe there's a simpler way with midi/dae/item macros

vast bane
kind cape
#

Tidy has it built-in as well

#

Just enable it in the settings and it will apply the correct ones from DFreds

scarlet stump
kind cape
#

AFAIK CE will prioritize custom effects over inbuilt

vast bane
kind cape
#

So as long as you have the same amount of levels you can just duplicate and modify

scarlet stump
#

This is the relevant part from the scaling morale condition I wrote, but there may be an easier way. I was wondering if there was some built in logic to do the same given a set of conditions with the same name

let hasWaveringApplied = await game.dfreds.effectInterface.hasEffectApplied('Morale: Wavering', uuid);
      let hasBreakingApplied = await game.dfreds.effectInterface.hasEffectApplied('Morale: Breaking', uuid);
      let hasFleeingApplied = await game.dfreds.effectInterface.hasEffectApplied('Morale: Fleeing', uuid);
        if (!hasWaveringApplied) {
          await game.dfreds.effectInterface.addEffect({ effectName: 'Morale: Wavering', uuid });
        } else if (!hasBreakingApplied) {
            await game.dfreds.effectInterface.addEffect({ effectName: 'Morale: Breaking', uuid });
          } else if (!hasFleeingApplied) {
            await game.dfreds.effectInterface.addEffect({ effectName: 'Morale: Fleeing', uuid });
          } else {
            console.log('Nothing to do!');
          }
kind cape
#

I think that might be a DFreds quirk

vast bane
#

Can someone else test this with dfreds CE please? It appears that vanilla unconscious with dfreds CE is setup wrong:

#

just apply unconscious to a token

kind cape
#

Duplicate it and fix it, then try again

vast bane
#

well yeah but we should let dfred know

#

if its not just me

scarlet stump
#

unless something has changed in the later versions ofc, this was a couple of months ago

vast bane
#

pretty sure theres a bunch of modules that automate exhaustion, like rest/recovery

#

does anyone else see unconscious as applying inactive from dfreds panel?

scarlet stump
#

yeah but I don't need to automate exhaustion ๐Ÿ™‚ I want to do something like what dfreds does for exhaustion for other scaling conditions

kind cape
kind cape
scarlet stump
vast bane
#

what version are you on?

kind cape
#

V9

vast bane
#

and I need to know dfreds ce version

scarlet stump
#

ah no it's temporary for me

vast bane
#

what version of dfreds ce you two got?

kind cape
vast bane
#

well shit now I'm worried

scarlet stump
#

CE 2.6.1

vast bane
#

I have 2.7.3

scarlet stump
#

panel 1.5.1

vast bane
#

I know I can duplicate it but that shouldn't be the actual problem if yours is fine and mineisn't

kind cape
#

That's really odd, maybe a quick reinstall of CE is a good idea

vast bane
#

OH

#

Fey Ancestry

kind cape
#

๐Ÿ˜‚

vast bane
#

Thats what I get for testing a drow ability on a drow

#

Interesting way of stopping it from applying though

kind cape
#

Ci stands for condition immunity

vast bane
#

heres the even funnier part, I dragged outa player to test it on too and they had fey ancestry

kind cape
#

It just modifies the standard traits

vast bane
#

So first I tried a drow, then I tried the bugbear player, both having fey ancestry lol

kind cape
#

This is why I have a test target with 1 ac, 10 in all stats and no special stuff ๐Ÿ˜›

vast bane
#

I didn't wanna shift my page, I normally hadv 3 dummies on the landing page

kind cape
#

๐Ÿ˜‚

scarlet stump
#

Ok I wrote the macro to add or remove levels of the condition from a token. How can I make it run so that it gets applied when I hit an enemy with a spell? This is the current code:

let uuid = token.actor.uuid;
let hasLvl1Applied = await game.dfreds.effectInterface.hasEffectApplied('Contamination I', uuid);
      let hasLvl2Applied = await game.dfreds.effectInterface.hasEffectApplied('Contamination II', uuid);
      let hasLvl3Applied = await game.dfreds.effectInterface.hasEffectApplied('Contamination III', uuid);
      let hasLvl4Applied = await game.dfreds.effectInterface.hasEffectApplied('Contamination IV', uuid);
      let hasLvl5Applied = await game.dfreds.effectInterface.hasEffectApplied('Contamination V', uuid);
      let hasLvl6Applied = await game.dfreds.effectInterface.hasEffectApplied('Contamination VI', uuid);
        if (!hasLvl1Applied) {
          await game.dfreds.effectInterface.addEffect({ effectName: 'Contamination I', uuid });
        } else if (!hasLvl2Applied) {
            await game.dfreds.effectInterface.addEffect({ effectName: 'Contamination II', uuid });
          } else if (!hasLvl3Applied) {
            await game.dfreds.effectInterface.addEffect({ effectName: 'Contamination III', uuid });
          } else if (!hasLvl4Applied) {
            await game.dfreds.effectInterface.addEffect({ effectName: 'Contamination IV', uuid });
          } else if (!hasLvl5Applied) {
            await game.dfreds.effectInterface.addEffect({ effectName: 'Contamination V', uuid });
          } else if (!hasLvl6Applied) {
            await game.dfreds.effectInterface.addEffect({ effectName: 'Contamination VI', uuid });
          } else {
            console.log('Nothing to do!');
          }
kind cape
scarlet stump
#

several spells/attacks would use the same logic to add levels of contamination. No specific caster

kind cape
#

It that case you will have to add it to each of the spells in the details tab, near the bottom

#

Click the โž•, type the macro name in the box, and use the dropdown to select when it should be run

scarlet stump
#

gotcha...I guess it would have to be the uuid of the target instead of the caster though? Unless of course is the caster that's getting contaminated by casting the spell ๐Ÿคฃ

spice kraken
#

That + is nonexistent in darkmode, haha

kind cape
scarlet stump
#

Yeah I had to mouse over it to see what it was ๐Ÿคฃ

scarlet stump
#

mm it doesn't like my uuid declaration

#

let uuid = token.actor.uuid; I guess even if I have a token selected (this spell contaminates the caster) I would have to write it differently if it's ran from the item

kind cape
#

@vast bane

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

let saveResult = workflow.saveResults[0].total;

if(saveResult < args[0].item.data.save.dc) {
  await game.dfreds.effectInterface.addEffect({ effectName: "Lightning Inhibition", uuid: args[0].targets[0].actor.uuid });
}

This should scale on the DC set on the item, untested though ๐Ÿ˜›

kind cape
scarlet stump
#

this is if I want to "contaminate" the target, right? What if I want to do it to the caster instead? ๐Ÿ™‚

kind cape
#

let uuid = args[0].actorUuid

vast bane
#

otherwise you are just defining the standard method of a save

kind cape
#

Fair point, was mostly an example of getting the DC, untested as I said ๐Ÿ˜‰

vast bane
#

I wonder if I should put parenthesis around the math too

#

I'll test it later

scarlet stump
#

it works now, thanks!

scarlet stump
#

or should I leave the first array blank instead?

kind cape
#

You want to apply it to all targets for AoE?

scarlet stump
#

yeah

#

not this one specifically, but for future use ๐Ÿ™‚

#

do I need to add a loop?

kind cape
#
for(const targUuid of args[0].targetUuids) {
  //Do stuff here that you would do to the individual ones
  // targUuid is the UUID of the individual ones
}
scarlet stump
#

thanks again!

kind cape
#

Np ^^

scarlet stump
#

final question: let's say I want to have a failed saving throw as a condition to start the contamination logic - so that it breaks out of it early if the save is passed. How would I do that with this kind of syntax?

kind cape
#

So you want to force the user to roll a saving throw and then if they fail that then it advances the contamination?

#

Also is that both the caster and the target?

scarlet stump
#

yes to the first question, only the target for the second question

#

I don't think I have saves on the user's end

kind cape
#

Hmm, okay, so.. This is slightly more complex, but doable

scarlet stump
#

don't want to take too much of your time if it's a mess ๐Ÿ™‚

#

worst case scenario I can do it manually

kind cape
#

Just trying to make sure I got it right

I would move the contamination logic into an item on its own, with the saving throw attached. Then when you roll another spell you can have the macro on the spells call MidiQOL.completeItemRoll(args[0].actor.items.getName("Contamination Item Name")) to have Midi process the item and trigger the saving throws on all the currently selected targets.

Then you will want to modify the macro on the contamination item to start with if(args[0].failedSaves.length === 0) return;

And you will want to modify the loop to be
for(const targUuid of args[0].failedSaveUuids)

#

Biggest annoyance about this is that the contamination item needs to be on the actor to be valid.. There is supposedly a way to bypass that, but I haven't looked into it

short aurora
#

Valid?

kind cape
#

Valid as in will process, causes an error because actor is undefined for some flow somewhere ๐Ÿ™„

scarlet stump
tawdry sail
#

Is it possible to execute a macro from a compendium via DAE/MIDI? Trying to run it with Compendium.compendium-name.macro-name fails to locate the macro.

spice kraken
#

Don't think so. Why not just import it?

tawdry sail
#

It's not viable for what I am doing.

#

It's all automated and using Sequencer and AA for a lot of it, and it supports this format. I'll have to look at my other options I guess.

molten solar
#

I see zero reason you couldn't. Just retrieve the macro document, and run it.

#

Only obstacle is probably player permissions.

molten solar
tawdry sail
celest bluff
#

You can already do with on use flags

spice kraken
#

Isn't that spell a simple OT effect?

celest bluff
#

Tposney wanted this to be possible where you'd have 1 master item, then have all copies run off of it.

#

Nah, it's the same as ItemMacro.item name

#

Then you just state when it runs

spice kraken
#

Would this not work for that spell though?

celest bluff
#

If you want to get mechanical about it, it's better not use ot but a Dae each script

spice kraken
#

Why is that?

celest bluff
#

They do get a choice, but I suppose you could also wrap that into an ot but will require another macro.

#

They take damage then choose to remove it or not

spice kraken
#

True, that's why for this one I didn't have a save there and just manually remove the AE with Effects Panel

#

This does bring up a question though, can you put 2 different types of saves in an AE?

celest bluff
#

My script gives them a dialog choice

#

Sure

#

Can macro in infinite saves

spice kraken
#

I should've been more clear, that's on me. Can you do 2 different saves in an OT effect value

#

Something like saveAbility={dex|con}

celest bluff
#

doubt it, you'd be better off making a secondary effect to do it

#

You can however write small logic for conditons

vast bane
#

what does the flavor look like for no damage? and to be clear, it would definitely NEVER damage anything if I used it right? I'm trying to automate color spray and sleep

celest bluff
#

just define the damage type

#

can look at my gitlab

#

probably needs to be updated for v10

vast bane
#

I wonder if it'd work if my cub doesn't do conditions, like its there, its just not the one handling them

violet meadow
vast bane
molten solar
molten solar
#

Of course, if you have all this, just get the actual document and just run the macro lol

#

(if your modules allow)

scarlet stump
#

can I use a formula or references in an Effect Value field instead of a simple value? IE: I'd like to create an effect that sets the data.attributes.movement.swim value to match the existing data.attributes.movement.walk value, if the walk value is higher than the swim one.

#

I've tried to use Upgrade as the Change Mode and several variations of [[data.attributes.movement.walk]] for the Effect Value, but it fails

vast bane
scarlet stump
#

I'm getting a Unresolved StringTerm token.actor.data.attributes.movement.walk requested for evaluation error, so maybe I need to turn it into an integer?

vast bane
#

try custom

#

are you on v10?

scarlet stump
#

v9, tried custom and I get a different error

vast bane
#

should be override

#

probably

scarlet stump
#

dae.js:427 dae | evaluate args error: rolling data.attributes.movement.walk failed this is what I get with custom

vast bane
#

my server just rebooted so I can't test it for ya lol

#

its not data

#

I think you can @attributes.movement.swim

#

or whatever

scarlet stump
#

that did the trick, thanks!

#

the upgrade part works as well, just tested ๐Ÿ™‚

tawdry sail
#

Heya, I am running a macro that uses MidiQOL.DamageOnlyWorkflow to apply damage to a token. However, every time I apply the damage, it is applying concentration to the target when I print the item card. Is there a way to prevent this? For context I am automating caustic brew with a DAE effect like so:

        const itemData = args[1].efData.flags.dae.itemData;
        const level = itemData.data.level;
        const damageRoll = await new Roll(`${level * 2}d4`).roll({async:true});
        new MidiQOL.DamageOnlyWorkflow(target.actor, target, damageRoll.total, "acid", [target], damageRoll, {flavor: "(Acid)", itemData: itemData , itemCardId: "new"});
molten solar
#

Midi, like most modules that do this in v9, likely applies concentration by scanning chat messages. It might work if you simply removed concentration from the fake item.

scarlet stump
#

does anyone know if there is a way to interact with the Sight Radius / Vision Limitation field added by the Perfect Vision mod from an Effect?

tawdry sail
molten solar
scarlet stump
#

flags.perfect-vision.light.visionLimitation.sight should be the one I'm looking for, can I just use that even if it isn't recognized by the interface when I add it as an Attribute Key?

molten solar
#

Is it on the actor?

#

or the token or the scene

scarlet stump
#

I think the token

molten solar
#

Effects can only modify actors.

scarlet stump
molten solar
#

Yeah I see no reason it would save that in the actor document.

#

Sight is a property of a token document.

scarlet stump
#

ok so no direct way to interact with it from an effect, right?

molten solar
#

Not without a macro or module. No.

scarlet stump
#

I guess I could run a macro from the effect to toggle it?

#

but then it would stay toggled even if the effect is removed

molten solar
#

Just slap two one-liners into Effect Macro and call it a day.

scarlet stump
#

thanks for doing this ๐Ÿคฃ

upbeat wedge
#

Is there a way to create an item that will give a player +2 on saves versus spells that are thrown at them? In other words, +2 on DEX save for fireball, but not on DEX save for falling in a pit?

sudden crane
#

@upbeat wedge
I donโ€™t think there is anything that allows that, there is not enough context when a save is rolled to automate that easily.
I think you could use Advantage Reminder module to at least show this to the player. The only drawback is you cannot fast forward rolls, because the reminders are displayed in the core dialog box when you use/roll an item or save

vast bane
#

well midi does distinguage magic vs non magic for magic resistance flag, so maybe theres a way with macros?

kind cape
#

Problem is that MIDI doesn't have a way to trigger a macro when being hit, only when hitting something else

sudden crane
#

Maybe it would be doable if midi offered something like flags.midi-qol.advantage.ability.save.all that allows to evaluate a condition but for bonuses instead of just advantage. It could be tricky because it would need two values, one for the bonus and one for the conditionโ€ฆ

vast bane
#

You can totally pulll it off with advantage reminder

#

I already do it with shield master feat

sudden crane
vast bane
#

Advantage Reminder

molten solar
#

then use a dnd5e.preRollAbilitySave hook to add a bonus or whatever

vast bane
molten solar
#

Would be silly if Midi removed some core system behaviour. ๐Ÿ™‚

sudden crane
#

How would you register the hook? In a world script?

molten solar
#

Why would a hook go anywhere else?

#

A simple world script:

  • does the actor have this particular flag (and if so, what's the bonus)
  • is there a click Event associated with the rollAbilitySave, and is the event target chat card's item a spell?
  • ???
  • profit
#

of course if you are completely wrecking the chat log (or not using it at all, depending on your module settings I bet), then ๐Ÿคท

vast bane
#

we would probably need to turn off auto roll

#

unless auto roll counts as a click

hazy urchin
#

hello all midi big brains! im having an issue with the midi sample spirit guardians. it is not forcing saving throws/damage on enemy combatants

#

i have ALL the required modules installed, not sure whats going on here

hazy urchin
#

having a look into the effects tab, when i cast the spell the full effects are not being transfered to the token

#

on the left is the prepared spell, on the right is what appears once it had been cast

kind cape
#

You have MIDI set to only apply effects if there is no CE effect, its the CE effect you are seeing

hazy urchin
#

where would that be? in the workflow config?

kind cape
#

In the DFreds convinient effects panel

hazy urchin
#

im guess this?

kind cape
#

And yes

#

Its the last setting there

hazy urchin
#

what would you recommend?

#

apply both or only apply if absent?

kind cape
#

My recommendation would be to set up the effect on the CE one instead but if you don't use CEs much then the second one

hazy urchin
#

yeah im much more of a point and click DM, i am lost when it comes to most of the nuanced set up of these things

vast bane
# hazy urchin im guess this?

You do not need to change that setting that way if you do not want to, at the bottom of the right spirit guardians, there will be a checkbox to override dfreds and apply the actual AE on a per item basis if you prefer dfreds first for most things.

hazy urchin
#

really? where would that checkbox be? i cant see it anywhere

vast bane
hazy urchin
#

huh, ok. well i cant see it in spirit guardians

vast bane
#

you already swapped the settings ๐Ÿ˜‰

hazy urchin
vast bane
#

note the check at the bottom

#

I think there is also something else we're suppose to do as it doesn't work out of the box

#

I remember it being at the bottom of one of the effects tabs

hazy urchin
#

y'know im loving this module, but my god sometimes the amount of options is confusing lol

vast bane
#

I think he fixed it, I had told him about it and I think he actually patched it.

dense rune
#

Hey! Do anyone know how "Flaming Sphere MQ0.8.85 + warpgate" works? MIDI QOL has a flag called "flags.midi-qol.OverTime" which is supposed to do whatever action you want overtime.

But it looks like Falming Sphere is not working because I'm able to spawn it but it doesn't do any damage to nearby enemies.... Any clues?

dense rune
scarlet gale
#

How would I go about setting a feature / attack to apply an effect even if the target succeeds on the save with mid-qol?

celest bluff
celest bluff
#

You would just need to define it to run only on a successful save. Then let Dae handle a failed save

scarlet gale
#

So I have a monster feature that does a save for half damage, but no matter what an effect should be applied.

#

Should I just have a itemMacro apply the effect manually?

celest bluff
#

Or you can define them both in the same macro

scarlet gale
#

huh

#

Have the ItemMacro apply the effect instead of the usual way right?

celest bluff
#

half save is default for any saving throw if you don't define it to deal no damage

#

it will always deal half damage on success

scarlet gale
#

Yea that's fine

#

I'm just trying to add a rider effect that happens whether you save or not

celest bluff
scarlet gale
#

It's just I can't figure out an easy way to always apply the DAE effect even if it's saved

celest bluff
#

If you want a different effect for on success, you'd need to a macro

scarlet gale
#

that's what I kinda thought

celest bluff
#

have the item do the saving throw. DAE only handles failed saves

scarlet gale
#

game.dfreds.effectInterface.addEffect seems to be what I want to use I think

#

and just make the effect as a custom DAE

celest bluff
#

this a single hit spell or an aoe spell?

scarlet gale
#

single hit

#

My plan is to just use the targeted creature with game.dfreds.effectInterface.addEffect({ effectName: 'Bane', uuid });

#

well

#

not bane

#

but my custom effect that's setup in DAE

#

args[0].hitTargetUuids[0] should be the uuid I think?

celest bluff
#
const lastArg = args[args.length - 1];
const target = canvas.tokens.get(lastArg.tokenId):
if(lastArg.saves.length === 0) return {};
await game.dfreds.effectInterface.addEffect({ effectName: 'Bane', uuid: target.actor.uuid });

You could do something as simple as

scarlet gale
#

beat me to it

#

Are you familiar with the module effect macro?

dense rune
#

๐Ÿ™‚

kind cape
#

Make sure this setting is on

#

It will still not cause a template to appear, but it should target them correctly

dense rune
#

Oh! Let me try!

kind cape
#

Unless the spell is not cast on top of the caster? What spell in particular is this?

orchid hound
#

this would not work in there case, as they are looking for a template, not just a single target

#

and it has a range. so, it is not centered on the caster

celest bluff
#

mostly to make sure my active effects are compatible with modules like monks

scarlet gale
#

Zhells's

#

Long story short you can make a macro run on an effect on creation

celest bluff
#

You can do that with DAE

scarlet gale
#

as a flag right?

celest bluff
#

I guess there'd be an advantage to that if you're new.. but not needed

dense rune
celest bluff
#

nah it has macro.execute built in or you can wrap it into item macro

karmic idol
#

Hey guys does anyone use the module: LootsheetNPC5e?

kind cape
dense rune
#

I am trying to automatise the whole process of the spirit totem thing with this macro -> (plus aura effects)

console.log("comienza la fiesta")
console.log(args);
if (args[0].tag === "OnUse") {
    const casterToken = await fromUuid(args[0].tokenUuid);
    const caster = casterToken.actor;

    let dialog = new Promise((resolve, reject) => {
        new Dialog({
            title: 'Choose a totem: ',
            content: `
              <form class="flexcol">
                <div class="form-group">
                  <select id="element">
                    <option value="bear">Bear Totem</option>
                    <option value="hawk">Hawk Totem</option>
                    <option value="unicorn">Unicorn Totem</option>
                  </select>
                </div>
              </form>
            `,
            //select element type
            buttons: {
                yes: {
                    icon: '<i class="fas fa-bolt"></i>',
                    label: 'Select',
                    callback: async (html) => {
                        let element = html.find('#element').val();
                        let totemActor;

                        if(element === "bear") {
                            totemActor = game.actors.getName("Bear Totem Actor");
                            let effect =  totemActor.effects.find(i => i.data.label === "Totem Effect");
                            let changes = duplicate(effect.data.changes);
                            changes[0].value = `${5 + args[0].rollData.classes.druid.levels}`;
                            await effect.update({changes});
                            resolve();
                        } else if(element === "hawk") {
                            totemActor = game.actors.getName("Hawk Totem Actor");
                        } else if(element === "unicorn") {
                            totemActor = game.actors.getName("Unicorn Totem Actor");
                        }

                        const summoned = await warpgate.spawn(totemActor.name, {}, {}, {});
                        if (summoned.length !== 1) return;

                        
                        const summonedUuid = `Scene.${canvas.scene.id}.Token.${summoned[0]}`;
                        await caster.createEmbeddedDocuments("ActiveEffect", [{
                            "changes":  [{"key":"flags.dae.deleteUuid","mode":5,"value": summonedUuid,"priority":"30"}],
                            "label": "Totem Summon",
                            "duration": {seconds: 60, rounds: 10},
                            "origin": args[0].itemUuid,
                            "icon": "icons/magic/fire/orb-vortex.webp",
                        }]);
                    },
                },
            }
        }).render(true);
    })
    await dialog;

}
#

It's almost done just fixing a couple of things

kind cape
#

Effect Macro can do a couple of fancy things, like on combat start, turn start etc, and its a bit easier to use for new people ^^

scarlet gale
#

That's why I started using it lol

celest bluff
#

You can layer multiple macros on top of each in item macro, if you need to be careful about your variables and where you define them

scarlet gale
#

Seems way less complicated

#

at any rate, I have an onCreation macro tied to the effect

#
let damageTaken = 0;
for (let i = gameMessages.length - 1; i >= 0; i--) {
    let flavor = gameMessages[i].data.flavor || '';
    if (flavor === 'Draining Kiss') {
        const workflow = MidiQOL.Workflow.getWorkflow(gameMessages[i].data.flags['midi-qol'].workflowId);
        damageTaken = workflow.damageList[0].appliedDamage;
        break;
    }
}
if (damageTaken > 0) {
    let changes = duplicate(effect.data.changes);
    changes[0].value = -damageTaken;
    await effect.update({changes});
}```
dense rune
# kind cape Ah, yeah then thats a bit more complex

the only problem right now is that the aura effect of the bear totem (+7 of tmp hp) is now persistant when you go in and out of the zone so I'm trying to combine this macro with a normal spell execution:

1- First just cast a +7 hp life spell on every ally on a 30 feet range
2- just do the macro thing

scarlet gale
#

Pretty much on creation of the effect, it runs the macro to update the value of a flag to be the last damage from a specific feature

#

But figured I'd ask since it's tied to what I was doing before

celest bluff
kind cape
dense rune
#

yes!

#

active auras are amazing so of course I am using it for this spell hehehe

#

but the spell has 2 parts

celest bluff
#

I've done this with Summon Fey and Aberrant

dense rune
#

1- Plus "x" hp to allies in a range of 30ft
2- An aura around of the totem with advantage rolls on several thingys

#

but effect 1 should only be applied once not every time you go in and out of the aura (because then you are inmortal xD)

dense rune
#

without any secondary effects

celest bluff
#

wouldn't matter, it's just an actor

dense rune
#

yea yea my totem is an actor

#

my real problem is that I need to cast a normal spell with 30ft range which targets allies (plus template, that would be nice) before applying the macro

dense rune
celest bluff
#
let abilityList = ["Fuming", "Mirthful", "Tricksy"].filter(i => i !== mood);
for (ability of abilityList) {
   creatureLayout.Item[ability] = warpgate.CONST.DELETE;
}
dense rune
#

(sorry if I am asking stupid things I am a newbie)

celest bluff
#

then it just filters through and nukes what items don't belong

dense rune
#

I think we are talking about different things haha

short aurora
#

It might be easier to add the temp hp just as start of the macro instead of having it as part of the actual aura, like, just code it, because it only happens when the spell is placed

kind cape
#

Yeah I think you are talking past each other ๐Ÿ˜›

celest bluff
#

I'm talking about you only needing 1 actor instead of 3

short aurora
#

Get all your targets within the template, programmatically adding the temp HP, then just have an active-aura with the advantage stuff

dense rune
dense rune
kind cape
#

Well if you are running a MIDI on-use macro the targets should be available in args[0].targets IIRC

dense rune
#

oh!!!!!! And I can filter them like friendly / enemies somehow right?!

short aurora
#

I can't remember if args[0].targets is tokens or actors, but yes, they have a disposition value somewhere

celest bluff
#

you'd use active auras for something like this as already pointed out

#

it's an array of 5e token actors

#

Hawk spirit would require a world script to work 100%

#

or you could create a reaction item on them to cheat it.

dense rune
#

but active auras AFAIK it's used to propagate effects to other actors (persistent effects while you are in the aura) I just want to apply add +x temporal hp to allies in a 30ft range before applying the macro which actives the active aura. That's why I (think) need first to just add +xhp just once

dense rune
celest bluff
#

Actually you might be able to cheat the whole process, if you create an item on the target and the caster