#MidiQOL

1 messages ยท Page 53 of 1

vast bane
#

I found primates

#

I'm just gonna use mr. primates version

#

gonna delete mine above so people searching don't try to use it

violet meadow
#

test it quickly to make sure ๐Ÿ˜„

velvet sky
#

For Active Effects module, I'm trying to make an effect deal damage every round like poison or something, but the code below is not working, what am I doing wrong?

flags.midi-qol.OverTime

turn=start,
damageRoll=1d4,
damageType=acid,
condition=@attributes.hp.value > 0 && @digital lagoontributes.hp.value < @digital lagoontributes.hp.max

vast bane
#

I think its cause I don't fast forward

violet meadow
#

well that's a new one @at ๐Ÿ˜„

vast bane
#

I bet you AT is so that atropos doesn't get auto completed muahahaha lol

velvet sky
#

Thank you!

vast bane
#

in my original macro, the second line seems redundant?

violet meadow
#

yeah delete the targets.push...

vast bane
#

the one I have actually targetted is the only one prompted

violet meadow
#

hmmm also just js game.user.updateTokenTargets(targets.map(i=>i.id)) instead of ```js
const currentTargets = game.user.targets;
currentTargets.forEach(t => t.setTarget(false, { user: game.user, releaseOthers: false }));
const newTargets = targets.forEach(t => t.setTarget(true, { user: game.user, releaseOthers: false }));

#

noone saw the edit(s)...

vast bane
#

still only prompting the one hit with the first part, but the automated animations hits them all

#

I have updated the macro with what I'm using

#

when should the macro fire on use? after active effects?

#

I just logged args, and I get this: I feel like its using the caster instead of the target here?

violet meadow
vast bane
#
Use Mr.Primates macro on his github.
violet meadow
#

instead of console.log(args), use console.log(targets) to see what's up

vast bane
violet meadow
#

ok you've got 6 targets

vast bane
#

yeah the sixth shouldn't be there I dunno why its counting this one...

#

the animations play right, and the animation is hitting that far left one

violet meadow
#

the one not shown fully?

vast bane
#

I wonder if this is cause of my worldscript for movement animation

#

no the one in the image that has no tmfx bevel

violet meadow
#

ok who is the initial target?

#

that one?

#

Measure the distance to the one you say it shouldn't. It will be 10 no?

vast bane
#

its ten with measuring stick yeah

#

but its suppose to only be creatures within 5

#

fyi I am now running ftc and only using midi, socketlib, libwrapper, dae, advanced macros, and MTB

violet meadow
#

OK wait, diagonal rules 5/10/5?

#

change to 7.5 maybe instead of 10

vast bane
#

I'm still only prompting the one I have targetted

#

could there be a midi setting interfering? I'm gonna turn on fast forward

#

still no luck

covert mason
#

I'm trying to use Effect Macro to reverse a mutation on deletion.

if(mutation) {
    return await warpgate.revert(token.document, "Prismatic Shield")   
};```

Is this correct?
vast bane
#

the 7.5 thing solved the extra target but the damage is only applying to the first guy

violet meadow
vast bane
#

k gonna try mr primates again not sure what causes the yellow error with it

#

omg I think I figured it out @violet meadow I have no fucking clue how this import got into my shit....:

violet meadow
covert mason
# violet meadow is the mutationName `Prismatic Shield`?

Yup. Here's the on-creation effect macro.

await warpgate.mutate(token.document, {token: {light: {color: "#ffffff", dim: 8, bright: 0, alpha: 0.3, animation: {type: "fairy", speed: 3, intensity: 1}}}},{},{name:"Prismatic Shield"});```
violet meadow
#

It seems fine, if you got the mutation correctly defined in the if (mutation) {}

vast bane
#

@violet meadow editing out that weird damage type didn't help the macro we been working on, testing mr primates now

#

yeah editing that rogue damage type fixes Mr.Primates Ice Knife

#

I'm just gonna edit my macro entries above to be messages to use mr. primates

#

ok new issue, the sound effect in automated animations plays for each target in the secondary explosion

#

nm I know how to fix this, I will just turn off global

covert mason
violet meadow
covert mason
#

OH

#

I forgot to define it

#

There we go ๐Ÿ˜‚
Novice mistake

vast bane
#

I've done worse Janner

#

I shared a macro where the main function was commented out and asked why it wasn't working

spice kraken
#

We've all been there

violet meadow
#

DAE macro.itemMacro | CUSTOM | or macro.execute | CUSTOM | "macro name" ```js
const lastArg = args.at(-1);
const tokenDoc = fromUuidSync(lastArg.tokenUuid)
if (args[0]==="on") await tokenDoc.update({hidden:true})
if (args[0] === "off") await tokenDoc.update({hidden:false})

@scarlet echo
vast bane
#

I like this method better than the status markers

#

I'm actually gonna steal it

violet meadow
#

actually try it quickly cause I am going off memory ๐Ÿ˜„

vast bane
#

wait a minute, banishment is already midi srd'ed

violet meadow
#

edited

#

I am sleepy

vast bane
#

I feel like you should be proud of me Bugbear, I got it to work with Effect macro

violet meadow
#

@vast bane the MidiSRD Banishment should be good right? Did you have a previous version? ๐Ÿค”

vast bane
#

I might have let me look

#

oh yeah, that would change wouldn't it, usually the midi srd's don't actually have the macros in them, instead they reference the file, but banishment seems to have a macro

violet meadow
vast bane
#

I already updated it with my effect macro version, but looking at midi srd's official compendium one, it has a midi srd entry instead of the full macro so it should be working

#

I had an old one

#

god I really miss tidy's search function

gaunt nebula
#

Moving conversation RE: Unicorn Totem feature

#

The Healing Formula relies on Arbron's Summoning

violet meadow
vast bane
# gaunt nebula

honestly I'd just make the range endless so that you guys don't have to knitpick the location of the totem when 99% of the time it just doesn't matter

#

can't they also do an actor on use whenever they cast a healing spell?

#

to roll that item

#

oh but they'd need a flag to say its up

gaunt nebula
#

Weird that it would work if you unselect anyone who was fully healed

#

And if I'm not mistaken - setting the Actor's type to "NoTarget" will make it no longer targetable by Midi based automations right?

violet meadow
gaunt nebula
#

Yes. I remember seeing that recently when someone noted that ItemPiles would accidentally get slept

violet meadow
#

ah no idea about Item Piles API unfortunately

vast bane
#

another thing to put in the plus column for Monk's Enhanced Journal vs Item Piles lol

#

MEJ's are journal entries on the map so they don't get targetted

gaunt nebula
#

Found it:

sudden crane
# gaunt nebula Found it:

Effectively, code from midi-qol:

if (token.actor.system.details.type?.custom === "NoTarget") continue;
coarse mesa
# violet meadow ah no idea about Item Piles API unfortunately

I don't think it was specifically Item Piles related... there was talk around of changing the creature type from Humanoid etc to 'NoTarget', meaning it wouldn't get targeted by midi. I've never heard of it actually working though lol... maybe using Template Enhancements etc screws it up

violet meadow
#

yeah I saw the code from Elwin

#

no idea though, never tried it

low trench
#

trying to get Armor of Agathys to work using Convient Effects, Midi... i found this unsure how to implement this: #1010273821401555087 message

scarlet gale
#

You'll need world scripter.

#

Then have the spell DAE look like the above.

toxic spruce
#

Correct.

violet meadow
toxic spruce
#

No rush or need. I just have been using situational

shy orchid
#

is there a value like DR that makes them take more damage? increased damge can be finicky for what i want

#

like if i wanted to make an enemy take more radiant damage

violet meadow
pine forum
#

specified in the midi readme

shy orchid
#

thats what i was GONNA try but i wasnt sure

violet meadow
#

It is supported ๐Ÿคทโ€โ™‚๏ธ

pine forum
#

oh, the readme is out of date?

violet meadow
#

Changed at some point

#

Yeah probably

#

Change logs are a better source of info sometimes

#

Or not better but rather a good source of additional information

pine forum
#

Oddly it seems to be adding double the negative DR to catrips vs spells

violet meadow
#

Use Custom instead of add

pine forum
#

That's got it

#

the things you learn when thatawesomebugbear fails at going to bed when they said they were

vast bane
#

the DR healing and healing temp flags are the ones that don't have negative support

low trench
scarlet gale
#

World script

#

I recommend the world scripter module.

low trench
#

Googling.

scarlet gale
#

Bit different then a hotbar macro

low trench
#

Gotcha.

#

Do I just drag it off hotbar into compendium?

#

Not sure whats wrong... sorry again.

low trench
#

CRAP sorry i meant for it not to ping you

scarlet gale
#

Something likely not setup right

#

I'm in a game right now, but I can help you after

chrome gale
#

