#MidiQOL
1 messages · Page 15 of 1
as its a premade item
V10
well copy this, image, its only not in v10 cause the author hasn't reformated the compendium, and pro tip, you can move midi srd to v10 if you copy the compendiums it gives you in a v9 and then bring it over with your world.
Hmm which module handles Bless and which concentration?
oh you probably have to replace data with system in those keys
Thanks. We pay online/irl about 50 and use DDB irl so if we can have everything syncing to that was much as possible then things are a lot easier for me as the DM.
I have it going thru CE
Check the settings of CE to allow players to delete effects
think i did, but checking because now im doubting myself 😄
I assume it's too late if I've already migrated? (In reply to your tip about inporting the compendium)
It seems like a strange interaction otherwise
Haven't tested lately though
Concentration by midi should be handling that.
Check DAE settings too 🤔
I have dismantled my server as I am moving some stuff around the house and I cannot check myself now
I'm try to take the Dragon Slayer Longsword in the MidiQol Conpendium and change to a wolf but it's not rolling the extra damage. I changed the type for a wolf to custom type "wolf" and it changed the "dragon" in the activation conditions fo the weapon to "wolf" and it didn't work.
(showing two effects on Kuraga).. If I remove concentration, it drops Shield of Faith (the spell I cast second) So concentration is assigned correctly, just getting error that player doesn't have the permission to delete it (checked sequencer and dae and midi and CE.. im at a loss).. will get screenshot of where it's failing in code
this part if click the js code at end
Hmm it uses the.deleteEmbeddedDocuments which means that the player is missing the proper permissions to delete active effects
I think that should be going through the midi socket to execute as GM instead
From which module is that code?
So, order is 1) Cast bless, Thing work great. 2) Cast Shield of Faith, pop up warning on concentrating on another spell, hit ok. Click thru to cast, warning fires. 3) Concentration drops on bless, goes up on Shield of Faith (on caster), but the Bless effect stay (because lack of permisison) and it adds Shield of Faith (just trying to get the full explination)
Yeah shield of faith is cast to self?
Bless to self and others?
And cannot delete the bless from others
Is this snippet from MidiQOL or another module?
Guessing it's Midi ?
And do you use a macro in the bless item maybe?
And both spells are being cast on a token they dont own (another player)
Does it have a DAE effect on?
It's getting it from CE.. here's the spell (to show no item macro/ onuse)
Check for DAE effect on Bless
and this is my midi settings
You might need to bring tposney in on that as I cannot test right now 🤔
Update works as expected, in combat... it was out of combat it fails Oops, wrong. Was testing on GM log in, not the player incognito log in. Still fails with permission issue in combat.
GM has to be logged in
GM is logged in
(it's how i accidentally thought it worked in combat, was on wrong screen) 🙂
and just made a test world with only CE and MIDI (and required modules) and get same error
@gilded yacht please ☝️
(and yes , i know About time not required, but it's a Tpos module and had it enabled in case it was because i didnt have an active combat ) 🙂
Hi everybody, amateur question here. I'm trying to set up an attack for a creature which on a hit will deal damage and impose the convenient effects grappled condition. How would I do this?
add an active effect that does not transfer on equip, have no boxes checked on the first tab at all, then for the actual effect key, make it do macro.ce or statuseffect | Custom| Grappled(chosen by the drop down if you have DAE installed)
If you do statuseffect, JUST grappled shows up on the token, if you do macro.ce the icon of the attack also accompanies the status effect on it.
Hey guys, using this macro by Crymic from a LONG time ago, can anyone suggest what would need changing to make it work in V9? (Tasha's Caustic Brew)
OR is there already an automatic Caustic Brew that others know about?
if(args[0] === "each") {
const lastArg = args[args.length-1];
let token = canvas.tokens.get(lastArg.tokenId);
let itemD = lastArg.efData.flags.dae.itemData;
let level = itemD.data.level;
let damageRoll = new Roll(`${level*2}d4`).roll();
new MidiQOL.DamageOnlyWorkflow(actor, token, damageRoll.total, "acid", [token], damageRoll, {flavor: "(Acid)", itemData: itemD , itemCardId: "new"});
}
If no one knows, that's a simple OT effect
How do you make an OT effect?>
not a coder - rely on what other people have shared in foundry chats 😆
Yeah ok...
So just copy that and itll work?
Yup, it's pretty straight forward once you read the readme for midi in the pins here
Some can be weird like Hunger of Hadar but still easily doable
I'm try to take the Dragon Slayer Longsword in the MidiQol Conpendium and change to a wolf but it's not rolling the extra damage. I changed the type for a wolf to custom type "wolf" and it changed the "dragon" in the activation conditions fo the weapon to "wolf" and it didn't work.
Is midi the replacement for better rolls in functionality ?
It's definitely a midi issue. I will have a look into it.
OK, I can repro the issue. I can see why it's failing (as @violet meadow mentioned it should be executeasGM), but what I don't understand why it has not always failed, since it definitely used to work. Very strange.
perhaps Beast? Since that is the actual Creature Type?
Not sure if you can target a Custom Type
Hiya @violet meadow – just curious if you have a Sickening Radiance already sitting in your arsenal? The damage part seems easy enough (a la Cloudkill example), but the stacking exhaustion is something which would be great to automate but I'm not sure how
Overtime effects can call macros iirc. Have it swap out effects depending on how many they already have
Question but does the Build-a-bonus module work along Midiqol?
yes it does for the most part
issue with spell dc bonuses last i checked
I remember having worked on one but i cannot check now. My server is off till Monday
It uses the preDisplayCard hook for a visual change on the dc, which Midi ignores for good reason.
The rest are the dnd5e.preRollAttack, dnd5e.preRollDamage, dnd5e.preRollAbilitySave, dnd5e.preRollDeathSave, and dnd5e.preRollHitDie hooks.
@gilded yacht can confirm what Midi does to those. If Midi does not skip these, babonus works with no issue.
I figured you must have haha, all good – no hurry
What exactly do you mean by skip?
On that front, I can see an open issue in midiqol by tposney, named Migrate from wrapping dnd5e functions to using the provided hooks
Completely ignores.
I haven't tested myself.
So I can’t have midi affect those while also using build a bonus for those rolls then?
Does this mean fast forward in regard to those rolls?
babonus applies all bonuses before fast-forward matters.
Recreating how Spirit Guardians work in combination with a bit changed script from the attached for DFreds CE exhaustion levels should do it ```js
const targetActor = args[0].failedSaves[0].actor;
if (targetActor.effects.find(eff=>eff.label.includes("Exhaustion"))) {
const exhaustionLevel = Number(targetActor.effects.find(eff=>eff.label.includes("Exhaustion")).label.split('n ')[1]);
const newExhaustionLevel = Math.clamped(exhaustionLevel + 1, 1, 6);
if (newExhaustionLevel > 5) {
await game.dfreds.effectInterface.addEffect({effectName:'Dead', uuid:targetActor.uuid});
return;
}
const effectName = "Exhaustion "+newExhaustionLevel;
await game.dfreds.effectInterface.addEffect({effectName, uuid:targetActor.uuid});
}
else await game.dfreds.effectInterface.addEffect({effectName: 'Exhaustion 1', uuid:targetActor.uuid});
You are OK to use them. I have tested them out with the exception of spell dc
Hmm then in that case not sure why bonuses aren’t showing. Could it be because I imported character from dndbeyond?
I mean, babonus does not exist on dndbeyond.
the importer does not know about it
You have to create the bonuses in Foundry
Amazing, thank you!
Thats v10 compatible (small changes needed for v9, namely replace label with data.label)
Feel free to ping me with an image of how you set up the bonus in #dnd5e.
my caustic brew has much more code than that lol
Yea that was a code block you gave someone about 2 years ago
Probably a bit late but according to your screenshots it looks like you've written "itemMacro" without a capital i. As far as I can remember the module was a bit petty about that. Maybe that's the solution.
@molten solar this is what I have
nothing shows in damage roll. I also switch to fresh srd foundry class
I do need to rewrite it, so I'll come out with a newer version it
is the spell set to use Charisma or Spellcasting?
ah--
@abilities.cha.mod, not @attributes
@molten solar It Works! Thank you very much. I feel silly missing that mistake
Oooh I’ve not heard of Babonus before….going to look into it.
Brill, Got it working, cheers!
@hidden swift ```js
const value = token.actor.system.abilities.cua_0.value;
await token.actor.update({ "system.abilities.cua_0.value": value + 1 });
this is `never` called to in the macro. it will go off the selected token, which is bad. so what you're trying to do is a add a +1 stat value to whatever `cua_0` is?
Make sure to check `only apply during the current combatants turn`
```js
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);
if (args[0] === "each") {
const value = tactor.getRollData().abilities.cua_0.value;
await tactor.update({ "system.abilities.cua_0.value": value + 1 });
}
does anyone know what the "Show a players' damage card " option does? I've tried testing it and see no difference
It shows a cut down damage card to the players (but not the GM). That way (if you want) they can see the damage done to the target.
Hmm, maybe I'm just missing something, but it doesn't appear to be doing anything for me.
its suppposed to show a limited version of this?
Hi people, im running latest 9 version and im checking if everything in my autoamtion settings work nicely, and there's only 1 thing not running nicely, when a reaction is called by MidiQol and the token sets a reaction that creates an active effect it shows the dialog to apply but it doesnt apply it automatically, so for example, midiqol does the damage before shield is applied, you can still activate it manually through the chat but you get hti before that, so its kinda useless for the first attack, my options for that are the ones in the image, anyone fixed that? Im running all midiqol recommeneded modules
Imagen
Also when an aoe is thrown from self it attacks self, but i dont really think that's fixable at all
Let me check
I have DF template enhancements installed, will try with that one
nope, still targeting themselves
AOE's not targetting self, is set in the spell details here (set Range third box, to special, to ignore the caster)
Thanks! will remember and reapply those changes when i reimport from dndbeyond
Afternoon. I'm currently hiding entire gm roll but players still get a card, even if the content is mostly missing. How can I hide that card from them or is that not possible?
I have never seen this card before, so I ponder if maybe you are using naughty modules that don't work well with midi, but however, to hide cards its this setting in midi's settings:
I have those settings enabled currently. Must be another module freaking it out then I guess. Thanks for the help Moto!
That looks like maybe a cross of the beams, e.g. multiple roller modules
I didn't want to pry but yeah, it did look like they were not using midi, but one of the other ones
so midi's settings effect midi's rollcards, not RSR's
Hahaha, thanks, I'll take a look then. Not a clue what it might be yet
As another question, which I guess could be the same thing, I can't seem to let my players auto apply their own healing. I need to approve it with the little tick mark in chat. They auto apply damage however. I have my own attacks to not auto apply damage so I can be lenient where needed
yeah you got module conflicts
Sad times. I'll get hunting. Thanks!
show us the details tab of a healing spell or ability
I don't see tell tale signs of other rollers in there and it seems setup, weird. Maybe your settings are wrong in midi?
what does a damage and healing look like in chat
thats the dm';s midi card, normal behavior, if you arent automating damage application fully than it can be situational
Your settings here would be thats causing intermittent issues:
(mines set to full for all)
the first drop downis probably set to npcs only
So for a player. Their damage auto applies to enemies isntantly, the healing needs me to confirm. They just see the attack card and heal cards. I see:
This is my settings
your settings are indeed (npc only)
Is it the auto apply damage part?
healing is infact damage
Yeah, it makes sense. Thanks Moto, that explains it
There no way I can get around that? I'd like their healing to work right away but I don't want my damage on them to do so
not that I'm aware of, but I'm the kind of dm who prefers all that automated, I leave floating text turned on and the players see all in chat to question if they want to, and we just let midi handle the boring math
Yeah, I had a problem with that being new myself and the players being new. An encounter that should have been fairly straightforward according to the adventure was slaughtering them. So I wanted to not auto-apply and hide the rolls so I could be lenient if needed. Didn't want them killed at lvl 1
I believe I wanted the same at some point and the answer is that dnd5e doesn't differentiate between healing as anything but damage. I macroed all self healing abilities to... well, self-heal and left targetted spells alone because they kept forgetting to not target monsters with it
I get that is a problem when starting out, but imo its better to be honest with your players and tell them you messd up and that you would adjust on the fly, hiding it from the players and fudging is a topic of highly contraversial issues and I always avoid doing it and explain to the players when I need to do a fudge-like behavior openly.
My ability to balance encounters improved dramatically when I abandoned the calculators shared liberally all over and just went with xanathar's encounter table data which is found in a UA for free also
That makes sense and sounds completely reasonable. I guess it was more surprising since it was an official adventure so them getting destroyed like that at an encounter designed from them was unexpected. I guess I'll need to learn myself what they can and can't handle 😅
I'll take a look at that too. Maybe adjust the official encounters if I feel they're a tad unfair
Thanks Moto, big help!
also make sure your version of published adventures have their errata handled
many adventures had erratas that fixed accidental CR mismatches, noteably Hoard of the DQ and Waterdeep Dragonheist
But also some fights are not meant to be fought, properly telegraphing to them before hand so they know how to behave can save their bacon sometimes too, sometimes players need to experience Gandalf vs a Balrog
The troll fight at the beginning of Dragonheist is precisely that scenario.
If you took the above UA tables and looked at the dragonheist first chapter, the troll fight and the Illithid would be ridiculous, but the context matters. In the troll fight, its stated that Durnan takes on the troll while the players help dispatch the flying things and in the Illithid scene, it considers the players beneath them and just ignorantly walks through them and leaves, to show how small the players seem tothe world.
It's HOTDQ for me. I do know that the Beyond version has the errata in but it doesn't change too much for the difficulty from what I know. They ran into a group of kobolds and cultists and got mowed down
I do have some fights like with the dragon I've tried to do like you've said above, that went a bit better
Also not every fight is a deathmatch, sometimes enemies just want to take their stuff and leave them alive.
Ohhh, that's a good idea!
I never thought of that. Would be interesting
I like that a lot
In my current dotmm campaign, one of the floors if they fail, it triggers a side story arch where they are in a race against time to find their gear after succumbing to the bad guys, cause they wake up impregnated with demons that will kill them if they can't find the healer their focus to cast lesser restorations. The key in this situation is to not force that scenario cause then it feels like railroading, I just keep it in the back burner ready to fire if the players wind up biting off more than they can chew.
Ahhh, interesting. Thanks Moto, that's a big help too, I'll consider preparing sort of contingencies
Is there a way using midi to have an effect add a level of exhaustion and then have the effect be deleted while the level of exhaustion stays?
I'm trying to have my players gain +1 exhaustion at 0 HP without ending up with a ton of effects on a character each one adding +1 exhaustion.
On that note, is it possible to reference the stack count of an effect in the effect? So like +1 per stack?
like could I make this +1d8 per stack?
Why would you even add an effect then? Effects are for temporary changes.
Just update the actor to have +1 level of exhaustion.
I don't know how to automate that without effects. I know its dumb, but i like trying to automate as much as ppossible
const e = STEVE.system.attributes.exhaustion;
await STEVE.update({"system.attributes.exhaustion": Math.clamped(e + 1, 0, 6)});
where STEVE is the actor.
just do the Midi thing™️ that gets the actor
Hell, just slap that on an 'on create' macro with Effect Macro, and have the effect itself do nothing.
does dnd5e now automate the effects of exhaustion Zhell?
No
I think thats the whole point there for them then, they want the exhaustion automation of dfreds/cub?
no, I want the application to be automatic at 0 HP. I alreeady have effects setup for the effects
I think cub can pull that off, not sure about midi+dfreds
now you got me wondering if adding exhaustion to the sheets automate with midi lol
Thank you, I loooked all oover the midi page for this, but I guess it was in DAE
I don't deal with exhaustion enough in my sessions to need to automate it or put this much effort into it, I wonder if theres a way where if a sheet gains a level of exhaustion the appropriate effect gets auto applied.
For the automation of giving an actor +1 exhaustion when hitting 0, then yeah, I believe you can do that with Triggler of CUB. A world script could do it. If you really want, a macro in an effect with args[0] == on will only apply it when the effect is applied, so it wont be removed when the effect is removed
I have that setup. I would use that to also setup for at 0 health except CUB adds effects on triggers, so I'd need an effect that adds a level of exhaustion that triggers at 0 HP.
Really a pick your poison kind of deal, there's no complete solution, I personally stole thatlonelybugbear's macro for my exhaustion automation
Have the macro from cub fire and utilize like an imput like apply dfreds CE's Exhaustion level X where X is the value you pull out of the character sheet where the exhaustion level is referenced
or cubs exhaustions
Everytime I see talk of exhaustion, I can't help but wonder wtf you guys are doing to your players though lol, like at best I see 1 level of exhaustion from chase encounters, or a frenzied barb, but wtf you guys doing to kill players via exhaustion lol.
Can someone give me a cursory glance and let me know if I have written this macro incorrectly? For context, I'm trying to call it when a dae effect gets removed (using macro.execute), although in this, I have excluded the args[0] === "off" to test it working in the first place.
const targets = args[1];
const roll = await new Roll("3d10").roll({async: true});
new MidiQOL.DamageOnlyWorkflow(targets.actorUuid, targets.tokenUuid, roll.total, "piercing", targets, roll, {ItemCardId: "new", flavor: "piercing"})```
args[1] is @target
If you, understandable, don't want effects involved, I suggest a world script for automating adding a level of Exhaustion for when a player character hits 0. Zhell might have a better input of where to throw in the hook, but maybe on updateActor and then filter on hasPlayerOwner and check for the new health value is 0.
I believe that function looks for an actor object and a token object, not their Uuid, so you need to fetch them first and then refer to them.
This is only adding 1d8 instead of adding a d8 per stack.
@stackCount appears to always resolve to 1
Hm. I tried this instead with that in mind
const targets = args[1];
const roll = await new Roll("3d10").roll({async: true});
new MidiQOL.DamageOnlyWorkflow(targets.actor, targets.token, roll.total, "piercing", targets, roll, {ItemCardId: "new", flavor: "piercing"})
But nothing happened; I got this error:
maybe I'm forgetting something 🤔
use ##stackCount
isn't that for stacks on the enemy?
Not necessarily
It's for the target, if it's supposed to apply to yourself, then...
## is for for basing counts based on who has the AE
I always use it regardless of source
no, I mean its a buff spell
so ## reads stacks on the target right? while @ reads stacks on yourself
Correct
And if you're casting on someone else, the source actor stack count would be 0 or 1 (idr)
So that's why you'd wanna use ##
That suggests your targets have neither an actor nor a token in them, define them before hand with the Uuids you had before, your code works fine once you chuck an actor and a token into them
I'm not casting on someone else
Try with ## and see if it works
weird. Does @target not return the actor?
I've tried similar with args[0].actor as well
it did work, but now I'm confused. I guess I just read it wrong. ## does appear to be reading stacks on my character
Part of the reason I always use that instead of @
I don't follow here, @target? Using your example of args, this works in my testing;
const targets = args;
const roll = await new Roll("3d10").roll({async: true});
new MidiQOL.DamageOnlyWorkflow(args[0].actor, args[0].targets[0], roll.total, "piercing", targets, roll, {ItemCardId: "new", flavor: "piercing"})```
in the active effect, I have macro.execute custom "macroname" @target
@target should be returned as the target actor as args[1]
or their uuid; I'm not quite sure anymore
Uuid. You still gotta fetch that stuff.
Hm. Lemme try what you got then.
Mine wont work, you're executing it differently, one moment
const targetToken = await canvas.tokens.get(args[1]);
const attackingActor = await game.actors.get(args[2].actorId);
const roll = await new Roll("3d10").roll({async: true});
new MidiQOL.DamageOnlyWorkflow(attackingActor, targetToken, roll.total, "piercing", targets, roll, {ItemCardId: "new", flavor: "piercing"})```
Give this a shot, when I try to execute the macro your way, it also populates args with the actor id
Whoops, there's another targets in there squint let me fix
Ahh okay, that worked. Kinda. The damage roll goes off but it doesn't apply the damage to the target.
not automatically, at least
It adheres to your midi settings, I had to put mine on full auto to test your script to begin with
Yeah, no luck on the automated damage
I had mine already on full auto
What is this supposed to automate for you?
When the dae effect ends, it applies the damage to the affected actor.
What's not included in the macro (that's supposed to be in the final) is the if (args[0] === "off") , but I left it out to see if it would automatically apply it in the first place
Hello, about this im still trying to make shield apply before the attack hits, but i cant seem to be able to make it work, i reimported everything from ddb and no luck, anyone had this problem or may know why it happens?
Show the details tab of the item
Does it work with a freshly made shield spell on foundry itself?
i didnt try to create one manually as i dont erally know about midiqol formulas, but i can try
And are you using Convenient Effects for the AE or have it on the item?
DAE if midiqol options are right
ah no
convenient effects
its on Apply CE if available, if not use item effects
i tested it with the other way, it didnt work either
So how does this work?
Deletes the template with the UUID when the effect is removed, afaik
I'm assuming midi is auto applying that. Is there a way to make it so those AEs auto remove on current turn end?
Well you could make the AE expire at the end of turn? 🤔
These spells don't have an AE by default which is why I was confused it made it after casting
Ah, what's the duration of the spells? I believe the effect duration that is automatically generated is based on that
I'll check next time someone casts a spell but I don't think it had a duration
or maybe it was 1 sec, idr
If the spells are set to instantaneous it should auto remove at the end of turn as far as I remember
I had to sanity check several times to make sure, but with using midi qol full auto presetting, this creates an effect that hurts the affected when being applied/removed for sure;
let testActor = await game.actors.get(args[1].actorId);
let testToken = await canvas.tokens.get(args[1].tokenId);
let target = testToken;
let damageRoll = await new Roll(`1d8`).roll();
new MidiQOL.DamageOnlyWorkflow(testActor, testToken, damageRoll.total, "radiant", [target], damageRoll, {flavor: "I hurt myself today"})```
It was and didn't auto remove till manually deleting the AE
Yup! That worked. Interestingly enough, trying it in v10 doesn't work though, but it works in v9 just fine (but I only really care about v9 working lol)
kinda weird you have to verrrrry specifically specify the references
I am unsure if the function has been changed in v10, one thing to take note of is that you need to define a set for the targets (the stuff after "radiant" in my example), so if you forget the brackets you go loco for cocoa puffs trying to figure out why it's dying on iterating >_>
hey guys, I am having some difficulties with the midi qol lay on hands macro, Where at first it would work but then if I dragged the token to another scene or just delete it and dragged a new one to the same scene it will no longer work
any thougths?
Is token linked and did you set resource linkage?
the token is linked. I am not sure how to do the resource linkage
just looked it up the resource is indeed linked
in DAE, the primary tokenId is the target, so you don't need to define args[1] unless you want to call the caster into it. However, You can use @target to define the target, if you're running Dae with self target. So it runs on the caster first.
if you enable fast forward ability rolls and make a tool check, the value is green like it is a nat20, is this intended?
No, it's not. I hazard a guess that it's a bug
alright, do you want me to post an issue at gitlab or is this enough for a bug report?
ignore me lmao
No, just had a look and it's fixed in 10.0.15
isn't that just a default roll css? success
Yes, but .... the setting of what's the critical threshold for a tool roll is set differently than it used to be - or something that filtered out the critical threshold is no longer doing so.
All of the hooks will fire, since midi just calls the dnd5e rollAttack, rollData, rollAbilitySave, rollDeathSave. roll hit dice is not touched by midi. As of 10.0.15 midi will call the preDisplayCard hook.
I presume Midi will (and currently does) use the item's save DC, not the actual displayed value on the saving throw?
Midi goes an item.getSaveDC() when checking saves.
For bab, is it possible to copy a bonus from one actor to another?
You can put the bonus on an item or effect.
You can of course also copy the flag data.
And it can create auras as of 10.0.7.
How do I embed the bonus in an item?
In the header.
Same with effects.
Only the actor has the BAB hidden away in Special Traits.
Funny, I'm not seeing the BAB in item header, but am in the effect editor. Probably dae/bab fighting over the header.
Ah - it does not do spells?
No
That would explain me not seeing it then.
Nice module - think I'm going to use it - now for a flurry of compatibility testing
background, class, subclass, spell type items are excluded from granting bonuses
and likely race too, eventually
Race or class could be useful bonuses
I don't see the point. I don't block feat-type items.
Fair
Usually similar stuff from race or background would go in Special Traits, same with many things from a class.
I see you have an aura of protection set - can you screenshot the settings for me?
Like this:
Thanks - it was the filter 0=0 that I'd not realised.
A big-brain trick.
Why do we need 0=0? Just so I know when I jump on the BAB-wagon
At least one filter is required.
Def going to use it for pally auras
I made some consumable items over the weekend that create a 1-minute duration aura on the user that do weird shit
like, "you roll +1 with all hit dice if you are within 10 ft" or "your crit range is increased by 1 for all allies within 15 ft if they have less than half their health"
I remain ignorant but trust there’s a good reason why one filter is required
These sound awesome!
Ever wanted brutal critical but with spells?
Is there a way to create a visual representation on the tokens affected by the aura effect? So that the roller can tell where the bonus came from.
You could even do something like... give everyone within 10 ft of the rogue bonus damage equal to their sneak attack.
Look forward to the BAB sample compendium
Visual effects on the canvas are definitely not within the scope of the module.
Never gonna happen. I abhor "sample" compendiums. I delete them from every module.
Guess I'll go with flavor text then.
All functions in the module are completely sync. The only async function in all the thousand lines of code is the getData.
So I couldn't make a visual effect even if I wanted to.
I just give my paladin player an item macro in their aura feature they can toggle on/off for a visual effect. Does nothing, is all for show.
I really wish something like Active Auras was core... we had our worst flare up of our AA bug last night... Twilight Sanctuary AE got applied to some of the tokens 10-20 times 😔 Hopefully things will be better in v10 (somehow)
I doubt that will happen, what with that example going past regular permissions.
You could use Effect Macro. 😎
We have a nice fully hands-off solution with the help of a certain bugbear – but it hinges on AA working properly. Which it mostly does, but when things get hectic it seems to go awry. Tposney has kindly tried to diagnose for us but it's hard to pin down, being so intermittent. When we shift to v10 I think I'll rebuild our world from the ground up and hopefully it won't happen.
Abilities that ping on every damn turn (like 5+ times a round) are perfect for as much automation as possible, and I won't hear a word to the contrary
If this is something you use often, just make a world script tbh.
Hook on updateCombat, make sure it's the turn being advanced forward (by 1), then scan for anyone with a flag or effect 'Twilight Sanctuary', pop some temphp.
basically what EM does
Twilight Cleric... therefore at minimum we have Spirit Guardians and Twilight Sanctuary going every combat. Every turn something is going off
I have a twilight cleric myself.
This is pretty much what's happening, but with an Item Macro... however I'm assuming you're applying said flag or effect manually if you're not using an aura
Just have the cleric with an effect
write a world script to measure the distance from the current combatant to any cleric with the effect. 🤷
I mean, that sounds awesome – if I knew how to write such a script. Maybe someone should make a module
Just steal some code from EM
How does save dc work in bab? I'm checking item.getSaveDC() and it's not returning the bonus value (or I screwed it up) where does the change to save dc get set by bab?
and do canvas.grid.measureDistance(token, cleric_token)
It changes the label on the displayed chat message.
Visual only, which is why that one won't work with Midi.
The alternative is using updateSource which is just gonna be hell if anything is ever cancelled.
You're right about that. Any chance to call a hook when the change is made? I can then take note of it in midi.
It happens in dnd5e.preDisplayCard
Best I can do is probably toss the final integer into the object in the hook
That would be fine. I can grab that after the hook returns.
or straight up flag the message since that's in the hook
Flagging the message would be better - I hold on to that and can just check when fetching the saveDC from the item.
flags.babonus.saveDC?
you guessed it
Thanks for your advice earlier. Bear in mind, I have little idea of what I'm doing with the code I've butchered.
My intention is to have an aura effect applied on one character (who is immune to the effect). The aura increases a custom ability score (cua_0) of those affected by 1 at the start of their turn.
Here's what I've done for the ItemMacro with your input:
`try {
const lastArg = args[args.length -1];
// Check prior to applying the effect: If the token is NOT the caster and it's their turn, they receive the effect
if (args[0] === "each" && args[1] !== lastArg.tokenId && lastArg.tokenId === game.combat?.current.tokenId) {
const sourceItem = await fromUuid(lastArg.origin);
let theActor = await fromUuid(lastArg.actorUuid);
if (theActor.actor) theActor = theActor.actor;
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);
if (args[0] === "each") {
const value = tactor.getRollData().abilities.cua_0.value;
await tactor.update({ "system.abilities.cua_0.value": value + 1 });
}
}
} catch (err) {
console.error(Test Aura, err);
}`
And here is how I have things set up UI-wise.
Unfortunately, what I have so far doesn't appear to be working in or out of combat
Exciting night (…or day) in the thread! Me likey!
The audacity of Zhell badmouthing sample compendiums in this thread of all places!
Can you export the Item and DM it to me?
I will take a look later
2 things they did in v10 that I truly believe were literally shooting themselves in the foot. Changing data.data to system, and changing the filepath of icons. And before anyone replies with theres a macro for that understand that if theres a macro, that means it could have been in the migration process. Its not, and my v10 build looks so ugly right now that I honestly don't think I will ever move my live table to anything other than v9 foundry. I'll probably sooner go back to RL tabletop before then.
The change to the paths makes sense in the long run. And data.data will work for the time being due to code that looks for that
The icons change got me too, but I ended up just moving the DND5e icons file, back to its former place, grabbing it from a previous version of the system.
The migration scripts work for almost everything
Oh, I didn't think of that...I think I'm gonna use that
I don't care if I have double icons in my data folder or wherever this stuff is, i got so much space. I just don't want to have to teach my players new locations nor make them reset their icons and images for ae's and abilities.
plus some stuff isn't even in the UI, like I have a bunch of warpgate synthetic items that will be broken cause of the filestructure change, no macro will catch that stuff.
but moving it back will fix it all, thanks for the tip
Will a v10 patch/update cause the folder structure to revert you think?
Yes
Or is that a dnd5e thing
Dnd 5e
k so basically just add it to my backup process during a system/software update
That would work 😅
although its the kind of thing that is so obvious when you forget it, that you can never forget
My druids entire sheet had broken icon links, every single thing lol
The data.data to system has made a lot of things easier, it's better in the long run.
I'm an endpoint user, all that translates to is alot of work to fix things between the updates. Maybe a modder will pickup the transition issues. It just seems weird to me that an update is actually a downgrade. I get that theres potential but that potential is wasted if nobody picks up the mantles that have been dropped.
But one of the greatest things about foundry is how you can stay version locked, so there is that
Staying on v9 then?
It is a bummer they couldn’t transition the icons gracefully. That seems like something a macro could fix?
My v10 is a disaster, hours, maybe days of work just to get to work for the table, I won't ever update my live table till I'm on hiatus as a Dm for them
Plus there are critical modules that have no answer in v10
Sorry to hear that.
need ate/atl and active auras
Yes, it's a one-liner.
It won't catch the warpgate macros, but then again theres only like 8-10 of them I use for icon paths
Correct
but still, its just a needle on a rather large haystack
I don't think that's how that expression goes
I can't believe that ATL was the only show in town lol, like dfreds and cub coexist, was there really no other module that modded lights?
... Warp Gate
via active effects
I never used ATL. I just used EM and WG
I'm a user of macros, but I'd much rather have a UI to setup my games with, thats why I like advantage reminder vs macros for stuff
dnd5e.migrations.migrateWorld()
Ultimately the only aura I use you have already taken care of with BAB but theres so many midi srd spell aoe's that utilized it and I really don't want to have to go through 516 spells trying to find all the breakages.
All I use ATL for is active effects. It’s kinda surprising you need ATL to do that? Shouldn’t you be able to affect basic stuff like lights and scale without third party help?
Effects affect the actor, not token
ATL probably ran a script behind the scenes to do it
And macros are first-party lol
Yeah and also ATL reverts back to the prototype which can be a bad thing
WG and .. something 😄
But those require macros to be written.
yeah but then I need to write a bunch of macros that were literally premades in dfreds CE up until v10 came out
One line.
Wonder if we can beg Dfred to just put them into the AE's?
If only someone built a babonus-like front end for WG to do this stuff
...
Does effect macro store the macro in it or is it just referencing a folder macro?
The former
well you could run another macro from in there 🤷
You think I wanted to clutter my macro folder? Pff I laugh
Man that seems like EM would be a great pair up with dfreds
almost like how midi and item macro work well together
You can make them all by yourself
Tons of people probably do that
And doesn't dfred have an import/export function on the custom folder, that...seems like an untapped resource kinda like automated animations auto recog import/export.
You better get to writing then
Here have a thousand.
#macro-polo
likely going to be different between versions
Not really
Non-system specific token document updates had zero change.
At worst you delete one data.
Torch is one thing but remembering the esoterica of light animations and luminosity etc isn’t that user friendly. A front end is where it’s at
Man, I used that stuff initially, but seriously, thats some resource hog stuff you can live without
Specially on a map the size of a dotmm floor
I disabled all light animations and vastly improved performance for my players on mobile and a 2006 graphics card
But I need fairy lights for Twilight Sanctuary
God, I breathed a sigh of relief when my cleric was dead set on Peace Domain.
You know yall can just copy the token's light data right
Or even a wee button in the token config header that let you save settings to an EM?
... That's a one-liner.
Everything is a one liner!
Yes I made everything easy. You're welcome.
Right but we're users, not writers. My one liners are usually dealing with the human senses, not code
If we use EM to put light on a token will it revert when the effect is removed?
Em has an on and off macro
so presumeably the oneliner is a toggle you put in both spots
EM does what you tell it to.
So write a permanent update or write a warpgate mutation
How does Conditional visibility work in v10 lol, half its effects are ATL flags.
Use the invisible condition
Gotcha. I’d happily stop using ATL if I could master this technique. But in ATL’s defense, it’s super easy just picking things from a list in the AE config
Its even easier than that though
I installed ATE/ATL cause of dfreds
if you have both dfred just enables the lightsource CE's
Smh, you and your fancy dropdowns holding you back from reaching peak potential
for me it was just a matter of right clicking the lightsources in dfreds window and enabling them as status markers
I’m very fussy about my light settings
Anything my player can do instead of me, makes it easier for me to do the fun stuff like set a scene, or run an npc
how would EM handle faerie fire, another example of ATE performing a much needed automation
I never thought to pop those in the token HUD, nice
Sorry, I'm in SWB and don't know what Faerie Fire is /s
We would need to tap someone like bugbear for those cause its an args thing
omg, it would also break on npcs that are unlinked
wow ate did more than we realized
What would
how does it know who to apply the debuff to, will the macro deal with only the canvas actor?
so lets follow that, what happens when we go to a new canvas?
the players have to then recast their lights
cause its either/or, I'm pretty sure ATE carried it over
yeah thats my point, how would we know if we're modding a player character or a monster npc with 30 canvas actors linked to it
token.
I suppose copying their tokens would solve that but I really like my warpgate macro to summon them
That is all.
I really want my lights in the AE lol
ATE and Active Auras should both be core 🙉
Or someone should pick them up
and I know the hypocrisy in that statement as someone who is not a content creator nor a contributor
but those modules are pretty critical gaps in the v9-v10 jump
Fold ATE into DAE, fold AA into midi… problem solved 🤷♂️
(And midi srd)
yeah there is full export/import function of dfreds ce's so if you have EM installed, presumeably the data stored in them for a macro would go with them in the export file
but I really want it in the ae so it carries over instead of just being on that specific actor token.
Just edit the CE and give them a macro. You can do that, right?
I'm thinking moreso for how auto recog files are handed out on jb2a's server. Dfred gave us the ability to share our custom folders. Was gonna make them in v10 and then share them in gearheads so that people won't ask 1000x for the macros
Cause once you get the macro shared, you have to create the CE, setup the EM parts, and then set them as status effects. Dfreds gives you a button that does all that
You can't create new CEs?
so instead of sharing each macro individually and injecting them into your EM'ed CE's, you instead share the exported dfreds custom folder
Can't you do that?
We're in an automation channel Zhell, its about skipping the steps
Well MidiQol thread so all these .. 🤣
You know the EM macros are just stored as flags on the effect... right?
Although...I get the feeling export files don't append into your folder
Exactly that Moto
they probably replace
yeah, thats what I wanna do
but
basically doing what midi srd did in v9
I look forward to Moto’s CE+EM sample compendium
Ugghhhh
I dedicate literally 4 hours a week to my v10 build and its first on my list so it will be soon™️ but honestly, I'll be begging zhell for the macros as I don't know shit about macro writing unless I can cut and paste and one liners are not things you can cut and paste to make lol.
I heard someone finally fixed the front end preset thingy
You literally just replace data with system and move on with your life...
I don't even need the presets, I just want the dfreds ce's to work and the midi srd's flags for ate to work cause I carried over midi srd in my own compendium to get around the module failing to flag for v10
afaik the only spells that are broke would be anything related to lighting and maybe enlarge/reduce?
puts them in AE's instead of macros lol
ae's matter to us plebs who don't know how to write js
WG doesn’t put handy dropdowns in the AE config. That’s my excuse
UI helps immensely with useability for features in a product
console.log(foundry.utils.flattenObject(token.document.toObject().light));
There's your dropdown. 😂
making an active effect is 10x simpler than editing a macro
or making a macro for that matter
Also not sure if Lukas is referring to this when they say drop down but the auto complete part of DAE helps immensely to make the active effect setups alot faster and simpler, I have even stopped looking at the cheat sheets now for advantage reminder and midi thanks to it, just type message in dae for advantage flags, and such.
Why doesn’t warpgate have a UI? 🤔
Hmm I have a way to use WG do stuff for non macro writers (my players)
Yup you get a dropdown for Fairy Lights etc
I forget its name but I think its v10 only
It is system agnostic. There is nothing for which to make a UI.
Also warpgate does so much, too, that could be why
Multiple modules are utilizing warpgate aren't they? Like the wildshape module?
Yes think it as a library of predefined operations
yeah
That, and Arbron's, and ET.... and my world script lol
Arbron's was the thing I was trying to recall thanks
It would have to be a pretty clever UI, but it would really open things up for us non-coders
man one thing I wish was fixed, is every so often, not sure why, but some ae's do not carry over their abilities icons in v9
It would be literally impossible.
I haven't pinned down what scenario is failing to carry it over
you go to make an effect on the item and its the basic icon
Either its an item in an editable compendium or sidebar that does it, I'm trying to replicate it
I believe in you
If you are about to say that effects default to their parent item's icon, Moto--
I give my players an input field and make them type keywords. WG teleport token.name
Yep, its core stuff that does it
And ... Magic they are coders
take a monster with any activateable ability, with DAE, edit the owned item and add an active effect, it creates with the icon of the ability as the ae's icon automatically on the owned item. If you drag that ability to the sidebar and repeat the process again, the ae gets a blank effect icon:
Who wants to tell him?
left is editing an owned item, right is editing a sidebar item
its a module doing this?
AEs do not automatically inherit their parent's icon.
right, my point is I wish dae fixed the core behavior
this is one of those cases where the dae feature of editing the owned item does the right thing
But it does, I thought 🤔
not in my v9 build atleast
I should probably check with modules disabled to make sure, just incase tim actually reads our 300 messages while he was idle lol
Wait you create the item in the actor and give it an AE?
if its on the actor, the item inherits the abilities icon, if its in the sidebar it does not
shrug world script. Here you go.
Hooks.on("preCreateActiveEffect", (effect) => {
const isItem = effect.parent instanceof Item;
if (!iItem) return;
effect.updateSource({ icon: effect.parent.img });
});
v10
this might even just be a tiny typo in dae /shrug. Its just not handling the sidebar item the same way it does the owned item and compendium item
oh, thats probably dae right, I stupidly just did FTC with just midi on
Damn my house is a construction site right now and I cannot fire up foundry 😭
And rekt my cloud instance too 😁
yeah with just midi/dae and its dependencies, an item in the sidebar, when you add an active effect, it defaults to the default icon, if you have that on an npc/pc it defaults to the abilities icon
I can see how some don't want the abilities icon as the end choice, but for productivity purposes, inheriting it can make life easier on most and nobody wants the blank aura icon by default anyway.
Is there an easy toggle to stop a workflow from testing flanking? I tried setting workflow.attackAdvAttribution['ADV:flanking'] = false; in midi-qol.preAttackRoll.
As you say it could just be an oversight
yeah thats what I'm thinkin
and thats considering the fact that we're all always chastising people not to edit owned items in dae lol
its actually alot safer now to edit them, most of the snafu's are gone from it now
Isn't the Attribution only to make it so that there is some info in the chatMessage about what gives what?
Is that what that means?
I think so
fwiw that is exactly what prints out in advantage reminder while flanking
well, probably a v10 difference there
Does the workflow have any other reference to flanking?
async checkFlankingAdvantage(): Promise<boolean> {
if (!canvas) {
console.warn("midi-qol | Check flanking advantage abandoned - no canvas defined")
return false;
}
this.flankingAdvantage = false;
if (this.item && !(["mwak", "msak", "mpak"].includes(this.item?.data.data.actionType))) return false;
const token = MQfromUuid(this.tokenUuid ?? null)?.object;
const target: Token = this.targets.values().next().value;
const needsFlanking = await markFlanking(token, target,);
if (needsFlanking)
this.attackAdvAttribution[`ADV:flanking`] = true;;
if (["advonly", "ceadv"].includes(checkRule("checkFlanking"))) this.flankingAdvantage = needsFlanking;
return needsFlanking;
}
Yep that is from the workflow.js
While i'm on this
what happens when two hooks on the workflow both try to mess with advantage?
Is it just set in order of being processed?
Hmmm probably
what’s mpak?
maybe a system compatibility thing
melee panic attack
my server just dropped for its morning restart, I can't pump it into dae to check
Flanking does cause that
maybe its a compatibility thing with a module or system
Ban flanking.
Probably from another system
I know that someone was using SW 5e with midi last night in module troubleshooting
No advantage just a +2 to attack 😁
that is actually stronger than just normal advantage flanking really
that lets a barbarian with reckless attack hit even more easily
Adv is +5 for them creators so ...
Moto is saying you can stack advantage with +2
right, but you can't get super advantage, but if you make flanking give a bonus, suddenly it stacks with advantage
At that point, just remove the concept of AC.
All your tokens are in a conga line and no one can miss.
Midi can ban conga line
@molten solar I mean, once you are in the second half of T2 in dnd5e, and you aren't a stingy DM who refuses to hand out +1 weapons and spell mod items....AC is already a joke lol
What levels are 'T2' again
PB 4 and up, so level 9+
Play 3.5. +30 to attack is ez pz
I honestly wish for a table that says yes to facing
Screw boring +1 magic items. Make fun stuff with babonus
And a table that embraces MMM fully would be a fun game
v9 bab when?
Never. ❤️
I'd use it in a heartbeat lol
Bring on Zhell’s Babonus Bazaar (sample compendium)
To do the same in v9, I would need to wrap every roll. It would be incompatible with... checks list
Ah. Everything.
ooooh does bab have an export/import function??
Moto go v10 without a backup. I guarantee you will never look back
behind a paywall.
I already have a v10 built, its a freak show of broken links and broken midi workflow errors
Yes, you can duplicate document data.
Workflow errors?
cause active auras and midi srd item macros are in my world compendiums
Whoops
Didnt you say you only used AA for the paladin aura?
The spells are used by the players
think spirit guardians, darkness, evards black tentacles
those are all active auras
Cloudkill, spike growth, sickening radiance
its not just that though, theres a bunch of item macros using v9 stuff
like the really awesome Ice Knife that Freeze wrote, doesn't work in v10
AA one of my last holdouts for v10 upgrading
BaB looks like a good replacement
BUT
So when your warlock pushes someone into the area, they get automatically trashed
I don't think bab can handle the non damage stuff though, like spirit guardians movement debuff, evards applying effects, darkness applying blinded
There are are a few things it doesn't quite replace AA well enough with
can it?
Praytell. Does it appear that my low-automation module is not a total replacement for a high-automation active effect radius creation tool? /s
Also the sleet storm effecting conc is pretty frikkin dope niche automation lol
thats a midi thing though
but plays off active auras
Ooh fun. I have a function built into CN for that. Neat.
Didn't even realise it did that.
I got a player who used it against me in a recent bbeg fight so I got it thrown at me, burned into my memory
sleetstormd then magic missiled him the next turn
Core gave us AEs. They should let them be applied via proximity 🤷♂️ (I’ve put my 2c in on the v11 threads)
Treebeard is a foundry dev
I imagine things ar emuch like a train though, gotta map things out and work towards them over time
much better than roll20's method of throwing things out on a friday night and seeing what sticks
What ever do you mean, Moto Moto. Do you have any horror stories about that? vanishes
I just played in a roll20 session last night actually, my players run stuff on sundays and sometimes I join them to play in them. They just added invisible walls!
I had to login to place their images cause they all have free accounts lol, then they moved them to their maps from there
Next you'll tell me they have doors! 😮 🤯
hmm, I dunno if they added the door button like foundry, but that reminds me of our session zero in foundry. My players were absolutely bonkers crazy about the door button
Also, fyi, you can make windows be doors in foundry, though they look like doors so its weird, maybe add that to the v11 roadmap
a window icon for invisible wall doors
better perfect advanced doors coming soon ™️ (module) /s
Roll20 still sometimes haunts me. One of the map packs I use for the city my players are in was converted from roll20 walls.
Every wall is like this.
Not the worst I've seen
I think I've abandoned UVTT/DD2vtt files. They are so inefficient in walling
I had a map with 700 walls, I deleted and redid them, 158.
I was reminded of this
<#macro-polo message>
Yeah Macro polo saved me from a headache with the imported file that used doors as windows in dungeondraft and the house had a bajillion windows.
Still my absolute favorite examples of bad walls and bad imports.
yeah you had me open the doors and it fixed all the windows cause you filtered by shut doors
Designer Doors + Font Awesome window icon works pretty well FYI
I just realised what you mean.
I almost never do that. I always go through the DAE button (old habits :P...) and it works fine, no matter where you have the item 🤷
its when you add the effect the standard way, not using dae's access button yeah
I only use the dae button at the top when I'm looking at a locked compendium items effect
Yep, in v9 if you use dae's button instead, it behaves the way dae intends it to and uses the items icon for the ae, its only when you click the add button in the items effect tab while in a compendium or in a sidebar that the icon defaults back to core behavior
Well standard way maybe nowadays. Back in the day you couldn't use that 😄
And the DAE button is really useful to see which effects might be changing a given actor value, when you disable summary.
Oh I don't see that, is that a v10 thing?
nope
Up top left, Effect Summary
Click on that
I think 99% of users have never clicked that 😄
oh oh oh, its item sidebar stuff again
the item on the character shows it, the item in the sidebar doesn't
I think it needs to actually trigger an actor change to show, but 🤷
So in the sidebar it probably wouldn't
interesting to know though
I just realised that I am v9-less for the time being so cannot be thorough, but will see 😄
Hmm wait is this supposed to work like that? ```js
"key": "macro.itemMacro",
"mode": 0,
"value": "@spellLevel @attributes.spelldc postsave",
"priority": 20
What is `postsave`?
Wait no2 😅
Is that v10?!
@ripe relic can you export your MidiQOL settings and DM them to me?
I think its just the lack of full settings in the target
have you tried properly setting up the target/range stuff?
should be 1 | blank | Creature in the row above range.
Just tried no difference
is the actor linked?
@ripe relic go to your MidiQOL settings. Workflow Settings, Rules tab and check the Optional Game Rules.
@gilded yacht in v10 the new options menus are nice, but in this case there seems to be an issue.
The Check weapon Range has been moved out to Mechanics tab, but for that to actually work needs the Optional Game Rules checked in the Rules tab (where it was before) ^^
@violet meadow THANKS! fixed 🙂
It is a bug still or better unintended I imagine 😄
Just call it a feature 😄
How I can disable it? How to make automatic rolls?
Go to midi settings and deactivate late targeting
I chose "Always disable late targeting" but the window still appears
Hi!
When In turn reactions on, the saving throws button stop to show on the chat log, someone know how can I fix it?
Turn off vs Turn on
can you show us what you mean?
just upload the pics
Did you make the save already then it poofed?
there is a setting in the players and Gm tab to remove buttons after use
but i didnt use
It rolling auto the save for the player but its taking a while for it to roll (like 40 seconds) and they prefer to roll manually
version of foundry, dnd5e, midi, and are you also using ready set roll, roll groups, quick rolls by default, better rolls for 5e, or minimal roll enhancements?
the player has a reaction prompted to them probably
do they have shield and are a wizard?
yes
OR you have setup LMRTFY or MTB to roll saves, and you do not have the module installed
I have LMRTFY
what are saves setup to roll with
and its working with monk's setting
so when I choose a player and click on the saving throw
a message of LMRTFY jumps
Not really following here, is the effect saved on hit?
if its automated and they are getting prompted, then the save poofs because thats just how midi works
yes it automated
if you want the button to not go away for some reason, then I'm thinking no auto dlete of buttons?
It sounds like you just don't like the settings you have in midi, so change them. If you want the buttons to stay, don't remove them, if the save button removes because of LMRTFY or MTB, don't use that. But the setting should be set to LMRTFY if you have that, not MTB, that could also be a cause of any weirdness, but everything you've said just sounds like normal midi behavior.
sorry if I didn't explained myself correctly.
I just want that the reactions will prompt as a chat when they'll get hit, in addition, I want the button of the saving throw like in the pic, will show
yea I want the button to stay
don't auto attack
is void infused pseudopod the reaction or an attack triggering your reaction?
nothing turn on except Concertation and Reactions
attack that triggering
when the save shows up, its cause you are not really using it right, you have no target, so the buttons are there for you to then set a target, and click the button.
It sounds like you might be trying to use midi in a very limited way, are you also using another roller and that is why?
When you are missing the save button, its trying to make the attack normally in midi, you have a target selected and either exed out of the attack popout or it fired and you missed
I don't have any roller mod, I'm using midi for the the attack and damage merging on the message tab and for the reaction and concertation pop up
Ok, then you don't need that save button, it should auto prompt on hits
it shows in chat, when you mistakenly have no target and auto attack fails
If you do not want the automation, I believe what you want to do is turn off auto roll attack and disable any target requiring.
I turned off every automation, and turned on only reaction and concertation but its still doing that, I dont wanna be a headache if it a bother so neverminded that, I will try to get used to it
I stil ldon't really get what you want, but if I'm guessing right, you want target required off completely, and you want auto roll attack off for players and probably the DM
Lil weird to want midi just for a change in appearance of the attack card
the merge setting in v9 does not require removal of buttons, cause I don't use that removal setting and I still see the merged card showing the buttons. But the saving throw thing is an efect transferral setting, like I don't think thats toggleable, or if it is, its probably in the specials section and its just so automatic to me I forgot the setting existed
are you using the module effect transferral by chance? cause that button could also be the core roller right before midi throws it out
nope, disregard, the effect transferral button will say "Apply active effect" not the saving throw
Set saves to OFF and you will retain the save button
Yea actually I loved MIDI qol but my players dont (they want to roll things themselves)
I auto roll everything as GM but only auto roll attack for players. Everything is FF and use LMRTFY for prompts
How would I automate the Precision Attack maneuver? I know there are ways to prompt a dialogue box up upon a miss, which shows the attack rolled, and you can do something to grant a bonus to that roll. Are there any examples of that sort of macro?
More automated spells, items, and features module for v9 has the entire battlemaster suite of effects automated
v9 only sadly
I’ve got that macro. It even reduces the superiority dice and stops promoting when there are no superiority dice left.
Oooh! Would you mind sharing it?
Are you on v10 or something? The v9 suite of abilities by that other module is fully setup, its like the guy was playing a battlemaster its pretty sweet, everything for a battlemaster is fully automated.
Oh, yes. I'm just checking out that module now.
Sure but I’ll send it direct as this is midi qol and we’ll get told off. 😂
If I recall, the setup is really weird to get it working but once you got his settings right it fully automates
I don't think midi qol cares about whether you share a macro for midi qol or not, we sat for hours this morning talking about totally unrelated stuff
if anything the community loves it when folks share a macro for an ability and labels it as such, cause then its searchable and saves #macro-polo the trouble of getting asked to make it
Ah ok, so used to getting the channel wrong and being told to move on. 😂
if you do wind up using his setup, I believe the tricks were that you need to make sure the resource pool is setup right and you need to make sure you use his naming scheme for the subclass, and if you aren't really a battlemaster but have the fighting style/feat instead, I think you need to somehow force the subclass flag on yourself somehow to pull it off.
remind me again but is there a way for an attack to bypass resistance or immunity with midiqol?
the drop down on the damage card should be able to handle a unique situation
What's your situation? Elemental Adept?
Also if you are not merging cards, you can use core behavior to apply damage, OR if you are using merge cards, turning on damage buttons in the main settings for midi can work on merged cards the same way
#dnd5e message thatlonelybugbear made one for Cold, import it and have a looksie to see if you can amend it to yours
v9 or v10 Foundry?
v10
Also the options (in v10 at least that I can now check) say Always DISPLAY late targeting not disable late targeting.
So you are looking for No Late Targeting
I selected No Late Targeting but nothing changed
did you hit save below
oh does v10 have the weirdness that is two settings for late targeting?
Go into MidiQOL settings => Workflow settings =>GM and disable from there too
there is a general setting and then another inside for GM and Player
Of course
make sure both spots are set to no late targeting
in v9 its outside the workflow button and then inside workflow button theres a setting in GM and Player tabs too
I think the outside setting is for client side choice
Yes! That helped! Thanks!
@vast bane I was just rummaging in Github and saw Kaelad has PRs for both AA and ATL v10 compat. Does anyone know if it's possible to install those versions manually? I'm not that familiar with how Github works
afaik the v10 PR for AA was able to run but has many bugs still
I give v10 4 hours of my time, and thats not till friday.
Go here: https://github.com/kaelad02/Active-Token-Lighting/tree/v10-compat
Click on Code and Download ZIP.
Create a folder ATL in your modules and unzip the inner zipped folder there.
Restart Foundry
The Active Auras one was a bit less straightforward as it had another prereq update iirc.
I'm trying to alter this Ice Knife code to only work on a natural 20, as per the Wakened Dragon's Wrath Longbow description
Whenever you roll a 20 on your attack roll with this weapon, each creature of your choice within 5 feet of the target takes 5 damage of the type dealt by the dragon's breath weapon.
How might I be able to do that?
// Midi-qol "on use"
// This spell flips between a single target and multi hit targets, then back to single target.
async function wait(ms) { return new Promise(resolve => { setTimeout(resolve, ms); }); }
(async () => {
let actorD = game.actors.get(args[0].actor._id);
let tokenD = canvas.tokens.get(args[0].tokenId);
let dc = actorD.getRollData().attributes.spelldc;
let itemD = args[0].item;
let aoeDamage = Number(args[0].spellLevel) + 1;
let firstTarget = canvas.tokens.get(args[0].targets[0].id);
let distance = 9.5;
let damageRoll = new Roll(`${aoeDamage}d6`).evaluate({ async: false });
let damage_target = [];
let hitTargets = [];
let saveResult = "";
let saveType = "dex";
let damageType = "cold";
let aoe_target = canvas.tokens.placeables.filter(target => (canvas.grid.measureDistance(firstTarget.center, target.center) <= distance && target.actor.data.data.attributes.hp.value > 0));
for (let target of aoe_target) {
let save = await target.actor.rollAbilitySave(saveType, { chatMessage: false, fastForward: true });
if (save.total >= dc) {
saveResult = `saves with ${save.total}`;
} else {
hitTargets.push(target);
saveResult = `fails with ${save.total}`;
}
damage_target.push(`<div class="midi-qol-flex-container"><div class="midi-qol-target-npc midi-qol-target-name" id="${target.id}"> ${target.name}</div><div>${saveResult}</div><div><img src="${target.data.img}" width="30" height="30" style="border:0px"></div></div>`);
}
new MidiQOL.DamageOnlyWorkflow(actorD, tokenD, damageRoll.total, damageType, hitTargets, damageRoll, { flavor: `(${CONFIG.DND5E.damageTypes[damageType]})`, itemData: itemD, itemCardId: "new" });
await wait(800);
let damage_list = damage_target.join('');
let damage_results = `<br><div class="midi-qol-nobox midi-qol-bigger-text">${itemD.name} DC ${dc} ${CONFIG.DND5E.abilities[saveType]} Saving Throw:</div><div class="midi-qol-single-hit-card"><div class="midi-qol-nobox">${damage_list}</div></div>`;
let lastMessage = game.messages.contents.map(i => ({ itemName: i.data.flavor ? i.data.flavor : null, itemCardId: i.data._id })).filter(i => i.itemName != null).filter(i => i.itemName != null && i.itemName === itemD.name);
let lastChatId = lastMessage[lastMessage.length - 1].itemCardId;
let chatMessage = await game.messages.get(lastChatId);
let content = await duplicate(chatMessage.data.content);
console.log(content);
let searchString = /<div class="midi-qol-hits-display">[\s\S]*<div class="end-midi-qol-hits-display">/g;
let replaceString = `<div class="midi-qol-hits-display"><div class="end-midi-qol-hits-display">${damage_results}`;
content = await content.replace(searchString, replaceString);
await chatMessage.update({ content: content });
await ui.chat.scrollBottom();
})();```
I think```js
if (args[0].d20AttackRoll === "20") {
//do stuff
}
Pretty sure the workflow has .isCritical, if you want to account for stuff modifying crit ranges
Indeed but asked about a NAT 20 so 🤷
Fair point
Also just realized that the macro seems slightly overkill, but am not at PC right now so reworking it is too much work 😅
Seems a bit old. You will need to await the new Roll too!
Bah, maybe the Ice Knife was a bad choice to cannibalize.
'Cause the bow doesn't require a saving throw on a natural 20.
This is what I'm currently using for my player with a Dragon's Wrath weapon. I made this before realizing midi-qol has it's own utility function that can replace the sorting part.
It works at least.
Sweet!
You'll want to swap out the damage type on line 30 with whatever they have theirs set to
That line-1 destructuring assignment 🤌
As well as setup the item to have it's "Extra Critical Hit Damage" on the details set.
Line 33 and 34 can be removed if you don't have JB2A Patreon
Just noticed line 26 can be totally deleted lol
I seem to be getting this error.
const {attackRoll, targets, actor, itemCardId} = args[0];
for (let i = 0; i < attackRoll.dice[0].results.length; i++) {
if (attackRoll.dice[0].results[i].result == 20) {
const lastArg = args[args.length - 1];
if (lastArg.hitTargets.length > 0) {
let targetId = args[0].hitTargets[0].id;
let gridSize = canvas.grid.size;
let targetX = args[0].hitTargets[0].object.x;
let targetY = args[0].hitTargets[0].object.y;
let allPlaceables = canvas.tokens.placeables;
let listOfNewTargets = [];
for (let i = 0; i < allPlaceables.length; i++) {
let friendly = allPlaceables[i].data.disposition;
let placeableId = allPlaceables[i].id;
if (friendly === -1 && targetId !== placeableId) {
let nearbyX = allPlaceables[i].x;
let nearbyY = allPlaceables[i].y;
let nearbyDistanceX = (Math.abs(targetX - nearbyX)) / gridSize;
let nearbyDistanceY = (Math.abs(targetY - nearbyY)) / gridSize;
if (nearbyDistanceX <= 1 && nearbyDistanceY <= 1) {
listOfNewTargets.push(allPlaceables[i]);
}
}
}
let thisActor = args[0].actor
for (let j = 0; j < listOfNewTargets.length; j++) {
let damageRoll = await new Roll(`5`).roll();
let target = listOfNewTargets[j];
new MidiQOL.DamageOnlyWorkflow(actor, listOfNewTargets[j].id, damageRoll.total, "piercing", [target], damageRoll, {flavor: "Dragon's Wrath", itemCardId: itemCardId});
}
}
const sequencerFile = "jb2a.plant_growth.02.ring.4x4.pulse.GreenRed";
new Sequence().wait(1250).sound(/Sounds/Combat/Nature/GO_7FX_Nightmaretendril_State_Open_*.ogg).effect().file(sequencerFile).atLocation(args[0].hitTargets[0].id).belowTokens(true).play();
}
}```
Quotes around the sound file.
Oops 
As you are already using MidiQOL, take a look at MidiQOL.findNearby()
function findNearby(disposition, token /*Token | undefined */, distance, maxSize = undefined)
Really helpful 😉
Oops - I thought I'd disabled that check - doh. Thanks for the heads up
Yeah, I'm using V10
Is it possible to have Midi QoL let certain players have concentration on two features, with all the attached workflow behind that?
Likewise, can I prevent someone from casting a concentration spell with Midi QoL if they are affected by a certain status effect? This one I think I can worldscript myself around midi qol if need be, just curious if it's possible
For the first there is an issue in MidiQol git about doing that or how to https://gitlab.com/tposney/midi-qol/-/issues/985
Edit: I was misremembering the above issue and probably mixed that one with another that was asking for concentration on more than 1 items
The second yes with a Actor onUse macro that is executed preItemRoll checks for item roll being a spell, the effect being present on the actor and aborts the workflow if these 2 are true
And so you have the Active auras fork installed for v10?
I have not used that so I am not sure if there is an issue with the module or not.
I might try later today
Yeah, I have AA installed. Tried a wide range of different configurations shown in the screenshots I took, but could never land something that works consistently in the right way
Probably doesn't help that I'm effectively groping about half blind with the coding side of things hehe
Features themselves don't offer concentration, you would have to create the active effect for concentration from scratch. You would need to update the target pool or during it's creation add in the target data. Then you'll need to connect up uuids to match. also using flags.dae.deleteUuid is another way to remove it when concentration or the effect ends on the target.
I swear tposney added concentration as a tag for features already
Concentration or something like that in activation condition
- Added concentration property for any weapon/feature/spell (allows you to specify that concentration should be set when rolling the item via a check box) This is in addition to the now deprecated activation condition === Concentration.
Yep in the MidiQOL Item Properties in the bottom!
OK so I took a look and there are a few issues.
Can you post a description of the Item to check what needs to be done?
Does anyone know how to add life steal to a weapon? Like the actor regains hit points equal to 1/2 or all the damage it dealt?
Have a look at the sample item Longsword of Life Stealing
Can I integrate a hit/miss card into an attack card?
Now I have a hit/miss card first, and then an attack card.
Maybe with the condensed card? idr
Merged cards
Already set the option to condensed the card
Is this what you want?
Yes
Mine is the same as bugbear bar this
Yeah I over extended the screenshot. Not a factor in these cards' appearance
Do you know what that dropdown does? I swapped to your option and with an attack under both I didn't even see a difference
V9, Dnd5e: (This one may be a hard one)
I am doing a homebrew "Resilience" system based on a creatures Constitution Modifier. Resilience Points represent their ability to take significant blows (ie. being hit with a critical or critically failing a saving throw)
This is what I want to happen:
-If a creature is hit with a critical or critically fail a saving throw, they lose a Resilience Point.
-If their Resilience Points drop to 0, they gain a condition.
I am using MidiQol and Convenient Effects.
How do I set this up?
How much automation do you do with midi? Pretty sure this will require a worldscript but the complexity of this depends on your answer
Quite a bit and that's why I would like it also automated.
No, but I mean, do you do automatic hit registration and failed saving throws etc.?
On the DM's side it fully automates. It prompts them to roll on the PC side.
Have you done worldscripts before?
I tried-ish. The World Scripter module conflicts with something and creates a bunch of issues on start-up.
that means you have bad scripts in it, the module itself doesn't do anything if its empty
Okay, I believe the process slightly changed with setting up worldscripts (without a module) in v10 but if you search #macro-polo for worldscript, I am sure one of the gurus have answered how to set them up. If you still v9, I used this https://foundryvtt.wiki/en/basics/world-scripts article.
Essentially, you want to have a look at midi's hooks https://gitlab.com/tposney/midi-qol#midi-qol-called-hooks (or go into the game and write CONFIG.debug.hooks = true, roll a midi feature and start reading) and hook into one where the workflow is populated with what you want.
Where do you have the resilience points saved, if anywhere?
also not all hooks can work with world scripter module
Nothing changed about world scripts in v10.
Ezpz then, follow the article
I was looking at creating a resource for them on the sheet but that only works for the PCs. Suggestions?
And the World Scripter module has 0 incompatibilities. It just executes macros that are stored in a compendium.
Any errors will be due to the macros themselves.
Eeh if it needs to be universal, I'd do a flag on the actors (npc or otherwise) and throw another hook in to update the player character's sheets if they need to be able to review it :p but might be overengineering it
It just auto runs a mass number of Macros on start-up. I just assumed it was a compatibility issue.
However, it executes macros after the ready hook, I believe. So it cannot execute setup, init, or canvasReady.
This is all fantastic info, I would just like to know what it means. LOL
Specifically "Hooks" and how they work.
All the setup of the game happens, and then the module executes the macros.
Thus, hooks that are meant to run before the module runs cannot apply.
So those are different hooks, think of them for places to "hang" your scripts/macros on and start executing, once whatever the hook is affiliated with starts running.
How do I use them and edit them? (I try to find videos on this stuff, but it's so spread out and Foundry changes more often than where I started Roll20)
Top pin in #macro-polo by me.
Thank you
World script can handle all of this, it'll take a few hooks to monitor. Youll want to build each part as it's own function. I've already built something like this system with darker dungeons stress system using midi hooks
Crit success reduces stress and Crit failures increase stress, along with degrees +10 - 10
If you click on the roll it should show more info. I’ll get a screenshot later
hey, after the latest update my spells and features dont have a description anymore. Anyone knows what to do?
It's this setting in midi that you need to look to, the Show Item Details drop down.
you are a hero.
My automatic attack rolls are not autorolling. What am I doing wrong? Please and thank you.
What are your Workflow Settings in the GM and Player subtabs?
Also do you have any other roller modules?
And are all these modules (midi + dependencies) up to date
I spy Active Auras, is that updated yet?
Nope
I use Forge, and it says all my modules are up to date. Do I have to get something else? Which one was that?
Ok, doing that. I have dice installed
Dice so Nice?
Yes and a few others that work off Dice so Nice
I don't understand the abbreviations
Better Rolls
Minimal Roll Enhancements
Roll Groups
Ready Set Roll
I don't have any of the others, except Better Rolls and that is disabled now
Yeah, BR is long since dead
Basically if you have one of those modules, you shouldn't have the others
So I'm still getting the boxes to roll attack
^
Should I disable all my other modules and start that way?
Also to be safe, show foundry version, dnd version, midi and dependencies versions
Manage Modules
libwrapper and socketlib?
Let me get those
I would also test by disabling everything but those 3, and use an SRD item to attack and test
Not one you made or imported from anywhere
Midi and dependencies are up to date
I'm currently using a mace from the SRD compendium
I'll disable everything else and start with those 3
I have libwrapper, socketlib, DAE and midi installed and still no auto attack
It said I needed DAE for Midi, so I put it back on
Does anyone know how to rewrite the base formula in Midi QOL - Challenge Mode Armor Display.
I want to change how AC, EC and AR are calculated. I want the below.
EC = 6 + prof mod (if unarmored defense proficient) + max dex allowed from Armor + shield bonus.
AC = 8 + Prof mod (if proficient) + AC bonus (= armors base AC - 10) + Shield bonus.
AR = max(0, AC - 10)
So no lower than 0
Pretty please need help. Been trying to fix this for days. I run a game later today but I still cant get this to work.
here
STUPID
Nah you're learning
I didnt even see that box above the other ones... 😗
Its working now. That's probably all it was
@spice kraken thank you! You're the best
I found some other cool stuff that looks fun in here while searching around. Haha. I guess i can do more stuff
Should I remve Better Rolls for 5e entirely?
Yes
Cool I have so many, one less is great! Thanks again. You need a raise
Is there an eta for .15? o3o
First one the option I had selected, second one the default tooltip
The 1d20 + 2 + 5 + 4 in the first roll is hidden and only the 21 is shown by default. If you click on the 21 it expands to show all the details + adv attribution if that is the case
Am I doing something wrong?
Or do you still need to click the roll on all options to see the formulas and all
V9: How do I use the "Activation Condition" of a Passive Feature to trigger when the actor who has the feature is:
A. Hit with a critical hit,
B. They critically fail a saving throw,
C. They meet a certain HP Threshold
Note these are 3 separate conditional factors. I don't need all 3 to be true.
Click on the 13
Ahh, I think I prefer default, but thanks!
A. workflow.isCritical
B. Array.from(workflow.fumbleSaves).length>0
C. "@actor.attributes.hp.value">55
Where do I input these?
About B. The target?
It's a passive feature on the target when they crit fail.
Give an Activation Cost of something, at least Special so the Activation Condition field is shown in the character sheet.
Do you want all the activation conditions on the same Item (feature)?
You will need to "enable" Activation Conditions in the MidiQOL settings too
This would be preferable than making separate Features.
Use workflow.isCritical || Array.from(workflow.fumbleSaves).length>0 || "@actor.attributes.hp.value">55
That if its a crit hit OR the target fumbled its save OR the attacker has the specific hp threshold
If you want the target in the last one replace actor with target
Let me know if that works 😄
Small edit
Do you know where this setting is? I am struggling to find it.
MidiQOL settings => Workflow Settings => Workflow tab, mid to bottom, Roll Other Formula rwak/mwak (and spells if needed)
Dropdown menu, choose Activation condition
No wonder I couldn't find it. TY
Is there a way to have the HP threshold be a percentage of Max HP?
Let's try some math 😄
"@actor.attributes.hp.value">floor("@actor.attributes.hp.max"*0.5)
I have one more conditional factor: if the damage from a single attack is greater than or equal to half of max HP.
This one?
"@workflow.damageList[0].appliedDamage">=floor("@target.attributes.hp.max"*0.5)
I will give it a go. Thank you!
Hey All, does anyknow know why Kuffeh's macro doesnt work for me?
// Card settings - Target & range: Self
// DAE settings - [1] flags.dnd5e.DamageBonusMacro / Custom / ItemMacro.Searing Smite [2] flags.midi-qol.brandingSmite.level / Override / @item.level
if (!["mwak","rwak"].includes(args[0].item.data.actionType)) return {};
if (args[0].hitTargetUuids.length === 0) return {};
let selected = await MidiQOL.MQfromActorUuid(args[0].actorUuid);
let DC = selected.data.data.attributes.spelldc;
for (let tokenUuid of args[0].hitTargetUuids) {
const target = await fromUuid(tokenUuid);
const targetActor = target.actor;
const effectData = {
label: "Searing Smite",
icon: "icons/skills/melee/strike-sword-steel-yellow.webp",
changes: [
{key: "flags.midi-qol.OverTime", mode: 0, value: `"turn=start,saveAbility=con,saveDC=${DC},damageRoll=1d6,damageType=fire,label=Searing Smite" `, priority: 20},
],
origin: "Searing Smite",
disabled: false,
icon: "icons/skills/melee/strike-sword-steel-yellow.webp",
label: "Searing Smite"
}
await MidiQOL.socket().executeAsGM("createEffects", { actorUuid: targetActor.uuid, effects: [effectData] });
await ChatMessage.create({content: `${target.name} is set on fire and begins to burn!`});
}
Hooks.once("midi-qol.RollComplete", (workflow) => {
console.log("Deleting concentration")
const effect = MidiQOL.getConcentrationEffect(actor);
if (effect) effect.delete();
return true;
})
const spellLevel = actor.data.flags["midi-qol"].brandingSmite.level;
return{damageRoll: `${spellLevel}d6[fire]`, flavor: "Searing Smite"}```
Not 100% sure what you're after when you ask for the 'Item' description, so I'll just post what I'm trying to accomplish.
The passive aura and effects are assigned to a custom feature with an ItemMacro set up.
The feature is applied to one character (the 'caster', who is rendered immune to the effect by the macro).
The aura increases a custom ability score (cua_0) by 1 for any creature who fails a will saving throw (with a DC based on caster level).
Sanity checking, did you do those three pre-macro setup steps Kuffeh commented? Set this macro into an Item Macro on an item, where the item card's details has target and range set to Self, and where it has the two active effects described?
... why does it try to delete concentration o.0
When the aura is first applied to the caster, should it immediately affect others in the radius or only once during their turn?
Cause it puts an effect on the caster (it is a concentration spell) and when you next attack the spell ends
Well, ideally I would want it to work to some extent out-of-combat, so yeah, likely applied on entry into the aura.
In-combat however, once during a creature's turn.
So in combat only during the creature's turn. Alright. I will ping you after a couple of meetings I have 😁
Awesome, thanks!
I’m not at my desk to check, but does anyone know if MIDI does anything automatically with Recharge abilities? Will it auto-roll a d6 at the start of each combat turn to see if the ability refreshes?
Nope.
Thanks for responding.
Modules Required - Check
Card Settings - Check
DAE Settings - Im not sure if I have them right
Screenshots of DAE effect would be good
Where are you suppose to import the Spells from?
Which Spells? In general? For the ones that are included in SRD, you can check the Spells (SRD) compendium in Foundry.
For others not available you will need to create them manually.
Sorry I mean for Kuffeh's spells specifically
Hmm no idea which ones are those 🤷
Are you on v10?
What is not working? Any errors in console?
No, v9. And there's no console errors.
Do you target self in the details page of the Searing Smite item?
Needs to be Self in the 3rd available box
Put in the On Use macro field in the screenshot ItemMacro case sensitive instead of Searing Smite
okay that's applying the effect to the caster. But still no output
Make an attack with the effect active