#MidiQOL
1 messages · Page 56 of 1
🤔
Hey thats pretty clean
Neat! How does one remove them if needed?
Awesome! And this is put into worldscripter?
Sure, that works
Just wanna point out that this is basically Resource Macro™️ lol
Nah, it's a hook on sheet rendering, and injecting some html.
Nothing but some anchors and flags
Well yeah, but its also technically a macro, so it works for the meme lol
oh wait yeah its a world scrpt
right?
can this one work in worldscripter or does it need to go before that?
Probably can
Doesn't need to run on init or setup, so World Scripter is fine
lmao I forget about the recharging
is there an effect duration which expires 'end of players current turn'
@molten solar Search is failing me, what was your trick to make embedded effect macros in other macros readable?
Instead of one long string in the flag.
const myFunction = async function(){
console.log("Steve");
}
await effect.setFlag("effectmacro", "onDelete.script", `(${myFunction.toString()})()`);
Thanks
Oh actually
lol
this is in the "api"
effect.addMacro(type, function)
something like that
well, this would be for inside of an effect created in a macro.
While it's still an object. Gotcha
Scary to think that javascript just lets you turn a function into a string
The closest thing I can find, is EffectMacro 'end of combat turn'?
In which case - what would be the macro to end the effect at the end of the current turn?
effect.delete()
Just make the effect only last 1 turn
or use the special durations from dae
one of them is for end of token's next turn or something like that
Hi, is there a way to automate rolling a table of Wild Magic Surge when a Barbarian (Path of the wild magic) Rages?
it's released lol
Hello I'm getting this Error From Midi that is Preventing me the GM from doing item Rolls from like Weapons and attacks. However my player can do their rolls just fine
What settings do I change?
Council Log
Is that from Better Rolls for 5e?
I don't have better rolls enabled
I would double check your foundry, dnd, and midi versions
make sure none of them are on versions that don't work witch each other
Yea, there is something that is conflicting with midi.
Midi does not work with:
Ready Set Roll
Better Rolls for 5e
Roll Groups
Fast Rolling by Default
Fast Rolls or Quick Rolls
Dice Tooltips
Taragnor's Gm Paranoia
WIRE(Whistler's Item Rolls Extended)
Minimal Roll Enhancements
Retroactive Advantage/Disadvantage
Max Crit
Multiattack 5e
Advanced Spell Effects module is being worked on in v10 atm, so that is a Soon™
so after being annoyed at not being able to fast-forward initiative rolls via the combat-tracker, I spent days looking for a module that would do it with dnd5e 2.1.2 but couldn't find one. So, https://github.com/matjam/quiet-initiative/ is born
personal itch, scratched
I like it.
no guarantees it will play nice with anything else, I'm about to start testing it with my army of modules
but I used libwrapper so it should be ok... I don't think anything else patches the methods I'm patching.
I have multiple players that have advantage on initiative for various reasons, this can probably help with that.
yeah they can just hold alt and click
and it's a per user setting so not everyone has to use it
I will try it out in my next session in a couple of weeks.
let me know how it goes
Will do!
it was bugging the shit out of me lol, had everything working great ... was even ok with the fact character sheets were broken ... but that damn popup
is it possible to mix the conditions in flags.midi-qol.optional.NAME.count ?
for example: i want it to trigger once every turn and consume a resource
Nvm I had Utilize Items Hooks on and apperently your not suppose to have it on
How would I format this activation condition ["undead"].includes("@raceOrType") to be anything except fiends or undead?
slap a ! at the front?
Like this?
!["undead", "fiend"].includes("@raceOrType")
no
I feel like all the way at the front
might work, need to check the syntax
oh
your string is wrong too
put a quote at the end of undead and in front of fiend
Hey have happened to This setting in Midi I can't find it anymore
ahh this works, for some reason in my head I thought this would be the same as 'next turn'. Tired brain
I'm on the latest version of Midi and foundry and my players can't use Item macros anymore but I can
so I went looking for this setting and it's not their anymore
That's why I turned on Utilize items hooks assuming it was for on call macro and turning this on did fix the issue but it gave me the error I posted before
Keep that setting on and make sure the one in the Item Macros module is off.
Also what versions are your Foundry, Midi, and 5e?
Foundry V10 build 291 and DnD 2.1.2 and the Midi Version is 10.0.25 while the Item macro is 1.8.0 and Advanced macro is 1.19.3. These are the relevant settings for Midi and Item Macros
Hello all. [D&D5e/SW5e] I'm hoping someone here can point me in the right direction. I'm trying to put activation conditions in place for an attack, rolling 'other damage' based on target size. I've got it rolling the other damage when the activation condition evaluates to true, and I see in the Midi docs the example of ["fiend", "undead"].includes(raceOrType), but I don't know what values I can use in place of raceOrType, specifically one that might return the size of the target. Does anyone know how I can get ahold of that? Alignment would be useful too, if there's a reference of the possible values there that would be great.
Select a token on the scene.
Open console with F12.
Type _token.actor.getRollData().
Check what this returns.
All these are available data to check against activation conditions.
You can find size and alignment in the traits object.
Except for the above, there are much more available through the MidiQOL workflow data.
Hiya... did you ever get around to this? Mr Primate's Favored Foe isn't working for me for some reason 🤔 I did notice in your link it's weapon attacks only... which is incorrect btw (I'll be using it with Guiding Bolt!)
(playing a Ranger / Stars Druid)
Also need to make sure I can activate after hit (will probably only use it when I crit)
Does anyone know how to actually modify temphp with dae? I'm trying to use the example in the gitlab docs but can't seem to get it to work
This is the current DAE setup, I've tried some variations on the target field string as well
Totally forgot 😁
Will take a look tomorrow.
DM me your MidiQOL settings to try to make it work correctly after the attack takes place.
I think I have shared something that checks whether the last attack was a crit or not and correctly rolls what's needed.
But I think it was for divine smite and something wasn't working always 🤔🤷♂️
If you are on v10 change for starters the data to system
I always forget how to correctly write this up and end up checking the docs
Yeah that's one of the variations I've tried
Also gone with quotes and no quotes
Maybe macro.updateActor | Custom | @actorUuid number "+10" system.attributes.hp.temp
Ah damn yeah missing the type is probably it
My eyes skimmed straight over
Yep there we go, thanks bugbear
hey thanks again for this, got it working exactly how I wanted.... here's the Effect Macro I'm using btw if anyone is curious – random hue but consistent saturation and luminosity (not too overpowering, just a subtle color)
let h = Math.floor(Math.random() * 361);
let s = 100;
let l = 75;
const hDecimal = l / 100;
const a = (s * Math.min(hDecimal, 1 - hDecimal)) / 100;
const f = n => {
const k = (n + h / 30) % 12;
const color = hDecimal - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
// Convert to Hex and prefix with "0" if required
return Math.round(255 * color)
.toString(16)
.padStart(2, "0");
};
let randomColor = `#${f(0)}${f(8)}${f(4)}`;
let lightColorEntry = {key: "ATL.light.color", value: randomColor, mode: 5, priority: 20};
effect.update({changes:[...effect.changes, lightColorEntry]});
Okay I got a potential solution for my trouble. if a GM user is not connected does the do Item Macros not work?
The Item Macro module does not require a GM user to be active. It does not socket the execution to a different client.
Hello! I'm trying to change the effect that the "flanking" bonus is giving, and when searching through history, I see that Dfred's CE should have a premade flanking macro that I can change, but I'm not seeing it from my end
IIRC midi just uses it as data storage, it's workflow will 100% need a GM client to complete it's workflow. Applying damage and so on.
I made a DAE effect for Bladesinging in 5e and it... doesn't work. Could someone point out something obvious I might've done wrong?
When I roll, I get the "Bonus Action" effect just fine. But not Bladesinging. If I toggle any of those "apply to actor if..." switches, it applies. Runs its 60 second course. And then I can never get it to come back automatically.
Turn the top two off
The first is for always on passive effects from equipment
The second only applies if you’re targeting someone else
No dice. Still doesn't work on roll.
Gimme a sec I’ll see what I usually use
Actually turn them all off
And make sure the third target box is Self in item details
That should do it… if it’s not something else must be at play
Can you screenshot the item details tab?
What is Quick Roll? Midi isn’t compatible with other roller modules
Beats me. Lemme find it and disable it
Yeah. Damn. It's Ready Set Roll.
Ok, one sec.
Ok, that worked.
Thanks @coarse mesa
Someone should pin one of these messages for reference
Hopefully someone finds this useful, just made a macro that will have the targets roll either a dex save or str save depending on what's best for them:
In fact, since they’re adding ‘recommended’ module relationships in v11, they need to add ‘recommended against’
Oh know what, midi should include this info in Module Management+ if it doesn't already.
@coarse mesa Ok, one more thing maybe you know about. The Bladesinging is working for speed and AC. But it also adds Int to Concentration Checks.. But... Is there a way to automate that? Or does Midi even know how to ask for specifically a Concentration check over just a Con saving throw?
Midi knows the difference between con saves and concentration checks (saves).
flags.midi-qol.concentrationSaveBonus
Is the flag you want most likely
Then use the int mod as the bonus
But in chat if they get attacked, I only see:
I thought it would prompt? Maybe I'm thinking of something else.
Yeah
unless you have that turned off
🤷♂️
Check your midi concentration settings
You using a module for saves?
Such as monk's token bar
or let me roll that for you
It's a different midi setting
Otherwise it's just waiting for the player to manually roll a con save
I did just install LMRTFY
check that midi is using it
Sorry, but... how?
Setting, let me find the specific one
whats the @scale command if I have set up a martial die scale in the class structure for Rouge?
I put it in the Other Formula right?
@spice kraken what’s the latest ghostbusters meme? I’m building a case for the inverse of relationship.recommends which is coming to v11… relationship.avoid ?
Well it's already out of date cause there are so damn many roller modules now
But 1 sec
I could post a gallery of these memes, like a timeline, culminating in the current list in #1065764029278212230
Just to show the trajectory 😅
These are all the other ones I have
I’d not seen that Invincible one
It's not entirely fair lol. All of those combined is probably more lightweight (but also different)
Zhell have you been up all night?
I'll never tell
I had a world script added from someone here that made the ammunition work with silvered/magic/adamantine. It broke my live session with this error on every template placed:
Hooks.on("dnd5e.preRollDamage", (item, config) => {
if(args[0].system.consume.type === "ammo" && !!args[0].system.consume.target) {
let type = item.actor?.items?.get(args[0].system.consume.target)
if (!type) return;
if (type.name.toLowerCase().includes("silvered")) foundry.utils.setProperty(item,"system.properties.sil",true)
else if (type.name.toLowerCase().includes("magical")) foundry.utils.setProperty(item,"system.properties.mgc",true)
else if (type.name.toLowerCase().includes("adamantine")) foundry.utils.setProperty(item,"system.properties.ada",true)
}
})
fireballs, cones of cold, turn undead, all failed to work, kept throwing this error and no targets applied
the only other world script that is new is that Active effect one for a recharge ability, I don't think that even touches "args" in it
const DC = args[0].actor.data.abilities.wis.dc; Pretty sure this is wrong, yeet the data, but is it still wrong?
you need to use midi workflow instead of dnd5e. args isn't executed since it has nothing to reference to. Else can check what item is, might be the item which is executed, can grab from there.
hi, a little question. I had, as many, the trait. is not a function error when using the system.traits.dr.all .
@gilded yacht said that it was fixed in 10.0.26, and the issue concerning this problem on gitlab are closed.
But i've done the update to 10.0.26, and i still have the issue .
Do i need to re-open an issue on gitlab ? Or i miss something ?
There was a missed one discovered yesterday inDAE, it's probably the same one you are seeing
i don't see any issue related to this on DAE gitlab .
Should i post it somewhere ?
Posting it on Gitlab won't hurt, just in case it's a different one you've found ^^
How can you always grab the messages before I edit them?
The args[0] in this case has nothing to do with MidiQOL. At first I was using js Hooks.on("dnd5e.preRollDamage", (...args) => { if(args[0].system.consume?.type === "ammo" && !!args[0].system.consume.target) { but I changed it to be more informative js Hooks.on("dnd5e.preRollDamage", (item, config) => { if(item.system.consume?.type === "ammo" && !!item.system.consume.target) { Unfortunately the args[0] for a split second were not changed to item in the 1st line as you can see from your message and you managed to grab it in between 😄
What's the script for this one?
Seems like "has" is not valid - any ideas?
Quick question - does anyone know what setting controls this popup?
Previously this wouldn't come up and would just always roll "normal"
My attacks and spells do not ask this
It is DnD5e related and this is the default way that it will be rolling for the foreseeable future.
To change this, you could try a new module: https://github.com/matjam/quiet-initiative/
Oh its init roll
yeah I just saw that too.
You can change for the time being the entries for
This is related to Spirit Guardians Sample Item failing
trait = trait.concat(phsyicalDamageTypes);
``` to ```js
trait = trait.add(phsyicalDamageTypes);
Thanks - that's annoying! haha - I wonder if Tim will add it to Midi maybe?
Hmm I answered here, but the issue was a different one from a user in the Foundry Gearheads and I mixed them up 😄
So hold your horses on that "fix" 😛
When is this error triggered?
that was my plan 🙂
I have an objet with Reaction that trigger the All resistance ( so i put an effect system.traits.dr.all) for 1 hit .
When a creature hit, that trigger the Reaction (with a RMTFY window), and damage is done, it's appear on the chat (without the resistance ), but are not applied to the target (wich is not normal) and the error apear in the console log.
Are you on dnd5e 2.1.2?
yes all is up to date
Hmmm I do not see the same 🤔
Can you send me you Item?
Yeah ok reproducible.
Yeah... token.actor.system.traits["dr"].value is an Array, whereas token.actor.system.traits["dr"].bypasses is a Set
Now I am confused 🤔
OK it seems that this is a side effect of using system.traits.dr.all
It changes the Set to an Array !
OK found it
const something = /* an array OR a set */
[...something].doStuff();
DAEdnd5e.js:563 js case "system.traits.di.all": case "system.traits.dr.all": case "system.traits.dv.all": case "system.traits.sdi.all": case "system.traits.sdr.all": case "system.traits.sdv.all": const key = change.key.replace(".all", ".value"); setProperty(actor, key, Object.keys(systemConfig.damageResistanceTypes).filter(k => !["healing", "temphp"].includes(k))); It setProperty to an Array
Anyone here know if there is an imbue weapon macro, I gave a player this As a bonus action, you can expend 1 psi point to imbue a weapon you are holding with psionic energy. For 1 minute, once per turn when you deal damage with that weapon, you can deal an extra 1d6 psychic damage.
At higher levels you can expend additional psi points to further enhance the Psionic Weapon; 2 points to enhance it to 2d6 at 5th level, 3 points to enhance it to 3d6 at 11th level, and 4 points to enhance it to 4d6 at 17th level.
How do you implement the psi points selection? Do you have a Dialog going for that?
Also do you Fast Forward rolls with MidiQOL?
it is part of my oldest macro I ever had made and it is really ugly looking before i show it lol
Its turn undead
the error was:
Oh I have worked on that in the past 🤣
wis only shows up in that line so I assume thats the big issue
the issue is not wis, it's what is before it that errors out
I see where this is going
const DC = args[0].actor.data.abilities.wis.dc;
Try with system
Ah probably yes in MidiQOL rollData available content
Psi points is currently just an Item with a number of uses per short rest, but I can add it as a scalable resource in the class
No, stick to an item
its midiqol
If you do not fast Forward the rolls, Babonus is an answer
If you do, will talk MidiQOL macros
they can in midi/dae
not for that reason
oh sorry just getting to my pc
bibbitybobbity uses item limited uses
I was looking at adapting Crymic's Rite Focus macro, so player chooses what weapon to imbue
Do you Fast Forward Rolls in MidiQOL?
Yes
🍃
And sorry I thought I said yes to it
if (aff_target_cr <= destroy_cr) await aff_target.actor.update({"data.attributes.hp.value": 0}); Yeet this data?
replace
const results_html = `<div class="dnd5e chat-card item-card"><header class="card-header flexrow"><img src="${itemD.img}" title="${itemD.name}" width="36" height="36"><h3 class="item-name">${itemD.name}</h3></header><div class="card-content">${itemD.data.description.chat}</div>
<div class="card-buttons"><div class="flexrow 1"><div style="text-align:center;text-transform:capitalize;">Wisdom Saving Throw (DC ${DC})<div class="dice-roll"><div class="dice-result"><div class="dice-formula">${save_dice}</div><h4 class="dice-total">${save_roll.total}</h4></div></div></div></div></div><footer class="card-footer"><span>${itemD.data.level} Level</span><span>V</span><span>${itemD.data.activation.cost} ${itemD.data.activation.type} Action</span><span>${itemD.data.target.value} ${itemD.data.target.type}</span><span>${itemD.data.range.value} ${itemD.data.range.units}</span><span>${itemD.data.duration.value} ${itemD.data.duration.units}</span></footer></div>`;
what about these datas?
replace
@worthy viper I have a warpgate based script for Holy Weapon that sounds similar to what you are describing -- the script is available to supporters -- but regardless, maybe it can give you an idea or two. https://www.youtube.com/watch?v=qgCdZiYRLKA
const level = game.actors.get(args[0].actor._id).getRollData().classes.cleric.levels;
This data is ok right?
Thanks! Been slowly trying to learn how to make macro's for my players but I'm terrible at code lol I can get the logic, but I get a bit lost in the weeds
you'll get there 🙂 plenty of examples and helpful folks round these parts
@violet meadow
And do you also happen to use Babonus?
did you go args[0].actor.abilities.wis.dc or args[0].actor.system.abilities.wis.dc?
data -> system in that script
with that error its system
Remove system
but also these two lines have wis in it too actually:
const save_dice = `1d20 + ${aff_target.actor.system.abilities.wis.save}`
const save_roll = await new Roll(`1d20 + ${aff_target.actor.system.abilities.wis.save}`).evaluate({async:true});
and im sure that you have logged out all variables you are using, because that is the first step of debug, right? 😎 can we see them?
...
hol up, I can't tell now if I had yeeted or not sorry first cup of coffee
No, but I'm reading about it now
These are different. Should be fine as they are
I still get the error with the yeet, testing to see if I should have left system in cause I can't tell if I did in the first one
what variables should I log
All 😄
wherever you go to use them and its erroring out
I forget what a log looks like:
console.log(target)?
logging save_dice and save_roll
you want to log the symbols related to the erroring statement
can't tell which wis is wrong though, the save 2 lines, or the dc line
OK in this case, just put ```js
return console.log(args[0]);
as the 1st line
and go through the return in the console.
args[0].actor.system.abilities.wis.dc should be working
ok, so my original test was with the yeeted system for that one, and my second test was inaccurately the same, so I had never tested with system in that line
it is now working with system there
I am in the middle of something rn, but I will try to make something later with an automatic babonus applied if you do are not in a hurry 😅
Is undead fortitude suppose to fire off destroy undead?
I'm thinking I need to change it to dead status instead of marking hp 0?
I would rule against it.
or I could just click radiant/critical in the simbuls popup
the creature is instantly destroyed
I think its cause of
if (aff_target_cr <= destroy_cr) await aff_target.actor.update({"system.attributes.hp.value": 0});
Undead Fortitude. If damage reduces the zombie to 0 hit points,
Pretty sure undead fortitude also doesn't work against radiant stuff
I'm defeating it with modifying its hp instead of dead status'ing and I don't remember why but I think I made someone change it to this
There are some undead that have this habit of exploding when they die, might be related
yeah thats it
so I'll just ignore the simbuls message
That is definitely it, it was an encounter with husk zombies
Turn Undead + Destroy Undead compatible with death bursts:
Requires:
Midiqol
Dfreds CE
(Must set item to not apply CE though)
#1010273821401555087 message
(Use the image in this link for item target/range guidance)
now you can have the messages one after the other
Thanks! for future searching purposes
I'm not entirely convinced my "templates wouldn't target anything" problem is actually related to the ammunition world script, I think it might actually have to do with my sculpt spells macro that chris helped me make I think cause my player is an evocation wizard and he just didn't like how the flag works
Actor On Use:
if (!token.actor.items.getName("Sculpt Spells") || args[0].item.system.school !== "evo") return;
game.user.updateTokenTargets(args[0].targets.filter(tok=>tok.disposition !== canvas.tokens.get(args[0].tokenId).document.disposition).map(i=>i.id))
is there any reason this spell would fail to target at all?
it was a fireball that failed to get any targets.
since the only main branch is based on tok.disposition, I would start by logging tok
and the retrieved token from the canvas
console.log(args) right?
Nah, not in a hurry at all been using chatgpt to learn how to code a bit more, saves me so much time googling or looking on stackoverflow
no, console.log(tok) inside of your filter condition, or console.log(args[0].targets) if that is too cumbersome
also I can use his character just fine, its him...does the function need like executeasgm or something?
the actor on use is set to
keep in mind that this whole change was cause when he used spells he kept fucking up, and now its still happening so in the back of my head here, I kinda wanna just say this is all user error but I can't see how he could NOT target someone laying down a fireball
If you want mine. Let's you select any equipped weapon and select the rite.
Requires warpgate and effect macros.
His fireball hit the group around the allies and when he casted it, it targeted nothing, when I casted it, I got all the right targets:
the mutate followed by a createEmbedded hurts my soul, Chris 😩
just put that in the mutate data
What is up with that?
You can mutate an effect onto something?
Chris helped me out cause my original problem was that the pretarget shennnigans of the sculpt spell flag was confusing my evocation player, so he made that actor on use to just yeet allies out of a normal placed evocation template
you can create any supported embedded document via mutate 🙂
Good to know
https://github.com/trioderegion/warpgate/wiki/Mutating-Goblin look at the "secondUpdates" object
but last night that same player, when he casted fireball got no targets at all and I saw him place the template right on top, so when it was a dud, I casted it, and it worked exactly how chris had setup the actor on use
so I just genuinely cannot figure out what is going on with this players user experience here
Sure that was me?
May have been Fotoply, it definitely wasn't me
what are the values contained within the targets list? no need to guess, just look at the data -- im going to guess that disposition is not a property of a Token Placeable
or bugbear how can I forget:
Testing now as a player client, but I am unsure what could be screwign up for the player, I think I will need to watch his screen while he casts
token.document.disposition is correct
that actor on use works perfectly for me as the DM
can you think of maybe a permissions issue?
Moto, please, the only logical step in that macro is comparing two strings
so, odds are, the strings are not what you expect
what happens if they have a target when they cast the spell?
the problem is I can't see the issue, it works perfectly fine for me, its on their end where the problem is
I got it! its not a macro issue!
DF manual rolls
it unsets the targets during the prompt
actually it can be two things
either df manual rolls when he manually enters them, or if he has a pretargeted target due to combat booster/monks shit remembering targets, then his fireball will just divert to hit the other target
how do I make it so the template overrides targets
his remembered target is whats throwing him
If he has a remembered target for the bottom left, and fireballs the party, it fireballs the remembered target, I don't have this behavior for the DM
I need to put a disclaimer that these macros are not to be used with more modules than what I use... and I use lots...
DF manual rolls is ok, its this remember target thing I think
how come when a player has a pretarget it does fireball to that instead of the placed template? Is this a client midi setting or something?
I don't have this as the DM
He doesn't have a client setting what is your message here implying I'm not understanding:
gona find all these remember/retarget settings and shut them off
Ok pretty sure I have guessed well at what it is thats causing his bad experience. He had this on in Monk's Little Details, so when he casted his fireball, he nuked the hell out of his previous target. And thats cause apparently target overrides override template targetting?
is there a slasher world macro or anything?
yeah I can replicate this on the DM's screen now, I don't see a way to make templates override previous targets.
Yes. Remind me later that I will be back on my PC 😄
Actually I found this shared but was v9. #macro-polo message
From a quick glance change the 2 entries js game.combat && !tactor.effects.find(i=>i.data.label==="Slasher feat -10ft movement")) to ```js
game.combat && !tactor.effects.find(i=>i.label==="Slasher feat -10ft movement"))
I am using Walled Templates. When casting a spell it will update the targets to the ones in the template.
Might be helpful in your case too
But MidiQOL settings should have been enough. Does it not do it? 🤔
This is what I use, which is a carry over from v9
walled templates is a module right?
Yes
It's a matter of when combat booster or monks little details, whichever you are using, update their targets
its at the start of his turn, he just doesn't realize he has a target and casts
awesome, thank you! I had started modifying your Crusher macro but this works too!
its a client setting I already got him to turn it off now
I just can't believe that midi doesn't have an "untarget" before casting a template spell
or readjust targets at the least
it does something like that if you have the sculplt spells flag, but he doesn't like that feature so /shrug
I am not sure off hand, but I thought it did.
Or at least I use it's untarget all option at turn end
I have that set, I think its the MLD thing throwing him cause i distinctly remember him hitting just 1 target instead of none
and at the time since there were 50 ghouls on the map, I assumed it was one in his circle but now that I think about it, the previous turn he had hit one with a single target spell so I think he just didn't realize he had a target set already
plus I can replicate it now even on the DM screen, even though I had that setting off, I just turned it on and replicated it too
I tried turning on the sculpt spells flag since it targets but it would have the adverse effect of savaing the accidental pretarget lol
If he has trouble still next sunday, I will install walled templates
It probably will be the same
must be a midi built in thing that it assumes that the player knows better and lets the pretargets go
Is this the most current midi-srd release for v10?
@coarse mesa Favored Foe, ItemMacro onUse.
Create a DAE to apply a "Mark" on the target if you want.
It should ask about what the initial weapon was and if it was a crit to get the proper damage type
I had a line that would "Hide NPC names" used on the Dialog. Forgot to change it and it might show the actual name if you GM tends to hide them.
Just delete the ${targetName} from within ```js
const content = `
<p>Did you already attack ${targetName}?</p>
And also change the ```js
if (!["mwak","rwak"].includes(args[0].item.system.actionType)) return {};
I just remembered that I had made this already 😅
Also better change js combatTime = game.time.worldTime + ((game.combat.turn+1)/100000); to ```js
combatTime = ${game.combat.id}-${game.combat.round + game.combat.turn /100}
Updated it now. No more soul hurting. 😉
Where is the mutation description even visible from?
I see it as an option to set, but the shift click on the revert button just shows the name.
It's in the prompt on the targeted user
Awesome, thank you! Will take it for a spin later today
Yeah let me know, as I haven't used it recently.
And now that I have it I will just put it up on the git... Otherwise I ll never do 😄
I’ll grab that edited version then 👌
By the way, if someone is looking for an idea for a "quick" module that would benefit sharing of Midi stuff, this idea is all yours! 😉
Effect export
- Adds a new button to effects, that when clicked copies the effect (as JSON) to the clipboard.
- Adds another new button that imports whatever is in the clipboard on top of the current one.
- Right-click the first button to get a popup, where you get to export it in a "Discord friendly" format or a Warpgate mutate friendly format
Effect exporting has always been something I've wanted.
Hello! I'm trying to change the effect that the "flanking" bonus is giving from advantage to a flat bonus to melee attacks
I wonder if @gilded yacht would consider something like this, to head off a lot of the issues we see in discord on a daily basis (and Moto wouldn’t have to copy/paste the ever-expanding blacklist so often)… #1065764029278212230 message
Is there a way to disable the roll attack and roll damage buttons?
So the player has to roll using the chat card?
Like disable them on the weapon on the sheet?
Should be a setting in midi.
Can they be dragged? Or did I just imagine that?
Never tried tbh
Maybe I’m thinking of PF2E or a module
I just want to export a json of an effect without having to make the effect on linked actor then dig it out of the exported actor.
i do this on the regular:
open document sheet, right click compendium icon to copy UUID.
enter this in console:
(await fromUuid(uuid)).toObject()
as of 2.1.0
That doesn't seem like something that can be copied
Unless I'm missing something in the chrome dev tools
{
"label": "New Effect",
"icon": "icons/svg/aura.svg",
"origin": "Scene.OWR6Kf5fj0YgzsXS.Token.OdFH6Ctzcppmk1tc",
"duration": {
"rounds": 1,
"startTime": 0,
"seconds": null,
"combat": null,
"turns": null,
"startRound": 1,
"startTurn": 0
},
"disabled": false,
"_id": "IrmF6UEXR9uRMON1",
"changes": [],
"tint": null,
"transfer": false,
"flags": {}
}
right click -> copy object
oh
How am I able to change the "Flanking" effect that is applied automatically when a hostile token targets a flanked PC to grant a +2 to melee attack rolls rather than the advantage?
Change the flag to a bonus to attack rolls
There are pins in #dnd5e for the core system attribute keys.
A bonus to melee weapon/spell attacks is one of them.
Gotcha, and will changing the "flanking" effect that the creature has will change it going forward for every character who gets it later?
As long as midi is using that CE, yes.
would I also be changing the "change mode" to "add" and the effect value to 2?
so I had it set up, moved the token away to retarget to lose the flanking bonus, went back into flanking, and it defaulted back to the advantage settings
Edit the flanking convenient effect in it's menu
You'll likely need to copy it first then edit it.
Then edit the custom one.
Alright, where would I go to locate the Convenient Effects menu? The only thing I have close to that in my compendium is DFreds Convenient Effects Macros, unless I shouldn't be lookin in compendium packs
But I will change it soon. Trying some new stuff 😄
Gotcha, thanks for the guidance! I've just gotten into foundry 3 days ago, and trying to get this set up for our upcoming session this week, so i've been floundering around as much as I could
indeed
I wanted to get at least the house rules we use to be automated, (crunchy crits, flanking) and midi qol has been able to solve a majority of them along with DFreds
Crunchy crits?
We're coming from Roll20, and in order to enable crunchy crits there, we had to edit the effect for every attack with a spell roll, which is tedious af
Isn't this just the system setting?
With Midi QOL just globally changing how crits work, our PCs no longer have to worry about editing every new weapon or spell they get, plus NPCs get crunchy crits working for them as well
The default foundry setting didn't have this type of critical damage calculation, midi added it in
I have never, ever heard this refered to as crunchy crits.
Same, but I like the name lol
It's right in the system settings?
same, maybe that will help sell our GM on it
Or is this different?
Midi adds a few more afaik
Which one is this?
This is probably one of the ones dnd5e does
Oh. Yeah that's a core system setting.
Yeah, the "Max Critical Dice (flat number)" one was a calculation type brought in with Midi
No?
I don't know what Midi does but it's right there in the system settings (as well).
Yep. Right there.
Not quite the same
Yeah, the calculation type is different
the great axe with maximize dice
would do 17 damage on a crit, anytime it crits
the great axe with "Max Critical Dice (flat number)" is 17+ 1d12
oh, that's not max + extra dice? I always just assumed it was (we have soggy crits)
Yeah, which is different then rolling and adding a max die value
In... case of Brutal Critical, sure
"Max Critical Dice (flat number)" is (base weapon dice)+(ability modifier)+(max base weapon dice)
Yes
"Critical Damage Maximize Dice" is (max base weapon dice)+(ability modifier)
I'm thinking it might have something to do with rerolls on the base dice being less problematic? idk
Oh good, I'm not insane yet
there's probably some workflow insanity that's avoided by maxing the crit instead of the base dice
So yeah, it is the same, just the wording is awful
Welp, i do not regret my chase for crits leading me to midi lol
for all the reroll features in 5E, do they let you reroll all the dice or just base dice? 🤔
tim would have done it for a reason
All dice, pretty sure
When you say reroll you mean stuff like "reroll all 1's" right? In that case all dice, I have a fighter with a greatsword in my campaign
yeah that kind of thing
He crits (and re-rolls) a LOT
I bet there's some obscure feature that meant Tim was asked to do a crit formula that way
Actually, here's another question https://i.imgur.com/CjOweo7.png
So this is for a player who's making a barb character to join in, I've pulled the effect from MidiQOL Sample Items and renamed it on their character sheet, and while it says it's going to track the duration at 10 rounds, it expires in a real-time minute, even though the character is in combat, and it's still their turn
Is your Times Up and/or Simple Calendar up to date?
I have no modules by that name >.>
what version of SC are you on? there was an upgrade hitch that meant a lot of people didn't get v2
well there are your problems
running now
Where would I have seen that listed as a module required to interact with this?
will find it
Genuinely asking, I don't think I've ever seen that listed, unless it's on the github, hrm
I think you will need Times Up... it's About Time that's been deprecated for SC
here are the notes https://gitlab.com/tposney/times-up
This is on the midi page:
Gotcha, that's just me being in a rush then, thanks!
in v11 these can be 'recommended' modules that get optionally auto-installed!
I thought I saw somewhere that recommended not upgrading to v11, i think on reddit, does that still apply?
yeah don't
it's only in Prototype phase right now, a stable release is a couple months away according to the stream
stable release is still months more before reliable to install even then for end point users.(with high module counts)
I'm heartened by the fact that v11 so far seems low-impact... ripper only had one module out of 40+ to tweak and did it easily
Prototype release is for devs who have a specific reason to use it. You'll have a bad time if you're opting into the prototype release channel and you don't have that specific reason other than "i want to have a bad day"
Is there a way to make an Active Effect from an item be seen as convenient effect without setting it up via the convenient effect menu but via DAE or the Active Effect section of an item?
I'm asking because it's very useful to delete effects via the convenient effect menu, but I saw that it works only with convenient effect's effects and not with normal Active Effects or DAE's
let effect = actor.effects.find(eff => eff.label === name);
await MidiQOL.socket().executeAsGM('removeEffects', {'actorUuid': actor.uuid, 'effects': [effect.id]});```
Remove any effect by name with this
when you say CE menu, you mean the window? not the condition HUD on the token right?
I would highly recommend Visual Active Effects (VAE)... it's much easier to delete effects from there – you don't have to dig around to get at them
https://foundryvtt.com/packages/temp-effects-as-statuses
I use this personally for that
Temporary Effects as Token Statuses, a Module for Foundry Virtual Tabletop
This was a bit buggy toward the end of v9... it's all sweet now?
Been working fine for me
It yells once about a libwrapper incompatibility with CE but it's not actually incompatible
Nice, although VAE kinda makes it redundant. I've been meaning to talk to Zhell about making VAE even better at removing effects (we're doing it a lot considering some aren't expiring properly right now with Times Up)
I find vae to be too cluttered (sorry Zhell)
I have some ideas about making that info more useful (ie making the bits that look like buttons, actual buttons)... but need to type it up as a feature request
I bet with a combat ending worldscript hook a workaround could be made
It's turn stuff just not converting into seconds right?
That's it yeah
The one that appears on the left
A macro is too slow to use it manually, I wanted to use CE because you can remove active effect from multiple tokens with two clicks or so
If you have that kind of knowhow, how about a PR for Tim?
Tim would know better then me
I saw that you can make an active effect be seen as a convenient by setting up a flag called isConvenient = true
I would at most come up with a hacky fix
But that useful only if you're using a macro for it
Additional modules are okayyy but I would prefer avoiding adding them since I already have a lot
I’ve often thought we should be able to dismiss AEs from the combat tracker (like Fantasy Grounds)… but no dev has listened to me, yet
Imo that would be the fastest way for the GM to zap them
IMO it's already really natural to remove conditions via the token hud, removing temp effects that way feels right to me
Yeah unless you’re doing the whole party… but that’s rare
When you're juggling lots of Active Effects it would really be useful to have a tool to remove them from multiple tokens with few clicks
That's what CE does for me but as I said it doesn't work with Active Effects that aren't CE
VAE with more than one selected token! 🤔
VAE ?
Problem is that the token hud doesn't remove custom Active Effects
So if you have an AoE spell that applies an Active Effect it's a pain to remove it from every token
Has anyone posed the question to the current maintainer of TAH? Ah. Hold up. I see. You sll are talking about the Core Token Hud for effects. Disregard me.
Quick and easy with the module I linked
Mhmm that does look convenient, but again idk how many more modules I can download before my PC has a stroke
This one is lightweight 🤏
More modules doesn't always mean more bloat / slowdowns
I'll add it to my favourites so I can keep an eye to it
Midi is thousands of lines of code, this one isn’t even going to register
Alright I'll download it then ty!
Make sure to turn on the "Always Delete" setting in it. You have no need for it disabling effects since you're using midi
Okay thanks
I have a weapon that when it hits targets, it ignores the spell shield. If there is a somewhat easy way to automate this that'd be cool if anyones got an idea, otherwise just gonna advantage remind this thing.
Hmm, theoretically an AE that gives +5 to hit if the target has an effect named shield, might work 🤔
Not sure if target effects are available at the time of bonus to-hit evaluation though I would hope so, as it is needed for other stuff like +X against creature types
my current method is to just put a reminder in to hit popout since I don't remove the buttons a miss can be manually a hit in my setup
babonus could do it
+5 to hit if the target has a condition with 'shield' as statusId
@rancid tide I haven't followed the whole conversation, but for removing effects
Something like this?
Something of the like, I just wanted something that let me remove active effect (not passive ones if possible) from multiple actors
You have the deletion button from DFreds
Just like with CE
So what I did for my personal game.
I got the template for CE removal from DFreds.
Changed it to have the checkboxes unchecked by default and opened up the effects that can be deleted by it.
Yes DFreds CE
How did you do this sorry?
Because CE does what I want but the main problem I had was that it didn't work with non-CE effects
That's the main issue
I should post this in #macro-polo
okay
I have the version that works only on a single actor
if you have vae you kinda don't need tthat macro though
Different usability. VAE's scope doesn't have to do with multiple deletion of effects at once
But what if… VAE did work for multiple tokens. Make it happen Z 🙏
...VAE....Macro?
So much room for VAE to become more visual… let the whole party’s AEs cascade down the side of the screen
(selected tokens obvs)
Anyway, I still maintain the combat tracker should let you delete AEs
Ah one extra click to select the combatant and then move a bit to the left on VAE and delete 😄
This is the last place I expected anyone to actually want to manually delete effects.
make a PR
Well, auto deletion ain’t working right now 😅
It isn't?
Mini Tracker is ❤️
Yeah I asked for that
Make a request Lukas, to right click it and boom goes
Already tried that on Idle… he’s not so keen, something about what happens when there are too many AEs
Nah it will be a mess I agree
I guess they have a lot in PF2E
That’s his system
But yeah that’s how it worked in FG, the GM could skim through and delete conditions super fast
Like, if you had a bunch of restrained combatants and the web disappeared etc
Thankfully we have midi to take care of most things
AEs that start in combat don’t expire after combat
One day I’ll ask Z to put a delete icon on the VAE flyout so you don’t need to scroll to the middle of the screen and confirm
just hit Enter
I think I put in shift-right-click for GM, too
there was a feature request at least, lemme check
yep
That’s great, not that our GM can remember any shortcuts at all. He literally only spends session time in foundry 😑
Enter helps, I didn’t realise that was the default selection
Good morning everyone 😄
Does anyone knows a Item Macro library or item compendium that automates the
Dnd 5e Battle Master Maneuvers into midi qol? Or at least some of them.
I have item macro and DAE installed. As well as other automation modules.
MASIF module has it afaik
I dunno, I don't see that myself
I think that only happens if you only set one of the two types of durations
It's an ongoing issue I think #1010273821401555087 message
Haven't followed it though more than that
thx !
Only ae that stayed on the players in my last session was a dfreds CE applied via midi automation, and it shows as having no source nor duration
switched it to roll on the item for next time
It's traits.dr/dv/di.all and it's a dae bug - fixed in 10.0.17 (just released)
New times up. Should be fixed!?!
I had an epiphany on a feature idea for Item Delete check if you check its issues! Dunno if its a hassle but it fits well with the modules scope I think.
Oof I was looking at DAE's issues as you replied to the dae release 😄
(this is better in midi)
if my lastArg contains this: origin: "Actor.sQyfv3TBTvpw8wgu.Item.AzCWgeQppUOlXUOq", how would I pull out the Actor.sQy... to use as a tokenD variable, please?
basically trying to set let tokenD = canvas.tokens.get(lastArg.origin...); << not sure what this would be?
(think this is better in midi than #macro-polo ... Basically trying to revamp @chrome pike's ray of enfeeblement macro to be used in an Arcane Archer's Enfeebling Arrow arcane shot
const origin = await fromUuid(uuid); const originActor = origin.parent; const originToken = originActor.getActiveTokens()[0]; or something similar, the active tokens being a little shaky
thank yoU! I'll play around with that and see what works.
I've got an Arcane Archer macro that's throwing an undefined rejection after selecting the shot. I'm not sure if I'm looking at a typo in the Macro, or something bigger. (Dnd 2.0.3, MIDI 10.0.24, DAE 10.0.14)
<div class="form-group">${dialog_options.join('')}</div></form>`;
new Dialog({
title: `Arcane Shot [${curtRes} / ${curtMax}]`,
content,
buttons: {
use: {
label: `Use`, callback: async (html) => {
let result = html.find("input[type='radio'][name='arcaneArrow']:checked");
if (result.length === 0) {
reject("No Arcane Shot Selected")
return ui.notifications.warn(`No Arcane Shot Selected, Skipping`);
}
resolve(html.find("input[type='radio'][name='arcaneArrow']:checked")[0].value);
}
},
skip: {
label: "Skip", callback: () => {
resolve(false);
} ```
there is no symbol named reject defined
that is usually used within a promise
remove the reject line and it will probably work
oh, resolve is in there too, that will error as well
also the default: "Skip" will do nothing
There's no Skip button, but there is a skip button
Crazy thing is it was working a couple of days ago, and I can't figure out for the life of me what happened.
unless this isn't the full macro, i can't see how this would have ever run
Not the whole Macro, hang tight
Dangit, what's the secret to posting JS? Tried js but said it's too long
post it as a file
its a bit hard to follow....but im sure there is some small error in how you are creating and handling the dialog.
Fortunately, in v10, we have a better Dialog constructor -- Dialog.prompt that may be easier to use
It's not as simple as just new Promise((resolve, reject) => is it?
replacing the js if (result.length === 0) { reject("No Arcane Shot Selected") return ui.notifications.warn(`No Arcane Shot Selected, Skipping`); ?
thats up near the top of the async function definition
oh....but yea
might just be a matter of adding the second reject parameter
if you get this working, @next basalt, I'd be really interested in this. I've got an arcane archer with Burst and Enfeeble. I've got both arrows working, but could use some help with the other autoomation.
happy to send you the Bursting Arrow i have.
Sure! I had both Burst and Grasp working up until yesterday. They were glorious. I just don't know what I changed, because it's not working on my local testbox or my hosted main game. 😭
Hmmm, I'll have to look into that. Seems like I'm always 3 steps behind the curve 😅
I got an old Item Macro for MCDM's "Rainbow Recurve" spell here
https://github.com/krbz999/zhell-macros/blob/main/dnd5e_spells/rainbow_recurve.js
you'd have to tweak it (obviously), but it has all the pick-a-shot-and-go-pew-pew you need.
getting a lot of errors like this:
Just add the reject in the parenthesis (resolve, reject)
Ohhh there are more messages...
quick question is there a hook for when the player looses concentration?
I want to delete an Item, when the player looses its concentration for the corresponding spell.
I'm using Item Macros
Does concentrating give the item to the player? Because that's trivial with the DAE createItem key – you just drag the item into the value, then the player gets the item while the AE is applied. If they lose their conc and the AE dies, the item goes away
The player casts a spell, the spell creates the item.
If the concentration ends, the item should get removed, too.
in base dnd5e, "loosing concentration" likely means deleting an ActiveEffect, which should call a deleteActiveEffect hook (or similar)
so you can inspect the document being deleted to determine if you need to take further action
while this (naturally) doesnt directly use Midi, maybe it could be useful: https://ko-fi.com/post/Experimental-Warp-Gate-Plugin-L4L66A522
so i can check for that and if the effects name is concentration and the source is the spell, I can then trigger the item deletion function? (sry, I'm new to macros and try to get the Flame Blade spell to work)
that would be one approach, yes, though i would consider what @coarse mesa said, as I have little knowledge of the midi automation workflows
I just realised, u made the Item macro module XD
just a temporary caretaker and long time fan 😅
but i am pretty familiar with it, yea
Yeah we use it for our beast barbarian, they get special attacks when their rage is going (tail, bite etc). When the rage ends, the attacks disappear
It only takes moments to set up
After some more try and error, i think that i now understand it a little bit more.
Just, how would i set this up?
I tryed it like this
https://github.com/kandashi/Macros/blob/master/Spell Macros/2nd Level/Flame Blade.js
but it told me that args[args.length-1].efData (Line 9) is undefined.
DAE is active.
You don't need any macro at all. All you need is an AE and you use the createItem key in it. The value is the id of a sidebar item, you can literally drag the sword from your sidebar into that value field and it will create the correct id. Then when the AE is applied to an actor, they get that sidebar item until the AE is removed.
1 problem with that.
the Damage of that item changes with the spell level.
so i cant use a static item for it :x
Hmm good point... I wonder if the createItem king @vast bane has a solution for that? If it's dynamic you are probably going to need a macro, warpgate most likely
Bugbears call lightning scales the damage as an update on the item in an effect macro
HI! So i am looking for help with DAE and I am coming here cause it may have something to do with Midi-QoL and I am still not completely clear on what Midi-QoL does XD
I am looking to edit a feature to do two things...
The first is it gives a buff to the character that uses the feature of +2 AC while it maintains concentration and Second I want it to deal damage as a reaction, if anything attacks the creature and fails a constitution save.
I am unsure how to do this, as I managed to get it working at the beginning of my attempts at doing this... and then it just stopped working entirely.
Honestly If I am in the wrong spot, let me know
pretty sure the reaction will prompt every attack sadly.
reaction system in midi doesn't read the activation conditions
hmm, i feel like you ended up in the wrong channel? are you looking for #system-development ?
Thats fine, its not actually a reaction its more a part of the feature so if it pops it thats good. I just wanted to help explain it better
I wonder if a world script could somehow make a createitem key on concentration that adds the item to only that player, everyone else no.
if you are going world script route, no need to play games with AE keys
just detect the conc drop and remove items appropriately
I was more so looking for DAE, cause otherwise I could end up with over 30+ world scripts... xD
welll we all use dfreds probably for conc management, and we could put an effect macro on it that filters by name whether the item is created or not
add me, if we have an answer.
For today i have enough with macros XD
what spell/feature are you trying to do, you can probably pull it off with either my scorching ray or bugbears call lightning premades we posted here a while back, or use a warpgate macro
Apologies, selected the wrong channel.
I think I am just going to give up on DAE... it seems to either work or not work for me. I cant figure out an in the middle with it, and it just doesn't seem worth all the hassle as it seems not to be working properly.
Thanks anyway Moto & Honeybadger
What does Dfreds convenient effects clash with (or do similar to) CUB? I know how to use CUB, but was suggested that Midi-QoL uses functions of Dfreds, and so I dont want to crash my whole midi now that I finally got it working XD
Disable enhanced conditions in cub, though I think nowadays theres alternatives for all of cubs stuff for midi users
token mold for hp formula rolling, and anonymous for name hiding
I find the hp formula rolling in cub to mess up warpgate summons so I don't use it
I'm mostly wanting to apply custom statuses like "Poisoned" or "Burned" as well as auto apply "Asleep" if a target is hit by a move... I knew how to do it in CUB
I think you have to create burned in custom in dfreds
the feature in midi that has us all suggesting dfreds over cub, is that midi can autodetect when a CE and an item roll have the same name, and apply the CE if you have it setup to
you can also drag ce's to items on actors too
See I dont know how to add the custom one with Dfreds, but I knew how to do it in CUB
your 3 exampless would require dragging to items, or creating active effect keys manually
its literally the button at the top of dfreds CE's window
you can set their hp formula to <MaxHP>d1 to avoid that
as you can see I made a burning hehe
I didnt know about that...
its weird sometimes I get wounded flags on them though, but I don't with tokenmold its probably a bunch of modules issues but token mold hooks on a different hook than cub does
if you want the custom dfreds CE to be a status marker, you can right click any of the ce's in his window and get a context menu where one of the options toggles them on
beware that you must refresh your page for stutus markers to update
the lil person icon in a circle to the right of bleeding in my image is a notifier that the CE will show up in status markers
you won't get this option unless you have turned off cub, and set dfreds CE to add or replace, I prefer replace to not get duplicates
(in dfreds module settings)
for poisoned and burned if they are set as status markers, you can just use the DAE wrench to add them to items
you only have to drag and drop onto an item if its a non status marker ce
I've not got CUB anymore... I may look into this later again, as i'd need to look into how to deal damage with these effects... and I am beginning to really hate DAE XD
well even a prompt to remind players to do the health modification
what are you trying to do literally with a feature and someone will chime in with something that is already made to do it or similarly do it
advantage reminder module is great if you don't fast forward
what do you mean health modification?
So the "Burned" status i mentioned, makes a character reroll damage twice, and take the lower result, and deals damage equal to the characters proficiency bonus at the beginning of their turn.
I just want to prompt and remind the players to do it.
hmmm, that sounds complex
That can be done with an overtime
probably a macro thing, the damage over time can be done with a midi overtime flag
can overtime take min()?
No need for manual damage application in this channel
I assumed that the math functions wouldn't work in overtime
Any roll formula you can do in a the formula box
oh neat
for overtime keys, you really do have to consult the midi readme, just ctrl F for "overtime" you really can't guess your way through it, also pro tip for all new midi users, Tposney's newest readme is not the "master" its the v10 branch one I believe, so switch the drop down off master when you go to readmes.
Flame Blade
Flame blade is either in midi srd or midi sample items
if I recall its janky though and stays instead of shutting off like a normal warpgate
heres that DAE ghost glitch we were talking about earlier:
the midi srd item, makes an item in the weapons section of the actor:
and it does seem to remove properly, it requires a DM logged in to remove it I think
what is this new semisupersaver flag? I don't see it in the readme
Added flags.midi-qol.semiSuperSaver for items that cause 0/full damage on save/failed save
In changelog
so basically save or suck/cantrip style gotcha
I'm trying to make some homebrew ammunition that does the following:
Sanctified. Weapons with the Sanctified property deal an additional 1d4 radiant damage, or 1d6 radiant damage to undead and fiends hit by them.
How would I achieve this?
I'm guessing activation conditions don't work with ammo?
Also, why does it says 1d4 or 1d6 without specifying the condition for either?
Or is that 1d4 always, and upgraded to 1d6 vs undead and fiends.
Correct
I would pull this off with an advantage reminder since I don't fast forward and it would probably require a warpgate mutation to pull it off
a hook on the damage roll, checking target, swapping die for the in-memory ammo item
on use macro that checks what item is set to the ammo then swap out the damage
held in item._ammo iirc
Also, how would I format a condition to say all creature types except fiends or undead. Say if I wanted to make a desecrated piece of ammo.
Desecrated. Weapons with the Desecrated property deal an additional 1d4 necrotic damage. Any creature hit by a Desecrated weapon, except for fiends or undead, must succeed a DC 10 Constitution saving throw or take an additional 2 points of necrotic damage.
let ammoName = 'Crossbow Bolts - Magic';
if (this.targets.size != 1) return;
if (this.item.system.actionType != 'rwak') return;
let consumedAmmoId = this.item.system.consume.target;
if (consumedAmmoId === '') return;
let consumedAmmo = this.actor.items.get(consumedAmmoId);
if (!consumedAmmo) return;
if (consumedAmmo.name != ammoName) return;
let targetToken = this.targets.first();
let targetActor = targetToken.actor;
let targetType = targetActor.system.details.type?.value;
let validTypes = [
'undead',
'fiend'
];
let damageFormulaBonus = ' + 1d4[radiant]';
if (validTypes.includes(targetType)) damageFormulaBonus = ' + 1d6[radiant]';
let damageFormula = this.damageRoll._formula + damageFormulaBonus;
let damageRoll = await new Roll(damageFormula).roll({async: true});
await this.setDamageRoll(damageRoll);```
@covert mason
Change the name in line 1 to whatever the name the ammo is
Nice! Thank you ❤️
If you have monsters that use characters sheets it'll need a small change to detect those, but from my quick testing it appears to work as described.
Made one quick edit to the above macro
added js if (this.item.system.actionType != 'rwak') return;
To avoid doing checks when it's not a ranged weapon attack
Hi! I've got a few questions regarding Roll Statistics . What does the "Ave" column represent? It's not mentioned in the qol-midi readme.
Probably average
lol
You can ask in #1010273821401555087 to get confirmation
Ohhh
I'm an idiot, hahaha
For some reason I thought we were in #513918036919713802
I was wondering! 25 is too high for average damage from a dagger. Must be the average attack roll.
I've never had great faith nor success in the roll stats modules lol
but, look at the sample size
he only rolled one dagger attack
Maybe the average adjusted hit roll?
no its average is right
you rolled 1 dagger attack, so the average of 1, you must have rolled 23 lol
the player/character rolled a total of 6 attack rolls, and the averages are broken down to type
1 shortbow, 3 moontouched, 1 dagger, 1 firebolt
averages don't really start to get accurate till you have a good size sample of 20+
spoiler, its 10.5 + @mod
If you like this stuff do yourself a favour and check out Encounter Stats... our table loves it
Works great with midi
I tried Encounter Stats but the aggregate stats are all "most 20s" type stuff. I really just need to know how much damage the party's cranking out a round on average.
That might be something @main yarrow could add... he was asking if anyone wanted features recently iirc
I could see some stats based on averages being good for encounter designers and optimizers
Can someone point me in the right direction for an automated Zephyr Strike spell for midi qol?
oh knew that rang a bell <#1010273821401555087 message> that repo I sent you earlier is a handy first stop tho
Might also need this
#1010273821401555087 message
Thank you both!
Hey, it's possible to create an effect who add 1 damage for every counter the same effect has?
For example, a effect has 5 stacks and each stack do 1 additional damage. How can I create a effect for that?
What damage bonus?
Spells, weapon, ranged, melee?
Regardless, you should be able to use + ##stackCount
@gilded yacht small typo on line https://gitlab.com/tposney/midi-qol/-/commit/824b2e624c18ef81a9dc66433cafc2424cbbd199#09a58b5a065f6a7a700b43b3e075cb3bdbcbf242_536_536
It is:
workflow.rollOptins?.rollToggle ,
Should be:
workflow.rollOptions?.rollToggle
That's exactly what I looking for! Thanks a lot!
Hey in the activation condition can I set it to check if the actor rolling has a certain effect on them?
This is so I can automate rolling the other damage formula
workflow.actor.effects.find(eff=>eff.label === "name of the effect")
Thanks man
Hi. I'm trying to modify the flanked effect for Convenient Effects but it doesn't seem to be working. I want to add +2 melee attack to anything hitting the flanked creature but the only relevant option I can find looks like it would apply to the attacker if the attacker had the bonus. Either way, the following config doesn't seem to apply +2 to either the attacker or target. What am I doing wrong?
That seems like it would grant +2 to hit to anyone attacking someone with that AE active. So yeah you want that AE going on the target. No dice?
I don’t use flanking rules but it may also depend on your midi setup, there are options for automating flanking in the settings
Babonus could do it
Use the system attack bonus
Not a midi flag
Iirc the effect is applied to the person doing the flanking so just give them a bonus to hit instead of advantage
I’d prefer to make the target flanked as I’m ruling that whoever attacks a flanked creature gets +2
I've checked this and it doesn't work either. I've noticed that when I add the flanked status to the target, autorolling damage and checking for successful hits stops working. If I apply the dodge status, that still works and prompts the user to roll with disadvantage.
Howdy, using Convenient Effects and automation from Midi - I was wondering if there is a flag I could use to apply a condition immunity to a target? I am tying to create an effect which gives a creature 12 seconds of immunity to being stunned yet I can only find flags to apply status effects, not grant immunity to them. (Tho I may not know what I am looking for as for the longest time I had no clue that to increase healing I had to use heal.damag to increase healing) It may be that this flag (if it exists) is obvious to some but I can't find it ^^'
I feel like if you’re setting it to “flanking” in midi the bonus needs to go on the attacker, as per Chris’ comment. Did you try “CE Flanked”?
Using DAE:
That's the one and now it works how I want it to - Thanks a lot! 😄
Is there a module like midi for 3.5 ?
you probably are not managing dispositions right. It can't be flanked if the same colors are flanking them. Also, always always always lead with a + or - in bonus fields, it can never be bad to do so, but it can cause issues if you don't in alot of cases.
Also theres two settings, flanking, and flanked. Flanked would need the grant bonus midi flag, flanking would need a system bonus flag, and both should work if the above is figured out.
creatures of the same color disposition work together and never against each other, so the flankee needs one color, and the 2 flankers need to be same of the different color.
Ok so I've tried what you said. I'm testing a combat between a friendly PC and a hostile monster, and under effects you can see the yeti is flanked. Opening the details I've got this setting, with the +2.
So I'm manually adding the flanked status from the convenient effects panel but not too bothered about automating that. Just want that +2 to add on
But just getting +3 from Str mod, +2 from proficiency.
Hang on, I'm being dumb aren't I. It is applying...but just not in the roll
Yeah it is. For some reason it wasn't applying effect to the yeti until I started combat but now it is, outside of combat too
Correct, the midi flag adds to the actual roll not as a bonus
Sorry for wasting your time 😛
So because it wasn't registering the yeti at all, I couldn't see the modifier being added
nevermind, thanks for the tips! (might have been the +2 instead of 2 that's done it)
It should automate the flanked condition in midi/dfreds. You just have to be more accurate with your dispositions
avoid neutrals and beware of summons dispositions
Well I've decided for flanked to mean at least 2 characters to be on opposites sides of an enemy, and not in melee range of another enemy
So, I've made it all a bit convoluted
I personally find this method of flanking too op, I prefer to just do advantage since advantage doesn't stack with itself like bonus' do. Breaks bounded accuracy too much in my world, but to each their own.
I'll see how it goes but I can always change it back to adv. I've got an Echo knight, gloomstalker, wild magic sorc and stars druid. I'm not sure how much they're going to be melee flanking stuff
But I can also do it to them
Use Custom with midi flags not Add
Doh - what a dufus I am.
@gilded yacht The new dnd5e system release (2.1.3) makes DAE give this:
Tested in world with only DAE and dependencies active.
Probably due to
https://github.com/foundryvtt/dnd5e/issues/1605 Prepare scale values earlier so that they can be targeted by Active Effects.
I'm getting this error quite a lot today:
[Detected 4 packages: itemcollection, lib-wrapper, midi-qol, dfreds-convenient-effects]```
same with 'value' on number '0.2'
if you disable itemcollection, does it still occur?
Wiii, currently the LMRFY + Midi is for some reason not adding the conbonus of people to saves
I can't reproduce the bug willingly, but I disabled itemcollection, let's see if it still comes up
Looking like this, it should be a 20
MidiQOL and LMRTFY versions?
LMRTFY 3.1.2
Midi 10.0.27
I would create an issue on MidiQOL git, as there was today an update that was touching issues with the newest LMRTFY module version.
I don't use it so I have no idea what and how could go wrong.
Better create the issue with as much info as you can, MidiQOL settings etc for tposney to take a look when he can.
https://gitlab.com/tposney/midi-qol/-/issues
Appreciated, will see what I can figure out to put into one!
Hello, just updated to 5e 2.1.3 and have a slight issue, the Special Duration condition for '1 Attack: Expires on the next Spell/Weapon Attack by the character' does not appear to be working. I wasn't using it pre-update so I don't know if the change effected it, but was wondering if that's a known issue
Hmmm do you auto roll damage?
checking hits etc?
Shouldn't matter though 🤔
Is the Item correctly set?
nope no auto roll on damage, yeah to auto checking hits
the is Damaged Special Duration is still working
What kind of weapon do you use to attack?
Hey, how can I create an AE (or script, I don't know) for an AE of a feature always activate on the start of the turn of the player who has that feature?
Like, a feature that, on the first hit melee of the round, does 1d4 addicional force damage.
optional effect bonuses from MidiQOl
Have tried using both a Quarterstaff and Greataxe
Weapon Types are set correctly on the wep items as Simple Melee and Martial Melee
Thanks, I'll see that!
DM me your MidiQOL settings if you want to try to reproduce
Hi there, quick (maybe dumb question) currently does midi consider if you are proficient with armor to set advantage/disadvantage?
Nope it doesn't AFAIK.
The only thing that it does automatically regarding armor, is disadvantage on Stealth checks for Heavy armor
just to be a little bit more clear, that part of the rule of wearing armor without proficiency:
"If you wear armor that you lack Proficiency with, you have disadvantage on any ability check, saving throw, or Attack roll that involves Strength or Dexterity, and you can’t cast Spells."
oh, nice, I thought I might've broke something messing with my table
soiunds like a good candidate for a worldscript!
Hey, I didn't see an option to use the AE 1 time in a round. There's for a turn, but not for a round
Is this right?
Iirc turn actually means round for optional bonus rolls
I already see, there's nothing there for a round, only for turns. I try using the "count", but it delete the effect. Turn won't help because it's a effect of round, not turn
Enhancement to optional rolls count. "turn" remains unchanged - meaning once per round which is confusing. Added two new options "each-turn", which means the roll can be made each combat tracker turn, and "each-round", which means the bonus can be rolled once per round (the same as the current "turn").
From the changelog, the readme is slightly misleading
"Turn" is "round"?
In only this case
Ohhhhhhhhhhhhhhhh
For backwards compatibly
Start using each-turn each-round instead.
Yep
If you want to be able to use it off the player's turn too, use each-turn and with reaction automation, you can kinda of cap it
@gilded yacht In the newest MIDI changelog you say that
Compatibility change for lmrtfy 3.1.2 (which midi now requires - or later).
I assume that it means that it is required if you use lmrtfy for rolling, if you use a different option (like MTB) then its not
You can use the secondary count flag and set that to item uses
So it can be each-turn and limited by feature uses
yeah its fine 😉
Yeah, I see the possibilities are good!
So, I configure and it works. I just notice that the roll doesn't show on the chat, only the results. Is this normal?
yeah
Okay
Hmm when you say chat?
Not that would be a problem, I only liked to see all the results of the rolls
this
Normally, if I click on the formula, the card would expand and show me the roll of each dice. But with that, it don't show
Like this
Yes, there are
But it show the result
The "4" is, in fact, a 1d10
right, so if you are outputing a message/roll with just constants, the message doesnt have the roll information to render dice values from
I'm not put constants... it's a 1d10...
Something is kinda strange. I can see this
Its an 1d4[cold] but I cannot see the weapons main damage rn
😄
can you show the code that produces the rolls?
With the flags.midi-qol.optional.Name.damage?
Yeah with a flags.midi-qol.optional.NAME.damage.mwak | Override | 1d4[cold]
What is the effect you use?
What is the easiest way to give a rogue an additional sneak attack dice automatically?
The 1d10 is for the weapon I rolled
so...all of those values are constants, so far so good
what "1d10" are you refering to?
OK so we see the same issue
the weapon's normal damage formula
@dull sinew I got to run, can you log an issue in the git for that too?
When I rolled the Damage, this window appears, wich if for the flags.midi-qol.optional.Name.damage. In there it show the 1d10 and the formula, but when I click on the button to include the @prof on the damage roll, it show only the result of the roll, not the roll itself
Right now! Thanks 😄
afaik the optional name macro stuff always fail to show formula
I've had indomitable in my game a while now, midi sample item that uses it, and it never shows the formula in the final card.
I think the formula will show in a whisper I think to the roller?
You might need dae's show inline rolls for that though
Its always looked like that
Midi just takes the old total and adds the bonus formula for the new roll
I could have sworn there was a whisper roll
Nope, I think it was a bug because a guy asked me to log that in git
yeah there are some issues with the optional rolls anyway. I don't remember if that was the case or something changed when the dice rolls were added.
But get it out there and will see 😄
I'd try turning on show inline rolls in dae, I swear I see a whispered roll and I have that setting on
You have a roll, as I show here: #1010273821401555087 message
But the problem is that the roll aren't showing in the chat. I think it's this. Would me great if it shows. Would be great too if there's an option to skip the dialog and just applied the bonus automatically
when a feature is a player choice...you can't skip the prompt if they want to use it
which is funny cause I'm the first to throw out player agency so me defending it is comical to say the least
In this case, isn't a choice. The bonus will applied in every first hit of a round
I would not use optional name macro for that feature then
thats more of a favored foe/divine fury thing
those are handled in macros
though I use advantage reminder for them
there's another option beyond optional?
you could make the optional have 1 charge that refills every turn
but I'd personally, janky it up and make it a feature with a recharge 1
so it has 1 use, and recharges each of their turns
But it wouldn't automatically add the bonus on the first hit, would it?
But with this the player would still have to click on the item and etc
I want something that always roll with the first hit and the player have to do nothing
World Script:
Hooks.on("updateItem", (item, update) => {
if (item.name !== "Tearulai's Wrath") return;
if (!!update?.system?.recharge?.charged) item.actor.effects.find(i=>i.label === "Tearulai's Wrath").update({disabled:false})
if (!update?.system?.recharge?.charged) item.actor.effects.find(i=>i.label === "Tearulai's Wrath").update({disabled:true})
})
if you have simbuls creature aides, and set the item to recharge 1, using this setup, it will always activate the ae on turn start
the problem however, is that my key is advantage reminder, so you'd have to sus out what key you need from midi, likely the optional name macros could actually kinda work in this setup
keep in mind that very important special duration in that image of duration tab
this feature auto smites the first time the creature hits and deals damage
I used an AR cause he has a breath weapon that it shouldn't apply with
Also nobody should google Tearulai unless you want spoilers for a published campaign(though this is homebrew)
I will not do that haha
theres very likely a simpler way to pull all this off but My middle name is janky for a reason
I still think would be an easy option to this haha
I don't fast forward, but I always fin dit hilarious that the optionals get used alot by folks and they dont bat an eye at those prompts while aggressively avoiding the other tow core prompts with fast forward lol
I put my smite in the popouts just cause I don't want a third prompt for divine smite
Like, the idea of count in Optional Bonuses is great! We could have that on the other bonuses too, like system.bonuses.All-Damage
shouldn't the count limit its prompts so once its used once you don't see it anymore?
Yeah
But I don't want any prompt hahaha
Even the first
I just want "yeah, you gain this @smoky smelt on this first hit of the turn, now shut up and take your blessings"
I got that built into my barbarian players rage with a zealot barb
but bugbear made it for me so I dunno how to do it for you
//Midi-QOL, DAE and times-up is the way to go and this is a DamageBonusMacro.
const levels = args[0].rollData.classes?.barbarian?.levels ?? 0;
//console.log(args[0]);
if (!levels) return {};
if (!args[0].item) return {};
const ttoken = args[0].tokenId;
//console.log(ttoken);
const tactor = canvas.tokens.get(args[0].tokenId).actor;
const titem = tactor.items.get(args[0].item._id);
const rollMod = titem.abilityMod;
if (rollMod !== "str") return {};
const bonusRage = levels < 9 ? "2" : (levels < 16 ? "3" : "4");
const bonusDivine = Math.floor(levels/2);
const diceMult = args[0].isCritical ? 2: 1;
if (game.combat) {
let combatTurnActor = game.combat.turn;
let combatTime = game.combat.round;
let CheckTokenId = game.combat.current.tokenId;
//console.log(CheckTokenId);
if (CheckTokenId === ttoken) {
let lastTime = getProperty(tactor.data.flags, "world.divineFuryTime");
if (combatTime === lastTime) {
return {damageRoll: bonusRage, flavor: "Rage Damage"};
}
if (combatTime !== lastTime) {
await tactor.setFlag('world', "divineFuryTime", combatTime)
return {damageRoll: `(${1*diceMult}d6 + ${bonusDivine})[radiant] + ${bonusRage}`, flavor: "Enraged Divine Fury Damage"};
}
}
if (CheckTokenId !== ttoken) {
return {damageRoll: bonusRage, flavor: "Rage Damage"};
}
}
if (!game.combat) {
return {damageRoll: `(${1*diceMult}d6 + ${bonusDivine})[radiant] + ${bonusRage}`, flavor: "Enraged Divine Fury Damage"};
//await unsetProperty(tactor.data.flags, "midi-qol.divineFuryTime");
await tactor.unsetFlag('world','divineFuryTime');
}
I don't even think he made it for me, he just posted it one day and I yoinked it
kkkkkkkkkkkkkkkkkkkk