So I have now managed to get that 'on death' macro working that I was working on today/yesterday... but I've noticed an issue. It only triggerrs when the creatures dies in combat

#

if it dies outside of combat, it doesn't trigger

vast bane
#

just add a dae for 0 hp?

#

times up special duration for 0 hp

#

and then put the same macro on defeated in on deletion

chrome gale
#

effect macro triggers on defeated

vast bane
#

cut and paste the defeated into on deletion, keep it in defeated, and set a special duration to 0 hp

chrome gale
#

ahha

#

good call

vast bane
#

need to keep defeated if you ever dead status a monster with hp left or a power word kill

#

or a wildshape

chrome gale
#

if I keep both, wont the macro trigger twice

vast bane
#

hmmm

#

ok drop the defeated then

chrome gale
#

I don't think I'd ever dead status a monster with hp left (I have alwaysHP so I'd just kill it to zero)

#

same with power word

#

wild shape / polymorph might cause it to be a bit odd but I think that's niche enough to forget about

vast bane
#

you could have put an if something return state to stop double but no biggy

chrome gale
#

yeh I may do down the road

#

but for now

#

this will -do- haha

#

thanks

#

I already have an on-hit version of this that works for a single hit, I'm just curious if I can just have one version for all occasions instead of having two completely different setups.

forest oracle
#

I'm trying to get an overtime effect to roll thp, I've already got it set and working for healing using damage type=healing just need to know the damage code for thp
Cheers

spice kraken
forest oracle
#

Thanks

#

Probably could have guessed that in hindsight lol

spice kraken
#

It's all in the readme

chrome gale
#

that overtime section in midi was such a great addition. It's a shame there's not a midiqol for pf2e

chrome gale
#

This seems to say the effect should be applied after the hit, but instead it seems to be applied after the damage roll? Is there a way around this?

winter jacinth
#

Hey, i have a weapon which does additional 1d6 damage against a creature type. How can i configure the item so we can roll the 1d6 only if needet with midiqol

chrome gale
spice kraken
#

What type of creature?

scarlet gale
#

That's likely the reason it's getting "not a number" as the damage.

vast bane
#

on use macros can fire earlier

vast bane
chrome gale
#

oh or do you mean ItemMacro is an on use macro

vast bane
#

why do you need the ae to apply before damage?

chrome gale
#

because the effect triggers when the creature drops to 0hp

#

at the moment it deals the damage first, so the effect never triggers

chrome gale
vast bane
#

I think I need more context

#

is it a published ability

vast bane
chrome gale
#

its the same one as last night

vast bane
# chrome gale

whats it do, I'm about to head to bed don't make me read code

chrome gale
#

it adds an effect on a creature for 1 round. If the creature dies (from any source) during that round, the original player gains a resource

vast bane
#

ok make the ae dfreds ce, apply it via a pre item roll item macro

#

need to use the item macro method of origin since origin is an effect macro thing

#

you should have a stored item macro version here before we changed it on you

#

no wait I'm a dufus

#

the item macro is just going to be the application of the active effect with the EM on it

#

I don't really wanna login to my world, dfreds CE gives you sample macros, you want the one that applies a CE

chrome gale
#

yeh I've used the CE macro

#

in an item macro

#

but it doesn't apply tthe source

#

it leaves it blank

vast bane
#

if origin isn't working then just define the actor a different way

#

what is the error

#

you should be able to swap origin for the args stuff but you'll need someone like chris or bugbear for that

scarlet gale
#

Honestly, the initial macro is kinda messy

vast bane
#

I don't even get what its doing lol

#

can't this just be handled with an item macro after effects, have it check args -1 if its at 0 hp

#

then add shit

chrome gale
vast bane
#

we wouldn't even be touching ae's

scarlet gale
#

Could you give us the description of the ability or feature?

chrome gale
#

it adds an effect on a creature for 1 round. If the creature dies (from any source) during that round, the original player gains a resource

vast bane
#

is it grogs sword?

#

don't tell us the foundry way of doing it, tell us what it does in dnd

chrome gale
#

no, its custom. The player is harvesting souls

vast bane
#

if its custom share its description here

chrome gale
#

The player gains a soul whenever a worthy creature dies

scarlet gale
#

Gotcha

vast bane
#

what is a worthy creature

scarlet gale
#

Looks like a certain CR level

chrome gale
#

as long as he either makes the killing blow, or he applies that effect on the same round as another player kills it

scarlet gale
#

Based on the macro

#

The initial hit also counts too correct?

vast bane
#

every creature would be counted

#

every creature dies in a round he attacks

chrome gale
#

no, only creatures he makes a killing blow on, or a creature he hits with this effect

#

this is currently two separate macros. One which is an itemmacro which works by killing blow, and a different one which applies an effect that lasts 1 round

#

both work fine

scarlet gale
#

Is this an item that has it?

chrome gale
#

yes

vast bane
#

I would not give this item to my players lol, too complicated to automate

scarlet gale
#

So they gain the effect when hit by this item?

vast bane
#

just give them a sword of sharpness lol

chrome gale
#

I'm just tring to see if I can do both things with just one macro, instead of needing both

chrome gale
chrome gale
scarlet gale
#

And only by this sword or anything that person has?

chrome gale
#

as I say, both macros work, the only thing im trying to do it turn them into one macro

#

only this weapon

#

atm the player has the same weapon twice, depending on how he plans to use it that turn. each version with the different macro

scarlet gale
#
let findResourceSlot = resourceTable.find(i => i.label.toLowerCase() === resourceName.toLowerCase());```
#

This line is confusing me

#

Is it just looking for the resource call souls?

chrome gale
#

i assume so

#

I didnt write it

#

thats what I understand it does

scarlet gale
#

Last question

#

The attack needs to hit to be effected?

#

Is there any save involved?

chrome gale
#

it needs to hit

#

no save

scarlet gale
#

Gimme a few moments and I can whip something up that should work for both instances for you

chrome gale
#

I'd appreciate that thankyou

#

One thing I'm struggling with is it also needs to only work when the creature dies. It works fine with the effect macro 'on deletion' and the special duration of 'when 0hp'

#

but

#

it also means that if the effect expires because of the round ending, it also triggers because that counts as being deleted too

#

I have a line which is meant to interrupt the macro (return {}) if the creatures hp != 0

#

but it's... only working for one macro, and not the other

#

can't figure out why, no errors in the log, it just doesn't work

vast bane
#

whats the if line

chrome gale
#

(can't use the effectmacro "on defeated" because that doesn't work all the time)

vast bane
#

I can't see ever having combat without initiative

scarlet gale
#
if (actor.system.attributes.hp.value != 0) return;```
This should be what's needed for the effect macro.
chrome gale
#

let target = actor;
if (target.system.attributes.hp.value !== 0) return {};
let resourceList = [{ name: "primary" }, { name: "secondary"

vast bane
#

that seems naughty

chrome gale
#

it seems to always stop the macro no matter what, even though the enemy is on 0hp

vast bane
#

you don't have args

scarlet gale
#

Try my code I just posted

vast bane
#

you were using origin

scarlet gale
#

Effect macros doesn't have args

#

actor is already defined for you in an effect macro too

chrome gale
chrome gale
#

which is no surprise as they're functionally identical

scarlet gale
#

Not really

chrome gale
#

oh sorry, mine was also !=

#

not !==

#

but anyway both do the same thing, in that the macro doesn't seem to run and no errors pop in console

#

thats after I kill the creature with alwayshp (which works when I have that line commented out)

scarlet gale
#

Is the target supposed to have a resource with souls on them?

#

or just the player?

#

or both?

chrome gale
#

only the player

#

I may have to come back to this after I've had some sleep, but I appreciate you tinkering with it for me. If you could just leave a message or DM me or something if you come up with a solution I'd really appreciate it

scarlet gale
#

Yep, I'll have something working for you in a little bit

chrome gale
#

I'd stay but I wrecked my back last week and I have to keep taking breaks and painkillers -.- aha

#

thankyou

#

I assume you looked at the original macro so you know about the undead/fiend not working and the CR range etc

scarlet gale
#

Yep, basing it on that

foggy tangle
#

Is there a way to have the ruler with Euclidean geometry but allow diagonal melee 5 ft attacks

scarlet gale
#

Had to embed the effect macro into the item macro. The only issue is that it won't work if the effect is used on an actor that isn't controlled by the gm. May need to swap the actor.update with a warpgate mutation if so.

#

But oh well

violet meadow
molten solar
# scarlet gale

To make it more readable in a script, you can add an effectmacro as a flag like this:

const onDelete = async function(){
  /* do stuff */
}

const effectData = {
  /* ... */,
  "flags.effectmacro.onDelete.script": `(${onDelete.toString()})()`
}
scarlet gale
violet meadow
#

remove the 5 / | Feet and choose just Touch. Does this account for the adjacent squares or not?

foggy tangle
#

doesnt work diagonally

#

would be the same effort as changing all weapons to 8 feet as well i think

violet meadow
#

If it works, the change could be performed by a single macro for all items on your world

foggy tangle
#

yea changing to 8 feet works

wheat marten
#

Does anyone happen to have a full Shadowblade macro? Been looking through previous posts, but most indicate there were issues with them and I'm codeblind ๐Ÿ˜“

vast bane
#

I've been moving away from warpgates and using macro.createitem, but the downside to createitem is they aren't easily shared

fathom socket
vast bane
#

oh apparently shadow blade is here on discord somewhere

#

cause I have one

#
//DAE Item Macro, no arguments passed
if (!game.modules.get("advanced-macros")?.active) ui.notifications.error("Please enable the Advanced Macros module")

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

const DAEItem = lastArg.efData.flags.dae.itemData

/**
 * Create Shadow Blade item in inventory
 */
if (args[0] === "on") {
  let weaponDamge = 2 + Math.floor(DAEItem.system.level / 2);
  await tactor.createEmbeddedDocuments("Item",[
    {
    "name": "Summoned Shadow Blade",
    "type": "weapon",
    "system": {
        "quantity": 1,
        "activation": {
            "type": "action",
            "cost": 1,
            "condition": ""
        },
        "properties": {
            "lgt": true,
            "fin": true,
            "thr": true
        },
        "target": {
            "value": 1,
            "width": null,
            "units": "",
            "type": "creature"
        },
        "range": {
            "value": 5,
        },
        "actionType": "mwak",
        "damage": {
            "parts": [
            [
                `${weaponDamge}d8`,
                "psychic"
            ]
            ],
        },
        "weaponType": "simpleM",
        "proficient": true,
    },
    "img": DAEItem.img,
      "effects" : []
    }
  ]
  );
  ui.notifications.notify("A Shadow Blade appears in your inventory")
}

// Delete Shadow Blade
if (args[0] === "off") {
  let castItem = tactor.items.find(i => i.name === "Summoned Shadow Blade" && i.type === "weapon")
  if(castItem) await tactor.deleteEmbeddedDocuments("Item",[castItem.id])
}```
wheat marten
#

Thanks! ๐Ÿ™‚

vast bane
#

its an active effect key item macro

wheat marten
#

Thanks, will try that out!

vast bane
#

@gilded yacht the midi or dae key system.attributes.movement.all only lets us pick custom when most of the time we'd need it to be override. system.attributes.movement.hover also seems to only take custom

violet meadow
violet meadow
vast bane
#

so that I don't have to make a wall of ae keys

#

also Rime's Binding Ice

#

rimes would be override, ray of frost would be subtract/add

#

tempted to just use the grappled condition on rimes to clean this up

#

technically grappled needs it too though

violet meadow
#

Use system.attributes.movement.all | CUSTOM | -10

vast bane
#

that would work for ray of frost but not the others

#

I think hover is just a boolean right, its not a movement type

violet meadow
#

system.attributes.movement.all | CUSTOM | *0 or just 0

#

and yes boolean for .hover

vast bane
#

I am right in assuming the all is a midi key right?

#

it has to be a module cause it only accepts custom so I assumed midi

#

I gotta take my daughter to school but I'll resume whereever this convo goes when I return in 20

violet meadow
vast bane
#

probably worth while to use that notarget creature type on all our warpgate summons now eh?

#

like healing badger/spirit, spiritual weapon, and the druid totems

#

do we have to worldscript it or can we just put a custom creature type?

covert mason
#

Is it possible to turn this into something similar, but for damage resistances? I'm trying to automate the Draconic Spirit's "shared resistances" where it grants its summoner a damage-type resistance based on the resistances it already has.

const options = Object.entries(actor.system.traits.dr).reduce((acc, [key, {value}]) => {
  if(value > 0) return acc;
  return acc + `<option value="${key}">${CONFIG.DND5E.traits.dr[key].label}</option>`;
}, "");
const content = `
<form>
  <div class="form-group">
    <label>Skill</label>
    <div class="form-fields">
      <select>${options}</select>
    </div>
  </div>
</form>`;
const key = await Dialog.prompt({
  title: "Shared Resistances",
  content,
  rejectClose: false,
  label: "Gain Resistance",
  callback: (html) => html[0].querySelector("select").value
});
if(!key) return;
const effect = actor.effects.find(e => e.getFlag("world", "shared-resistances"));
const mode = CONST.ACTIVE_EFFECT_MODES.UPGRADE;
const changes = [{key: `system.traits.dr.${key}.value`, value: 1, mode}];
if(effect) return effect.update({changes});
return actor.createEmbeddedDocuments("ActiveEffect", [{
  icon: "/Icons/Spell_Icons/Arcane/T_Icon_Arcane_86.webp",
  label: "Shared Resistances",
  duration: {seconds: 600},
  "flags.world.shared-resistances": true,
  changes
}]);```
vast bane
covert mason
vast bane
#

Thankfully I have managed to get a dfreds CE dialog prompt

#

not at my pc atm

velvet sky
#

For Active Effects module, I'm trying to make an effect heal every round but it's not doing it right, what am I doing wrong?

flags.midi-qol.OverTime

turn=start,
damageRoll=5,
damageType=healing,
condition=@attributes.hp.value > 0 && @digital lagoontributes.hp.value < @digital lagoontributes.hp.max

I've set it to override, add, and custom.

#

I'm on 5E, Foundry VTT Ver 10.

vast bane
velvet sky
#

ah, my b, thank you!

vast bane
#

however you are on 2.1.2 dnd5e so all bets are off

velvet sky
#

ahhhh, yeah lot of modules happen to be that way, idk why?

vast bane
#

I'm trying to setup Spirit shroud, its an ability that adds situational bonus damage, a situational active effect applied to the target. I think this needs to be an optional.name macro but I just can't wrap my head around this.

velvet sky
#

Yeah, I had it working correctly before, but that was aggggggges ago. Or maybe I was high lol.

vast bane
#

either that or I need to be able to edit their attacks to add the active effect damage bonus/ae application but also edit the activation condition with a range check of 10ft.

#

I got all these ideas on how to pull it off but they all come up short

#

I thought maybe an active aura with a reverse damage reduction, but the problem with that is it'd work on other peopels damage

#

then I thought an advantage reminder and put a document link to the temp item

#

thats my best idea I got

#

reminder to do X more damage in the roll, and a document link to roll a temp item that applies the health blockage

velvet sky
#

100%, I hate to have to do thing manually or remember them cuz I have a ton of other things to worry about lol. I'll def try those ideas tho, thank you again!

vast bane
#

nah I don't fast forward, the reminders actually work with this setup

#

I just hate making temp items

#

can you make a document link of an item macro?

low trench
vast bane
#

I am trying to make an active effect remove when the creature takes acid damage and it is not working and I do not know why? No errors

vast bane
#

@violet meadow the fireshield in midi SRD, I feel like the item created should be set to 0 Reaction damaged instead of 0 Special

scarlet gale
#

Refresh your page after doing so and screenshot your console after making an attack and getting the NaN issue.

#

Actually, check the box that says "Don't apply convenient effect" and see if that fixes it first.

violet meadow
vast bane
#

do you know if theres an issue with the times up damage type special durations, I can't get any of them to end the ae?

#

Trying to automate Elemental Bane in my usual Janky fashion but It all hinges on controlling the once per turn by ending the ae when damaged by the type

#

and it just doesn't end

#

unless someones got their own proper elemental bane automation

violet meadow
#

Dnd5e 2.1.2 or not?

vast bane
#

I'm rocking 2.0.3, dae 14, midi 24

#

I will say, I do have damage reduction of the same type, but its reverse, I'm putting bonus damage of the type on the target

#

thats why the damage equation in the image is weird

#

it recieves 7 bonus acid damage due to an active effect on it with a DR.Acid flag

violet meadow
#

isDamaged blabla .Acid

vast bane
#

I just tested with a very simple test and it still failed to remove I will find the culprit I guess

vast bane
violet meadow
#

nope but I would suggest to try ff/auto rolling the damage to test it out

#

I am on dnd5e 2.1.2 so no turning back now ๐Ÿ˜„

vast bane
#

I do have FF

#

I will wait and see if someone with 24 and 203 dnd5e can check for me

violet meadow
#

Yeah it works even when not autorolling damage ๐Ÿคท

My issue is though that it doesn't wait for the GM to accept and Apply damage when using NO + Damage Card.

#

Instead when the Acid damage is rolled, it deletes instantly

vast bane
#

I auto apply damage

#

how else could I define the special duration I wonder

#

I could go full janky and just do the generic is damaged

#

it refreshes every combat turn via effect macro and has a duration of 1 turn, but fades after the first damage instance temporarily

#

to mimic once per turn bonus damage of a type

rancid tide
#

Hey @violet meadow do you remember this issue I had that you solved? I'm having the same issue (it's the same exact macro too) but now I have to do the same thing for the ability mod which I need to switch from lastArg.item.system.ability === "" to "int"

raven holly
violet meadow
rancid tide
#

Yes just a second

#

I thought of doing something of the like of:

if (args[0].macroPass === "preAttackRoll") {
    if (lastArg.item.system.ability === "" && (lastArg.actor.system.abilities.dex.mod <= lastArg.actor.system.abilities.int.mod)) {
        lastArg.item.system.ability = "int";
    }
    if (!lastArg.item.system.attackBonus.includes("@prof")) {
        lastArg.item.system.attackBonus = lastArg.item.system.attackBonus === "" ? "@prof" : `${lastArg.item.system.attackBonus} + @prof`;
    }
    //setProperty(actor, "flags.midi-qol.ignoreNearbyFoes", true);
}
rancid tide
violet meadow
rancid tide
#

okay just a sec

rancid tide
#

without consuming the item it works with both

#

Idk why it works for DC but not for damage?

dark canopy
#

you will need to update the damage before the item is consumed in order to have its data stored properly in the chat message. Its the chat message item data that is used for rolling damage on consumed (i.e. deleted) items

#

assigning values to the item directly, as in the script above, will not suffice

#

the DC is produced from the in-memory item data, as it still exists at the time of chat message creation

rancid tide
#

Ohh okay I see thanks

#

Is there a reason why the DC set by the macro is actually overwritten in the item itself then?

#

Because it doesn't do so with ability = "int", is it for the reason you just told me?

dark canopy
#

i dont quite follow...

#

where is the item being updated in the above script?

#

oh, DC computation -- you are giving it conflicting information -- you are saying "use DC from int", but then also trying to give it a flat DC

#

its one or the other, the DC is derived from a flat value, or your abilities

rancid tide
dark canopy
#

Assigning values without actually performing an update will never persist the data

rancid tide
#

Which is what I want in this case, but why it does persist with the DC

dark canopy
#

Could be any number of things, really

#

If you need to modify an item, you want to use 'update' with the data to change

#

However, you don't want to update item data inside a hook

#

Unless midi controls hook execution directly somehow

rancid tide
#

Because when the item is updated the data inside the workflow is discarded right?

dark canopy
#

It's an order of operations thing. Hooks don't wait for the operation to complete

#

So it may get latched properly, but maybe not

rancid tide
rancid tide
rancid tide
low trench
# scarlet gale Actually, check the box that says "Don't apply convenient effect" and see if tha...

Actually, check the box that says "Don't apply convenient effect" and see if that fixes it first.
I did this and it didn't affect. The macro didn't execute. The dragon didn't take any damage and there was nothing in my "chat".


Hooks.on('midi-qol.RollComplete', async workflow => {
    if (workflow.hitTargets.size != 1) return;
    let targetToken = workflow.targets.first();
    if (!targetToken) return;
    let targetActor = targetToken.actor;
    if (!targetActor) return;
    let attackType = workflow.item.system.actionType;
    if (!(attackType === 'mwak' || attackType === 'msak')) return;
    let targetEffect = targetActor.effects.find(eff => eff.label === 'Armor of Agathys');
    if (!targetEffect) return;
    let damage = targetActor.flags.world?.spell?.aoa;
    console.log(damage);
    if (!damage) return;
    let tempHP = targetActor.system.attributes.hp.temp;
    if (tempHP === 0) await MidiQOL.socket().executeAsGM("removeEffects", {'actorUuid': targetActor.uuid, 'effects': [targetEffect.id]});
    await MidiQOL.applyTokenDamage(
        [
            {
                damage: damage,
                type: 'cold'
            }
        ],
        damage,
        new Set([workflow.token]),
        null,
        null
    );
});```

Updated code (sorry didn't mean to send).
Here is console output: [#1010273821401555087 message](/guild/170995199584108546/channel/1010273821401555087/)
rancid tide
dark canopy
#

well, the first line contradicts that ๐Ÿ˜… , but also, i feel like im not actually that helpful due to this complex midi workflow going on

violet meadow
#

The way you use this, is by hooking at different phases onto the MidiQOL workflow and updating some variables of that.
No updates on the item take place

rancid tide
rancid tide
low trench
# low trench ```Actually, check the box that says "Don't apply convenient effect" and see if ...
Foundry VTT | Retrieved and compiled template systems/dnd5e/templates/apps/ability-use.hbs foundry.js:6887:17
Foundry VTT | Rendering AbilityUseDialog foundry.js:5099:15
DEBUG |   |  _preUpdateActor | Logic (e/s) |  <empty string> logger.js:4:17
Foundry VTT | Created ChatMessage with id [jTzg8Xrv6yX5ZnE2] commons.js:6946:20
Foundry VTT | Retrieved and compiled template templates/dice/tooltip.html foundry.js:6887:17
Foundry VTT | Retrieved and compiled template templates/dice/roll.html foundry.js:6887:17
HexBlade => Checking for Valid Attack Roll workflow.js line 1628 > Function:75:13
HexBlade => Armor of Agathys Invalid Attack Roll workflow.js line 1628 > Function:76:92
midi-qol |  DmageRollComplete elapsed 22ms midi-qol.js:21:39
midi-qol |  Ozadius Vanan 45 takes 0 reduced from 15 Temp HP 0 HP 45 midi-qol.js:21:39
DEBUG |   |  _preUpdateActor | Logic (e/s) |  <empty string> logger.js:4:17
midi-qol |  createGMReverseDamageCard elapsed: 92ms midi-qol.js:21:39
Foundry VTT | Created ChatMessage with id [cQzm0rBiSBFbYEkF] commons.js:6946:20
Foundry VTT | Created ChatMessage with id [9HTJFibAQNBcKNJa] commons.js:6946:20
Foundry VTT | Created ActiveEffect with id [yr876JAoG27CR07h] in parent Actor [0Uz5IQz6kjYxNbX6] commons.js:6946:20
dfreds-convenient-effects | Added effect Armor of Agathys to Ozadius Vanan - 0Uz5IQz6kjYxNbX6 logger.js:8:13
Foundry VTT | Unregistered callback for createMeasuredTemplate hook foundry.js:661:13
Foundry VTT | Registered callback for createMeasuredTemplate hook 2 foundry.js:610:13
Foundry VTT | Created ChatMessage with id [wBAQfqlOvRyuMaA1] commons.js:6946:20
Foundry VTT | Rendering ReactionDialog foundry.js:5099:15
Foundry VTT | Retrieved and compiled template modules/midi-qol/templates/dialog.html foundry.js:6887:17
midi-qol |  Elder Brain Dragon Rolled a 31 to hit Ozadius's AC of 17 hitting midi-qol.js:21:39
midi-qol |  Hidden removed for Elder Brain Dragon due to attack midi-qol.js:21:39
midi-qol |  DmageRollComplete elapsed 17ms midi-qol.js:21:39
midi-qol |  Ozadius Vanan 45 takes 14 reduced from 14 Temp HP 1 HP 45 midi-qol.js:21:39
DEBUG |   |  _preUpdateActor | Logic (e/s) |  <empty string> logger.js:4:17
midi-qol |  createGMReverseDamageCard elapsed: 53ms midi-qol.js:21:39
Foundry VTT | Unregistered callback for createMeasuredTemplate hook foundry.js:661:13
Foundry VTT | Created ChatMessage with id [73vTWzM9i3kVgcqy] commons.js:6946:20
@damage scripter.js line 29 > eval:12:13
midi-qol |  Elder Brain Dragon 350 takes NaN reduced from NaN Temp HP 0 HP NaN midi-qol.js:21:39
DEBUG |   |  _preUpdateActor | Logic (e/s) |  <empty string> logger.js:4:17
midi-qol |  createGMReverseDamageCard elapsed: 28ms midi-qol.js:21:39
Foundry VTT | Created ChatMessage with id [xCOmPFRSKPro7KAy] commons.js:6946:20
Foundry VTT | Synchronized official game time in 14ms foundry.js:3133:13
Foundry VTT | Synchronized official game time in 11ms foundry.js:3133:13```
violet meadow
rancid tide
#

Yes just a minute

scarlet gale
rancid tide
scarlet gale
#

And if that's the case, I'm very confused.

#

@low trench Just to confirm, this is setup as a DAE on the item and not a convenient effect correct?

#

It won't work as a name matched CE.

chrome gale
sudden crane
#

In this case there must be only one target hit otherwise it does nothing

scarlet gale
#

Yep

#

I normally check that the set has only 1 target. 0 means nobody was hit and anything more than 1 means you accidently had too many people targeted with your attack

molten solar
#

It isn't an asynchronous update.

chrome gale
rancid tide
scarlet gale
#

Your sword can hit multiple people with only one attack roll?

molten solar
chrome gale
molten solar
#

Items are documents.
update is a method on documents.
If update is not a method on what you are attempting it on, then it is not a document.

scarlet gale
#

Would need to rework part of it to work with dex saves, I was under the assumption it was an attack roll

chrome gale
#

I don't even know if Id allow him to use this ability while sweeping, I was just tinkering with the new macro

rancid tide
scarlet gale
#

Wouldn't be too hard of a change, just need to change it to use the failedSaves set and make sure the size isn't 0.

#

As well as change the effect application part to account for multiple targets

chrome gale
scarlet gale
#

I'll take a look at it again when I get a chance. About to head off to work so it'll be a bit

chrome gale
scarlet gale
#

It could be done with one macro technically, just a check or two to see how the item is setup.

chrome gale
mighty pier
#

Well, again, questions about the basic foundry are redirected to this module, because it turns out that this is the MidiQoL mechanics (I hope this is the right module). I'll just copy the question:

In the settings of the item / action in the "Target" field, you can set "5 feet - creatures", but then the effect will also affect the creature itself that caused it. Is there a way I can make it so that EVERYONE (not only enemies) around the creature that causes the effect, but not on itself, must make the saving throw? I mean, if you chose "creatures - 5 feet" on the Actor, and a saving throw, it will have to be roll by all the creatures around the Actor, and himself. And I want only the creatures around the Actor to make a saving throw, not him.

chrome gale
#

(this has tripped me up on many occasions)

#

(I've even asked this same question here before lol)

mighty pier
chrome gale
#

glad I could help ๐Ÿ™‚

molten solar
vast bane
raven holly
#

Is there an issue for it?

vast bane
#

I'd make it, but I don't actually know how that magic is done

#

I think its complicated cause of how ATL's keys changed?

raven holly
#

sure, wouldnt TPosney just need to be pointed to the new ones and update whatever does the autocomplete?

vast bane
#

Yeah so probably like a document like your quick guide but with the highlighted changed keys

fringe brook
#

Hi, I am getting midiqol errors since the lates DnD5e Version update:

utils.js:359 Uncaught (in promise) TypeError: trait.concat is not a function
[Detected 1 package: midi-qol]
    at getTraitMult (utils.js:359)
    at applyTokenDamageMany (utils.js:671)
  ....
scarlet gale
#

IIRC known issue, it's been reported

fringe brook
#

hm alright thanks :/ got multiple issues since the last update. had to stop our session tonight because the players kept crashing

violet meadow
fringe brook
green wolf
#

Is there a DAE effect flag to give strength proficiency? I didn't see anything obvious in midi qol flags in the dropdown

placid sorrel
#

which is the option to see the AC in the chat message as GM? I cannot find it anymore and I remember that I could see the AC in the past.

opaque current
green wolf
opaque current
vast bane
#

feature idea, the way he lets us drag items into the effect value of macro.createitem, make another one that lets you drag an item into item macro/folder macros and it creates the syntax needed for create synthetic items in it

molten solar
violet meadow
molten solar
#

Problem there is that you get a lot of junk data along with it.

#

In the end you might as well just do toObject()

vast bane
#

sorta how wg wiki does it

#

or better yet, have the macro take the uuid of a createitem just ;like the dae does

molten solar
#

You can just do that

vast bane
#

so we can just literally make the faux item

molten solar
#

That's 2 lines of code

dapper vortex
#

I was looking into using ATE for some basic lighting stuff and I feel like there needs to be a big caveat attached to the documentation for this module. ATE will "revert" the instance of the token under an ATE effect to the prototype token. ATE will NOT revert a token instance to the token instance's settings it had pre-effect

vast bane
molten solar
#

That is false.

#

I know you've seen fromUuid and toObject before

vast bane
#

you might as well be speaking french to me, I copy paste I don't know what all the stuff does

molten solar
#

(1) get and declare item as variable
(2) create object of data from item

#

That last part is what you're saying you want

violet meadow
molten solar
#

Implementing some drag-and-drop functionality, however, should not be too difficult.

#

Pointless

#

but not difficult

violet meadow
#

yeah but to what... --

molten solar
#

Think anyone noticed you can drag and drop a banabi yet?

violet meadow
#

lol I think most have just scratched the surface ๐Ÿ˜„

molten solar
#

Peasants ):<

violet meadow
#

and it was an "I will not fix" in the beginning ๐Ÿ˜›

molten solar
#

It's true

#

but the DataModel I implemented made it a lot safer

#

Otherwise you could take an item babuna and drag it to an actor or effect or something, and things could get fucky

#

Now you can do that, and there's no reason to worry

violet meadow
#

I will take a look behind the scenes ๐Ÿ™‚

violet meadow
molten solar
# violet meadow lol I think most have just scratched the surface ๐Ÿ˜„

I have a homebrew paladin subclass with a channel divinity feature where you can select a weapon to get +CHA fire damage for the duration. Just the single weapon. I avoided Warp Gate for it by having the item (item macro) create an effect that has a bababi attached with a Custom Script filter to match item id. ๐Ÿคฃ
... with a VAE description. ๐Ÿ™‚

#
const item = await fromUuid("uuid");
const itemData = item.toObject();
await actor.createEmbeddedDocuments("Item", [itemData]);
violet meadow
molten solar
#

All my effects must have a description. That is the rule.

violet meadow
dark canopy
#

Sometimes I'll get fancy and diff it against an empty type to help with that

#

But meh

sharp moat
#

Hey all, I have been trouble with my rolling in foundry vtt. For some reason all my npc's are rolling disadvantage automatically and I do not know why. I asked this a couple of days ago but I do not think anyone was able to answer it so I figured I would try again

sharp moat
opaque current
#

Is it auto detecting range or something?

vast bane
# sharp moat Nope just midi quol

do you have any of these:

Midi does not work with:

Ready Set Roll
Better Rolls for 5e
Roll Groups
Fast Rolling by Default
Fast Rolls or Quick Rolls
Dice Tooltips
Taragnor's Gm Paranoia
WIRE(Whistler's Item Rolls Extended)
Minimal Roll Enhancements
Retroactive Advantage/Disadvantage
Max Crit
Multiattack 5e

Advanced Spell Effects module is just dead in v10 and often the culprit of things..

sharp moat
#

none of those

vast bane
#

show us the actors effects tab

#

you must have something flagged on them

violet meadow
#

Attacking long range.
Attacking with ranged weapons with enemies adjacent.
Effects that grant disadvantage on attacks.

#

Some ideas

vast bane
#

or just a subtle effect flag with disadvantage on the actor

sharp moat
#

When I finish the session with my guys I will hop back on. I will double check but I think all the ranges are correct and lighting

vast bane
#

can you show us what the attack looks like in chat, and then the actor who is rolling dis, show us their effects tab

#

oh also the player could have a sticky ctrl/alt key

#

Anyone with 2.0.3 dnd5e, midi 24, and dae 14 feel like quickly testing something for me?

#

*and times up

covert mason
#
  embedded: {
    Item: {
      "Multiattack": {name: `Multiattack (${Math.floor(level / 2)} attacks)`},
      "Maul": {"system.attackBonus": `${msattack} + ${mod} - 4`, "system.damage.parts": [[`1d8 + 4 + ${level}`, "piercing"]]},
      "Breath Weapon": {"save": { "ability": "dex", "dc": spelldc, "scaling": "flat"}```
I'm trying to change an item that has a flat saving throw that uses the spell save DC defined as
```js
const spelldc = actor.system.attributes.spelldc;```
How would I format that?
scarlet gale
#

You can look at an item in console to help figure out the formatting

covert mason
scarlet gale
#

make an item how you want it then:

console.log(game.items.getName('Name Here'))```
#

or export the the item, it's the same structure

dark canopy
#

(at the bottom, the Intimidate item)

covert mason
rancid tide
#

does args[0].workflow have a field where the data about whether or not the consume option was toggled? (if the item is a consumable)

scarlet gale
#

You can check how many uses it has left

#

If it's 0 and it has a limit of 1 you would know.

rancid tide
scarlet gale
#

Not sure actually, the item should exist at least until the workflow is done

#

You could have the macro delete the item instead of relying on destroy on empty if it's not working

#

this.item.delete()

rancid tide
#

Yeah I'm having problems because if you update the item while in the workflow the data in the workflow gets overwritten and it's a bit of a mess

rancid tide
scarlet gale
#

yea, makes sense

rancid tide
#

Yes! quantity is set to 0! That's super useful! Thank you so much

#

omg it works you have no idea how much it changed everything having quantity 0

forest oracle
#

Any idea why the ddb booming blade macro would wear off after 6 real-time seconds or so?

#

It's all working well otherwise

scarlet gale
#

Out of combat?

#

Because it only is supposed to last a round

lost estuary
#

Does anyone know of a way to execute an ItemMacro when an item is rolled before the midi workflow starts?

forest oracle
#

If the enemy quickly moves they proc the damage successfully, it's just the effect duration is weird.

scarlet gale
#

Check your time settings

#

sounds like your game clock is moving in combat when it shouldn't be

vast bane
#

also they probably should consider installing times up/sc

#

cause doesn't DAE stop this from happening when those modules exist?

forest oracle
#

This little fella was to blame

#

Don't remember enabling it

vast bane
#

yep, you don't have times up? as a midi user?

forest oracle
#

Hey I'm just a poor PF2E GM trying to make my way in a 5E world

#

I'm learnding

scarlet gale
#

Makes sense

vast bane
#

times up module adds a plethora of special durations in DAE that you really want

scarlet gale
#

5E needs many more modules to have parity with PF2E

vast bane
#

they are really yummy for automation

forest oracle
#

I'll install it, I've been using combat ready for timer and it sounds like it handles similar aspects?

vast bane
#

thats cause the creators of the two different systems have very radical design paths for them

#

dnd5e is low automation, PF is high automation

#

times up is I think what causes ae's to expire and delete?

#

but we all use it for those special durations most of all

forest oracle
#

I installed it, cheers

chrome gale
forest oracle
vast bane
chrome gale
forest oracle
#

The former, the design choice for PF2E is to bake it all in it seems

chrome gale
#

interesting. I'll keep it in mind. The next non-dnd game I plan to try and GM is scum&villainy but I'll do a pf2e one day

covert mason
#

I'm getting this error, but I'm not seeing any differences between the items in the actor and the code. Is anyone willing to help take a look at this with a fresher pair of eyes than mine? ๐Ÿ˜…
It's also not deleting/modifying any items.

vast bane
#

I'm doing a dnd5e conversion of battletech but its a slow go, I need dnd5e 2.1.2 to fix its issues iwth all the fun modules

#

well vice versa, I need the fun modules to fix

covert mason
vast bane
#

then you misspelled a feature

covert mason
#

I've gone through all the features. They all seem to be spelled correctly

scarlet gale
#

Unrelated, but you should avoid using anything starting with _ when you can.

#

Your first line is getting an ID weirdly

vast bane
#

there is no multiattack on the sheet

scarlet gale
#

You can just get the actor with this.actor or args[0].actor

covert mason
#

THAT was it

vast bane
#

Tim does not put his old packages out as normal, and right now midi users have to constantly go dig out the 24 zip here

tepid sparrow
#

I have a "to hit" attack that has a saving throw to avoid additional effects
On hit, the saving throw is checked as usual and the effect is not applied on a save and is applied on fail.
however, the effect is also applied on a miss with no save.

Checking "Full Dam Save" is what changes the behavior and I'd prefer to have it on since I want the attack to deal full damage on hit.
Is there a way to not apply the effect on miss with this option checked?

#

oop, asked too soon maybe. Activation Condition true required for effect activation sounds like the right direction, but I have no idea what to put in activation condition

hard axle
#

Can I post Midi troubleeshooting in here?

vast bane
tepid sparrow
#

I was about to say I just did without asking my b

hard axle
#

Ok I'm using the Midi spells and faerie fire is one of them. When I go to cast the spell everything works as intend except for this:

#

I keep getting this error. I think it is in the Effects in the spell and I tried to modify them but no luck

vast bane
#

I don't think thats midi

#

thats probably 2.1.2 shenanigans I assume?

vast bane
tepid sparrow
hard axle
vast bane
#

onHit I think would only evaluate true on hit, but thats not really needed I don't think

tepid sparrow
#

I didn't think it would be, but the effect is applying on miss without it

vast bane
# hard axle

Anybody know what module is masking the compatibility warnings like this?

tepid sparrow
#

so...I'm going to stick with it

#

looks like Module Management +

vast bane
vast bane
# tepid sparrow so...I'm going to stick with it

Midi does not work with:

Ready Set Roll
Better Rolls for 5e
Roll Groups
Fast Rolling by Default
Fast Rolls or Quick Rolls
Dice Tooltips
Taragnor's Gm Paranoia
WIRE(Whistler's Item Rolls Extended)
Minimal Roll Enhancements
Retroactive Advantage/Disadvantage
Max Crit
Multiattack 5e

Advanced Spell Effects module is just dead in v10 and often the culprit of things...

tepid sparrow
#

it's only when "Full Dam Save" is checked

I have none of those modules

#

would not be surprised it it's compatibility issues with other things though, I run a lot of modules and I'm aware of the issues it causes, working around them is something I welcome

#

but It's 100% functional as is

vast bane
#

is your faerie fire from midi srd?

hard axle
#

I think the issue is in here:

vast bane
#

I can replicate this, confirming for now before I patch bugbear into this

#

not sure if this is a midi srd bug or an ATE bug

hard axle
#

Ok when I use ATL the effect applies properly.

#

When I use the spell (which is what my player will be doing) it doesn't. How do I put an ATL effect into a spell?

#

I have the spell in my Items list from the import

#

Sorry not ATL

vast bane
#

@violet meadow Tested with the v9 and v10 versions of midi srd's faerie fire, it seems something is wrong with it

hard axle
#

but Convienent effects?

#

Is there a way to get CE into a spell effects?

vast bane
#

the macro needs to be v10 ified and its not a stored macro in his module

#

I think this is a simple fix but its gonna need bugbear, normally midi srd macros are centrally located in midi srd's files, but faerie fire seems to have its macro outside and wasn't updated for v10 yet, and the errors don't have shims, so thats why we see the red errors.

#

we actually should see shims for this spell when we cast it, I'm guessing the red errors stop the macro from launching

#

cause t heres a bunch of datas in the macro that should be systems or yeeted

hard axle
#

Here is what Convinent effects Faerie Fire effects look like.

vast bane
#

macro is too large to share here efficiently but I'm sure he'll take a look when he can

hard axle
#

Could I just copy that into the spell

vast bane
#

I would grab the dnd5e version

#

not the midi srd one

#

and then drag and drop the CE onto it

#

but it won't be as good as midi srds

#

it looks like midi srd queries for the color of the light for the caster

#

yeah i'd normally yeet and fix a macro like this but this ones got some weird stuff in it

violet meadow
#

Oh that one is a blast from the past. Quite the old macro included in that Faerie Fire spell from the Midi-SRD Spells compendium!

hard axle
#

That worked using the SRD and dragging the CE into it

#

thanks

vast bane
hard axle
violet meadow
#

Ok I think I will work on the midi srd included items to update them for v10 MidiQOL, in small batches

rancid tide
chrome gale
#

is there an effect flag for increasing the size of a token temporarily? I found system.traits.dimensions but it seems to be broken as it disappears when its on a character

violet meadow
violet meadow
chrome gale
#

i do

violet meadow
#

You will need ATL.height and ATL.width

chrome gale
#

ahha

chrome gale
#

ah my bad, I was using 'custom' not 'override'

#

thanks, works a treat

toxic spruce
#

Soโ€ฆ
I am starting a new Dragonlance campaign. And in it the draconianโ€˜s uniquely explode when they die. Is there a way to do that with tokens? I know there is with tiles.

scarlet gale
#

Depends on how automated you want

#

I would just do a feature for it and roll it when they hit 0 hp

#

But you could have an effect that is set to get removed upon reaching 0 hp then have an effect macro roll the feature

#

give it a fancy sequencer effect and call it a day

chrome gale
#

I was looking for a spike growth macro, is this actually part of a module or in a compendium somehwere?

scarlet gale
placid sorrel
vast bane
rancid tide
wheat marten
#

Anybody happen to have a Defensive Flourish macro on hand? Tried a few ones I found, but none seem updated to current version of 5e and throw errors

vast bane
#

swords bard feature?

#

Its basically smite using bardic resources

#

that is going to depend entirely on if the group fast forwards, and if the bard loves having "Do you want to defensive flourish?" on every.single.attack.they.make

wheat marten
#

I just want it as a separate feature he can roll when needed that rolls bardic inspiration die + applies AC bonus ๐Ÿ™‚

vast bane
#

I would personally handle it in an advantage reminder cause I don't fast forward, cause you choose the feature after you see you hit, before you see you roll damage.

#

if you fast forward, you will have to use optional.name.macro

violet meadow
gilded yacht
molten solar
#

That doesn't even need midi to do

wheat marten
#

I'm just sure how to set it up with rolling a scale dice + applying the AC number from the roll

vast bane
violet meadow
vast bane
gilded yacht
velvet sky
#

idk if you could send a screenshot or something, I would love copy lol.

gilded yacht
wheat marten
gilded yacht
molten solar
#

Different conversation

violet meadow
#

(probably Zhell's comment was directed to Arteroc's comment)

vast bane
wheat marten
#

I happily admit to not knowing what exactly interacts with what! Will need to sit down and look at it some day I don't have a 60h workweek :/

velvet sky
vast bane
#

did we actually solve the defensive flourish question yet?

#

I can think of like 5 ways to do it all depending on the various levels of automation the user wants

#

Also I think MASIF has the maneuver version in it

violet meadow
wheat marten
#

I'm keeping it simple, otherwise the risk is I'll have to come screaming for help when I inevitably break it ^^

violet meadow
#

that's the spirit ๐Ÿ’ช

wheat marten
#

I do want to learn more of how to do things, but life keeps annoyingly getting in my way

vast bane
#

if you don't fast forward, you could put the DAE ac active effect as a document link in the advantage reminder, and then if dae's inline rolls is on, the dm can just right click the inline roll and apply damage to the victim

#

ever since MASIF got the v10 update I've been badly wanting to use a battlemaster in dnd5e, so I am totally inserting one into the players campaign as a ride along npc lol

hybrid herald
#

Okay, So i have spent the better part of six hours trying to make an automated rage for one of my player's barbarians. I've watched tons of videos and looked through threads and so far, I just cannot figure it out. would anyone be able to give some advice?

rancid tide
vast bane
#

generic rage is in midi sample items just drag it to the sheet

hybrid herald
vast bane
#

it wil work perfectly if your barbarian is setup right

#

you need to clarify "still haven't been reall able to get it to work"

#

what wouldn't be working about the midi sample item

#

is the barbarian rage efect on them?

hybrid herald
#

Adding bonus damage to rolls and automatic advantage to str checks and saving throws

vast bane
#

I see in another channel that you are playtesting dnd5e 2.1.2 for the rest of us, make sure you are on midi 10.0.25 and dae 10.0.15

vast bane
#

also confirm that you do not have the vanilla dnd5e rage still on the sheet that you are confusing with the midi sample item

#

and finally, do you have dfreds CE installed?

#

I think we need to confirm that you are actually using the midi sample item and not the gifted dnd5e advancement one

hybrid herald
vast bane
#

I actually think the dnd5e one should do the damage bonus

#

cause isn't the damge bonus a system key guys?

#

yep it does do the bous damage but not the same way midi's does

#

you also need to make sure your barbarian has a proper barbarian class so that the scale modifier works

hybrid herald
#

Hmmm, still not getting that extra damage I think. Any specific settings I need to do for the class? I'm guessing I might have some conflicting mods

#

or wrong settings

vast bane
#

then you can ctrl V the image made with it into here

#

show us what the attack looks like in chat, and also show us the effect tab of the Actor that is the barbarian, as well as the effect tab of the Rage Feature

hybrid herald
#

Wait, I think i got it. There was a mod conflict

vast bane
# hybrid herald Wait, I think i got it. There was a mod conflict

Midi does not work with:

Ready Set Roll
Better Rolls for 5e
Roll Groups
Fast Rolling by Default
Fast Rolls or Quick Rolls
Dice Tooltips
Taragnor's Gm Paranoia
WIRE(Whistler's Item Rolls Extended)
Minimal Roll Enhancements
Retroactive Advantage/Disadvantage
Max Crit
Multiattack 5e

Advanced Spell Effects module is just dead in v10 and often the culprit of things...

hybrid herald
#

^Aye, it was the first one haha

#

let me just get rid of all those rq

vast bane
#

I was contemplating leading with this copy and paste but I gave you the benefit of doubt lol

hybrid herald
#

haha, whelp, I appreciate it ๐Ÿคฃ I can't believe I missed that

#

I had caught WIRE earlier. I think I had just been looking into it so much that I completely forgot to re-check compatibility

vast bane
#

so you had wire, midi and ready set roll enabled together oof

hybrid herald
#

I now understand why my brain was breaking

vast bane
#

most rollers do not like each other, they are quite divas, a few in my list though are designed to work together(Roll groups/fast rolling by default)

vast bane
#

I don't recall if roll groups/FRD are ok with retroactive advantage @molten solar ?

molten solar
#

Same dev dude

vast bane
#

I wonder if there is a case where a dev made modules that don't work with each other hehe

vast bane
#

@gilded yacht in your change log do you mean that you fixed 26 so it is ok with 2.0.3 users?

#

or is it still advised to stay on 24 for 2.0.3 users?

violet meadow
vast bane
#

I might have to live for a while on 2.0.3 as my players really really really like inventory+

#

resources+ and MTB I think might still have issues, just waiting on the next MTB release, he releases on schedules

violet meadow
#

Putting this here. I think this could be a good case for these effects triggering a generic Item creation macro which when used will just clear the effect.

Like Effect "Your pants are on Fire", which when applied will also create an action which will be "I drop my pants" to end the effect!

violet meadow
vast bane
#

Also wouldn't actionSave work for him for a normal overtime?

#

if on v10

violet meadow
#

v9 unfortunately but still

vast bane
#

I doubt dae in v9 works with macro.create right?

opaque current
#

Have you checked out Custom Character Sheet Sections Moto?

violet meadow
#

nope

uncut gate
vast bane
#

so would have to go warpgate or createdocument

vast bane
#

but ultimately I think tim has fixed all my gripes with item collection so its probably a better solution

#

just cause my players have already used it

opaque current
#

Fair enough

vast bane
#

I got a table thats pretty badly scarred from roll20 disasters so I wanna try and avoid drastic changes

opaque current
#

CCSS is very user friendly, similar to Inv+ IMO. Item Collection is a bit... different.

#

But if they already know it, play on.

violet meadow
vast bane
#

the only issues we had with item collection was how it didn't play well with item piles for trading, and also the wonkiness of splitting out items. I think he fixed the latter, but not the former

uncut gate
vast bane
#

it won't be in calego's post it will however be in the readme for midiqol

vast bane
#

and honestly, the readme for midi is the best source for overtime

#

actionSave is only available in v10 fyi

#

I'm totally making a template item for action removals now bugbear

#

You can basically use the same action for them all

#

just keep attaching more "remove X" to them

violet meadow
vast bane
#

if they declare usign their action, just remove the effect before the end of their turn

violet meadow
#

If they "take" an action, just delete it manually

vast bane
#

if you had actionSave in v10 on it, it would auto detect that no action was rolled and remove the effect

uncut gate
vast bane
#

or am I mistaken how that works, I forget now, does it prompt and you say yes and its removed?

violet meadow
#

If false, it will autoRoll the save part of the OT

rancid tide
#

Is there a way using DAE or whatnot to call a macro when an ActiveEffect is deleted?

#

maybe with args[0] === "off" or something I guess

violet meadow
rancid tide
#

if I use macro.itemMacro and inside the item macro I put if (args[0]==="off") does that work?

violet meadow
#

indeed it does

rancid tide
#

Okay ty!

vast bane
#

a few midi srd items do this btw

#

look to items in midi srd that create items

#

you can also use effect macro to do this too with his on delete/on creation triggers.

rancid tide
#

thanks!

rancid tide
#

from a Active Effect macro.execute can I execute an ItemMacro?

vast bane
#

I think its wise to use macro.itemmacro or whatever can't remember if two or one M's

rancid tide
#

The problem is that the active effect is created by another macro and when I try to do that it says that it could find it

vast bane
#

Effect macro might be a good method to accomplish what you are doing

molten solar
#

Look at Item Macro's readme for how to call an item macro explicitly.

rancid tide
#

okay ty

vast bane
#

I have a use case for an effect macro that applies another effect fwiw

#

I utilize dfreds CE to pull it off

#

I use this in an effort to pull off once per turn stuff cause Effect macro has a trigger for each turn while dae only has owners turn

rancid tide
#

it's just that the less module dependant I am the better

#

So if there's a way without using another module it's worth a try

vast bane
#

EM is a very strong module for midi shenanigans, highly recommend, plus you can avoid reinventing the wheel if you yoink premade stuff others have made here, often using both dae/EM

rancid tide
#

I'll think about it

vast bane
#

You know, now that all the usual modules are utilizing castData I'm wondering if its possible to automate dispel magic when targetting a token now

#

Though I think dfreds may not be utilizing it properly yet

molten solar
#

You didn't do that yet?

#

That was literally what got that whole conversation started

vast bane
#

No I have a skill challenge version but nothing that pulls the data

#

Yeah I know, I haven't gotten around to it but I'm currently making a few caster npcs and its finally gotten my attention

#

at the time, nobody was doing it yet so I couldn't just make the item on future knowledge, but I think we still need Dfred to buy into it

#

I don't think CE's have castData

#

or atleast they don't have the level

#

actually I think...I have a conflict OR a rules question about this

#

if you upcast a spell that just changes target count, is the spell still level 1 for a dispel check?

#

If I upcast Bane to 5 to bane many targets, is it a dc 15 check or is it still auto dispelled?

rancid tide
#

Can warpgate.mutate return the reference of the item it created in anyway?

vast bane
#

Also Dfred is all set, I have confirmed that Midi handles the castData on a dfreds CE:

violet meadow
vast bane
#

me too, now its just a matter of making the macro for dispel magic

#

hmmm, wonder if all effects have castData though

#

judging by the concentration status marker, they do not

violet meadow
#

You can search the effects for the ones with castData in the MidiQOL flags and go from there.

vast bane
#

hmmm this would require smarter people than I, first you'd have to auto dispel the level 3 or lesses, and then check the rest against the result of a spellcasting check of (Result - 10)

violet meadow
vast bane
#

So probably an If statement for castLevel and do one task for 3 or less, and another task for 4 or higher

#

ugh but then if you upcast.....yeah this is beyond me

rancid tide
rancid tide
molten solar
rancid tide
#

with await it returns nothing

#

At least nothing showing in console.log

molten solar
#

Nothing?

#

Not even undefined?

violet meadow
#

does it mutate something?

rotund oyster
#

Random Question How do I make someone take half healing?

vast bane
#

I think I can use midi for dispellevel

violet meadow
#

try something ez like ```js
let mutation = await warpgate.mutate(token.document, {token: {name:"LOLOL"}})
console.log(mutation)

rancid tide
molten solar
molten solar
rancid tide
#

Sorry no I meant "I don't think it's undefined"

molten solar
#

Well you gotta confirm it then

vast bane
#

there is one catch to your macro zhell, if you dispel magic on a creature, no matter what your roll is, anything 3 or less dispells regardless of the roll. The roll is only made against any spell above the level of the dispel cast

rancid tide
molten solar
#

It's pseudocode, and that looks like what it does?

violet meadow
#

I am out... I started refactoring the code for the module I am working on, but now ended up re-writing everything... ๐Ÿ˜ญ
I blame Moto and Zhell

vast bane
#

Midi SRD is going to look so pretty

#

The community thanks you very much though Bugbear

violet meadow
vast bane
#

oh god

#

now the suspense is killing me

#

Border Control?

dark canopy
rancid tide
#

I could use that at this point

#

ty

rotund oyster
#

Hey, I am working on a Status effect and I am trying to make that Status effect have half healing done to that creature. What's the thing I need to put to make that happen?

vast bane
#

damage resistance to healing

#

make sure you use the dnd5e flag with a lowercase dr

rancid tide
dark canopy
#

yea, grabbing the result with target.actor.items.getName(itemEffect.name) should do it

oh, and you dont need to store the return:
await warpgate.mutate(target.document,

molten solar
#

Makes sense that it cannot return the created items, due to sockets.

dark canopy
#

serializable data only, unfortunately, due to the indeterminate execution client

rotund oyster
#

Oh shit! It works

#

Woot that made things a billion times easier

#

Thanks

rancid tide
rotund oyster
#

Now how I can I make it that status effect make hits auto crit?

dark canopy
rancid tide
vast bane
#

Oh I went cheap with that, sorry I can't help you unless you settle for an advantage reminder lol:

rotund oyster
#

Reading

#

Let me check

vast bane
#

theres a circle of Mortality premade here that auto maximizes heals made on targets with 0 hp, its really wonky but if you wanted it, thats probably where you'd find it

rotund oyster
#

No No

#

That is my bad for not explaining

#

I am making a status effect Called Scorched

vast bane
#

all damage applied while under its effects is maximized?

rotund oyster
#

Since they are onfire I made it that they take reduced healing and whenever they get hit they take crits

vast bane
#

oh

#

thats easy

#

theres a midi flag for grant critical

#

hmmm, now you got me pondering reworking Beacon of Hope with that flag instead lol

#

instead of max heals, double the dice...tempting

rotund oyster
#

Yeah, it never ends

#

But that is what makes this fun

#

Oh crap! That works

#

This place makes things soooo much easier

#

Now that's a good question. What's the reason for double dice for crits instead of Full damage like before?

rancid tide
vast bane
rancid tide
rotund oyster
#

yes, But it used to be in 4 e that crits did max the dice. So they changed it to double the dice which is still cool but sucks if that double dice is well

#

lol

molten solar
rotund oyster
#

2 ones

dark canopy
molten solar
#

Missed opportunity to say, "just do it in post."

vast bane
# rotund oyster lol

normaly one could suggest the alternate crit rules in system/midi, but I think when it comes to those, they max the wrong dice

rancid tide
molten solar
#

That link should clarify

#

(and also no, way off base)

dark canopy
#

the callbacks argument

rancid tide
#

Ohh okay ty so much

rotund oyster
#

its true that I can do that, but I was wondering what the logic was. I haven't done Dming in a while and these are questions so I can understand game design

#

Like I am building a bird race in the future that will fly and I want them to fly. But this is a species of metal workers. So I don't know mechanically how to make them fly and still wear metal without it being broken

#

Stuff like that So I can make the thing do the thing and feel cool without breaking the game

#

I know DMs are scared of flight, but I accept the challenge

#

lol

dark canopy
rotund oyster
#

Oh thanks. I will add that to my list. That is a future thing, but that helps to know now

rancid tide
dark canopy
#

the PostMutate name is just a data type that represents a function of the form
async (tokenDoc, updates) => { return /* Promise|undefined */ }

#

so create an async function that takes at least the tokenDoc argument

#

then inside the function, look up your item with tokenDoc.actor.items.getName

rancid tide
#

Okay got it!

#

ty!

dark canopy
#

does that PostMutate entry in the API docs make more sense now?

#

its a very common pattern for all of warpgate's callbacks

rancid tide
#

But now I do see it

dark canopy
#

๐Ÿ‘ great, it'll take some practice, but warpgate really loves passing around arbitrary functions

#

allows you to get really deep inside warpgate's workflow

rancid tide
#

can the function be an actual function myFunction() {} ?

rancid tide
#

also how do I return a promise?

dark canopy
#

you generally dont have to concern yourself with it if you are awaiting your calls inside the callback

rotund oyster
#

Now the Next part of my Challenge of Riddles. I am making a status effect called Weaknen. It has to parts. The first part is creatures that are Weakened deal half damage. How do I do that?

dark canopy
#

(i.e. javascript will return an empty promise from all async functions by default)

rancid tide
#

okay so just async function stuf.... etc etc

#

ty so much

rotund oyster
#

I mean what's the code for that?

vast bane
#

I would just make the targets strength and/or dex mods -1

rancid tide
dark canopy
#

the post function needs to be in an object that looks like {post: yourFunc}

rancid tide
#

Gosh I so dumb ahaha

#

Sorry still learning I guess

rotund oyster
#

I am reading and I am assuming that damage bonus only effects the bonus and not the damage itself

rancid tide
# dark canopy

Okay it works, ty for your patience, sorry if I'm a bit dense at times

rotund oyster
#

and max is only the max damage that can happen

dark canopy
rancid tide
vast bane
#

could you use OVERRIDE to override the damage of the weapon with the damage bonus key?

rotund oyster
#

How does that work?

#

Sorry, my brain really doesn't understand code which sucks for our code based world

rancid tide
molten solar
#

Are you using DAE or EM?

rancid tide
#

DAE

vast bane
#

What is the exact creature type you do to cause a creature to be ignored by midi? notarget?

wind pecan
#

Hey all, This is for 5e - I got my hands on an older macro that works with the magic items module. It should allow the player to click the item and be given the list of spells that are attached to the magic item (instead of having to go to the spell book). I'm a total newb at macros, so I'm in need of some direction. I need to understand what is missing (like entering the name of the item, or the attaches spells) or if this macro is out of date and simply won't work for my purposes.

#

"'// Midi-qol On use
let itemD = args[0].item;
let spellList = "";
let spell_items = Object.values(itemD.flags.magicitems.spells).sort((a,b) => a.name < b.name ? -1 : 1);
for(let i = 0; i < spell_items.length; i++) {
let item = spell_items[i];
spellList += <option value="${item.name}">${item.name}</option>;
}
new Dialog({
title: ${itemD.name},
content: <form><p>Pick a spell to cast</p><div class="form-group"><label for="weapons">Listed Spells</label><select id="spells">${spellList}</select></div></form>,
buttons: {
cast: { label: "Cast", callback: async (html) => {
let get_spell = await html.find('#spells')[0].value;
await MagicItems.roll(itemD.name, get_spell);
}}
}
}).render(true);'"

#

sigh, sorry about the formatting

vast bane
#

Items with Spells will do stuff like this:(the moss green stuff)