#MidiQOL
1 messages ยท Page 84 of 1
I could use the neutral, Some Bloke
Odd. Deleted the character, and reimported fully and still getting the error
Could you screenshot the actor's effects?
I should be able to point out the problematic one(s)
I think the only thing this one has is the blade flourishes
Also make sure you don't have an old version of my stuff in your ddb overrides
damn this hp randomizer has same issue as token, cant seem to change the range for the dice rolls
You know what, this might be it
Didn't even think of that
Thanks I'll try that out
Blade flourish has an actor on use macro. If the effect doesn't have function.await chrisPremades that would be the reason
I removed the need to have any world macros
@scarlet gale do you remember if DDB hat a fully fledged arcane hand aka Bigby's whatever?
I seem to be permanently changing the item's DC with this.item.system.save.dc, do I just misunderstand how updating the workflow works?
I thought workflow changes were just for that workflow?
it was too easy wail
At most it's client side
when midi is involved, and the user cannot isolate a module's functions/operations from midi, yea, we basically have to punt here...
Just store the value and change it back after
It does not seem to be client side, the rolls are showing the new DC
Reload?
Clients run their own workflows
the CUB hp rolling is throwing a deprecation error...:
Reload and it'll revert
report it ๐
how does a deprecation v8 somehow still work in v10?>
yeah, thats why its always busy here hehehe
Hasn't been removed yet
oh removed in v10 duh sorry
That's no good. Since I want to intercept the workflow Before Save, how do I restore it? ... Just another On Use Macro? lol
It's pretty realistic the item will be rolled several times during a session so a reload each time is meh
Today this channel feels like black friday lol
Post active effects
Bored at work. I'm guessing I'm not the only one
Right, one big ItemMacro that checks on macroPass it is
I got off 3 hours ago muahahaha
rainy day so they dont let us out, trapped on the desk lol
Done jack s*** for prep today thanks to you all 8)
Anyone here have a setup on .33 or .34 of midi? Could you see if having a passive effect and active effect on something clears them both when the active effect gets removed?
And if you have something that makes an effect on in the macro and has the origin set to the uuid of the item it, does midi remove the passive as well?
Bugbear did you have time to look into the metamagic sample item?
Like a setup like this? I'm a .34, works fine to remove either, although I can't for the life of me get both the passive and active to auto equip/transfer onto the actor, have to apply the active afterwards
Yea
Target self then roll
Then yes, works fine
Any idea how I can give a Magic Resistance effect to the master of an Imp familiar?
Hmm
It's only effective when the two are within 10 feet of each other.
"The imp can serve another creature as a familiar, forming a telepathic bond with its willing master. While the two are bonded, the master can sense what the imp senses as long as they are within 1 mile of each other. While the imp is within 10 feet of its master, the master shares the imp's Magic Resistance trait. At any time and for any reason, the imp can end its service as a familiar, ending the telepathic bond."
Maybe an active aura of magical resistance can be evaluated
not fast forwarding and advantage reminders
Or just a find nearby evaluation actually
Actor ID better
core polymorph changes to another actor entirely
not likely to happen too often ยฏ_(ใ)_/ยฏ
true, question is, what would the evaluation look like
moto or chris, do you know how to fix the sample metamagic: twin spell from midi?
Removing target limits from their spells is my solution
I haven't looked at the sample items
bugbear and badger would be so proud of me lol
I handle this exactly how I handle all target increase upcasts, I remove the integer in targets on all my spells
Problem is, that it always only costs 1 sorcery point no matter what spell i cast and there are spells that I can cast with it like magic missiles which i should not and some like chaos bolt that I cant
I never have a target count in anything nowadays
are you using better rolls/v9?
no im in v10 and only roll thing is dice so nice
I'd handle it manually by removing target counts from all the sorcs spells
alright, hoped its an easy fix
if its an attack roll, in v10 he added seperate rolls for each target option somewhere in midi
yea I found that option already. Will use that then
I am lost. Trying to get an monster attack to apply a 10 ft movement decrease onto the target. thought i can do it with dae but I am not seeing how I can apply this effect to the target
edit ray of frost premade in dfreds ce for pointers
oh wait...that might be my own making...
dae on its own does not do effect transfer, you must have midiqol installed and enabled for that
the first tab of the dae must have no boxes checked, the effect tab of the dae must have a movement speed key and a value of their current movement - 10
probably as a downgrade
ray of frost in dfreds ce is premade and comes with the module, duplicate it and plagerize it
or drag it to the actors ability that does it and rename the ae
ok, have that. also the movement (it is custom -10)
the item that applies this ae, must have its range/target setup properly to apply the ae to the target
(and you must have effect transfer on in midiqol, its in the workflow tab and in a "special" category)
thx will try that
also the other movement keys may not take the same ae drop down/values
some might need an evaluation of something like (@attributes.movement.walk - 10)
guessing at the movement code
It is working, thank you very much.
yo @scarlet gale I'm still actually getting the error on Radiant Soul for Aasimar on the newest version
Sure, let me just try to actually reimport the char first
Complicated edits I have to do after, but I should make sure it's not something else also
Yep, must've actually been a different item then. Sorry for the false alarm
Unrelated, but did anything happen recently that affects postdamagerolls?
Seems like my favored foe and hex broke
My hex or a different one?
( if it was mine I just fixed after some bug reports ๐ )
But if they have onUpdateTarget/onUpdateSource DAE flags, on the latest DAE, they will be broken
Different one, everything is just showing as "undefined" when rolled now
I reverted back to .23
For DAE?
yeah .23 for DAE
What is undefined?
So favored foe scales based on @scale.ranger.favored-foe
That's coming up as undefined. Though I was wrong on Hex, that's just straight not rolling anything
Check the scale value
Yeah it just comes up as 0 for some reason
I think dnd beyond changes the scale values sometimes
compared to the Dnd5e compendium ones
At least I have seen some reports ๐คท
Moto pointed me here (intentionally not invoking his Great And Powerful Name as a summons) regarding custom (physical)weaponProperties and corresponding vulnerabilities in 5e - I just tested it against a MOB with vulnerability to Iron set and a weapon with Iron set and it is not doubling the damage
is there a way to 'register' this change with midi somehow or are the automations for this sort of thing hard-coded?
Did you create a new damageType?
DamageTypes will be picked up if you have resistance/vulnerability/immunity to them
Is there a way to apply an active effect (I assume via active aura) but only to one specific token?
i.e. "If token x is within 10ft of token y, apply effect"
look at bugbears wiki
in the pins pack tactics
Automatically? Active Auras and macros
If you roll a feature yeah, as Moto said
Activation conditions help with that
If it's passive you would need an Aura
aura can probably utilize midi evaluations in the boolean flags yeah?
Haven't tried and a couple more ๐บ s than what would allow me to think now ๐
Hmm... maybe.
it's not really a target or something though.
And yes, it's passive.
oh I have shared an emboldening bond thingy here
Not a new damage type. A property like silvered
yeah but what would that bypass? Its own property? ๐ค
Cause from the screenshot you have Iron as a ~~resistance ~~ vulnerability ticked and then property and bypass is Iron too
If you choose radiant for instance as a resistance, and Iron as a bypass, then a weapon with Iron as property will bypass that. Does this work?
Yeah Active Auras or a world script Hooking on tokenUpdate probably
What is the effect though?
Might be doable with conditionals on a flag
It' a familar. If it is within 10ft of its owner. The owner gets magic resitance.
(advantage to resist spells)
๐
Needs a small update in MidiQOL, hopefully tposney will include it soon
Then you could give advantage based on conditions.
Can't you do a findNearby evaluation?
not on saves
Oh rip
Or do I misremember this?
1. I need to figure out a way to give advantage to resist spells and magical effects in an DAE.
2. I need to then find a way to apply that effect passively to the character, but only if his familiar is within 10ft.
wait a minute ๐ค
It's a boolean flag...
flags.midi-qol.magicResistance.all
I can't find a way to apply an aura on only one person though.
Assuming an evaluation works, it should be on player
Not at PC to actually give it a go
Not quite that
When I'm home later tonight I can test my idea and see if it actually works
Cool, if you get the time.
Same for me. Not at PC
but [something] should be either tokenUuid or targetUuid
-1 is for Hostile creatures
no I mean just targetUuid
will get the findNearby around the target
on a conditional
One of us will get back to you lol
You know you posted an interesting question when the intelligent people starts pondering it.
saves will not evaluate conditions yet
Seems like it will have to be more complicated then
I remember something for concentration checks though and now I am confused ๐ค
here we go
so findNearby is a special conditional
it should be working on saves
Now I need to test some more things when I go back home
macro.createItem magic resistance item that has an effect macro that deletes the item if your name is not Mr. Master
active aura
on effect creation, If origin is owned by Mr. Familiar Master, return. If not then yeet the item
and you do not need an active effect for this, Midiqol detects items named Magic Resistance, the key is for situational resistances
No need for effect macro any more.
You can use macro.createItemMacro
So run a macro after the item is created ๐
I dunno how to use it so I always just do effect macro lol
EM has documentation that help
Does anyone know how to add Prof bonus for a specific tool in the "other formula" section of an item, if possible?
Aka, theives tools- you ONLY get that prof bonus if you have prof in the tool
Is there a reason you don't want to use an actual tool?
Other than that give me a moment to go to my PC
Activation condition of traits.toolProf.value.has("thief")
99% of all my tool checks are handled in MTB cause its always impossible to find how to roll them lol
i wonder if its possible to change this message. what is mtb?
and i think ill use a tool, ive given up with other methods
MTB is a module that lets the DM select a token and it gives you a full list of what you can request of them for rolls
ah, monks token bar- i do have that. my application is very niche unforunately
I have a multiselect so I think the blue ones mean only those specific actors who have them get requested
mine lacks the tool portion- likely a SW5e issue
If any of the Actors selected has Tools it will show the Tools section.
If they don't , the Tools section will be hidden
Ah gotcha. thanks!
(at least for 5e ๐คท )
Anyone have any way to fix piercer and sneak attack?
if i choose to use piercer, there is no prompt for sneak attack
Where did you source your automation?
For Sneak attack, follow these steps <#1010273821401555087 message>
I forgot to explicitly state that the Item should also be named Sneak Attack you change the sample item's effect to be ItemMacro.Sneak Attack.
It is noted in the Item's description, but it can be missed.
I'm trying to use the Favored Foe macro from thatlonelybugbear's github (https://github.com/thatlonelybugbear/FoundryMacros/blob/main/MidiQOL_related/Class Features/Favored Foe.js), but it's giving me this error:
Uncaught (in promise) TypeError: undefined. Cannot read properties of undefined (reading 'ranger')
I'm assuming I'm doing something dumb?
probably because its old and not v10ified and using data references instead of system
or your actor doesn't have "ranger" as a class identifier, very common with importer modules
it says v10 in the description at the top? And I added this to a character that used the SRD ranger that comes with the 5e ruleset
Did you ever get a macro for making all melee weapons have a range of 8 feet?
Diagonal melee attacks would be great to keep working.
I don't know if there's a setting to just disable range checking altogether.
What is that Edit Flags button?
DF flag editor
Am I doing something wrong here? This attack rolled a 19; with the flag, it should have been a critical hit, right?
Is this on the person doing the attack or the person getting hit?
Because you're using the grants flag
That would do it, huh? >.>
Thank you lmao
Switched some things around and flags.dnd5e.spellCriticalThreshold / flags.dnd5e.weaponCriticalThreshold work as intended; I think maybe they weren't initially set to override in the macro I copied.
my dear, is there any way for my player to select the nested effect (DF effects) he wants after rolling a feature? So far I can only select the nested effect if I add it through DF effects, without the option to automatically add it through the midi when I click on the feature.
Not at the moment.
It was mentioned before as something that will get looked at
It is indeed DF Flag Editor like fotoply says, just in case you zipped off before seeing the answer.
heyo guys, can someone help me here with the question: "how do i make a player heal when he deals damage with a weapon?"
Expand a bit, can you give an example scenario?
he has a sword that deals 1d8 slashing damage and 2d6 necrotic damage and he wants to be healed by the amount of necrotic damage he dealt to the enemy
is that possible?
oh and this is for D&D 5E
look at chris's vampiric touch macro
in this discord?
Sources of premade stuff for Midiqol:
Midi Sample Items Compendium(comes with the module)
Midi SRD's compendiums(this is the manual install link)
https://raw.githubusercontent.com/thatlonelybugbear/midi-srd/master/module.json
More Automated Spells Items and Features compendiums
https://foundryvtt.com/packages/more-automated-spells-items-and-feats
Mr.Primates premade macros:
https://github.com/MrPrimate/ddb-importer/tree/main/macros
Chris' Premade macros:
https://github.com/chrisk123999/foundry-macros
Chris' Module form of his macros:
https://foundryvtt.com/packages/chris-premades
Activation condition examples by ThatLonelyBugbear
https://github.com/thatlonelybugbear/FoundryMacros/wiki/MidiQOL-activation-conditions-examples
Anyone happen to know how to roll a tool and then capture the result with midi? The outputs I'm getting when logging, I can't seem to find the actual result anywhere
const necroticDamagePart = args[0].damageDetail.find(d => d.type == "necrotic");
const workflowTarget = new Set([args[0].workflow.token.document])
await MidiQOL.applyTokenDamage(
[
{
damage: necroticDamagePart.damage,
type: "healing"
}
],
necroticDamagePart.damage,
workflowTarget,
null,
null
);```
Try this as a macro run by the sword After Active Effects. Shout out to Chris whose helper function I destroyed to figure out how to do the midi qol workflow proper. >_>
MTB request
isn't there a healing function too?
Worth noting I expect it to act funky, if you add another necrotic damage source on top of it, now I realize
so ban him from ever using any
or her or them
Unless I'm crazy, won't that top part only find the first necrotic damage?
You are not crazy, they are never allowed another source of necrotic damage ever
It's a new rule
lol
๐คทโโ๏ธ I legit just unpacked Chris' Vampiric Touch, the healing part
I've since upgraded mine, the module macro for it takes a few more things into account now
I wonder what the proper way is, do you just hard code the necrotic damage part? I assume midi doesn't push bonusses to the "front" of the array to shuffle the elements around?
I loop over the whole damage detail and count it myself
me too dumb to understand
if (this.hitTargets.size != 1) return;
const necroticDamagePart = args[0].damageDetail[1].damage;
const workflowTarget = new Set([args[0].workflow.token.document])
await MidiQOL.applyTokenDamage(
[
{
damage: necroticDamagePart,
type: "healing"
}
],
necroticDamagePart,
workflowTarget,
null,
null
);```
Make the lifestealing item's second damage formula the necrotic part and this should work forever and ever, like this picture. My original code was looking for any Necrotic damage in all of the damages done by the weapon, which means it would break if you ever used a spell or something that added Necrotic damage.
depending on how it's worded, you might want to include extra sources of necrotic damage
Might not specify that the damage has to be from the weapon
Chris how roll tool with midi and capture result without using another module
like run a macro when a tool is used?
Yeah, I can't find the result in workflow
It do output one to my console with
const ThievesTool = await fromUuid("Actor.WngEtUaYSwXIwNLx.Item.qg7r4WqCCRRBoI7k");
const results = await ThievesTool.use();
console.log(results);```
I was gonna make loot boxes, but need that result
Looks like midi doesn't collect the total from a tool roll
so you'll want to do the core way to roll a tool check
if such a thing even exists
I am a painguin
thanks tho, I think core is just use but that doesn't actually roll the item, will check
So I'm trying to set up Searing Smite using this macro (found earlier in this thread):
// 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"}```
It works - to a point. The Paladin casting the spell gets the effect with the extra damage, which applies correctly when they hit. But then concentration ends immediately, and the OverTime effect that is transferred to the target disappears with it. How can I change this up so that the OverTime effect sticks on the target but the bonus damage effect is deleted correctly from the Paladin?
Obviously I see there's a line about deleting concentration; how would I go about modifying that to deleting specifically the Searing Smite effect but leaving concentration intact for the DOT?
let toolCheck = item.rollToolCheck();
let total = toolCheck.total;```
You'll also need to make your own chat message when you do it this way
Dope, appreciated
i meant, i'm still unable to make it work ๐ฅฒ
What are you trying to do?
I missed the actual context
the player at my table wants his weapon to heal him when he deals damage with the sword
but only a part of the damage (2d6 necrotic damage(
I presumably have just overassumed your installed modules.
yes all of them
Just to confirm, you're using midi right
yeap
btw i love the changing seasons for my eladrin
it's working on the misty step
aaaaaaaaa i'm freaking out
๐ฅณ
and the fey ancestry is working too
everything is so automatic
Can you snap a pic of the item's details and show it?
let chris = {
'checkTrait': function _checkTrait(actor, type, trait) {
return actor.system.traits[type].value.has(trait);
}
'totalDamageType': function _totalDamageType(actor, damageDetail, type) {
let total = 0;
let immune = chris.checkTrait(actor, 'di', type);
if (immune) return 0;
for (let i of damageDetail) {
if (i.type.toLowerCase() === type.toLowerCase()) total += i.damage;
}
let resistant = chris.checkTrait(actor, 'dr', type);
if (resistant) total = math.floor(total / 2);
return total;
},
'applyDamage': async function _applyDamage(tokenList, damageValue, damageType) {
let targets;
if (Array.isArray(tokenList)) {
targets = new Set(tokenList);
} else {
targets = new Set([tokenList]);
}
await MidiQOL.applyTokenDamage(
[
{
damage: damageValue,
type: damageType
}
],
damageValue,
targets,
null,
null
);
}
}
if (this.hitTargets.size != 1) return;
let damage = chris.totalDamageType(this.targets.first().actor, this.damageDetail, 'necrotic');
if (!damage) return;
await chris.applyDamage([this.token], damage, 'healing');```
Untested
But should work
If you're using my module it can be mega condensed
Yep
i'm trying to share a pic
yes i am
if (this.hitTargets.size != 1) return;
let damage = chrisPremades.helpers.totalDamageType(this.targets.first().actor, this.damageDetail, 'necrotic');
if (!damage) return;
await chrisPremades.helpers.applyDamage([this.token], damage, 'healing');```
ta-da
Right, I spot the issue
yea
omg
change the on use part to ItemMacro
๐คฃ
then actually put the macro in the item macro from the title bar button
also, change the timing to be after active effects
you want something like this to run as late as possible
like this?
looks right
geez everything looks so bad in this picture
there is a module to make the macro dialog less bad
but if you just copy and paste it should be fine
*javascript
Does totalDamageType count the actual damage dealt or does it sum the damageDetails for that type?
it totals it taking into account resistances
Hmm, makes me realize how much of a pita coding for actual damage dealt is
Even that one has niche cases that circumvent it, right? Reaction stuff like Fighting Style: Intervention. Pouring through midi to see if it's possible to just straight up snatch the damage that's actually applied, would save a lotta heartache.
if you just want the total
you can just look at the appliedDamage
but in this case I wanted specifically the total necrotic damage dealt
Yeah, I can only think of Vampiric Touch as an example, so of course you'd want that
Undead Fortitude, Vampiric Bite, Proboscis (monster feature), and Vampiric Touch all had a need for this.
Feel free to ping me when you are dealing with any buggy bear stuff ๐
I will take a look in a bit
@crimson mortar Updated. Should be working fine now. https://github.com/thatlonelybugbear/FoundryMacros/blob/main/MidiQOL_related/Class Features/Favored Foe.js
I haven't actually ๐
Did you find a solution?
Good morning all- its me! Again! ๐
Just wondering what would be the best way to handle adding a condition that lasts UNTIL the end of the caster's next turn.
in this example, the target becomes 'shocked' if hit until the end of the casters next turn. I was hoping to automate this
Hi I wrote more automated effects and use this combo all the time did you get it to work?
No, If its too complicated to fix I would just delete the target number limitations and let them do it manually.
Any errors when you use it?
Seems to be working
What was the actual issue, I might be missing something
OK I found your comment
let me check
hey guys I've been bogged down in some settings and think I've missed something crucial. How do I make a condition apply to a target automatically after failing a save? I've got DAE, MIDI and all that jazz I just can't find what I'm looking for
The issue is, that spells like toll the dead should not work. It's a target 1 enemy spell duplicator and it always costs 1 Point even when it should cost the points equal to spell level AND it let's me do magic missile what shouldn't work but not chaos bolt what should work.
Did you activate the "auto roll save" in midi?
Why should Toll the Dead not work?
Remove that. Toll the dead is fine. I were confused about attack and Saving throw spells
Yes I do if that's one of the one's in the Workflow section
But magic missile, scorching Ray. Etc works on my sheet what should not work. But chaos bolt even prepared doesn't show up in the prompt. And a second or third level spell only costs one sorcery point
But the saving throw is automated just the effect istn coming up? Or even the saving throw is not automatic?
As in all my automation works fine for the saving throw process, I just don't know how to make a condition such as prone apply to a target if they fail a save
For example, when my players are hit with this wing attack, they will be prompted for the Dex save and should they fail, they take the damage. What I don't know how to do is make them prone automatically if they fail
OK you need to have the Target details correctly set in the spells. For Twinned spell to pick up the ones to roll, they need to be:
a. Target something other than Self
b. Number of targets MUST be 1
c. must be Prepared
The consumption is an issue. WIll check
I'll check the spells when I'm home. Didn't change anything from the original spells tho.
If I remember correctly that would be just setting the duration on the effect to 1 round and 1 turn
What's the effects tab looking like?
I dont think the original spells are correctly set , if by original you mean the Spells (SRD)
Ah, if this is from the srd compendium, I now see effects are left entirely empty. ๐ @unborn cloud do you use DFred's Convenient Effects or anything else that has effects "prepared" for you?
I have Dfreds yes
Yes, I meant SRD.
Magic missiles is set up strange anyways.
I'll take a look after work
Can I apply CE automatically from scratch?
If you have CE, you can add them directly to items' effects on actors by drag and dropping them. Written explanation was hard so I snagged a quick gif
Doesn't work with nested effects like enlarge/reduce
Is that it? Of course it's that simple haha, thank you Krigs
As for removal after a certain duration, Times Up should do that but it doesn't appear to be working :/
Can you show what effect you've got an issue with for this? It might just be a missing duration field, I'm not sure how well feature duration and effects natively relate, if at all
There is an issue with the parameters passed to the hook to change the resource Consumption.
I will take another look
Thank you for the help!
like a charm! Thank you!
Hello, folks, I'm trying to create a reaction to grant damage resistance to the attack or effect that dealt damage, but for some reason, once adding the DR traits, the token isn't taking any damage at all.
is this limited to MIDI use, or is it CE doing it? Just jumped in here off someone else asking for help but that functionality looks like a lifesaver!
That's all CE, just remember to edit the item already on an actor, not the sidebar, else it'll quietly error in the background and do nothing.
๐
up til now I've been having a invisible (ie no image) effect call up a CE macro to add the CE effects
eg Charm Person effect that lasts for X seconds and adds the Charm condition
Not a bad solve considering :p think macro.CE is for doing its' own effect but also apply something from CE normally so they're linked
yeah its very much adding a middle man when its not nessecary, but was smoother than having to duplicate the conditions in every spell/feature
Are you adding flags.midi-qol.DR by any chance?
system.traits.dr.all
Hmm, that sounds odd
Can you show us the setup/details of how you're applying the DR?
Try this.
Change the Twinned Spell MidiQOL on Use entry to be ItemMacro | ALL
Damn, delete the console.log(args) up top.
Actually delete 4-5 more of the forgotten console.logs
edit 2: Also now it's safe to use Hooks.once, instead of Hooks.on
And it's supposed to effectively halve the received damage from the triggering attack or give resistance to everything for next time?
Yeah, it's supposed to half damage on the triggering attack or source, the stop.
Make it a Reaction.
hmm wiat misread that ๐
Untick the Apply to self when rolled
You have target Self already
Use flags.midi-qol.uncanny-dodge | Override | 1
This is it essentially, no?
Hmm, I updated Midi and DAE and now it's working ๐
Is the Effect supposed to end when the Reaction is completed?
Better use 1 Reaction: Expires blah blah blah if so in the Special Duration
I was using 1 Reaction expiration before but noticed that the effect applied then dropped before damage was dealt.
Strange. Maybe due to specific settings? ๐คท
Who knows, haha. It's working, that's the important part. Thanks!
sorry - no, this is with only Iron checked as a vulnerability - not as a bypass
Did you solve this?
This will respect DamageTypes. Meaning the type of damage in a formula
Not a property of the Item AFAIK
No! At least not yet.
so once more to refresh my memory
magic resistance when the familiar is close?
ok - I guess I misunderstood the rule. I looked it up and eg silver/adamantine can only bypass resistances/immunities there's nothing specifically vulnerable to them
it seems like it could be pretty easily scripted into an item macro though
thank you
I only understand the text above the file ๐ EMLIF
@solid mountain I got you!
ARE YOU READY?
Better Must have one of each Actor on the sidebar and their Tokens on the scene.
On the Master of the Familiar, create a DAE with
key: flags.midi-qol.advantage.ability.save.all,
mode: Custom,
value: ```js
findNearby(null, canvas.tokens.placeables.find(t=>t.actor.id === game.actors.getName("Unique name of the Master Actor").id), 10).some(t=>t.actor.id === game.actor.getName("Unique name of the Familiar Actor").id)
Or hardcode the Actor IDs in the check
It's not RAW probably as it will give all saves advantage, but baby steps
Nope
Unfortunately that will need some changes to MidiQOL
But not that difficult. Let me test it
In the meantime, does it work for you?
for overtime, can we give the player choice of save type? like dex or str save?
Hello again geniuses! I am wondering what would be the best approach to making an interactiable OBJECT on the battlefeild, which disapears after being touched & its effect going off.
Specifically, it is a spell that puts a medkit on the ground
for actionSave=true you can do this ```js
actionSave=true,saveAbility=dex|str,saveDC=100 //change to what needed but you get the point
so instead of making the spell do all that and driving myself insane, i just want to make the item that the palyer can drag over
Drop an Item with ItemPiles and then make it execute a macro MidiQOL.trapWorkflow() when interacted with.
No idea how ItemPiles API works though, so you will need to ask around in #dnd5e or #macro-polo for that part
๐งโ๐ณ ๐ Its a great start, thanks!!
perfect thanks\
Do i need to delete the (text) behind the logs too?
You don't have to, try it as is
otherwise, by deleting I mean get rid of the whole line console.log(args) etcv
it calculates the cost correctly but doesnt roll the attacks anymore
Do you have Targets selected?
any errors?
success ๐
now what my changes might break... 
@violet meadow Hey bud, sorry to bother you. Yesterday you wrote me a small macro snippet to heal the amount dealt to any nearby allies within 30 feet. The code is below, but I can't seem to get it working today. I thought I saw Midi updated today so maybe that did something but if you had a sec to see whats up that would be cool.
const targets = MidiQOL.findNearby(1, args[0].actorUuid, 30, {includeIncapacitated:true})
if (!targets.length) return ui.notifications.info("No allies in range to heal");
const damage = args[0].damageList[0].totalDamage;
await MidiQOL.applyTokenDamage([{damage, type:"healing"}],damage, new Set(targets), {},{})```
I tried adding vulnerability to piercing and piercing damage is not doubling. Is this supposed to work automatically in midi or is that not (yet) a feature?
What was a success? ๐
Cause as you said, for me it only works with all saves ๐
Or did you actually change DAE? ๐
Changes in MidiQOL. You can see them here: https://gitlab.com/thatlonelybugbear/midi-qol/-/merge_requests/1/diffs#7e0057499ef66a58083dea10bf6fe2756e03c138
If you feel confident make the changes locally and test them ๐
You need some sort of auto damage application in MidiQOL settings
Any errors?
utils.js:2173 Uncaught (in promise) Error: undefined. find nearby token is not of type token or the token uuid is invalid
[Detected 1 package: midi-qol]
at Object.findNearby (utils.js:2173:9)
at eval (eval at callMacro (workflow.js:1669:15), <anonymous>:4:27)
at Workflow.eval (eval at callMacro (workflow.js:1669:15), <anonymous>:8:4)
at Workflow.callMacro (workflow.js:1670:14)
at Workflow.callMacros (workflow.js:1557:21)
at Workflow._next (workflow.js:934:18)
at async Workflow.next (workflow.js:262:10)
at async Workflow.next (workflow.js:262:10)
at async Workflow.next (workflow.js:262:10)
at async Workflow.next (workflow.js:262:10)
at async Workflow.next (workflow.js:262:10)
at async Workflow.next (workflow.js:262:10)
Change the js if (args[0].macroPass === "postActiveEffects") { to ```js
if (args[0].macroPass === "preambleComplete") {
First line. args[0].tokenUuid instead of args[0].actorUuid
Still doesn't heal... its weird because this worked yesterday
const targets = MidiQOL.findNearby(1, args[0].tokenUuid, 30, {includeIncapacitated:true})
if (!targets.length) return ui.notifications.info("No allies in range to heal");
const damage = args[0].damageList[0].totalDamage;
await MidiQOL.applyTokenDamage([{damage, type:"healing"}],damage, new Set(targets), {},{})```
I do have auto apply damage to target set, or did you mean something else?
looks like it should be applying
Also I hope you changed to this
So it damages correctly but, doesn't apply resistances?
vulnerability
does it apply resistance correctly?
no
works for me
Try another type
like Fire
Are you on latest MidiQOL and dnd5e version?
I'm not on latest
Check for errors in console
still on .33
Ah it should be fine
no errors in console
wait
the console shows it properly
it is applying
I'm just a moron
the item card shows the full damage
but the damagecard shows the reduction
How can I delete 30 messages in discord all at once? ๐
sorry to bug
hahaha no worries
any new error now?
Is this the one you are using?```js
if(!args[0].damageList[0]?.totalDamage) return ui.notifications.info("You didn't damage anyone");
const targets = MidiQOL.findNearby(1, args[0].tokenUuid, 30, {includeIncapacitated:true})
if (!targets.length) return ui.notifications.info("No allies in range to heal");
const damage = args[0].damageList[0].totalDamage;
await MidiQOL.applyTokenDamage([{damage, type:"healing"}],damage, new Set(targets), null,new Set(),{})
@tepid dock the one you shared before was not the latest version from yesterday.
Grab the one from above
ahh turds... ok one sec
Got to run though! Buggy bear out ๐
It worked Thanks!
I asked this already in #modules, but they redirected me here.
How can i make this work? I'm using DAE and Active Auras to create the Paladin's Aura of Sentinel feature, which adds a bonus to initiative in a 10ft aura, but when I use this, nothing happens.
don't know why it has to be all but that worked
Well it said so in the message before the macro I shared ๐
Take a look at the DAE readme for how to affect initiative
now that I have sorted out my eyesight issue and clarified damage types vs weapon properties... there is still something wrong with my new 'iron' property:
The Iron Dagger has the Iron property and the Silver Dagger has ...wait for it... the Silvered property
The MOB is resistant to non-magical physical damage and both Iron and Silver are checked as overriding that.
Only the silver works
does midi need more configuration for this?
my DND5E config:
sortObj = obj => Object.keys(obj).sort().reduce((res, key) => (res[key] = obj[key], res), {});
function addIron() {
CONFIG.DND5E.weaponProperties.irn = "Iron";
CONFIG.DND5E.weaponProperties = sortObj(CONFIG.DND5E.weaponProperties);
CONFIG.DND5E.physicalWeaponProperties.irn = "Iron";
CONFIG.DND5E.physicalWeaponProperties = sortObj(CONFIG.DND5E.physicalWeaponProperties);
CONFIG.DND5E.damageResistanceTypes.iron = "Iron";
CONFIG.DND5E.damageResistanceTypes = sortObj(CONFIG.DND5E.damageResistanceTypes);
}
Hooks.once("setup", () => addIron());
I'll be removing the damage resistance type setting I think, but that shouldn't be hurting anything as it's not set anyway
is there a way to automate spiritual weapon? make it so you can see the weapon, have the player move it, and be able to use it every round from one casting?
the one from the MidiQOL Sample Items compendium works well for me - it does require some setup
if you have jb2a, theres a compendium of actors that has 20 spiritual weapons, drag it out, change its creature type to "NoTarget" in custom. Then save it somewhere in the sidebar and don't delete it. Then give the player who can cast it the spell in the midi sample items
thank you. i have those things
Can i make an item that scales healing with # of charges used? (like a wand)
sorta, you can make all versions of the upcast and attach them to an item with items with spells module
hmmm- sad it has to be janky.
looks pretty to me
It'd be nice if we had a sheet that allowed for collapsing categories but /shrug
How do you change the creature type like that?
nevermind - found it
the reason for that is that midi will never let it be affected by aoe's
nor manual targetting
Ladle... nice
the peace cleric is a chef
Hey not sure where to go to make the spiritual weapon untargetable. i don't see where the custom is
I have a pact of the blade warlock who uses a scythe (reflavored glaive) (I know how you love warlocks, moto) but seeing the Spiritual Weapon Scythe... I now somehow have to find a way to get Spiritual Weapon... maybe multiclass ๐
did you accidentally make it a player character? its ok if you did, just manually write in the race field NoTarget
players creature type is just the race field you can manually write it in
NoTarget
pretty sure theres no real difference ultimately between which sheet you use but I think a player sheet has more data fields
personally I'd have just used the jb2a actors, they are sittin there ripe for the takin
Hey yall, got a bit of a weird one. I've got a wild shape barb and I was able to get macros working that both sets and checks the chars rage status and a macro from Crymic that automates wild shape. As part of the rage macro I'm using a convenient effect called 'Rage checking' to remove their rage status if they aren't damaged or don't attack, the effect is removed if they are damaged or attack. The problem I'm running into, is that their wild shape form will revert back to their normal character when the rage checking ce is removed. Any thoughts on what I might look for to fix that?
too little context to diagnose.
I was unaware of any way to automate the attack/isattacked rage rule
Gotcha, what else do you need?
The Rage checking CE uses Special durations of '1 Attack: Expires on the next Spell/Weapon Attack by the character' and 'is Damaged: Expires if the character is damaged'. That works in combination with the Rage CE which uses Effect Macros 'On Effect Creation', 'On Effect Deletion', and 'On Combat Turn Starting' to check whether the Rage checking CE is applied to the actor
ok, now explain how exactly your barbarian is wildshaping
Sure, I'm using the Crymic Wild Shape macro. I haven't changed anything on that macro, and it's a little out of my depth how everything works on it, but it's midi based
but how does a barbarian wildshape, is it a druid/barbarian?
my guess is that one of your CE's has an ATL key
and the answer to your question will utlimately be, remove that key
one of the barbarians active effects that is turning on or turning off has an ATL key that switches the token back to its defaults, remove said key
or change the shape changing macro to use an ATL.texture.src key
Thanks, that was my initial thought, but the Rage checking ce that is being removed doesn't have an atl key
show us the active effect tab of the barbarian/druid?
also TVA has this issue if you have tokenmold installed I think but thats grasping at straws
does crymics macro utilize ATL in the macro?
also for the sake of sanity, show us the effect tab of the 2 CE's
sure thing
do these CE's apply manually or after midi detects a same named item rolling in chat?
If the latter, give us the following version numbers:
dnd5e
foundry vtt
dfreds CE
DAE
Midiqol
socketlib
libwrapper
I see an ATL key...
which is wrong btw
ah, yeah the rage ce has atl
rage checking does not
which is the one being modified
https://github.com/MaxPat931/Macros/blob/main/QuickReference.md
ATL.img has changed to ATL.texture.src in v10
the apply active effect button in chat is very alarming
you either are crossing the streams, or you have midi effect transfer off
I've been wondering about that. The Apply Active Effects button does show up for a number of items
even though it applies automatically
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
Concentration conflicts:
Concentration Notifier Module
Combat Utility Belt Concentrator
The following modules have template settings that step on midi:
Spell Template Manager
Advanced Spell Effects module is in beta in v10 and often the culprit of things...
Midi requires Item Macro to have its "Character sheet hooks" feature set to unchecked in order for on use macros to work right.
When editing owned items(items on actors) active effects beware of duplicating active effects that interfere. Always check the actors effect tab for rogue ae's.
If you are on dnd5e 2.1.x update to 2.1.5 and you can run the newest midi/dae/dfreds ce
Dfreds CE 4.0 requires midi 32+ and dae 22+.
Midi now requires sight to be setup on all monsters or the players will get unseen attacker advantage.
If its just a settings issue it will be here:
However, I believe your problem is ENTIRELY the ATL key
its the wrong key, and if you are modding the actor's appearance in a macro, that ATL key needs to be removed as ATL keys when applied and removed revert the tokens to their defaults
you prolly have leave button on in my circled setting then
or you have effective transferral installed
I do have cub but concentrator is not enabled, no spell template manager, item macro hooks are off.
cool let me check
all modules are on their most recent version as well
wildshape is setup with non/non for its target/range and you do not have require targets on
set it AND rage to target of self, range of self
in the first tabs of both CE's do not have them have any boxes checked
whats really weird is if you are using CE those buttons should not show
alrighty will do, doesn't the Always on require targets mean that is on though?
as they should not have anything on them, you are afterall using CE
you have always set on?
see now you got some weird stuff going on lol
LOL
you are certain you do not have ready set roll, better rolls, or effective transferral installed?
do you have a scriptlet module from kaelad that applies CE's in chat?
disable all v9 modules they are dead if they never updated to v10 unless they are pure content modules like maps, images, sounds, animations
downgrade to dae 23 btw, 24 is broken and tposney is on vacation
ahhh okay good to know
I actually think I might have an idea of what's going on with the chat message
is CE supposed to apply without needing to drag the effect to the effect tab on the item?
ex.^
@dark canopy Is there any chance you could add the link to the dae repository for installing prior versions to your pinned post for midi's same thing? Currently theres an issue with the newest DAE that requires the same advice as your pin.
now that midi has stabilized in 2.1.x, I actually wanna remove that old pin
Midi will auto detect the name of an item and try to apply a ce
That makes a lot of sense... I thought that's how it should function, but didn't have it work so I ended up dragging the ce's too the item effects tab
the community wiki of bugbears is a great place for all this auxiliary information
that was my next stop 8)
can you share me your whole module list in a DM?
I'm going to make a couple of the adjustments you mentioned, remove the item effect and see what happens
np
Something just does not add up, you are certain you have require target ALWAYS?
does the wildshape item that you rolled in chat have none/none?
for range/target
yeah now I definitely got spidey sense going, are you certain my list of conflict modules don't exist in your build?
Wire is "Whistlers something something something" in manage modules
i did not
Lol I hope not! Just sent over the screencaps for all of the modules
Hello. I heard it's possible to scale the summon spirit actor sheet using midi, how would I do that?
are you using midi already?
Just looked at the newest changes for the V11 dev release.. 
Migrated ActiveEffect#label to ActiveEffect#name to standardize with other Document types which provide various methods expecting a name field.
Unless they add a .label that just mirrors the value of name this is gonna break so many activation conditions from Midi stuff ๐
๐ถ whistles in warpgate ๐ถ
Is WG gonna use the new ActorDelta or is it easier to just stick to your existing system?
that is mainly for internal unlinked synthetic actor data
and wont affect warpgate's operations
but possibly opens up the door to recursively embedded mutations
Ah okay, that was my understanding as well, but I only read through the brief on it, not the full PR
Hay, I need some help. I want to add two conditions at once on an actor, but my problem is that DAE is only adding one of the conditions, not both. Can anyone help me with that?
Midi QOL's item "Activation Condition" field uses the following properties
The evaluation of conditions has changed, You do not need to put @ in front of fields, but still can. If the field is a a string then @ fields must be enclosed in quotes, i.e. "@target.details.type.value".includes("dragon").
Specifically midi will populate the expression data with:
casting actor, anything from actor.system (direct via @field, e.g. @digital lagoontributes...),
casting actor, anything from actor.flags (via @fickle arrowags....),
anything from item.data.data (via @item.damage.),
anything from the target.actor.system, via (@target.abilities etc),
anything from the workflow itself (via @workflow.attackRoll etc).
QUESTION Where can i look up/find these field expressions?
P.S. not a code monkey so please excuse incorrect terminology. corrections welcom
Edit that one, you will be surprised what you see
StatusEffect combines all statuseffects to consolidate, Macro.ce is what you want if you don't want them combined
the pins here, the wiki
essentially you need the phrase in the condition to equal true
Thx mate that worked
https://gitlab.com/tposney/midi-qol/-/blob/v10/src/module/Hooks.ts#L506
so yeah - it looks hard-coded:
if (game.system.id === "dnd5e") {
midiFlagTypes[`flags.midi-qol.DR.all`] = "string";
midiFlagTypes[`flags.midi-qol.DR.non-magical`] = "string";
midiFlagTypes[`flags.midi-qol.DR.non-silver`] = "string";
midiFlagTypes[`flags.midi-qol.DR.non-adamant`] = "string";
midiFlagTypes[`flags.midi-qol.DR.non-physical`] = "string";
midiFlagTypes[`flags.midi-qol.DR.final`] = "number";
Object.keys(config.damageResistanceTypes).forEach(dt => {
midiFlagTypes[`flags.midi-qol.DR.${dt}`] = "string";
})
}
Sorry, yes I am
exactly what i needed, Ty so much
How do I cite the macro here?
I wanted to run just a simple table
I tried the macro code itself but it doesn't run
did you make a macro to roll the table?
if so then reference the macros name in the effect value
if you never made the macro, make it
Where do I make it? I did it on the numbered toolbar (forgot the name)
And how do I reference?
It says this when I put the macro reference code
Name worked, but only after I changed the macro's name to a single word. That's probably why it didn't work before
How can you add a spells level to damage rolls? @spellLevel doesn't work, nor does @level
where are you adding it? an item or a macro?
effect, realizing now, this is a DAE question lol
YES! it was ITEM.level tyty
curse
Well I finally did it. I got so annoyed with active auras that I made own aura system in my module.
And it's setup in a way to follow the D&D rules for overlapping spell effects.
I never thought Iโd be happy about how annoying active auras is ๐
My system needs some serious testing however
Next up is the level 7 paladin aura features
Some will be easier than others
I apologize in advance for aura of conquest
That's pretty much going to come down to whether or not macro.ce applied conditions have a useful origin uuid.
Yeah it seems to work now
Anyone have automation for the defensive duelist feat?
So I was trying to use Green Flame Blade as it comes in the DDB Spells folder when importing spells using MrPrimate's importer, yet when I try to use the cantrip I get these midi errors, anyone know what I must do to get this fixed?
Aite so turns out I had to switch a line to say ".stretchTo(target) instead of .reachTowards(target)" yet after that I now get this new set of errors, which may no longer be a midi thing? (At least unlike the last error I see no specific mention of Midi)
'm currently testing out mid-qol to see how complicated it is and whether I want to use it in my games. I've created a test world with a test player (I'm controlling from a different browser) and some test mobs. I've cast ice storm at an orc with the damage totalling 12. The orc succeeds on the save and should take 6 damage. But Midi wants the orc to take 5. Am I missing something? I don't see anything on the Orc that would cause it to take less damage. It's a basic orc and there are no resistances or immunities that I can see which would cause 12 to be rounded down to 5.
Second question: do I need both Times Up and About Time to best support midi-qol? Or just one?
Looks like it's rounding down each damage type on it's own
So 3/2 would be 1, and 9/2 would be 4. 4 + 1 = 5
Indeed. But should it be doing that per RAW?
If so, I've learnt something about 5e rules I didn't know. And that's fine, but I want to be sure the module isn't fudging it.
not sure ยฏ_(ใ)_/ยฏ
As for your time question, this is from the readme:
Do I just want active effects to expire? If yes install times-up.
Do I want effects with a duration in rounds/turns to expire correctly? If yes install times-up.
Do I use special durations like turn start/turn end, or macro repeat macros? If yes install times-up.
Do I want to be able to schedule my own events to occur in the future? If yes install about-time.
For a while if you use calendar-weather you will still need to install about-time.```
There isn't any harm to having both.
You'll get better support for the macros from that module on the DDB importer Discord.
if it was due to resistances, yes ("Damage Resistance: If a creature or an object has resistance to a damage type, damage of that type is halved against it." I.e. you would half each type of damage and apply them seperately)
but this is from a successful save, so I wouldn't think so
a successful save means that all damage taken is halved, so you would think that the whole package is halved as a single unit
I will add, if you have Simple Calendar, you don't need About Time
It's likely doing it this way as a simple way to handle resistances
each damage part is just getting processed on it's own then added at the end
I would imagine you could combine them into the same damage section and it might work
it's one of the limitations of automation (manually you have more control on these cases)
I see nothing relating to resistance or damage reduction on the monster stat block. So it looks like it is being handled incorrectly. How does one go about getting this looked at by the module creator?
make an issue on the gitlab
But Tposney's last update said they would be away for a little bit
So it may take some time
at the end of the day, it's likely never going to amount to more than 1 or 2 damage. You don't often get mixed damage types on the same item.
yeah it's only ever going to be 0.5 damage per type
and at least it's consistent, so applies to PCs as much as it does their foes
Understood but players are pedants ๐
Neither me nor any of my players have ever noticed this
You have a bad copy/paste probably, but also you don't have sequencer enabled ๐
It could be just sequencer is the issue
Pretty sure if it's detecting the sequencer package it's enabled
It's likely the line they edited was messed up in the edit
oh yeah sorry need more coffee, bad file path for animation, probably a patreon animation that they don't have
Something else I've found, but I think it's more likely CE, is that, when the player tries to cast darkness when they try to place the template they get a message saying they lack permission to place ambient light. The effect goes off but no template. Apparently players cannot be granted permission in the config to place ambient light.
I'm unaware of any darkness premade that uses light
I think the DDB one does?
personally I do a darkness animation active aura that places the blindness condition on anyone that steps in it, which is easy cause I soft ban warlocks and never have to worry about devilsight
Wouldn't you just have to blind both the target and source?
Neither can see each other as long as one is in the darkness
I don't fast forward, those niche moments are easily corrected
I just went through 2 floors of drow that all get it as innate and used it a ton, seemed pretty simple to run
At any rate, I'd just do what Moto said. Give it an animation and call it a day
Maybe. I'm at the stage now where I have so many modules installed that it gets hard to track what comes from what. Actually, DDB is what set me down this route of trialling midi
Perfect Vision is really good for darkness.
Hi all, a general question for setting up automation:
Is it viable to make a module for own shared compendiums and test the provided items (from midi-qol sample, chris premade and so on) in a test world, adding these to the own compendium if they are working and then applying these to the characters in the game session world? Or are there any problems I will walk into? Update process would probably be Module Update -> check test World -> optionally update the item --> import from compendium into game world --> update character
I want to test the whole stuff beforehand but would like to do changes/fixes only once...
his premades require his module enabled as its more than just items
yes, that would not be the problem, modules would be enabled too
I don't really see a nead to test update personally
he updates 10 times a day he'll fix your issue pretty quick
the situation is that basically everything has to be checked if it works because of the fast development...
I also need to build some own stuff because of Tashas Cauldron of everything...
So a sandbox dev area is needed anyhow
Tentacle of the Deeps for example is a warlock otherwordly patron feature
I am curious about the non-srd stuff. Without the flavour text and all there should be no copyright issue, but I think this is probably a hot area.
I had to strip out all of the non-srd flavor text for my module. Now I use DDB Importer from Mr Primate and then put my stuff on top of that... chris' setup is best for that, lays on top nice and clean and keeps the imported flavor text with a click of a button. eventually when Chris duplicates all of my modules stuff I will terminate my module and use only his. ๐
No issue if you don't intend to publish your module, if you do, then yeah, follow the example of barebones features from non-SRD in other published modules
If I had an initial rejection because I had rewritten verbiage, would it be worth resubmitting now that I have removed all of that? This is (understandably) a little bit of a murky area... I'd like to have my module published, but that's more of "wow that'd be cool" thing...
absolutely! having a module submission rejected for...really any honest mistake...isn't treated as a strike against you ๐
in fact, taking that feedback graciously, addressing the concerns and resubmitting is exactly what we want to see from our community!
ok, cool - thank you!
happened to me too... i did and it was good.
Btw my mistake was I used DDB importer which embedded at the time (not sure about now) tags with text not seen through the interface. I had to edit that text and tags out of the exported xml .. you should check that before resubmit if you used a base item you did not create from scratch
My MIDIQuoL ins't apllying reduced damage to enemies with resistence. How I fix that?
show us the key you put on your actor
the most common mistake there is people mistake the midi key and the system key for damage resistance
DR is damage reduction, dr is resistance
System and dr are damage resistance
Midi and DR is damage REDUCTION
damage resistance is a boolean, 1 or 0 or true, damage reduction takes the ADD drop down and desires an integer but dae lets you do inline rolls and attributes in a pinch
Hi, @scarlet gale the new aura of protection isn't applying to the paladin who has it. It's applying to her allies within range, however.
check if its showing in the roll only on that pally
it's not showing in the roll of the pally
ok. strange it's only showing in combat.
on the pally, but it shows it every time on allied tokens.
whoops. no, it's working. Strange. It wasn't working, then I put her into combat, and now it's working fine, even out of combat.
uninitialized flags, possibly
if that's the case @scarlet gale , I highly recommend wrapping your flag access such that if a flag is undefined, your helper returns the expected default value. This does mean you need to define your expected defaults...which is also helpful for users when debugging ๐ง
Utils.getFlag(doc, flagName), where you have a lookup object of flagName : flagDotPath
Does anyone know what this is about, I'm using snake attacke but it doesn't work, I've already set the midi to full automatic, I've configured it step by step, but it keeps giving this error, someone help me please
Sequencer was on earlier today and I turned it on and off now just to check; still get the same error. Not sure why it act as if it wasn't on
You still getting this issue? Or has it been figured out?
Due to how my auras work, the token has to be placed onto the canvas or moved once before it'll apply itself to the owned actor.
I pretty much always do optional chaining to get my flags then check for undefined.
It sounds like they just needed to move the token once or place it on the canvas to trigger the aura for themselves.
cool, just checking -- its easy to overlook -- but do consider abstracting your flag access. I recently did this for superheroic 5e and it really made all the difference.
Yea, that's not a bad idea
i can "just" access flags and know its all handled
i can't really share the source...but if you have s5e-core, look into the Util class
I did, but I ended up going with the BAB version instead.
Totally fair
I almost went that route myself with it, but I wanted it to take into account overlapping effects rules
ohhh. yeah, that is a good point
Actually, how does Build a bonus handle overlapping auras with the same identifier?
If at all
no idea. didn't even think about that issue.
Pretty rare to ever have more than a single paladin in the party
unless your players are trolling the DM
And all go paladins or something
Identifiers are no more, it's all ids now. I covered the edge case of multiple NPCs with template auras with the same id (they can overlap properly) and multiple template auras from the same item (applies only once), but multiple regular auras will all apply.
I've set up a server for questions/help with bab and my other modules (though be aware it's a midi-free space, which I am sure comes as a total surprise).
I'm having an issue with midi qol where it's adding a critical hit button on damage rolls. Anyone know what setting is causing this?
Hey all. I was wondering if anyone has tips on how to set up disadvantage to ALL ability checks. Player rolled something on the Madness table and it gave them that debuff for 90 hours.
flags.midi-qol.disadvantage.ability.all | custom | 1
Super again saving the day. So I dont wanna just mooch off stuff so could I ask:
What area on the readme can I learn about the 'custom' and the '1' effect in the lines?
Is 1 just a 'yes', like in a binary sense?
1 for true
Ok cool cool
pretty sure you can also just put true
1st pin here has a link to the midi documentation
For the most part if it's like turn this thing on it's custom | 1
Ye I have the readme open atm I just couldnt find the right area. Awesome.
TY all!
Then if I want to make it ignore the advantage/disadvantage window popup I would put autoRollAttack in the effect area?
ยฏ_(ใ)_/ยฏ, I fast forward rolls
Oh is that just a setting I can tick?
Ah ok. Hm... Maybe I should just leave it in case something gives the player advantage and it needs to be changed to normal.
That is something I talked about with my players though. We personally don't want the popups
Ya my player is new and we are all learning Foundry together so maybe its better for her to see that pop up.
If you set the flag it'll highlight what one it would auto select with fast forwarding
Yea I see that. Very helpful as a reminder
for new players, I personally think that advantage reminder is a great module that works with non fast forward midi really well and can help give your players information about their characters in both the attack and damage popouts.
I'm about to Yeet my computer out the frigging window in a sec, can someone PLEASE help me to sort the auto damage
I've got it working fine on another server, I'm trying to move it to my new oneshot server, literally only got midi-qol and the required lib ones running, doesn't work.
It's showing the damage cards when I hover over in the chat, but it's not actually damaging the enemy even when I try that
Is there a gm online?
Errors in console when you attack?
I mean I'll check again, but this is a fresh server, with literally 4 modules running, where on my main server with 100+ mods its working fine
Export your midi settings from the server it works on and import them onto your other one
see if the issue persists
What's your midi version?
Whatever the latest one is
Double check it?
10.0.34
Update to 10.0.35
Only accidently
It's getting an error checking optional rules
IIRC this bug is fixed in 35
@scarlet gale yo, I know you had mentioned you had all the fighter maneuvers created, but does that also extend to working with the Martial Adept feat?
the development must flow
It's wasn't protected vs having an undefined setting
I need to add some special casing for that
Cool, thanks for everything you're doing
It should technically work if they are already a battle master and you combined the dice pools
I am attempting to automate a feature that that automates the Beguling twist ranger feature using DAE, Midiqol (with saves fast forwarded through monks and DFreds Convinient effects. If the target fails the save, The feature should prompt the source actor to choose either the frightened or charmed condition and then have it automatically applied to the target for 1 minute. Unfortunately, it is prompting even on a succesfull save. Any thoughts?
//Beguiling Twist Macro
// This macro automates the Beguiling Twist ranger feature using DAE and DFreds Convenient Effects.
// It prompts the source actor to choose either the frightened or charmed condition and applies it to the target for 1 minute if they fail the save.
//Prompt source actor for condition choice
new Dialog({
title: "Beguiling Twist",
content: `
<p>Choose a condition to apply:</p>
<div style="display:flex; justify-content:space-around;">
<label><input type="radio" name="condition" value="frightened" checked>Frightened</label>
<label><input type="radio" name="condition" value="charmed">Charmed</label>
</div>
`,
buttons: {
ok: {
label: "Apply",
callback: async (html) => {
// Get selected condition
const condition = html.find('[name="condition"]:checked').val();
// Get target token
const targetTokens = canvas.tokens.controlled;
if (targetTokens.length !== 1) {
ui.notifications.warn("Please select a single target token.");
return;
}
const targetToken = targetTokens[0];
const targetActor = targetToken.actor;
// Roll save
await targetActor.rollAbilitySave("wis", { chatMessage: true });
const saveResult = targetActor.data.data.saves.wis.total;
// Apply condition if save fails
if (saveResult < 8 + targetToken.data.data.bonuses.abilities.wis.save) {
DAE.setFlag(targetToken, 'condition', condition);
await DAE.addCondition(targetToken, condition, 1, {});
ChatMessage.create({ content: `${targetActor.name} failed their save and is now ${condition}.`});
} else {
ChatMessage.create({ content: `${targetActor.name} succeeded their save against Beguiling Twist.`});
}
},
},
cancel: {
label: "Cancel",
},
},
}).render(true);
Your saveResult is doing something weird. Should just be js let roll = await targetActor.rollAbilitySave("wis", { chatMessage: true }); let saveResult = roll.total;
Using midi this can be done a bit differently
Have an item macro that runs post active effects then just check who failed by looking at js this.failedSaves
if it's just one target, you can just do js if (this.failedSaves.size != 1) return; At the top
added the midi return for failed saves, but it triggers on a successful save, not a failed one.
this would require the feature to be handling the save instead of the macro
It is:
and the item macro is executing post active effects?
if failedSaves.size is 1 then the target failed the save
so if it's 0, they passed and shouldn't have an effect right?
Also there is this line:
// Apply condition if save fails
if (saveResult < 8 + targetToken.data.data.bonuses.abilities.wis.save) {
DAE.setFlag(targetToken, 'condition', condition);
await DAE.addCondition(targetToken, condition, 1, {});
ChatMessage.create({ content: `${targetActor.name} failed their save and is now ${condition}.`});
} else {
ChatMessage.create({ content: `${targetActor.name} succeeded their save against Beguiling Twist.`});
prompt should not appear if the target succeeds.
You don't need to be checking the save value anymore except for the first line
if it makes it past the return, they failed the save
It was the timing, changed as you instructed to after active effects, and it is now correct.
Now i just have to get the effect application working
it is not currently.
//Beguiling Twist Macro
// This macro automates the Beguiling Twist ranger feature using DAE and DFreds Convenient Effects.
// It prompts the source actor to choose either the frightened or charmed condition and applies it to the target for 1 minute if they fail the save.
if (this.failedSaves.size != 1) return;
//Prompt source actor for condition choice
new Dialog({
title: "Beguiling Twist",
content: `
<p>Choose a condition to apply:</p>
<div style="display:flex; justify-content:space-around;">
<label><input type="radio" name="condition" value="frightened" checked>Frightened</label>
<label><input type="radio" name="condition" value="charmed">Charmed</label>
</div>
`,
buttons: {
ok: {
label: "Apply",
callback: async (html) => {
// Get selected condition
const condition = html.find('[name="condition"]:checked').val();
// Get target token
const targetTokens = canvas.tokens.controlled;
if (targetTokens.length !== 1) {
ui.notifications.warn("Please select a single target token.");
return;
}
const targetToken = targetTokens[0];
const targetActor = targetToken.actor;
// Apply condition if save fails
if (saveResult < 8 + targetToken.data.data.bonuses.abilities.wis.save) {
DAE.setFlag(targetToken, 'condition', condition);
await DAE.addCondition(targetToken, condition, 1, {});
ChatMessage.create({ content: `${targetActor.name} failed their save and is now ${condition}.`});
} else {
ChatMessage.create({ content: `${targetActor.name} succeeded their save against Beguiling Twist.`});
}
},
},
cancel: {
label: "Cancel",
},
},
}).render(true);
const targetToken = this.targets.first()```
easier to just use the midi targeting information
line 25 yes?
yep
You can remove the length check after that too
midi will enforce target limits if you have it enabled
and set right on the feature
// Get target token
const targetToken = this.targets.first()
const targetToken = targetTokens[0];
const targetActor = targetToken.actor;
seems redundant?
remove the 2nd one
await game.dfreds.effectInterface.addEffect(
{
'effectName': condition ,
'uuid': targetActor.uuid,
'origin': this.item.uuid,
'overlay': false
}
);```
This should apply the chosen condition, note that you may need to have the first letter be uppercase
actually, it being inside a function may change this
may want to define that stuff before the dialogue
it works
its not setting duration though
should be for 1 minute
with a repeat on the saving throw at the end of each of the targets turns
though i could manually handle that last part
oh in that case
you'll need to build the effect in the macro
Didn't realize you needed an overtime too
Also, are you Chris of Chris's Premades?
Yep
Don't suppose anyone has worked on Draconic Strike or Breath of the Dragon for ascendant monk have they?
Cause if so, your saving me the time of sending this to you afterwards ๐
If you're using my module this can be simplified quite a bit lol
well i am!
what feature is it?
and im bad it this.
Ah found it
Beguiling Twist, not SRD if iirc
Fey Wanderer correct?
yup
I did not take into account automating the anything within range succeeds on a save check, seemed a bit overkill for my skill level
and likely a performance issue, though AA is pretty awsome.
This is best done as a manual reaction
That's on them
@lost estuary #package-releases message
you are an absolute boss!
Much cleaner!
Helps that the dialogue stuff is all packed away in another function
indeed!
I am working on automating pass without a trace using a template next, not sure thats the way to go, but hey
doing what i can
If you have active auras it can be done with that pretty easily
Otherwise I'll eventually get to making one that uses my aura system
I'm still just working out the logistics of unlinked actors and my auras at the moment
linked vs linked is a whole other thing!
Hmm. So I'm having a problem when calling two post damage roll macros
Trying to create Draconic strikes by calling post damage roll to apply the type, but he also has savage attacker
Also tried using setDamageRoll and adding the element chosen, but unfortunately it just appends it to the formula which makes sense given what I'm doing
is there a way to change the flavor overall for the roll?
Get the old formula and replace the flavor on each part
Midi runs all macros for the same step of the workflow at the same time
So you will need to take that into account
hey, need some help, how do i
- stop it from prevent attacks made outside a weapons range in combat
- stop it from putting icons on characters when they cast spells
I was actually copying something I think you did in Heart of the Storm or something
if (!selection) selection = 'lightning';
let damageFormula = this.damageRoll._formula + selection;
let damageRoll = await new Roll(damageFormula).roll({async: true});
await this.setDamageRoll(damageRoll);
Is this still doable with this kind of method?
for the flavor?
That one works because I explicitly remove the flavor on the item
and because it doesn't have a mod right?
It's just appending the damage type
it's just straight damage iirc
right now it's appending and ending up something like 1d6[none] + 3[cold] for instance
You may accidentally be using the .formula instead of ._formula
The 2nd one is the original formula while the 1st is the formula with all the flavors added
what I posted above is from mine
basically identical to yours though, since I also kept to just default lightning if none selected
Screenshot the item damage section?
Oh know that
You might just need to rebuild the formula
Can probably do a string replacement
Yeah, considered that as well, was just wondering if there was a better method
Put the flavor back in the roll, use none as the type
really?
but can target something else maybe
Appears to be working?
let damageFormula = this.workflow.damageRoll._formula.replace('none', selection);```
only thing is that the 3 should also be the same type as the original damage right
oh
using the flavor to the left
Yeah this is how I had it set up
So I guess the dropdown only doesn't show up in the formula
As far as I can tell, it's used if there isn't any flavor text included
at least by midi
Yeah savageattacker allows a reroll of one die a turn or something
so both the element choice and the "reroll?" pop up simultaneously
Are you using my module at all by chance?
(I don't have one)
But we can use a system I developed to make the pop-ups wait their turn
yeah just checked, it's not
It's likely ddb or something
yeah either that or one I ripped from bugbear or something
Is your system the queue function?
was wondering what that was for
won't work?
I'll just grab the item name
Oh
Add this at the top before the dialogue:
let queueSetup = await chrisPremades.queue.setup(this.item.uuid, this.item.name, 50);
if (!queueSetup) return;```
Add this at all the way at the end:
```js
chrisPremades.queue.remove(this.item.uuid);```
If you have any returns in between you'll want to make sure it does the queue remove part before returning
say for example:
if (!selection) {
queue.remove(this.item.uuid);
return;
}```
The 50 at the end is the priority FYI.
I've been using this for my stuff:
001-100: Item attack roll and damage modifcation.
101-200: Class & race feature attack roll and damage modifcation.
201-300: On Hit Bonus Damage
301-400: Damage Rewriting
401:500: On Hit Triggers
Wow, that's awesome. Thanks, and will do
You'll likely need to look at the savage attacker and give it the same treatment