#MidiQOL
1 messages · Page 21 of 1
he got stunned and then thankfully Halleth was with them and curb stomped it before the next turn
Definitely, if you can make it feel like it's due to their bad choices and not forced
They rolled sets of stats, and 3 of the 5 players picked the set with a 6, so theres 1 dumpstat int and 2 dumpstat cha's and they are fighting intellect devourers and maurazi or whatever, which drain charisma lol
Intellect Devourers are really high up in the list of potentially deadly foes, which do not make such a bad first impression 😄
All my players dumped Wis. Maybe I'd do "Fey Wisdom Devourers" ✍️
In DotMM they were a huge PITA until we were high enough to cast Greater Restoration... you end up with a coma'd character you'd need to haul back to Waterdeep to get fixed up
instead of working on that smite to smite me bugbear, I'd love that workable skill challenge macro that applies AE's/status effects on success 8)?
Requestor
the next attack after the creature is stunned, they can jump into the body
and thats instant death
Yeah it's nail biting stuff
monk's tokenbar?
yeah
let results;
const attacker = canvas.tokens.get(args[0].tokenId);
const {object: target} = await fromUuid(args[0].hitTargetUuids[0]);
const skilltoberolled = target.actor.data.data.skills.ath.total < target.actor.data.data.skills.acr.total ? "acr" : "ath";
results = await game.MonksTokenBar.requestContestedRoll({
token:attacker,
request: 'skill:itm'
},{
token: target,
request:'skill:ins'
},{
silent:true,
fastForward:false,
flavor: `${attacker.name} tries to get ${target.name}'s attention with a taunt.`,
callback: async () => {
const attackerTotal = results.getFlag("monks-tokenbar", `token${attacker.id}`).total;
const targetTotal = results.getFlag("monks-tokenbar", `token${target.id}`).total;
if (attackerTotal >= targetTotal) {
if(!game.dfreds.effectInterface.hasEffectApplied(`${attacker.name}`, target.actor.uuid)) {
await game.dfreds.effectInterface.addEffect({ effectName: `${attacker.name}`, uuid: target.actor.uuid});
ui.notifications.info(`${attacker.name} successfully taunts ${target.name}`)
}
}
else ui.notifications.info(`${target.name} resists the shove attempt from ${attacker.name}`)
}
});
Wisdom devouring actually seems fitting for the Feywild, imo
it works if the DM fires it, fails if a player does for the effects
The cleric will be fine but he'll get to see all his friends die. Win-win.
If he has Greater Restoration he'll be MVP
and I know it has the wrong emote at the end, but since it fails to fire, the emote doesn't matter 8)
What's this? Oh no, the trees can cast counterspell.
Do you have advanced macros installed?
I never leave home without it with midi srd installed
Try something quickly cause the fibre to my house was destroyed and my main server is off line...
Create a script macro to be run as GM. Throw the macro you attached as is in there.
Then on the Item, create another script ItemMacro (NOT run as GM) ```js
game.macros.getName("name of the other macro").execute(args[0]);
👆 this one will take the place of the Item onUse macro you had before on the item
Does it do it?
(named TestTaunt
let results;
const attacker = canvas.tokens.get(args[0].tokenId);
const {object: target} = await fromUuid(args[0].hitTargetUuids[0]);
const skilltoberolled = target.actor.data.data.skills.ath.total < target.actor.data.data.skills.acr.total ? "acr" : "ath";
results = await game.MonksTokenBar.requestContestedRoll({
token:attacker,
request: 'skill:itm'
},{
token: target,
request:'skill:ins'
},{
silent:true,
fastForward:false,
flavor: `${attacker.name} tries to get ${target.name}'s attention with a taunt.`,
callback: async () => {
const attackerTotal = results.getFlag("monks-tokenbar", `token${attacker.id}`).total;
const targetTotal = results.getFlag("monks-tokenbar", `token${target.id}`).total;
if (attackerTotal >= targetTotal) {
if(!game.dfreds.effectInterface.hasEffectApplied(`${attacker.name}`, target.actor.uuid)) {
await game.dfreds.effectInterface.addEffect({ effectName: `${attacker.name}`, uuid: target.actor.uuid});
ui.notifications.info(`${attacker.name} successfully taunts ${target.name}`)
}
}
else ui.notifications.info(`${target.name} resists the shove attempt from ${attacker.name}`)
}
});
missing a letter
lol ```js
game.macros.getName("name of the other macro").execute(args[0]);
I think you copy pasted ame.macros.getName("name of the other macro").execute(args[0]);
yeah, also MTB is acting weird
and let me confirm the effect is setup right still
it said 2 insight rolls were rolled but the pally rolled with a +10 so....the UI is wrong but the rolls were right
Hey, new here 👋
Trying the "Return a damage bonus" and passing back (With console log to confirm)
return [{ damageRoll: '1d6[fire]', flavor: "Bonus" }]
But it doesn't add the extra dmg?
it also prompted the roll for the GM twice
and mtb didn't resolve till I expanded the rolls by clicking on them, no green checkmark till then
return { damageRoll: '1d6[fire]', flavor: "Bonus" }
hol up, I dunno why, but it is working fully fine now once I got the effect setup again, as I had renamed it for the other way
yeah its totally working now
wait....GM has same target and selection as player... so that could be a false positive right?
That gave me an error: Invalid or unexpected token
OK I will take a look at the player's side some time tomorrow, if my INET is up.
edited... it was an extra ` at the end
Ah true, well no more error but also no additional dmg
yeah it seems to work totally fine with what you had me setup
The first macro passed all the MidiQOL args[0] to the GM
do players need to have access to the folder macro?
Happy to hop into VC if you have a sec
its too late here 😄
If you got a complete macro I can take a look
Babies first Hunters mark (just got Foundry yesterday 😅 )
I have more worked out, checking if the token has hunters mark applied etc, but stripped it all out just trying to get the bonus dmg at all working
The SAMTEST Log procs in console before the midi-qol | DmageRollComplete elapsed 14ms
OK so if you open console, it probably will have an error of unresolved string when you use that. Change the damage formula on the item to ```js
1d8 + @mod + 2
The dmg formula atm is: 1d8[piercing] + @mod + 2
I added bonus to see if it would do anything, but it just takes the Attack roll bonus stat (no errors)
@violet meadow thank you for making that skill challenge work, gonna open up so many neat tricks. Taunt, shield bash, shove
Can you try something? Change the item's details Target to Self in the 3rd available box
Then create a DAE flags.dnd5e.DamageBonusMacro | Custom | Hunters Mark
Delete the onUse macro you have there
Ohhhhh lol. I thought you were creating a feature or spell named Hunters Mark
And I was suggesting to put that DAE on the Hunters Mark Item
Nope, I set up that to apply an active effect already, I have
`game.user.targets.forEach(i => {
let name = i.name;
console.log(i.actor.effects)
i.actor.effects.forEach(j => {
console.log(j)
if (j.label == "Hunter's Mark") {
GenerateRoll(i);
}
})
})
`
So this is just for the On hit of the Rapier to check if it should ALSO do extra dmg on a target that has hunters mark on it
And all the above works, except the basic grab extra dmg
Which i can't get to work without any thing else lol
OK so as a sidenote, seeing you are already using MidiQOL to a certain extent 😛
Go to MidiQOL sample Items compendium and take a look at the already created Hunter's Mark item
I should really make a shove button for my group... they avoid using shove now because of faff
I started a coupole hours ago when I went mad with modules lol
I've got some scripting background in JS so was pretty easy getting started, but this stumped me
MidiQOL and DAE readme plus the sample items compendium will give you some good ideas then
could use babonus. 😎
I've been giving them a read, but just getting the basic "Add an extra dice of dmg" via the "Return a damage bonus" macro field not working is just odd
To make what you are doing work though, I think you can do it as follows.
The Hunters Mark DAE on the Rapier, go to the Details of it and make it Transfer to actor when item is equipped
Then change the Rapier back to targeting enemies 😛
Lastly do a check on the Hunter's Mark macro for the effect being present on the target
I've got it atm where a player can cast hunters mark, it applies a DAE to an enemy giving them the hunters mark status effect, than on dmg I have it read if the target has that effect, if so roll extra dmg
But the roll extra dmg part never get's added (Without any checks, just the raw return 1d6 more dmg lol)
Reading some extra docs atm
I'm a lil confused though, isn't hunter's mark already made?
It is, but I figured it was a good way to learn 😅
if (!args[0].hitTargets[0].actor.effects.find(eff=>eff.label === "name of the hunters mark condition you put on the enemy")) return;
return { damageRoll: '1d6[fire]', flavor: "Bonus" }
Well look at tim's version 8)
you have 100% of the setup for babonus. 😦
yes but .. 😄
Does it do doors though
@dry heron the messages ended up a bit far apart. Does it make sense?
So I just tried it with a DAE Temp effect that adds the Extra dmg, and that worked fine
So it seem just the Midi QOL Fields On use macro bonus dmg, while it runs it doesn't actually use the data
That is doable as well. You scan set it up with a myriad of ways tbh
I have never used that. v10 correct?
Ye
In principle it should be the same as doing that with a DAE 🤔
I don't want to use the DAE on the Rapier as than i get the Status DAE popup as an effect
Hence hoping I could do it via the Field bonus
OK, so best solution, get the Hunter's mark item from the compendium which is the RAW version.
You cast the spell and then all attacks get the bonus added
Does it care about which target your actually hitting?
Yes. When you cast the spell it passes a Hunter's Mark effect to the target. And then it adds the bonus damage only against that one
Hunter's Mark and Sneak Attack from the MidiQOL compendium are 2 good examples of what can be done
Tried and worked, now to understand
(just go through. If you already have js background its gonna be a field day.
But make sure you install the ItemMacros module, cause the macros are "stored" on the items by utilizing that module (and to use it alongside MidiQOL, make sure that the Sheet Hooks in the ItemMacro settings are off)
@violet meadow is quick roll to chat one of the modules you can't have with midi?
If there is an issue I would guess it is a good possible culprit.
I have no idea if or how that works though
How can I see the properties of the ItemMacro?
If you activate the module, on the items title bar there is gonna be a tab
Oh weird, I guess I don't have the Module installed, but its till worked
Get also Monaco module or Macro editor + Ace Library for some better macro editing tools
yeah it is NOT needed to work, but if you want to check the macros or make changes you will need it
give the Importer settings a good read because it is a common source of issues. It works, but you need to know what you're doing 😅
So far so good with some tests, I ran through a tut as the first thing I did, one of the major sells to bring me from Roll20 😅 (Plus the campaign exporter)
its great for like adventures and monsters, but the players sheets, make from scratch if you are automating
Oh? my players stuff came in all good, what should I look out for?
I always just import players with it first, then check feature that I've edit with the ignore feature from that module
I mean we just had a dndbeyond importer problem being the culprit over in module troubleshooting
yeah, as I said, you kinda need to read the label with that one 😄
reckless attack from dnd beyond imports too blank to fire dfreds CE right in midi
dnd5e's srd version works just fine
Aha
but your players sheets are the things you are gonna automate THE MOST so that stuff, get your hands dirty with and get right up in there on them
isn't there also a setting that constantly tries to update sheets from beyond? turn that stuff off
Any time you edit a feature or spell, I'd recommend hitting the importer button on the top of the sheet and checking "Ignore this item when importing the character"
That's not a default setting.
the problem with reckless was that it had no targets setup
but the srd did or something, I dunno
I will take a look again at some point, cause it should have been working for players too as it was, or I thought it did at some stage
The new dnd5e hooks are a good way to handle modifying rolls, and all the data that will get used are passed in. Unfortunately they are not awaited, so you need to do the prep in something that is awaited. Here's a version of the minion macro that seems to work (it's v10, if on v9 change .system to .data.data. One nice thing about the dnd5e hooks is that if the roll is a critical then the damage is modifi2ed accordingly.
if (game.minionHookId) Hooks.off("midi-qol.preDamageRoll", game.minionHookId);
game.minionHookId = Hooks.on("midi-qol.preDamageRoll", async (workflow) => {
const isMinion = workflow.actor.items.some(i => i.name.toLowerCase() === "minion");
const isGroupAttack = workflow.item.system.activation.condition.toLowerCase() === "group action";
if(!isMinion || !isGroupAttack) return;
const title = "Minion Attack"
const options = {
"inputs": [{
label: `<p>How many of this minion attacked?</p>`,
type: "number",
options: 1
}],
"buttons": [{
label: "Attack"
}]
}
const result = await warpgate.menu(options, { title, options: { height: "100%" }});
const numMinionsAttacked = Number(result.inputs[0]) || 1;
const totalDamage = Number(workflow.item.system.damage.parts[0][0]) * numMinionsAttacked;
const damageType = workflow.item.system.damage.parts[0][1];
const damageHookId = Hooks.on("dnd5e.preRollDamage", (rolledItem, rollConfig) => {
if (rolledItem !== workflow.item) return;
rollConfig.fastForward = true;
rollConfig.parts = [`${totalDamage}[${damageType}]`];
Hooks.off("dnd5e.preRollDamage", damageHookId);
})
return true;
});
Looks like Foundry has the function I need:
quadraticIntersection(p0, p1, template.center, template.shape.radius, epsilon=0)
Works pretty well
Diagonal movement needs to be looked at, I need to figure out a better way to handle it.
I'd also like to figure out how to make the damage cards less spammy. I'm applying the damage in increments to deal with concentration saves.
@molten solar quadraticIntersection could be used to tell if a token has passed through a circular template, it'll have 2 points if so. I assume there would be something similar for square templates if you would ever consider a trigger for tokens that move through a template but don't end in it.
Routinglib might also solve the movement calculations, since it would also take into account rough terrain.
If this solves all the stuff you need, nice. If you still find something lacking, feel free to look at the code of the Terrain Ruler module. It already contains code to check for intersection points between a line and all the template shapes (including cone, which was a major pain in the butt to implement).
Oh nice
Knew I should have looked at this at the start
You'll still have to piece them together, though, as that's only geometric primitives. A cone for example would be an Arc plus two lines. A rectangle four lines, etc.
For the moment, I just need to figure out the distance a token traveled after entering a circle template
I have the start and end positions as well as the template data.
"easy". That's exactly what Terrain Ruler is doing in gridless mode if circular terrain is present. Just dig around in the code a little 🙂
That is, if you're working in girdless. On gridded, you probably want to just check for each square along the path "is this point in the circle?" and then count the step accordingly, since the exact intersection point has little meaning on a grid
yea, that's where I was running into trouble, I couldn't figure out how to go about that
The way I have it gets me the exact range, but that doesn't help when I want to follow the diagonal rules from DnD
terrainRuler.measureDistances I think should be all I need
If you're fine with calling that function (it's of course not optimal, since all the terrain calculations may be unnecessary overhead), you can check the ray you passed into that function after the call. Terrain Ruler adds a field to it terrainRulerVisitedSquares that tells you exactly which squares are visited by the ray.
if you can come up with something, I can take some minutes off to test it and see if I can add it to TM, but I don't have the time for jommetry 👍
There's also Foundry's Ruler._highlightMeasurementSegment, which code that takes a start and end point and highlights every square of the move. Since that code needs to figure out every square visited, you could adpat it to your purposes. (Beweare, it only works properly if start and end point are on the center of a grid cell. If they aren't it may skip squares here and there)
Terrain calculations would actually come in handy here, since at the end of the day I need to actual cost of the movement to calculate damage dice for moving through the template.
Since it's 2d4 for every 5 feet moved
that normally turns into 4d4 cause it's rough terrain
Wait is this part of the spell? The rough terrain?
oh look who's up early after less than 6 hours of sleep
The area becomes difficult terrain for the duration. When a creature moves into or within the area, it takes 2d4 piercing damage for every 5 feet it travels.
Who needs sleep when there is coffee right?
Effectively 4d4 unless you have the means to avoid difficult terrain
I have the template making itself difficult terrain with Enhanced Terrain Layer already.
I always rule against that. Tbh I never considered that 😁
There are a few obscure class features and spells that get around difficult terrain.
Yeah but as you say the most common thing is for creatures to not have something like that, so I would expect some clarification in the spell description of that was the case. Oh well, still I would force it to do 2d4 for each square no matter what on my table
You move at half speed in difficult terrain--moving 1 foot in difficult terrain costs 2 feet of speed.
2d4 for every 5 feet. It's pretty explicit.
We’ve always ruled it that way. How far you travel, not how much movement you spend doing so (2d4 per square)
I'm pretty sure the spell is worded the way it is to allow class features and other spells to help you avoid the difficult terrain part.
2d4 per 5’ is still nothing to sneeze at, especially if it’s forced movement (eg repelling blast)
Spike Growth + Plant Growth is crazy… one halves your movement speed… the other makes you spend 4’ for every foot moved
ouch
Most creatures move one square per turn
I just reread the spell and it mentions per 5 feet it travels.
So I would rule that 2d4 per square, no matter what 🤷
But now morning coffee!
Throw down a spike growth spell and get your warlock to send a couple of repelling blasts to the right target :chefkiss
It costs you double but you still have traveled 5 ft in the end
Dao genie warlocks get spike growth 😆
I can't figure out what kind of data to be passing off to this function.
I may just call it a day and look at it another time.
Spike growth is SRD right?
Requires midi-qol and Zhell's template macros module.
Weird, the item macro is cleared out but it still shows it in the exported json
Its a beyond imported one I see.
There is a "way" to attach different itemMacros for both v9 and v10 at the same JSON.
The wonders of a missing data in the structure!
Ah that explains it
Just as long as it doesn't actually run it won't matter.
Yeah I just saw that initially in some MidiQol sample items and I was like 🤔 but then 🧠
At any rate, if anyone more familiar with the measuring features in Foundry is around, I'd love to see a better way to handle the distance calculation I'm doing.
is there a flag in midi that prevents critital hits from critting? Like with adamantite armor?
This armor is reinforced with adamantine, one of the hardest substances in existence. While you're wearing it, any critical hit against you becomes a normal hit.
Pretty sure it's flags.midi-qol.fail.critical.all
Yea, I noticed that too
Btw Terrain caused by Measurement Templates is currently broken in ETL
I noticed lol
(v9) I have a tricky question. Is there a way to apply an aura effect (currently using Active Auras, midi, and dae to other similar things) to allied tokens within range but have it disable when the source actor moves and only when the source actor moves? If I use the "isMoved" special duration, it gets applied to the allies which is not what I want.
Use case is an ability that allows a frontline tank to dig in their heels and become a bulwark for their allies. Any ally within five feet gains a bonus to AC and dex saves (basically half cover). The effect should persist until frontline tank decides its time to move.
special duration of moved to remove the effect
then have it as an aura
oh, wait
that applies to the allies that move too?
Make sure to check apply only once per turn
I think that you need to create 2 effects and some macro-ing
One will be with a isMoved special condition applied only to the sourceActor and which will in the off delete the aura.
The aura will be in a second effect taking care of the AC and dex
Or set the aura to apply a CE that won’t expire when the affected tokens are moved? 🤔
Or Template macro on the spot 😄
Yeah you can do this with two effects, first one is expired on move and applies the second effect, which is the aura
Yeah I was going the macro way but same principle 😄
It's basically the same I did for my Twilight sanctuary, since that one applies a light to the caster only
if expire is isMoved shouldn't reapply it until the next combat round
How do I get at other effects inside the Active Effect interface? I see you can do StatusEffect but that seems to only have the default stuff. StatusEffectLabel seems to just change the label of the effect whereas I was hoping it was going do some kind of look up.
It only expires if the caster moves, not the targets, as I understand it
Do you use DFreds CE?
macro.CE can do it.
macro.CE
I do!
Damn phone typing is slow 🙃
This seemed to have the effect of shuffling the effect around to in range allies at the start of their turns
You aren't applying this to the primary DAE affect right?
You would create an additional affect inside with these settings
the aura applies an active effect on the target
the base effect runs on the caster
can look in your compendium at Active Auras Auras to see examples
Thank you all! I got it working now. I really really appreciate the help
Is it possible to check an Active Effect by name in "Activation Condition"? For example I want to give my Gnoll Bite some extra damage if the target is "Prone".
Array.from(workflow.hitTargets)[0].actor.effects.find(eff=>eff.label==='Prone')
great, thanks
Are you v9 or 10?
10
Build a bonus seems to be the ideal module for everything now? XD
It can certainly do that entire 'activation condition'.
Can I make Divine Smite with BAB?
Sure why not
Oh you're the author!
it's working 😉 (the first one added extra damage every regardless of the condition)
Just note that it will misbehave if you have more than 1 target.
noted
Need to check the newest MidiQol whether it can deal with that. I know you can check @target but I think it points only to the actor or synthetic actor rollData.
Getting roll data from game.user.targets.first().actor.getRollData() would be the synthetic actor
Yeah I meant that the effects are not present in the getRollData() normally, but I am not sure if tposney passes them along to facilitate this check, when using the @target within MidiQOL's activation conditions
‘@target refers to the target’s actor roll data: rollData.target = data.target.actor?.getRollData();
Makes sense 👍
Hello again! I am on V10, using MidiQol and also Convenient Effects. I am trying to implement the attack "Claws" on a Ghoul, which has damage, a DC10 Con save, on fail a paralysis effect. I have managed to make a convenient effect called "Ghoul Claws" that will mimic paralysis and apply on hit, but I cant seem to figure out the DC10 Con save before applying the effect. Any hints on how to do a roll before applying an effect?
Edit the item and go to Details Tab.
Give it a saving throw in the relevant field.
@vast bane are you around?
yar
@violet meadow i have tried adding a save, but it saves for half damage not applying the effect
poundin the walls of my cubicle atm but can remote to my server
Divine Smite in v9 sample items. Does it have an activation condition for undead?
Can you drag the item in the Items Directory on the sidebar, right click it and export data? Then attack that file in a DM and send me to take a quick look on how you've set it up. Easier than going through a bunch of back and forth questions and I can let you know after
there are two of them, the automated item macro version does not prompt for damage popout and does not crit, the non macro version will do everything except crit the fiend/undead stuff
Activation Condition: ["undead", "fiend"].includes(raceOrType)
theres two smites in v9
like this?
get the second one (no macro one), create an on use macro preDamageRoll ```js
//v10 only
const getMessage = game.messages.contents.filter(mes=>mes.content.includes("<div class="dnd5e chat-card item-card midi-qol-item-card"")).at(-1);
const item = await fromUuid(getMessage.flags['midi-qol'].itemUuid);
if (item.getRollData().item.actionType === "mwak" && getMessage.flags['midi-qol'].isCritical) {
setProperty(this,'isCritical',true)
//<this> in the setProperty above, is the same like doing a <const workflow = await fromUuid(args[0].uuid)>
//and using <setProperty(workflow ,'isCritical',true)>
}
Attack normally and then roll the Divine Smite
Get the one that doesn't have a macro. The one with the activation condition
And put that in the empty (should be) ItemMacro
Change the crit threshold of the item to 2 or something to get a critical easier
not sure what you wanted me to test but its doing weird stuff and still isn't critting the fiend/undead
Try this.
Workflow.
Roll a normal weapon attack. Do the normal workflow, damage and whatnot and then roll the Divine Smite.
I will need to test it in v9 and maybe send me your MidiQOL settings to make sure what happens
the first line of the item macro has bad syntax
ok its the message data
If there ever was a single feature that needed its own module it would be Divine Smite. Never has one tiny thing needed so much attention. 😄
mine is working just fine 8)
But it's not just you is it, it's hundreds of people
Can you quickly change to this mes=>mes.data.content.includes
Damn don't remember how that was
I think alot of people are using midi's divine smite not realizing its notcritting right
kinda poetic that Midi-qol cannot read midi-qol
its like inception or something
//v9 Foundry
const getMessage = game.messages.contents.filter(mes=>mes.data.content.includes("<div class=\"dnd5e chat-card item-card midi-qol-item-card\"")).pop(); //at(-1) for Zhell
const itemUuid = getMessage.data.flags['midi-qol'].itemUuid;
const item = await fromUuid(itemUuid);
if (item.getRollData().item.actionType === "mwak" && getMessage.data.flags['midi-qol'].isCritical) {
setProperty(this,'isCritical',true)
}
Now?
What is that arcane code
I don't fast forward, and it did not flag the crit in the smite, and it also did not crit the fiend/undead
Why is there a set property method
damn edited
however, I am cheesing the crits by making the threshold 2 and up...is that a problem?
there was no errors 0_o
yeah but the check was not evaluated to true so it didn't register anything
no crit with fast forward fully on
and if I turn off fast forward and manually crit it, the fiend/undead die does not crit
Probably because Critical Others property is broken?
Since that should make the other roll Formular also crit
ok I will test it later on v9 and come back
Now I am taking a look at the new v10 features of MidiQOL and DAE 🤌
worked! Took out my "Ghoul Claws" convenient effect as it was also applying that. Now to figure out how to have players roll to break every turn...
check the pinned message in this thread up top, from tposney
@vast bane send me your midi settings pls. Works for me 😄
is it designed around calling the last message?
cause the attack is not the last message, Maxwells is
the last message that has some midi specific content (that's the hope at least)
cause were testing crits, maxwell keeps firing
another quick check. Make it preItemRoll instead
all the drop downs you keep referencing are not whats in my midi
is preitemroll all?
oh 😅
called before the item is rolled
so heres the thing
that item already works
whehter the item macro is in or not
the problem is the other formula doesn't crit
so again, fiend/undead die is not doubling
And yet the suggestion to just use a spell (not the midi feature) and click Critical when damage prompt, still persists 😉
that won't work either lol
again, crit doesn't work in other formula, so the fiend/undead die does not double
the pin info also worked, thank you. For some reason the save doesnt clear the effect with saves request from Monk's Token Bar, but once i went ahead and tested with a straight Con save from the character sheet it worked perfectly.
OK I will test it when I am on my v9, thanks
probably have to put the fiend/undead stuff in the item macro somehow
but that also kinda defeats the purpose of the no macro smite version
and the actual item macro smite doesn't crit at all
I just created buttons in advantage reminder and work it all out in the attack roll
I think you need more AR flags
I think thats just 1 flag
the test was bogus and deleted already forgot it was there
One flag:
@gilded yacht when you are not fast forwarding damage rolls and you click Critical hit on the damage roll card, the Other Formula doesn't crit even if the Crit Other formula is selected.
@vast bane with your settings and the macro I shared, when you click on the Critical Hit the other formula is rolled doubled for me at least 😄
You need to score a critical hit with a melee weapon first. Then Use the Divine Smite feature with the ItemMacro | before the item is rolled and click the Critical button
yep doin all that
I'm even rolling 20's cause I'm using df manual rolls to do it instead of crit threshold manipulation
what version of midi do you have
0.9.83
same
const getMessage = game.messages.contents.filter(mes=>mes.data.content.includes("<div class=\"dnd5e chat-card item-card midi-qol-item-card\"")).pop();
const itemUuid = getMessage.data.flags['midi-qol'].itemUuid;
const item = await fromUuid(itemUuid);
if (item.getRollData().item.actionType === "mwak" && getMessage.data.flags['midi-qol'].isCritical) {
setProperty(this,'isCritical',true)
}
this macro right?
damageRoll=5,
damageType=healing,
condition=@attributes.hp.value > 0 && @attributes.hp.value < @attributes.hp.max``` - another question about detecting effects - this is Midi-qol Regenaration (for OverTime effects). I created an effect "Silvered" and I would like for it to block the regeneration - can I add some condition here so it wont heal IF Silvered is present?
I wonder if its the merge card?
Make an attack normally and do critical damage. Then open console and type ```js
console.log(game.messages.contents.filter(mes=>mes.data.content.includes("<div class="dnd5e chat-card item-card midi-qol-item-card"")).pop().data.flags)
are there any midi-qol flags in that message?
and the Item is mwak and the creature Undead type set in the dropdown menu
the Undead doenst matter nvm
merge card shut off and now my attacks refuse to crit
yeah crit no longer working and all i did was turn off merge card, the attack crits, just brainfarted its not a greatsword but a longsword
Here is my full workflow in console with it working alright except for that one missing fiend/undea die:
OK so there must be an issue with the Crit Other Formula anyways, that's why I pinged tposney (has anyone reported that as an issue in midi and if not why? :D)
BUT with your settings when an attack is critical, combined with the script does make the Crit Other actually double up\
I don't see that on my end
wait a minute
why is your smite different than my smite?
you aren't using midi srd's smite
errr midi sample item smite
Let me see yours:
I have flavor!
AND you have critical other lol
I didn't know I had to do that
There we go
Yeah, but it got me lookin in the right spot
now we need to remember who it was that was reporting the problem, cause that was their mistake, they didn't have critical other checked
But only for the first Divine Strike. If you click again on Divine Strike after the crit, and try to crit again, it will not roll double Other Formula. Correct?
yeah smites now working perfectly, do we even need the item macro then?
Yes we still need it. Here comes the buggy (if not intended part)
If you roll again Divine Smite, without a melee attack first, the Other Formula will not be doubled, if you press on Critical hit
yeah I just tried without the item macro, it is infact bugged without fast forward
no critical flag on the roll, if you manually force it, the other doesn't crit
ok heres my question to you then
pretty much
can you edit the item macro to make JUST that smite fast forward?
please, cause I don't want him to have fast forward stuck on for smite
give me a sec to make sure
Use in the ItemMacro ```js
foundry.utils.setProperty(this,'rollOptions.fastForwardDamage',true);
does it matter where it is?
up top better to be safe, if you use it within the same ItemMacro. At least not inside the if check
works perfectly
@gilded yacht DAE v10.0.10 macro.createItem | Custom | drag and drop item from a compendium or sidebar or wherever in the effect value field!!! is one of the best QOL improvements ever brought forward!!
🙇♂️
what is the use case for that?
Twilight Sanctuary seems like a good thing for that, it adds an aura and a reaction thing as well, right?
Basically any feature that gives you several options or stark differently working options
so like.....Shadowblade?
Yup, gives you the weapon, yeah
You write 0 of them though
just drag the item on the effect value field and good to go
Much love to this feature
yeah that could also be spiritual weapon
and it'd work with bless!
nah not spirit guardians, wait is his v10 sg not working? oh yeah...active auras...damn
What you could do with MidiSRD and macros for some spells, can be done with setting up just 1 DAE effectively
Throw stone!
You can create an attack item for your Spirit Guardians attack. that was what I was doing before Active Auras where a thing and went back to doing now, for my player to have some more clicks 😄
if you don't remove buttons you can also pop it out and use the original damage button
Yeah I hate that. Too many popouts and cant bother, especially if I use that from time to time
Make a weapon, click that, done
I prefer the sample item and active auras /cry
If you have lots of space it can be OK
love the automated version
Yeah but to be honest I am scaling back a bit on that.
Active Auras being kinda of off for some time in v10 was a good thing 😅
is there a way to also auto roll them as the ae is applied?
cause that'd make ice knife really easy
Meaning? An attack immediately?
Would need to use a macro to auto roll it when created
ooh another good use case, wither and decay
But Ice Knife is an easy macro with MidiQOL and you can even trigger a targets selection
Wither and Bloom?
aoe damage, and then an ally in the aoe can heal expending a hit dice
item would need an item macro to expend targets hit dice though
I think I had made one 🤔
like dis?
pretty sure I'm using this very one lol
but the new midi thing is a drag and drop
so no macro required
If you give the item to another target, you will still need to account for the sourceActor's spellcasting mod etc though
wonder if dfreds gonna start doin stuff with his ae's for this lol
it might be a bit off the immediate scope of DFreds CE to include all the spells known to humanity which add stuff like that 😄
I can also see a macro.createToken in place, but I think that this is yet to be implemented 🤔
If Tim’s Font of Magic lets you convert pact slots I might have to update to v10 😯
can you toggle an effect via macro? I know midi-qol can Toggle an effect via Item, but can you add an inactive effect and for example toggle it via macro on saving throw failure?
effect.update({disabled: !effect.disabled}) iirc
thanks
and efect name? or ID? How does the macro know which effect to diable?
disable
you find it from actor.effects
the one he stole from me? lol
He'd have had to have added that. I ban multiclassing so I didn't bother. 😎
https://github.com/krbz999/zhell-macros/blob/main/classes/sorcerer/font_of_magic.js
That one. I did try yours but I need the pact slot bit or what’s the point lol. Hopefully he has added that 🤞
surprised if he did not. an easy add tbh
and if he did not, just ban multiclassing too.
I need to update mine
@molten solar Tim must have heard you badmouthing Sample Compendiums in here… so he put you in one 😂
The only good number of module compendiums is zero module compendiums. 😠
I didn’t know you had one… will take a peek (I’m on v9)
I don’t like sorcerers and make them do stuff manually
Is it important that I modify a midi-qol itemCard synchronly?
Basically lets say I run a ItemMacro after active effects application that has a dialog and confirming the dialog modifies the itemcard with a damage only workflow, is that fine?
Does it misbehave at any point?
well I am asking before trying
There are only 4 classes for me! I come from 2nd edition glory days 💪
ok grampa, let's get you in bed
Back when elf was a class?
and when halflings were hobbits
It was back in the day when d&d was hard and outlawed!
The good ol' days of wizards casting exactly 1 cantrip and then having to use a crossbow
To think we used to do THAC0 in our heads 😮
That 1 magic missile!
console.log(scene)
last.parent.effects.forEach(effect => {
console.log(effect)
if (effect.label === "Slow") effect.update({disabled: !effect.disabled});
if (effect.label === "Hold Person") effect.update({disabled: !effect.disabled})
})``` eh I have no idea what I'm doing - I used "Effect Macro" so this Macro on DAE activates every time I do a saving throw. I have no idea how to make it trigger only if the saving throw fails :/
🤔
Won’t work within midi as is
Kids these days don’t know how easy they’ve got it
Use the dnd5e.abilitySave trigger.
Actually lemme just check if I pass the info to EM...
Oh yeah I do
this.roll
Well do you now? 🤔
this.roll and this.abilityId
Trying to understand 😄
@molten solar Template macros doesn't like it when there isn't a move animation.
Broken promises…
on tokens?
Might be from drag ruler allowing you to skip the animation when you hold down alt
I presume all it does is add {animate: false}.
See, D&D is so easy now
(Not being a native English speaker, getting the players handbook and trying to understand THAC0 around 12 years old was an ordeal)
You’re not a native English speaker 🤯
everybody loved 🌮
Checking the other module that messes with it
they and I are in the same timezone 🙃
Since just having drag ruler and template macros doesn't break it
nah, I can reproduce it
ah cool
it's when adding {animate:false}
Speaking of, could you add that as info
Ireland?
idk lol
As info?
But I am undercover from GMT+2 originally to GMT nowadays!
I always made a hit chart so I didn't have to remember that shit
oh like the start and stop position, whether the move was animated or not
nice
I was thinking that most common solution to getting out of a spike growth is to misty step away. Then I realized I need to take into account people getting in and out of the template without actually moving through it.
And then you have to deal with fly speed! 🙀😎
Easy enough to just check the token elevation.
And burrow 👻
Easy enough to just check the token elevation.
And polymorphing into a snake and slithering through
Easy enough to just check the token slitheration.
Door macro!
Apply macro directly to the door.
Have the template macro make some doors around the edge of the template. Add a door macro to those and have the player get an effect when they open the door, so we can apply an effect macro.
Do you know the save DC somehow?
no :/ I'm using OverTime to force the actor to roll at the end of each turn. But I don't know how to extract DC from that for my macro.
label=Hold Person (End of Turn),turn=end,saveDC=@attributes.spelldc,saveAbility=wis,savingThrow=true,saveMagic=true
yeah but I want my macro to toggle another effect when you fail this save
does midi add targetValue to saving throws? 🤔
And that will have access to who saved or not
Hmm I cannot check now but you can implement a patch to use EM with midi 🤔
Do you define Item in EM Zhell?
Item.uuid?
... in a saving throw?
Origin has the info you'll need as long as the effect was setup as a DAE on the item.
origin.system.save.dc
oh yeah I see it
const target = origin.system.save.dc;
const {total} = await actor.rollAbilitySave("cha", {event});
if(total < target) return;
const e1 = actor.effects.find(i => i.label === "Slow");
const e2 = actor.effects.find(i => i.label === "Hold Person");
await e1?.update({ disabled: !e1.disabled });
await e2?.update({ disabled: !e2.disabled });
They're doing something else on top of hold person
Shouldn't it be called something else then lol?
¯_(ツ)_/¯
Hold Person is just an example 😉 I'm trying to make a Medusa Gaze "a creature that fails the save begins to turn to stone and is Restrained. The Restrained creature must repeat the saving throw at the end of its next turn, becoming Petrified on a failure or Ending the Effect on a success. "
ok, so its not really paralyzed either
effect name is just a semantics here 😉
well in midi qol they all do a bunch of different things to actors but yeah, so the additional effect you want to add is petrified when they fail for the third time?
I would instead mark them defeated
unless someones pulling out a greater restoration, thats essentially whats really happening
Just a macro on the overtime would do it too. Getting the save result, putting it up on a flag and checking again next turn
A lot of options
EM means the macro is embedded
Instead of having to reference a world script
yeah huge fan of EM cause it stores it like item macro
how to add macro on overtime?
which then makes oskar's project easier to share as a premade
Indeed. I Like the options.
So, a possibly obscure question.
tposney's implementation of Melf's Minute Meteor turned the individual meteors into a Feature rather than an (inventory) Item.
I kept thinking the spell was failing because I kept looking for something on the Inventory tab.
Is there a compelling TECHNICAL reason that a Feature would be preferred?
Doubtful
That's what I thought - but figured there might be something that I was missing. Thx.
I do the same thing when I make spells that give you special actions. But I also flag them to get auto favorited so they are more visible when using Tidy sheet.
Yeah I guess up to personal preference
I also have started using Custom Character Sheet Sections to separate them out on features as well.
Inventory is probably going to make them easier to find via Token Action HUD for a spellcaster fwiw
yall dont use ephemeral items? 🤔
new midi has...something new
ive seen it
When needed. I like seein them on the sheet
For something like Flame Blade, I just do an if/else depending on if the actor is concentrating on the spell.
I tend to just warpgate features onto the sheet using effect macros for the on creation and on deletion.
Now you need only a dae if you have the item somewhere on your world, or a compendium
because of Door Macro?
@molten solar await e1?.update({ disabled: !e1.disabled }); await e2?.update({ disabled: !e2.disabled }); - and if I want the effect to be removed and not disabled?
Our group was on hiatus. Now they are for some surprises.
The first of them, when they open the door we conveniently stopped just before last session
I wish I'd found this thread months ago...https://media3.giphy.com/media/qKltgF7Aw515K/200w.gif?cid=82a1493bcvl9zi2gpqsqlnfwfhjfesnrgtf7kvirf5onf91z&rid=200w.gif&ct=g
Not that old!
The trick is to ask about Midi in the wrong place. 🧹
Zhell is to blame!
🤏
Badger, I need your help again 😦
Findnearby is not accepting my Token reference
It claims it isn't a token type
Even if I pass iot just the ID of the Token as the function can interperarte the string, it returns null
probably because we're running live games and it takes time to adjust all the world macros and active auras/ATE being broken
When you say ID, do you mean Uuid? I believe the function needs the uuid
I passed the Token ID, will try the Uuid
Perfecto, thanks @short aurora 👍
I should have read the function better, my bad
looks around who me?
MidiQOL.findNearby ?
MidiQOL.findNearby?
midiQOL.findnearby
case sensitive you...
No I'm not
uses canvas token, doesn't work with documents
In the meantime it was solved 😛
MidiQOL.findNearby() v10.0.15 onwards accepts tokenUuids too 🤌
well... something is missing in that sentence 😄
The uuids didn't change. Did they? 🤔
The Midi function did though to be able to use the tokenUuid too 🤷
dc = origin.system.save.dc;
roll = this.roll.total;
if (roll < dc) {
const e1 = actor.effects.find(i => i.label === "Slow");
const e2 = actor.effects.find(i => i.label === "Hold Person");
await e1?.update({ disabled: !e1.disabled });
await e2?.update({ disabled: !e2.disabled });
}
if (roll >= dc) {
const e1 = actor.effects.find(i => i.label === "Slow");
const e2 = actor.effects.find(i => i.label === "Hold Person");
await e1.delete();
await e2.delete();
}``` Ok the macro works great. But If I attach it to "trigger on saving throw" it will trigger on any saving throw no related to the effect. So I think if I'll use EM, but "Trigger at the end of turn" it will work fine - but I need to add roll request and don't know how.
What is last = arguments[arguments.length-1]; ?
const dc = origin.system.save.dc;
const {total} = await actor.rollAbilitySave("cha");
if(total < dc) { etc etc etc
(please use const or let when you declare a variable)
Effect macro lastArg missed chance :/
I don't know what arguments is 🤔
I think they were trying to implement some MidiQOL/DAE specific code to EM ?
Oh that won't get you far. Surprised it does not error out. 🤔
Wait I thought that was just miscopy pasted !
Are last/dc/roll all defined in EM?
@molten solar lol
well yeah - I think I'm lost - I need to make overTime macro - probably will be easier
Ignore it. The Effect Macro page has all the info you need.
How would I word proficiency in wisdom saves in an active effect?
@smoky smelt
@acoustic jasper do you still need an OverTime?
yeah - I'm trying anything at this point
use backtics to put
@prof inside
So create a script macro.
Call it in the Overtime effect.
Did you check the MidiQOL readme?
Yeah I'm reading it right now - I think I can manage the macro, but I don't know how to input it in DAE
OK create the macro in your hotbar or macro folder.
And use its name in the Overtime effect to call it
(can it be an Item Macro)?
not in this case
saveAbility=wis,
saveDC=@attributes.spelldc,
macro="1234T",
label=Hold Person``` - so smething like that? (if 1234T is my macro name)?
Ok great, I'll work on it then. Thanks
In the macro you will be able to grab all the args[0] and the successes and failures of the OverTime saving throw will be included. You can apply any logic after grabbing the relevant results
const e2 = actor.effects.find(i => i.label === "Hold Person");
if (args[0].failedSaves.length) {
console.log("fail");
await e1?.update({ disabled: true});
await e2?.update({ disabled: false});
} else {
await e1.delete();
await e2.delete();
}``` - ok this one works with OverTime. When the actor gets Slow and succeds the effect ends. If fails he gets Hold Person. However there is some strange thing next - when save succeds on Hold Person the effect is removed... and then reapplied again.
do you have cub/dfreds installed?
both
are both trying to manage conditions?
that is typically the source of most toggle spams
turn off enhanced conditions in cub
const e1 = actor.effects.find(i => i.label === "Slow");
const e2 = actor.effects.find(i => i.label === "Hold Person");
const e3 = actor.effects.find(i => i.label === "TEST321");
if (args[0].failedSaves.length) {
{
if (e1.disabled)
{
//await e2.delete();
await e2?.update({ disabled: true});
await e3?.update({ disabled: false});
}
else
{
console.log("fail");
await e1?.update({ disabled: true});
await e2?.update({ disabled: false});
}
}
}``` - ok It's working. 3 Stage macro that disables the previous stage and enables the next one on the list.
I'm stealing this for my battletech/5e conversion module 8)
Can you screenshot your active effect that goes with it?
i was testing it on Hold Person from Midi v10
if anyones curious where I'm putting it in battletech, its going in the heat table application
but 1 problem - for some reason there is a conflict with both CE and CUB
if you add a condition from CUB or CE (for example paralyzed) 2 things happens - with CUB the last stage wont fire (second goes inactive but the 3rd wont go active)
with CE the last stage goes active but the Paralyzed condition from second stage stays
dont know why this is happening
are both active?
and its still throwing the error?
its not an error
weird
How are you adding the effects that this thing is enabling?
i think hes' adding all three but 2 and 3 are deactivated, which is probably problematic for midi
maybe
are you using statuseffect or Macro.ce?
maybe tposney one day will add an ability to add effects to a OverTime like he addes macroCreateItem now
so there wouldnt be any need to put them all on inactive at once
"turn=end,
saveAbility=wis,
saveDC=@attributes.spelldc,
macro="1234T",
label=Slow" - I'm using this for OverTime Dae
1234T is the name of the macro
so if the save succeds the whole thing ends
if the effect fails - we're going to the next stage
what's the attribute key for adding a bonus to saving throws via active effect?
@fading scarab "system.abilities.dex.save" - for dex
i will teach you how to fish:
with dae installed, simply type ability.save
Ah, thanks. I knew it was in there somewhere.
this is probably why I'm getting problems with CE and CUB - Foundry can't handle tossing so many effects around (at once)
you can typically sus out the keys by typing part of it with the period, and pro tip, dae always shows 10 results, you have to mouse scroll to see the other 7:(unless theres less than 10 results that match)
Also a pro tip: you have the console open anyway probably. Just log an actor.
for all those core keys 👌
You never write macros.
I don't even need to look up advantage remidners keys cause you can just type message. and get all of his keys in dae
It was specifically for everyone but you lol
its an active effect not a macro
Everything happening here always involves a macro
👀
@molten solar would a macro adjusting multiple effects be more "stable" if you threw them in an updateEmbeddedDocuments, instead of doing like Oskar did, finding and updating each individual effect? Or should it perform the same?
A batch update is always preferred. The difference here is negligible.
I'd imagine a better way would be Effect macro set to delete the first and add the second, and then delete the second and add the third
but I think his problem was EM doesn't work well with overtime?
there is a problem with this approach - for example if someone is concentrating on the effect
Similarly, you can skip the disable or deletion, and just change all data of the effect. Just swap it out with a whole new set.
if you remove the first one, concentration ends
when you swap it, it's always connected to a concentration
why would it end? that must be a v10 thing?
I think it was out literally in last update
concentration ending can end an effect, but not vice versa right?
I thought that was a long standing issue with concentration stuff
it can BUT even if it won't - still if you remove the first one
conc wont be connected to the second one
(at least I think it wont)
instead of deactivating them, just rename the effect and change its image and keep it all one effect?
oh wait that won't work, cause we're in midi and each effect is automated
what? How could i keep them all in one if I want them to change 😉
That's probably a missing flag. I am still confused how you are checking for 3 conditions in the macro. How are the other two applied?
Krig they are all applied on cast
you're applying all 3 with one Item - 2 are inactive 1 active
but two are set to disabled
all are OverTime
I love the concept, I very much will probably use this for heat in battletech
so whenever you fail a save one is disabled and the other one activates
it's not mine - it's litteraly in 5e Medusa Gaze and was in some effects in 4e
no I mean applying all the array of effects but only having one toggled and going in an order
yeah - I want to give to some monsters with diseases and curses
so the disease can get more severe with time
for my idea, battletech behaves like magic the gathering turns, theres an ending heat phase, so I'll have a macro that reads the value of heat on the actor, and enable the effect based on that value
oh cool
@acoustic jasper you don’t need to put all 3 on the actor when first created. You can delete and add another in the macro.
You just need a flag to check how many failed saved there ve been and add/re,ove accordingly
but I would need to create each one via macro - I wanted to created a fast template - so I can apply it to many different effects
Why would medusa's gaze be a concentration effect also, now that I'm thinking about it? Hold Person sure...but that other thing...
I this form I can create effects via DAE and just apply 1 macro to them (all I need to do is change the names)
I could see your macro working for if they fail by more than 5 things too
yeah thats easy to add
Poisoned if they fail, paralyzed if they fail by more than 5
Immune to poison if they succeed 0_o
If there were a way to change effects from CE for example, or just by Uuid
From CE yes. You can either toggle them or add remove
but adding each effect to a new macro takes time and I cannot do it on the fly just before the session
ok wait - so I can create a repository in CE
All in one macro
and toggle them from there?
Yeah that too
Read about the DfReds CE API
Or just check the included compendium with functions for DFReds CE
Beach worthy reading right thar
I didn’t write even one of the DFreds correct above 😅
ok it's quite easy 😄
It is isn’t it?!
the only problem is (again) if I want to retain concentration
secondary effect (created via CE) is not connected to the concentration anymore
You can dig through the concentration effect data and just change its origin I imagine
Edit: probably not origin but if you log the concentration data/system you will get it
tposney did just write in the notes that multiple effects on different targets can all be ended to end concentration, so I imagine it should be possible to put them on all your effects, at least that's how I read this
* Small change to concentration processing. If the last active effect/template associated with the concentration effect is removed concentration will be removed. For example, if you bless 2 characters and then bless is removed from both of those characters, concentration will be removed from the caster.```
... why did I write that was js stare
Yeah concentration will stay up until the last of the affected creatures stops being under the influence of the effect
sadly it's not working like that
when I remove the first effect (the one that was active on cast)
the Concentration is removed with it
maybe it's because the other two were inactive
Yeah. Before removing it, access the concentration data and change its target (kinda)
Oh I am curious now, but I am in bed 🛌
oh and sadl
y
CE doesnt go well with OverTime
"saveDC=@attributes.spelldc"
CE can't get it
even if an effect on an item (on an actor) will call for it
are you trying to do overtimes with dfreds premades?
Oh wait a sec. What does your workflow look like now?
Are you exchanging overtime effects with new DFreds CEs?
I've created a new effect on CE - then added overtime to it. Then created an effect on an item with CEmacro that triggered the first one
then an actor used the item on another actor to apply the effect - sadly CE wasnt able to get spellDC like overtime normaly does
is there a way to make an effect apply if a save is failed, and then also another effect apply only if fail by more than 5?
Yes with a macro
if (args[0].failedSaves.length) {} - that's what I was doing all day 😄
Just keep in mind that there might be multiple targets 😅
ok I'll try to poke it some more tommorow. At least it's working - kinda 😄
Will take a look too. Just to make sure, the premise is make petrified effect from Medusa’s gaze happen if the target fails their second save, correct?
Or that kind of workflow
yes - and the target is making that save at the end of his turn
So first roll - saved=nothing; failed=restrained. Second roll (at the end of a turn) - saved = restrained ends; failed = restrained ends but petrified begins.
Yep gotcha!
Hmmm should I check if I have enough battery on the potato laptop? 🤔
It's not that hard for a Gaze specificly, but if I want a template - where I could swap a creature (so DC changes) and add a third step (for example Restrained -> Paralyzed -> Petrified) thats where it gets tricky 😉
Well you could create the whole overtime effect programmatically in a macro on use. There you would be able to set the overtime dc to whatever you want
And it is the best kind of template actually 😅
It’s more of a global phenomena by now!
Oh, are we generalising?
Overengineered solutions to 5e edge cases. What a blast!
Hello!
I am having a problem with the module interface. There is no checkbox in the options that should, and I really don't know why that is.
I disabled all the other modules, but it's still like that.
I'm just here so I don't get fined
Can you quickly try without the localization?
I managed to solve this. The socketlib module was not activated.
Thanks, anyway!
@pulsar apex did it work after the update?
just finished the update. it got stuck on a loop trying to update some module that i didn't mean to install
it was the update
link the actor on the map, or open the actors sheet in the side bar, click prototype, and then link the data there, and drag him out anew
the artificer has class based reactions that midi was never prompting me for
so it was just waiting for the timeout
so its all working now?
yep seems so
k we'll chalk that up to probably it being just needing to restart, and the update fixed it accidentally
just a question btw. the full automation like this. do you ever run into trouble with features that require players to decide things before results of rolls are known?
I don't use full automation
infact I suggest turning it all back to what you had before if thats what you preferred
I'm one of the weirdos that just use midi for effect transfers mostly, I prefer fast forward to be off and for the buttons to remain in chat lol
I usually test for those
I try to write my code so there's only a few choices to make
if you go through midi's settings, and you don't know what something is, you can snippet it here, and ask and I'm sure 10 of us will reply pretty quickly with the answer
that's one thing that's killing me is i just simply don't code in java script. the foundry gui plus new syntax to learn is hurting my brain
Your reaction setting is set to show the attack total fyi, you can hide it on reaction prompts
it even hides it from the GM
I'm sure plenty of the guys in here will coax you along for midi syntax and macros and all that jaz, but if you want UI centric semi automation, I'm a huge fan of advantage reminder module, if you don't fast forward in midi, its far simpler to setup and it doesn't require a major in computer science
A lot of us have repos where we take the burden off of you for that
yeah but the repos are quite shallow in depth in v10 atm, missing a midi srd replacement
then you can always look at the code and learn from it
Yeah I am slowly updating all of my stuff
while releasing new stuff
Theres a small chance I might be on v10 around thanksgiving though! I get a week off from the table then and that might buy me the time I need to tweak all the v10 breakages
the newest midi has really got me longing for v10 now lol
I love me drag and drop simplicity
think i've written some artificer things, I did have one in my campaign for a tiny bit.
alrighty well Moto thank you for all the help and I'm sure i'll be back here tomorrow to figure out why the hell blade ward isn't adding resistance like it should. but for now i'm going to bed
my newb mistake I made with resistances was mistaking the midi flag with DR in it for the system flag with dr in it. the system flag is damage resistance, the midi flag is damage reduction.
in v10 system flags usually say system.dnd5e.something, midi flags usually have midi in the name.
-_- well at least now I’ve got a place to start because I definitely used the midi flags
thats for things like heavy armor master
I think we all make those mistakes, rookie mistake is all
If you do end up revisiting this, could you please include conversion of pact slots?
I saw that lol... why all the sorlock hate 😆 The one Tim added into the Midi compendium is just Zhell's with a couple of extra lines at the start – so nothing new on the pact front
I don't allow features with pact slots at my table so /shrug
I swear I play my slots responsibly
I could see if I push it in afterwards, if that'll fix it
I don't have time tonight to work on it, I gotta design a couple maps for tomorrows session
last minute push lol
should, my players are exploring a maze dungeon, which can be less of a maze if they remember to use the amulet they stole
Think i need to make my shadow creatures deadlier
I've been searching for a while but i don't seem to find an answer, just people assuming what it does, so: what is fast forwarding something in midi?
the advantage/normal/disadvantage and crit/normal popouts when doing an attack. If you fast forward in midi, it assumes with flags what you would have chosen and never shows you either window. In core, you can fast forward by holding down buttons to set your choices without the window popping up(you can still do it in midi too but midi can detect automated methods and know for you).
Its important to understand that auto attack and auto damage is not the same thing as fast forward. Those settings are the skipping of having to press the attack and damage buttons in the chat card.
i thought auto attack was fast forwarding, so that message makes it clear
I prefer not to fast forward at all cause I use a module called advantage reminder where I offload tons of info for the players in the popouts
Playing around in v10 and I notice Wasp has this feature in Item Piles... I'm sensing Zhell's hand in it for some reason 🧐
Only if the merchant’s shop has a … Door
What can I say. I am a wellspring of good ideas and a river to my people.
But nah, IP always had a feature to execute a macro when interacting with piles, this is probably just an extension of that.
I don't currently use it 🙂
It’s incredibly well thought out and feature rich, I take my hat off to Wasp… can’t wait to start using it properly
Our beloved babonus has been granted a snippet by the Google algo lol
Step 1, implement the alchemist…
Back to the AD&D topic ... ban all but THE 4 CLASSES
any alternative to dnd5e helpers that works with midi to calculate cover?
Bring back the Acrobat
Levels cover calc (a patreon subbed one I think) for now
Is it behind the patreon or not? 🤔
There’s a new module imminent that will fill that gap, hopefully not too far off… Simbul’s something
thing is in the description of midi's settings for its integration with cover calculation it specifically mentions helpers in order to calculate "4 points check"
Yeah that’s a bit misleading for v10… tposney will remove that reference eventually no doubt
Maybe he’s waiting for the Simbul module and will fix it then
a few modules were lost in the v10 update, and the mod authors are all workin hard to bring them back to us, dndhelpers, active auras, and active token effects come to mind
midi srd to a lesser extent, cause you can just install a v9 and bring them over manually via copying the compendiums to the world.
Question for ones that hide Item Details on chat card from system settings and MidiQOL settings.
Do you think that creating a listener that would open a pop-up description on click (or render the Item Sheet directly) would help?
The click would be on top of the Item's Icon on the chat card created
And/or show description on hover 🤔
I used to, but I trust my players to roleplay so they collapse by default and I don't hide GM stuff
We have them collapsed by default, but it is handy having it expand if needed
my players police each other and shame anyone who peeks lol
Are we getting a Bugbear’s Little Details module?
Nah I mean it doesn't make sense a module to do that. A PR would be enough 🤷
Hey wasn’t there some chatter about another mystifying module a while back… any movement on that? Or was it dnd5e?
There is a PR for the system for hiding details on unidentified items.
Well it looks suspiciously like a PR 😎
Looks like a third-pact-caster in the future to me
that's some good sh#t
Is there a shorthand way of getting the result of a previous roll/workflow? I'm looking to implement something that will take care of features like Ancestral Guardian Barbarian's Spirit Shield or the Interception fighting style where one actor rolls some dice and subtracts it from the damage of the previous role.
My idea is just to snag the result of the previous roll, set that to be the minimum result and alter the roll of the protection item to include that limitation to something like min(1d10, damage) and have it apply that amount of healing. Open to suggestions for better ways though. I didn't see a way to have an actor react to an ally getting hit using the reaction processing.
Not a straightforward way at least.
You could use an Active Aura to "create a reaction item" on the allies for instance and link the uses back to the sourceActors resources etc
And the issue with workflows is that they won't be universally available, but instead on the local client, so you might not be able to tap into them.
Could get the info from the ChatMessage after the attack and use the "reaction" item to give back (with some caveats like what happens if you were supposed to stop some concentration damage)
Its on a different actor. The ally helps them
yeah, I didn't say automatic reaction
as long as you aren't a fast forward fanatic, it could work right?
Ah yeah, I thought you meant a reaction processed by Midi
fast forward breaks all the reactions anyway
if you auto apply damage just undo the damage and have the reaction fire if they didn't do it fast enough
I have fast forward on but things shield, deflect missle, etc seem to work just fine. It just pauses for a moment waiting for the target to select a reaction
Haha that is a good point
reactions from other players have no time to do anything
emboldening bond 2.0(reactive bond) another reaction that can't happen when fast forward is on
Hmm I guess its a choice of functionality vs time saving. The fast forward rolls really feel like they speed things up and my group is used to it from using better rolls all the way until v9.
Decisions, decisions
you could also reimagine the reactions that are for others by making EVERYONE have them
I'd just handle interception and reactive bond manually, but thats cause I can't even write a hello world script
Yes I thought about that as well. My first idea was to have an aura that grants the reaction item, the target could then ask if its ok to use the reaction, they use it, and the aura would get turned off until the start of the source actor's turn. I think this is what thatlonelybugbear was suggesting actually.
Someone did have a journey writing a world script to impose disadvantage on attacks towards allies here, so I imagine it is possible to fully automate, but I don't think there's any quick swap solution. I want to say it was aspect of the hawk or something related, but I can't quite remember
wow, that new midi, if it infact works like that, active auras are gonna be nuts
@violet meadow What would the update effect as midi-qol looks like?
I think interception is the one where you roll a dice and reduce damage?
It is, it's the concept of a thing. Being able to use your reaction on something happening to an ally.
It was for the Hawk Totem of the Shepard Druid
let efUpdates = ({
_id: drainEffect.id,
changes: [
{
key: "data.abilities.str.value",
mode: CONST.ACTIVE_EFFECT_MODES.ADD,
value: `${drainVal}`,
priority: 20
}
]
});
console.log(efUpdates);
await MidiQOL.socket().executeAsGM("updateEffects", {actorUuid: targetActor.uuid, updates: [efUpdates]});
}
Yeah sorry if not clear
Well, this looks like right rabbit hole to jump in! Thanks!
@unborn star can you ping me here, or reply to this msg, with what you want to do for the AC based on HP, so as to be able to find it easier?
Hi @violet meadow .
The ideal would be to be able to set up certain triggers, which will react to certain percentages of HP that a specific tokens has, compared to its max HP.
Example.
At <50% HP it gets -2 AC
At <25% HP it has its movement halved.
And so on. I know how to make these work in CUB, but as far that i know, these will affect all creatures?
v10?
oh, no I haven't updated, since two of my friend lost their worlds doing that. Still rocking my trusty v9 - build 280
No backups? 👀
They had their world folders backed up, but for some reason v.10 refused to load them
But the worlds lost in not a common thing. Did they ask around in #1014592525161467974 ?
They would probably get sorted
Or one got it to run the world, but all Tokens and Scenes were ruined
I think it must have something to do with the modules they used beforehand, that are most likely not updated yet.
I tried the same when i went from v.8 to v.9, where all my mosters and characters got screwed up majorly, since i used a certain module to alter character sheets in v.8
@violet meadow New issue, deleting the effect with midi doesn't seem to clear out the effect from macro.tokenMagic on it like a normal deletion would.
At some point I wrote the spirit shield macro, it was not fully automated and you had to not auto roll damage to allow the barbarian to use its manual reaction to prevent damage. It was using :
- DAE
- Item Macro
- Token Auras (visible aura to know which token could be targeted by the spirit shield)
- MidiQOL "on use" actor and item macro
Now use Template macro and Token Attacher to move a template around and good to go for automation 😄
To be honest with the new DAE macro.createItem all these could be even easier to handle (giving others premade items)!
Make a quick check. After you update the effect for the number of duplicates, are there tokenMagic flags on it (I think it uses flags at least)
Were any also in the first place? Need to open up Foundry to remember how does this work
But how would you interrupt the midi workflow to allow the time to use the reaction? It would need midi to support this directly or a world script that registers on midi event hooks
I don't see any flags from tokenmagic on the actor.
There is one on the token
The Active aura or some other sort of modules combo, would need to create on the allies of the sourceActor a reaction item (must be using normal MidiQOL reaction workflow and probably make it a 0 reaction one).
If the attack triggers, the target would ask (verbally) the sourceActor OK to use?
If yes, they use it.
A macro onUse on that Item would take care of "consumption" of the correct token.actor's reaction
Just delete that too if it still exists, after you delete as GM the effect
Can't you create a DFreds custom Mirror Image effect and do that easier? 😅
forgot to reply <#1010273821401555087 message>
TL'DR an aura should be creating a reaction Item on all allies 🤷
But a Hook on midi-qol.reactionProcessing if something like that is available would make it easier 🤔 !
Surely tokemagic has a function to delete effects off a token
TokenMagic.deleteFilters right?
sounds about right
What do would I pass if it wants a placeable? Can I just give it the token?
yeah the token should be fine. You can provide a filterId too iirc
Otherwise it would delete all from the token
yea
So I do remember that at some point in the workflow an Array of available reactions is being assembled.
If you could inject others in there based on a findNearby function logic, it could do it
Hmm but then you would need to create an ephemeral Item to roll, or use some socket to roll an item as another client or whatnot
How would you guys go about making an effect that retrieves the last dice rolled by the player and uses that number as the modifier for the effects?
Mostly
Wrap the roll in [[ and ]] in the effect.
If you want it to always be the same number
aka
[[1d4]]
Midi is already doing that because the reaction is already done during another token’s turn. Also the current method that handles reaction in midi would need to be updated to allow the reaction the be on another token than the target… which is enforced right now
Something like this?
Keep in mind you'll have different rolls between the two of those.
Yeah fair point.
This discussion actually prompted me to try creating Reactive Damage effects utilising Hooks like midi-qol.RollCompletesome actor update and moving away from what I was doing before with Active Auras.
Like damaging creatures who attack you within melee range after their attack
Unless there is a more clever way, I think you'll need to sync up their values with an itemmacro.
@jagged cairn
Lost me there, how would i go about that?
You could use a macro to roll and create the effects when you use the item, based on the roll.total
Is there a @ thing for the item damage rolled?
@damage
But when would you register the hook? In a world script?
I think from the actual Item with a DAE macro.ItemMacro on an effect Transfer to Actor on Item Equip 🤔
You would need to roll the Item every session though like so hmmm
or actually every time you connect
(or you can't go wrong with an Effect Macro/or DAE trigger per creature's turn, that would check for an existing hookID saved in a flag on the creature and if none present with that ID, renew the Hook call)
Very nice since they can see the number they rolled before applying the effect
Oh I think my Fire Shield just got much more straightforward to implement! testing!
Couldn't figure out the token magic filter thing. So I just decided to make my own macro that's tagged as run as GM.
let actor = args[0];
if (!actor) return;
let effectName = args[1];
if (!effectName) return;
let effect = actor.effects.find(eff => eff.label === effectName);
if (!effect) return;
effect.delete();```
function deleteEffect(actor, effectName) {
return game.macros.getName('Chris-DeleteEffect').execute(actor, effectName);
}
yeah why not 👍
Less easy to share, but whatever