#MidiQOL
1 messages · Page 23 of 1
that is a v10 manifest
Do you have enough resources that this consumes?
yes, i know
Yeah 5/5 superiority dice.
but it installs a v9 version
how do you know its v9?
Nope, just verifying that I also just pressed the fullest of automation in midi and it still doesn't seem to work. I did get a new error, though. Same one is also there, this one also appeared
[Detected 1 package: effectmacro]
at Object.eval [as fn] (eval at executeScripts (modules/effectmacro/scripts/main.mjs:21), <anonymous>:8:46)
at Function.#call (foundry.js:724)
at Function.callAll (foundry.js:681)
at ClientDatabaseBackend.callback (foundry.js:12767)
at foundry.js:12715
at Array.map (<anonymous>)
at ClientDatabaseBackend._handleUpdateDocuments (foundry.js:12715)
at ClientDatabaseBackend._updateDocuments (foundry.js:12592)
at async Function.updateDocuments (commons.js:6128)
at async Actor5e.update (commons.js:6225)```
you gonna make me reboot in v10 aren't you?
That's just a number, like age
of course not, you're trying to help me, but i'm not demanding anything!
It's up to the developer to remember to up that :p
That doesn't change in the v10. Its in the manifest file
It should be fine
the very fact that you can see that in v10 means its ok
thing is that if i hit "update", it shows that dialog you see in the image
both of those forks are highly experimental, they have just fixes to make them barely functional in v10, and apparently they forgot to change the compatibility flags
I haven't followed the whole conversation as I was dealing with Fire Shield.
Are you v10 Foundry?
why does his version say 0.2.14, thats really old atl
Yes you are as I don;t see the prompt for Update Software
is that just the version primate started with lol?
Its fine. Just click yes on the popup
oooh its the version before the templates, makes sense
What is the issue? 🤔
yup
Just click Yes in the popup
neither of those urls are good though
Ohhhhhhh now I see. You hide the message for Rapier
it gets stuck at 100%
As in a private roll? That error message remains, even if I change it to a public one
Does the player see that message?
Hmm let me double check
what is the proper atl mr.primate manifest link, I have:
https://github.com/MrPrimate/Active-Token-Lighting/blob/main/module.json
and its not working for me
i think you have to have it start with raw.githubusercontent.com
instead of github.com
it installs the thing, but then you have the issues i'm finding
There's something buggered with my world so I cannot entirely chalk it up to you - reactions time out and never give a prompt to my player - but the damage calc etc. goes through and does no damage
ok I know what Teccam is doing wrong
hes trying to update a fork
primate purposely made his version old, so that when kandashi finally updates it, all the fork users can just pop update to get the real one
It works for me in my tests with your settings 🤔
so do NOT update it
https://github.com/kandashi/Active-Token-Lighting/releases/latest/
Also, going to the url this is using for the 2nd one (removing the /module.json part) this is what it shows, the dates being different than primate's
oh shit
you need to listen to us lol, stop going to kandashi's git page, hes not the author atm, primate is, you need to install the url you just gave to me, and ignore the warnings on the module page, and NEVER update it
sure, sorry! i'll try to fix the rest on my own
no worries!
again ... hit that button once more
Simbul’s Cover Calculator is out! Time for me to migrate over to v10 methinks
Hi ! I'm trying to create for my player (arcane archer) an entry for a "Seeking Arrow" attack.
I use Midi-QoL. I've configured this :
The issue is, when my NPC does a DEX save, and if he succeeds, the base damage (1D8+mod) are not divided by 2, and it's supposed to be...
Can I do it please ? and how ?
Well... It seems I managed to do it... It's not pretty, but it works...
If someone has a better way to do it, I'll take it 🙂 thanks !
I have to ask, what is the 0d1 in the first line?
I tried to put "base damage who are not divided" ... so something which is always "0" is good...
And for the 2 others lines, they are divided by 2 if DEX save is ok (and when the parameters are like my first screenshot, it doesn't work 😦 )
I think updating to 288 just killed my actual live session world
It doesn't like findLast on my end, I'll have a more thorough look later and get back to you why - my game is also acting weird though, reaction processing is happening but always timing out because it never shows a window to the player for the prompt
Hum is that the same issue with Aborrious?
Thanks, I missed this little beauty.
My player prefer the popup since they never got the hand of using shift alt ctrl.
But they still miss adv and disadv every now and then.
It had exactly 2 bugfixes and nothing else. So no it did not.
This will help.
before the update, there was just 1 login in the login screen, basic gamemaster. After tthe update its gained all my v9 login credentials /shrug
Simbul’s Cover Calculator is out now, not sure if it’s integrated with midi yet tho
... so... bug fixed?
Maaaybe, in my case it seems like it causes an infinite loop that spams the console tho
very nice
Aborious can you check on your GM account in console if you also get a maximum call stack size exceeded with socketlib and midi?
else I'll just report it to tposney on my lonesome, thankfully don't process reaction normally
A server restart didn't make any difference and I tried in different browsers, and the difference still remains, it pops up for the GM but not the player. (It only pops up for the GM if the player isn't logged in)
We have a session tonight so I am going to ask a player just to have a go at it before we start.
@violet meadow
@scarlet gale I'm not seeing range issues with active auras
I don't really have time to find the culprit before the session.
Same! Does the GM console populate with a lot of red errors?
(let me pop Krig's midisettings back in to check reactions)
Not those; try the full-auto setting
I put on full auto since I don't normally do reactions and figured that could be an issue with your item
ooh thanks!
Bugbear what happens if you inception the new midi feature
I'm kinda giddy to try it lol
drag the item the ae is in to the ae lol
I get no errors at all in the GM console.
is there a fix for the thicc health bars yet?
2.1.0
For some reason it doesn't pick up the reaction like so 🤔
It just waits for the timeout, no errors
Yeah, mine did no errors on the player, on the GM I got the stack call trace thing
handlebars?
is-binary.js:24 Uncaught (in promise) RangeError: Maximum call stack size exceeded
[Detected 2 packages: socketlib, midi-qol]
at gt (is-binary.js:24:17)
at gt (is-binary.js:45:63)
at gt (is-binary.js:45:63)
at gt (is-binary.js:45:63)
at gt (is-binary.js:45:63)
at gt (is-binary.js:45:63)
...
OK so it errors out on the client that initiated the Attack
I take that back, I logged in as GM and Player in incognito rather than the other browser and yes the GM console gets one error and it is a very long one.
Did you copy a non-midi macro or something
It is just reaction damaged.
Nah that's a plain SRD item attack and the process of the reaction gets nuked
I imagine some sort of serialization issue as it happens on another client from the one that needs to act on the Reaction (...)
But why not with my settings testing Nope it happens. Hadn't noticed before
I don't have any of the SRD modules installed since going to v10, the only Kandashi modules I have are AA and ATL due to a tweak someone did.
Not the SRD modules. I was just commenting that the attacking item was just a Fire Bolt found in the Items (SRD)
is there no way to ping mrprimate?
Anyone else get this error with DAE & MidiQol? Concentration Convenient effect is not being added when the player casts a concentration spell - if I disable DAE, then it works as expected (but other things stop working of course)
Running Foundry v10.288, MidiQol 10.0.16 and DAE 10.0.10
Edit: Adding some details - running on an RPI, tried rebooting server and clearing cache to no avail - seems to be a DAE/MidiQol interaction
Edit2 (FIXED): Just in the off chance this happens to someone else, it turned out my Simple Calendar module was stuck on a really old version - reinstalled and everything's working as expected. Find the Culprit FTW.
I made an issue for the reaction thing
@short aurora Have you tested the Fire Shield will all reactions off in your world?
He has is own server, you should ping him there
MrPrimate has his working forks pinned in his discord server. #759781688011522072 message
ask him where we send issues with active auras and active token lighting
cause AA is pretty unuseable in its current state
i've worked out some of what's going wrong
Really? I rested out that latest AA one last night and it completely fixed the issues that I was seeing with Spike Growth, and my Pass without Trace aura was also working perfectly. I’ll check where he wants any big reports.
hmm i should send it as mp4
You can post anything here https://discord.com/channels/759781688011522069/761196953232211998 for MrPrimate’s forks
this is Aura of protection
Or here https://discord.com/channels/853038770428051496/853038878537547798 for Kandashi’s discord
whenever it works propperly it's when i press "disable movement animation" button in drag ruler controls
i have some insight in this issue, can you send me a discord invite to that server?
The token update lags by one square. It could have something to do with the code using data in places instead of system
In the first update something is messing up and the shim is not being used correctly. On the second update, the coordinates of the new "previous" space are updated being used.
try making the aura 11' feet
or switching to 5/10/5
feels like a pixel vs grid distance and/or < vs <= distance
hmm will try
could totally be the spam in the console too. If it's bad it can totally make calculations chug
or, maybe 13 ft (just over half a square over 10)
There is still an issue with the macro and the includes on the... effect macro start I think? Will peek harder and return
I installed that silencer module, and the load times are crazy fast to get into session, have no idea if that solves what you speak of also or not
seems to work perfectly if you move with keyboard keys
its just drag and drop that freaks out
that also works
btw using this while moving the token with the aura also solves the issue (drag ruler module settings, by default the key is alt)
in that case, the distance measurements are just not quite fitting the nonsense that is a 5/5/5 grid
why does moving feel laggy though in v10? its like I have a really high ping to the server
the machines are literally next to each other in a room wired together
v10 adds a much slower movement animation, you will need a module to change it
i have to say, i prefer 5/10/5, but i didn't change to it because i thought it wasn't gonna work with active auras. Turns out i was wrong xD
seems like there is input lag though
pin in #macro-polo
or Zhells pin
can head up to #troubleshooting if you want to dig into this, after disabling all modules
stil trying to sus things out with modules on
I like how my v10 server has to have more modules installed than my v9 server lol
'has to'
(door macro's fault)
@vast bane do you have EM and DFreds CE sorted in your v10 server?
wish there was a way to set M to always toggled on from MLD so that the tokens moved instantly always
world script, animate false
easy world script
can it go in worldscripter?
Ah you have it almost ready in the pin
literally just add it to the pin's script
if it never animates then it never breaks active auras
my world.json file only has this (and then all the ddb packs for some reason) it just closes brackets after that, no "esmodules"
I just need the hook, I'll pop it into worldscripter module
Check the pin
whats missing in the pin that I need?
Not you
I never ran the macro to fix icons, and they are all fixed for me now after the foundry update, was that one of the things in 288 build?
oh, sorry, didn't read the last part. Do i write "esmodules": [ "./my-script.js" ], under "verified" (and before the })?
The order doesn't matter, as long as there are no trailing commas where there shouldn't be
gotcha, thanks!
i assume the script has to be on a file called my-scripts.js, right?
You can call it Steve for all it matters as long as it matches
just has to be a .js file
i guessed so xD thanks!
i think i prefer animate false, how do i do that? just write animate false on a .js file?
Check the pinned message by Zhell in the #macro-polo
What is? Aura of Protection?
yeah with the worldscript Zhell just made us in macro polo active auras performs perfectly for me now
👀 What is create token lol so many new goodies in v10 midi
... the permission to create a token?
Those allow the adding of items and spells to a token which then disappear when the effect it is tied to expired
The created item on a DAE on it, as a new macro.createItem? But why 😄
Its a test bed, for science, thats why! Excelsior!
Stop that and check if the Fire Shield works for you
where is it?
need to go get effect macro
Get Babonus, Door Macro, Template Macro now that you are on it too
Nope
does fireshield give a bonus to hit dice, attack rolls, damage rolls, save DCs, or saving throws?
oh I wonder if the light status icons work in dfreds
(freaking cold fingers...)
Big changes made to the entire canvas tbh
(canvas: the "map")
do you think this is a performance hit?
No.
I have to be weary cause I have a player with bad hardware
If anything, it should be an improvement.
don't activate AA then 😛 (both animations and auras)
had me wondering which one, he already has animations off on his side
Dice3d with lots of effects and high quality 
Some background computations aren't as taxing as actual visual animations.
I bet you if I made 2 inceptions they'd lopo on each other
So don't install Visual Active Effects /s
🤌
Oh come on, add the entire spell description in flags.visual-active-effects.data.content
what other things do I need to do before I use this bugbear
my blessing
don't
me, it looks rad as heck
Not very SRD friendly 😂
Fire Shield is SRD no?
Oh wait, it is, then you could put the entire thing 🦐
unlinked?
I mean... just get the description from the item 🤷
It's what I do in CN
Can you access the description dynamically from an AE?
yeah unlinked
Something creates it, right?
but that means it can't be used on most of the dm's casters
Well usually I create it, by hand 😂
Can you try on a linked one just for the heck of it?
Well if there is no item reference...
linked the actor, no errors, no prompts
Applied the damage on the target?
I usually put them in CE, but I was wondering if there was a "generic" way to do e.g. @description
@item.description.value is in the item's roll data, sure.
dunno your modules or how you'd connect the two
So not accessible from an AE 👍
Wait you cast Fire Shield and you are getting prompted for Fire or Cold, correct? By DFreds
nope
Yeah it expects DFreds CE to have applied something that currently isnt probably
Yeah that's fine cause it applies it from the macro (at least it should)
The includes error seems similar to the one I'm getting, I don't think the way the messages are fetched is working proper
yeah probably
Do you want my settings export?
Can you check something? Give in console ```js
game.messages.contents.findLast(i=>i.content.includes("<div class="dnd5e chat-card item-card midi-qol-item-card""));
Does it return something an actual ChatMessage??
the last message is a midi damage application card fyi
No that's the one I need as shown in the screenshot
I think it's actually the secondary effect deletion on the effect delete macro, but I don't understand why, because breaking it up does seem to trigger the conditional
Hmm so for both of you, when you cast the spell, does the actual DFreds CE ask for which one to apply?
Fire or Cold?
Mine does after I remembered to toggle effect macro
my effect macro is brand new out of the box was I suppose to do something with it?
And your error was the .findLast is not a function?
I get no prompts nada, just the spell cast in chat and a fireshield buff on token and then errors for when something attacks it
I cannot replicate the .findLast error I got earlier, now it's just that includes being undefined.
line 17 or somthing?
18 and 5 for my includes
I edited my macro to debug, sounds about right line wise
@molten solar how many lines does the Effect Macro add when wrapping?
Like... 2?
Took me a sec, I was about to newspaper you for suggesting I used libwrapper
OK if (sourceActor.effects.find(eff=>eff.getFlag('core','statusId').includes("Fire Resistance"))) damageType = "fire";
hmmm
I think that .includes is bogus, it's the same thing erroring on effect deletion
It also does not work in console
add a ?
Yeah add ```js
if (sourceActor.effects.find(eff=>eff.getFlag('core','statusId')?.includes("Cold Resistance"))) damageType = "cold";
if (sourceActor.effects.find(eff=>eff.getFlag('core','statusId')?.includes("Fire Resistance"))) damageType = "fire";
It errors out when it tries to read through effects that don't have a status id
it will return undefined damage but should continue
sourceActor.effects.find(e => {
return "Fire Resistance".includes(e.getFlag("core", "statusId"));
});
Works without the damage stuff on my settings now, but I think it required more automation anyway for that to work, right?
Removes the effects correctly and everything
No console errors
yes but it should grab the DFreds one so I am a bit stumped. some setting there probably
What does CE's do?
The reactive damage will trigger when you apply the damage of the initial attack on the caster
Ooh, it do, well done
Mine does exactly what I was expecting it to do. These are defined. 🤔
I speak goodeth english
We have ... partial liftoff then 🥳
I'm about to leave to go pickup my daughter from school so will be out of the office for a half hour
Later tonight for me. F@@k I am late..
Did someone let primate know that a really decent workaround for active auras is that world script hook to disable animation on movement?
yeah. Are you in Kandashi's discord?
gearheads?
btw where do i report a bug for that? booming blade macro ALMOST works, except for when the target moves, it's the caster who takes the damage
i assume it has to do with something from there
looks like the target token is the same token casting the cantrip in there
Is there a way to modify scalars in an item? For example, a fighter with superior technique gets an extra exploit die or, in my case, an class feature that increases monk's damage die and ki. Do I make a DAE with a macro to modify the scalars or is there a better way I'm ignorant of? (I'm ignorant of a great many things lol)
any idea how to change it?
I never used to get scrolling status text with AA on my pally aura but now there is, just like this. What’s changed 
They are all stored in the class item. Just change them there.
Foundry feature i believe
Scrolling status text happens on ActiveEffects that have a Status Id.
If you did not have it before, then the previous effect did not have a status id.
It has been a feature since at least v9.
Yeah I have status text for other AEs but not ones applied by AA… which I actually like. How did that come to be? 🤔
I just said? 🤔
Having them popping on and off continuously with the paladin moving is annoying
Just don't use effects lol.
You don't need to add +CHA to saving throws if no one is making a saving throw...
I have a subtle TMFX glow when tokens are in the aura
Of course... 
It makes the paladin feel special!
Can't you just tell him his mom loves him or something
His mom is probably dead, cliche backstory
ther eis a setting in active auras for it and also a foundry setting in general core
tmfx in pally aura is evil, we tried it, it got out of hand lol
Ah thanks the AA one must have reset. Nice to get a helpful answer, not tech jargon
What I did was just give my paladin a jb2a aura animation to visualize the range
I just forced the aura's ae to show on tokens
(difference is I don't use AEs for it)
I’ve turned off a bunch of AE icons with Token Variant Art… I’m using different tokens and fx for effects instead
Was ruining my feng shui having a stack of icons on tokens 24/7
I'll add to this - I did see a post mentioning something about concentration and the same versions of MidiQOL and DAE that I'm running (not sure which Foundry version) - #1010273821401555087 message
However, I'm not sure if that's related or not as my issue is concentration not being added, and the above issue is it not being removed.
Also tried linking and unlinking the token, and same issue if the token is linked, unlinked, and after being toggled linked and unlinked.
I do tend to create subtle token auras around ones with Auras
No fx on targets, less visually compelling, more performant though 🤷
I turned off tmfx cause the animations would wig out when the tokens are not on the active scene
Yes but I was hoping not to have to do it manually so it could work across worlds.
I tried that with A-A but we had to keep turning it back on. Maybe that’s fixed now
I meant a generic token auras module provided one.
I am trying to move away from Active Auras (as an exercise to find also other ways to do it) so will be creating some more features over the next days with template macros + bab to test. Its intriguing 😁
I’ll watch your career with great interest
Unless you rep all of midi srd aa is gonna be the mainstay
even then I got so many monsters rocking aa abilities
This reminds me I should probably submit Template Macro sometime soon...
everything is a mainstay until something better or more performant/streamlined comes around!
So does Mr Primate… I think AA will be around for a while
Yeah, same with a bunch of modules, like warpgate, sequencer, I could never swap those out just cause of all the stuff I've built with em
Advantage reminder also
if someone comes along and makes a new warpgate, they have my full support 🤣
Someone is making a new warpgate
could you possibly sway them to use the same formatting so that our macros all work with the new thing lol
(but I hear they're being really slow about it, where are my tradeable mutations, Badger!???!!)
i shall return to v2 with a new, broader horizon of foundry knowledge
(but making money comes first 😅 )
mood
Ok my attempt to blow up this test build:
One item that has an ae that makes item 2, item 2 has an ae that creates item 1
Absolute madlad
make sure you know where to delete it lol so don't use a proto actor
Has someone tried Simbul's cover integration with midi?
Yeah
If it integrates well i mean
Works by adding an AE on the attacker from some quick testing and works fine for auto calculation
It is more or less the same like dnd5e helpers. Tposney will need to take a look at some point to integrate it as the predecessor was
Does it count same size tokens as cover?
Not sure. I think it does
It doesn't have the extra cover calculation from kandashi's yet
all tokens are considered half cover by default, per RAW
Sweet! I'll try it tomorrow
How do you get that "pop-up" to use the effect before the roll? Is it a module?
The configuration dialog is core dnd5e. The button for Divine Fury is Advantage Reminder.
Turn off fast forward
So when you use DAE's macro.ItemMacro flag, the one that gives the args[0] == on/off - Is there a way to get the workflow attached from the last arg there? None of the fields seem applicable
Meaning, how do you do an effect that gets used with that pop-up if im explaining correctly
Like bardic inspiration fe
.
What do you mean exactly?
Workflows are only available when there is an ongoing one. What are you trying to do?
Like you do when you 'get' the workflow from args[0]?
actually I'm dumb nvm I can do this in a different way
what I meant is "normally" you can get the workflow from MidiQOL.Workflow.getWorkflow(args[0].uuid) in an On Use Macro but DAE's macro.ItemMacro flag (the one that calls the item macro on creation or deletion) has different args, so I was wondering if you could get it from the last arg there (args[args.length -1]) which has some extra info about the interaction.
but like I said I can go about this in a different way
In general the args[0].uuid is the Item.uuid that is being used at any given time
so for completeness, I'm updating stuff to v10 I'm also trying to refactor a lot of the old stuff that I wrote:
The macro needs to read the targets and some other info from from the workflow after an attack has happened. Before I was using this annoying system of checking the chat messages so I was trying to refactor that into something more simple but uh seeing as the workflow is already complete by the time I'm checking, it seems like that's not possible
When you mean after the attack has happened, is this after completion, after Attack Roll, after another item has been rolled?
You can get for some time a previous workflow. May or may not be on the client by the time you search for it
And for sure needs to be on the same client (at least for now)
eh, for the way it's currently set up, after the active effect is removed from landing a hit
Can this happen after several rounds or at the same round?
will always be same round
I mean you start the workflow, add an effect that affects 1hit and the hit is part of the same workflow?
Yeah I meant to say current combat turn, but my AD&D years came to surface
I think the way I have it currently set up prevents this, I know how to switch it around but too lazy
problem is that the effect and the weapon attack come from different items right now. At least I think that's the problem that will prevent your suggestion
OK can you give me an example of the workflow?
eg a feature adds advantage on the next attack. You attack and the effects is deleted. What do you need to access?
The targets are always the args[0].targets or args[0].hitTargets when you access them from an onUse on an Item or an Actor macro
Make an melee weapon attack; if you hit, you deal your normal damage and 2d6 additional damage. In addition, if you hit, the first successful attack that each ally makes against the target deals 1d6 additional damage until the start of your next turn.
This is the text for the feature.
The way I have it set up right now is there's an item that applies the 2d6 buff which disappears on hit and calls its own item macro to set up the other stuff.
But the weapon attack is made with any weapon in the inventory so currently the two workflows are completely separate
babonus could do this
I know there's a booming blade macro floating around I can rip code from which will let me combine the two but like I said too lazy :p
the first successful attack that each ally makes against the target deals 1d6 additional damage until the start of your next turn.
Once per ally? 🤔
yeah once per ally
you don't need to find a solution I already have one working, btw
I am an intrigued bugbear now. I will poke around a bit
yeah but I've already been using this macro for months now 🤪
Ohohoh should I make a babonus one or at least ...sleep trying? Are you on v10?
now switching over ya. Trying to fix whatever's broken before my DM switches
if it makes you feel better I will send the module to my DM because he'll probably find it useful
Transfer an effect, and let the effect have an unlimited range aura that gives enemy targets a +1d6 damage bonus with items that have an attack roll.
And also require that their target must have an effect with a unique status id
Give the item's effect the status id 'herp-derp' or whatever, and put that in the babonus filter
man all these inputs are getting out of hand...
Oh its going to be wonderful, just you wait! It will have also expiration and stuff 😄
Now let me make that BaB and log the effect to grab all its data
The flag can get pretty big. 😅
I see...
It's not gonna be an aura though cause we need it to be only once per ally, so unfortunatelly it needs to be created as an Effect on all of them 🤔
Pff lets see if it works and I will think it through later
(hope you dont have many allies :D)
Fair warning, as you already have a working macro, I am using this as an exercise on some new modules interactions. If you see 22 modules as prereq don't be alarmed 🤣
Zhell template macro 0.0.3 doesn't have the latest animate:false fix right?
nah.
... is Monaco even updated for v10?
I can push a quick release, I did some minor edits
0.8.9 I thought it fitting to use it also in 10...
That would be nice. Trying to finish up my macro for spike growth.
You disappoint me.
Man it works .
Oh btw I forgot I was going to thank you for EffectMacros Zhell. Since learning that you can call the macros stored there from anywhere my ability to do hacky shenanigans has increased exponentially
I'm a pretty big fan of the Ace editor, I just wish it worked in more places.
@undone sorrel so the premise is to use an Actor onUse for the whole thing.
You activate your feature that creates an Actor onUse macro on the ... actor (DAE shenanigans with MidiQOL flags.midi-qol.onUseMacroName)
In that one you can check if an attack hits, do the extra damage and after that 'send' your gift to all allies as an AE you create in that macro, against the specific target of the attack.
0.0.4 out now
also fixes the fact that... "when created" template macros just plain did not work due to a Foundry issue somehow
Oh interesting
wait is that the issue with the dnd5e template ability whatnot?
Huh?
I remember the function not...
(is he drunk?)
Found it ```js
const template = dnd5e.canvas.AbilityTemplate.fromItem(item);
this was the fix, which is a tiny built-in function (sync) that I run on the template before running its macros: https://github.com/krbz999/templatemacro/commit/7848b67c51372cbd96632f42522eff4050222b46
What was the issue there?
So you just need to refresh it
Yeah _refresh sets its shape property
which is undefined initially for some reason 🤷
hide it before moto sees this...
pffff, what he gonna do? go back to v9?
Spike growth with template macros.
Pretty happy with how it works now.
I should probably make it work with not 5 ft grids.
¯_(ツ)_/¯
Drag distance is implemented or keys movement?
Can you paste just the macro?
Stayed / Entered / Left respectively?
yea
(too small on my phone... I saw the titles too late)
I figured lol
lol sorry Zhell
small one, not even there, noone can see it
I wanted it to work with midi concentration checks
Long movements over weird diagonal angles can sometimes round funny
But messing with measuring grid spaces was hurting my head
So drag ruler kind of does the calculation for you, or better did at some point iirc. Let me find my macro
That would be nice
Now it gets shortest distance between start and finish correct?
yea, if you move multiple times such as with drag ruler it fires a new movement trigger after each stop
So that shouldn't break it
doesn't do anything for me 🤔
damage?
I replaced it with the core method
Install midi
oh
You have animate:true in the worldscript?
and if I hold alt it doesn't do the damage
You got something setting it to true then
Works pretty well after fixing it 👍
I think my next thing to do is make a darkness spell that doesn't use AA
Found one bug tho
go on
if you move out of the area in a straight path, going through only 3 or 4 spaces in the template, it seems to count 1 more
(dragging)
Yea... I really need to figure out a better way to measure the distance, diagonals really mess it up.
nvm im dumb, it's the "leaving" macro lol
The spell is weird though, like if you’re standing just inside the edge and move out, should you take damage? You didn’t travel 5’ inside the spikes
assuming you're in the center of your grid
you at least went through 2.5 ft of it
and dnd always rounds up
so
¯_(ツ)_/¯
close enough
doesn’t it always round down?
oh maybe
it do
guess I should fix that
I’m in favour of more damage
Honestly I kinda don't want to touch it
since rounding up works better for diagonals for distance.
So what I could find now (my filing system is like a messy bugbear's lair) from v9 in combat ```js
const combatantCurrentId = game.combat.current.combatantId;
if (combatantCurrentId != args[0].tokenId) return;
const combatantCurrent = game.combat.data.combatants.find(i=>i.data._id === combatantCurrentId);
const currentMovementflags = combatantCurrent.data.flags.dragRuler.passedWaypoints;
const currentMovementflagsLength = currentMovementflags.length;
const lastMovementFlag = currentMovementflags[currentMovementflagsLength - 1];
const diagonals = getProperty(lastMovementFlag, "dragRulerFinalState.noDiagonals");
//if (diagonals === "0") {
const movedSquares = lastMovementFlag.dragRulerVisitedSpaces[lastMovementFlag.dragRulerVisitedSpaces.length-1].distance;
//}
console.log("movedSquares:", movedSquares);
That relies on having drag ruler right?
Only problem is that I can't use that, since I need to get the length from the side of the macro to the end point
The diagonals were messy
not the whole movement
let intersectionPoint = quadraticIntersection(previousTokenCenter, currentTokenCenter, template.center, template.shape.radius, epsilon=0)
I need a way to convert from arbitrary coordinates to grids passed through
Yeah but I now wonder what the v10 Drag Ruler does 🤔
it wouldn't have any reason to care about a partial movement
That would get me only the last segment of the drag ruler movement
Someone a few days back said foundry had a function I can likely modify for my needs, I just couldn't figure out where it was at
Your last segment doesn't mean it's at the edge of the template
you can go into it from 40 grids away
but I only need the parts in the circle
hence the quadraticIntersection
I don't disagree, I was just trying to remember what the snippet was doing
ah
Ideally I'd like to look at this mentioned code
And see if I can make use of it
Does drag ruler account for difficult terrain or is that another module?
Another module that hooks into it IIRC
Terrain Ruler
Zhell might have use of this: #1010273821401555087 message
I don't know how I'd implement it, but the dev said it does the work of finding if a move goes through a template
Which would help for making a moved through but didn't end in template function
I won't have the time to look at it this week 😦
Create the function, create the segment and feed it to the function
_highlightMeasurementSegment(segment) {
const {ray, distance} = segment;
if ( distance === 0 ) return;
const spacer = canvas.scene.grid.type === CONST.GRID_TYPES.SQUARE ? 1.41 : 1;
const nMax = Math.max(Math.floor(ray.distance / (spacer * Math.min(canvas.grid.w, canvas.grid.h))), 1);
const tMax = Array.fromRange(nMax+1).map(t => t / nMax);
// Track prior position
let prior = null;
// Iterate over ray portions
for ( let [i, t] of tMax.entries() ) {
let {x, y} = ray.project(t);
// Get grid position
let [r0, c0] = (i === 0) ? [null, null] : prior;
let [r1, c1] = canvas.grid.grid.getGridPositionFromPixels(x, y);
if ( r0 === r1 && c0 === c1 ) continue;
// Highlight the grid position
let [x1, y1] = canvas.grid.grid.getPixelsFromGridPosition(r1, c1);
canvas.grid.highlightPosition(this.name, {x: x1, y: y1, color: this.color});
// Skip the first one
prior = [r1, c1];
if ( i === 0 ) continue;
// If the positions are not neighbors, also highlight their halfway point
if ( !canvas.grid.isNeighbor(r0, c0, r1, c1) ) {
let th = tMax[i - 1] + (0.5 / nMax);
let {x, y} = ray.project(th);
let [rh, ch] = canvas.grid.grid.getGridPositionFromPixels(x, y);
let [xh, yh] = canvas.grid.grid.getPixelsFromGridPosition(rh, ch);
canvas.grid.highlightPosition(this.name, {x: xh, y: yh, color: this.color});
}
}
}
Oh wrong link in the reply
I think I should be able to adjust this to fit my needs
thanks for finding it
what's the context of the segment
specifically is the distance just the pixel distance?
I could probably just have it use the ray distance if so
Make a PR for template macro 👍
function measureSquares(ray) {
const distance = ray.distance;
if ( distance === 0 ) return;
const spacer = canvas.scene.grid.type === CONST.GRID_TYPES.SQUARE ? 1.41 : 1;
const nMax = Math.max(Math.floor(ray.distance / (spacer * Math.min(canvas.grid.w, canvas.grid.h))), 1);
const tMax = Array.fromRange(nMax+1).map(t => t / nMax);
let prior = null;
let gridDistance = 0;
for ( let [i, t] of tMax.entries() ) {
let {x, y} = ray.project(t);
let [r0, c0] = (i === 0) ? [null, null] : prior;
let [r1, c1] = canvas.grid.grid.getGridPositionFromPixels(x, y);
if ( r0 === r1 && c0 === c1 ) continue;
let [x1, y1] = canvas.grid.grid.getPixelsFromGridPosition(r1, c1);
gridDistance += 1;
prior = [r1, c1];
if ( i === 0 ) continue;
if ( !canvas.grid.isNeighbor(r0, c0, r1, c1) ) {
let th = tMax[i - 1] + (0.5 / nMax);
let {x, y} = ray.project(th);
let [rh, ch] = canvas.grid.grid.getGridPositionFromPixels(x, y);
let [xh, yh] = canvas.grid.grid.getPixelsFromGridPosition(rh, ch);
gridDistance += 1;
}
}
return gridDistance;
}
Ta da
measures the grids you went through from a provided ray
looks accurate
Neat! If you can fix it up to take a TokenDocument and its start and end positions I could add it to the API
and maybe return an array of objects? 🤔
easy enough
[
{template: "some id", distance: 4},
{...
]
something like that. An array of objects, with the template id and the squares traveled through the templates
I just realized
you could 100% use this to check if a move goes through a template
I was just trying to get a more accurate calculation of distance traveled for the damage lol
so many freaking helpful functions in foundry.js
That's how I found quadraticIntersection
I was trying to implement it myself
Started to type something in the console and saw that pop up
It gets its own pinned tab in my VSC
Simbul's Template Scaling maybe helps?
parts like this are making my calculation seem wrong now
Since the that spot isn't getting highlighted
but it is being used for the distance
I'm getting the intersection point of the circle, then converting that to the nearest center grid square
so that point gets counted
let me see if adding that module makes it highlight right
I was previously using DF template enhancements for that in v9
bleh
That module just turns it into a square lol
at least with a 20 radius
in babonus I just get the direct distance to the center of the circle
and round to the nearest 5
I just need to do some extra math when grabbing the center point
I know how to fix it, I'll just ditch the quadratic equation part and check the distance of the tested point in the ray to the center of the circle.
Foundry have a function for finding if an arbitrary point is in a template?
I need the point, not the tokens inside
the idea is to adjust the above code to see if it's inside the template based on a x,y point
Yes
It's used in the api
templatemacro.mjs line 51
It doesn't actually find the tokens inside, it finds all the token's centers and returns if any of these points are in the template
Then you just need templatePlaceable.shape.contains(x,y)
Here is my DM inspiration advantage reminder
I don't have a bard player so I never needed to make it yet but it would be just a roll in this message
Here is my barbarian's rage AE's that are advantage reminder
Ohhh got you, i miss interpreted what it was being used for. I was curious about the functionality of for instance a bardic inspiration, where you store the effect and use it later on a different roll
the bardic ability would apply an ae like the dm inspiration but would print a roll button of like [[/r 1d8]]{Bardic}
Would it actually add that roll to the original one or would it go as separate?
@gilded yacht Quickly tried MidiQOL v10.0.17 and it seems that the reaction stack overflow issue is still present 🤔
@molten solar I think I'm misunderstanding how this shape.contains is working. It's always just giving me false.
I feel like I'm getting close
Try moving the token to (0,0)
is it because the shape has X and Y of 0 in it?
Think so, yeah
So I need to change the position I'm testing relative to 0?
or change the shape x and y
yeah it's weird. Foundry thinks the template is at (0,0) when you use its shape or something, but you're probably using the tokenDocument's actual x and y
that explains it
I'll just copy the shape and update it's x an y to the correct position
and test that
Can you try now?
I think you need to do it the other way around, i.e. adjust the token position accordingly
testing
yea, I just realized that
Yes all good now 👍
There has to be a simpler way. 
Would be easier if I only needed to test if I passed through it
I'm trying to actually count the number of grids I've gone through
I'm butchering the function Foundry uses for highlighting squares when you are using the ruler.
Current macro from above is randomly adding 1 sometimes
😢
omg guys I found an interesting bug/feature of dae
Loot type items are so useless normally, but if you have DAE, you can put effects on loot items through DAE with the wrench button
they have no functionality but somehow they allow dae to put an effect on them
even though the loot item has no details tab you can roll it and if dae is setup right it applies to target
not a very efficient way to do it but one of my players just accidentally setup an item as a loot item with an ae so I fiddled with it and indeed it works
Good to know! I never have that wrench icon displayed so never would have found that
I keep it enabled so you can see dae's on compendiums that are locked
((I had a question about Relentless Attack but it started working and now I can reproduce the bug I was seeing, so I deleted my question))
I just want to restate that this only works properly if the start and end coordinates are at the center of grid cells. @molten solar
Hmm, possibly the function is visiting generating the same square twice? I suppose that could happen, since it wouldn't hurtbhighlighting. The function is just an approximation, really
An alternative would be stealing the measureSquare function from TerrainRuler. That one is 100% accurate in selecting the correct squares and able to deal with start and end ponts that aren't centered, but I remember it being a pretty large chunk of code
I considered it
I wonder it it would be possible to set a (dis)advantage reminder text for effects added by midi:
Like this:
I'm talking about combining midi and advantage reminder module.
Basically showing the player WHY they have disadvantage to ranged attacks (they are near an enemy)
There was a setting that I think Kaelad removed where midi would put a flag in advantage reminder, it kinda looked ugly or mechanical so I understand why he removed it
oh its still in for v9:
so the second one is the flag for mdi-qol.advantage.grants.attack.all. Cause the creature is paralyzed.
for stuff that is too situational that goes in a message, I always say where they get it from
Ah, maybe the module couldn't tell where the flag came from.
it probably can now, since the latest midi puts castdata into the ae's
but its up to kaelad to add it
Might be worth putting a suggestion maybe, I just found the module thanks to your message the other day. I like it a lot.
I don't really need it, the reminders I use, are always labelled
Works really well when the players tend to forget some things in the heat of battle. 🙂
Hi - i'm on version 9, using midi qol & active auras - is there a way to prevent midi from applying a effect to targets in the aoe.
I'm using active auras to apply an effect - and modified spirit gaurdians to act as the dot portion of a Symbol death, but I'm running into an issue where the effect originally applied via the template from midi is not properly removed - as opposed to the effects applied via active auras which works properly
could an effect grant advantage to attack rolls but only from the source of the effect?
grant.advantage in the key field should get you what you need
V10 MidiQol can do that if you add an effect on the source
flags.midi-qol.advantage.attacks.all | Custom | effects.some(eff=>eff.label==="Name of the effect")
So you have that as a passive effect on the source (probably using a feature with a DAE transfer to actor on equip) and when a specific effect is ON the source it will attack with advantage
What does the macro look like?
The update from @gilded yacht for midi regarding reaction, does that fix the problem with reaction not popping up for the player?
Not back at my computer till later.
thanks! i tested it but the source actor does not get advantage
Are you on MidiQol v10.0.18 by now?
Also can you check that the actual flag exists? It should auto complete
Not on my pc to check
yes
no it does not complete
.attack not .attacks
there still seems something missing
Yeah you have a typo in effect value checking for the label of the effect
Emnity and Enmity
dou
Hope it works now
My implementation is a bit scuffed. This is the first time i've tried to delve into this, but i'm using the flags.midi-qol.OverTime from the effects tab handle the damage at the start of your turn - and a custom Item macro to deal damage to creatures when the effect is applied during their turn (to handle the case of when you enter the aoe). The problem is that the effect is also applied by default via midi to all targets inside the template, and this is not removed by active auras. I suppose if there is a way to place a template without automatically targetting all creatures inside it would also help
stangely not
You can check during the on phase in the macro if the current combatant is the token and apply accordingly.
I think something similar is happening in the spirit guardians macro from the MidiQOL sample items compendium
I cannot check now unfortunately, but it is what tposney mentioned in the .16 update notes
Check the readme real fast. The v10 version midi
in the changelog it states effects.some(ef=>ef.label===
i deleted the additional f and it works now
thanks for your help👍
Glad to hear that's working now, but the change from eff to ef shouldn't matter 😁
Yes! I just used that macro (just needed to tell active auras to apply to a template instead) - the problem is if I use a template targeting, you end up with the default behavior that it also applies effects to enemies inside the template (instead of relying on the active aura application) - and this leads to incorrect behavior when there are targets inside the template on cast. The spell works fine otherwise
Previously, with spirit guardians the targeting is set to "self" - which avoids this problem
Thanks for the help btw. I should have tested the default spells in the active auras first to validate that they do not have this problem with other spells, but it seems this is expected behavior (atleast in my versions of the software). In summary, effects applied from spells that target AOEs (using templates) do not get removed since they were created by the spell, not the aura. I had hoped that there was a simple flag or hotkey to ignore this behavior.
https://www.reddit.com/r/FoundryVTT/comments/tjev9k/comment/i1l4ci3/?utm_source=share&utm_medium=web2x&context=3
I found this thing for ensnaring strike on reddit, but i can't get it to work
1 vote and 3 comments so far on Reddit
(already changed data.data for system wherever i found it)
Is it possible to specify for Midi that it shouldn't target friendly units in a aoe?
if its a self aoe origin, you can choose enemies instead of creatures
If its a placeable template you have to use sculpt spells flag
thanks!
make sure you are dilligent with dispositions cause enemy plays off the opposing disposition of the origin caster
You should target Self (3rd available box in target details) in such cases and let the aura handle the template
You put the Effect with the Aura on the caster
I'm trying to automate Shield Master's ability to take no damage on a dex save. Is this how I'd format the flag?
flags.midi-qol.optional.NAME.superSaver.dex```
you can't automate that
unless you are changing its raw rule
it only works on dex saves that are ONLY targetting him
Ah
I did an advantage reminder for that, I also did one for the shield bonus on dex saves
Make it a reaction item when damaged and use it to apply the effect when needed
Now if you have other reactions... that will not work 😄
But you can use Hooks and to try to deal with that
advantage reminder document link to make you immune to all damage for 1 turn maybe would work, I just undo any damage manually its too rare to justify the automation
just spitballin anyways. I have it always on and change the damage if needed afterwards
Having said that flags.midi-qol.superSaver.dex in general to use that
I've been thinking about macro-ifying eldritch blast.
I've seen some implementations before, but how does one do it if the player wants to switch targets?
const e = event;
for (let i = 0; i < 4; i++) {
await item.rollAttack({event: e});
await item.rollDamage({event: e});
}
return false;
Currently using this as a ItemMacro, which activates before item is rolled.
Anyone know what this is? I can't roll anything in my v10 build now:
Looks like something wrapped in double brackets in an effect possibly
yep thats the charisma of the pally hmmm
Just use babonus 🙂
make all the premades for midi srd in bab 😉
I'll text you my hourly rates
hmmm let's see how much can we manipulate the per target attack evaluation added in MidiQOL
The easiest solution would be to check how many EB are available according to level, cast each one sequentially, flagging the count and asking for a new target each time (hooking on midi-qol.RollComplete to trigger the next one)
@solid mountain do you happen to have an older version of a Magic Missiles macro floating around?
You could probably change that to facilitate EB.
I got an idea for a janky eb
and mm
Make a singular instance ability of it that when it finishes the workflow, as part of doing damage it clears your targets, then have late targeting turned on and make another macro that rolls the eb/mm item 3 times, so everytime it applies damage it clears targets and pauses for late targetting again
@gilded yacht Now with the per target attack roll evaluation, would it be possible at some point to have a creature as a target more than one times in the same workflow?
eg. either with Late Targeting or without, if you have already selected a target and re-target it, a small counter would appear on it with how many attacks to be rolled against the specific creature.
Would make things like Magic Missiles or Eldritch Blast cleaner 🤷
Yeah that is a valid workaround (you can reroll the item from scratch, respecting the @scale uses and reloading with EM at combat turn end), but I think Ikabodo wanted to roll the item once.
It can be done by having the player select all the targets, then roll the item, create a Dialog grabbing the targets, grabbing the @scale value for EB available, you choosing how many blasts per target, validating you math, rolling the attacks, evaluating results and applyDamage to tokens accordingly
Have an ae that creates an item that rolls the damage once then makes the item do flat damage of that first roll
Year createToken does nothing yet - I'm sort of torn since it's better handled by warpgate, but maybe a createToken at offsetX, offsetY might work.
Oh yeah I tested it. Might be an overkill but warpgate is a black box for some 🤷
Brain is spinning - not sure how midi would know how many attacks to roll, but maybe late targeting with multi select - sounds like black magic
the best kind of magic!
In my game, the player with eldritch blast just casts it 3 times (he has 3 bolts) and each cast does one bolt. It's been working fine - possibly a case where extra automation just makes it harder - don't let Zhell know I said that.
@gilded yacht if you enable sanity or honor in a v10 build and then have midi enabled and drag out a dnd5e starter hero with the compendium locked, a looping critical error plays out nonstop:
#troubleshooting message
I do the same, but was intrigued by Ikabodo 😄
It could be handled with some extra finesse. Make the Item have uses with max given from a @scale value, and roll until they become 0
Recharge on turn end
its sorta kinda related to a bug with sanity/honor in dnd5e system, but midi makes it insanely weird
for some reason midi's doing some flag preupdateactor something on the locked compendium and failing
This is a better link to the details of the bug
#dnd5e message
Is there a way I can only have this show the roll table results for me as the GM?
// roll on a table that contains items and add the item to a selected token's actor.
// use this if the table is in the sidebar.
const table = game.tables.getName("Foraging");
// draw items from compendium or sidebar.
const {total} = await new Roll("1d6").evaluate({async: true});
const receiver = token?.actor;
if(!table || !receiver) return ui.notifications.warn("Missing table or selected token.");
const {results} = await table.drawMany(total);
const itemData = (await Promise.all(results.map(i => {
const key = i.data.collection;
const itemId = i.data.resultId;
const uuid = `Compendium.${key}.${itemId}`;
return key === "Item" ? game.items.get(itemId) : fromUuid(uuid);
}))).map(i => i.toObject());
await receiver.createEmbeddedDocuments("Item", itemData);```
👋
This looks like one of mine.
const {results} = await table.drawMany(total, {rollMode: CONST.DICE_ROLL_MODES.PRIVATE});
Workflows with multiple targets could be useful for something like Bless, ~Bardic Inspiration, but a clean implementation does sound a little shifty...
Bless is handled fine in v10 latest. Like the spell concentration should drop when noone is Blessed anymore, if that's what you mean
For magic missile, what if it did flags instead of attacks. Then applied the damage proportionate to the number of flags
cause you can put multiple flags on a token
Perfect, thank you! I'm also looking to roll an additional table that determines whether or not an event happens while gathering. Is there a way I can integrate that with this macro?
Not really Midi related 🙂
Just multiple targets. I just remembered item cards have literal numbers of creatures you can affect, maybe the EB stuff etc. can use those fields
No need of attacks for MM. Get the input of a dialog for how many hit each target, multiple the d4 rolled and apply
meh I agree with tposney on mm and eb, its just simpler to do it the normal method, no automation
I think in general some multi targeting aide could be helpful, might just be out of scope for midi tho'
You could use the Late Targeting when no Targets have been selected option in MidiQOL.
Or turn it on in a preItemRoll
Of what module, praytell, would it be in the scope?
Maybe none of them
:spook:
(Auto-complete showed me some scared creature sticker and didn't put it in, I blame Discord)
Were it me, and I absolutely had to designate a target for each attack, I would use item.rollAttack() preceded by a prompt each time
and then my player would tell me to get stuffed cus that's annoying as heck
Found it
for Magic Missiles, I just have a single prompt where the player can input a SCSV list of how many missiles to roll against what target
yeah something like that 👇
Wtf did Skeemo do to you?
whose was that? I meant the macro
dragonheist/waterdeep npc
A part of me really hoped your players just have .csv files on their desktop to upload into your games for targeting for a sec there...
kinda evil so just bein weird
Yeah its an NPC with my group now...
Our game is in fact very out of the ordinary.
Skeemo Weirdbottle
Hello, I've been trying to get the double rolled damage to work for crits but I can't seem to get it to work. If I'm reading it correctly it should be 2*(1d8)+3 but instead its just doubling the ability modifier.
Use the Dnd5e rules in that checkbox and you should be fine
And in the DnD5e - Fifth Edition System Settings choose the way you need it to roll actually make sure no checkbox is ticked, regarding crit damage
already tried that
double rolled damage from what im reading is close to the pathfinder style of crit and should be rolling only 1 die and doubling it
If @gilded yacht is around he might see it soon (re <#1010273821401555087 message>)
Otherwise log an issue in https://gitlab.com/tposney/midi-qol/-/issues
It seems there is a discrepancy between the text description and the actual Dropdown.
That one seems to Double everything on a crit including multipliers.
i logged the issue, thanks for the help
was there a setting in any module to make some or all active effects to go inactive instead of deleted whenever they ended? I think it had to do with midi or dae iirc
toggle effect or something like that
That's the only thing I can think of
Hello, everyone. How can I add a macro to add an effect on failed save in an attack or ability?
yes
generally the effects are only added after a failure if there is a save present. should be a setting in the workflow for that
Did active auras have a patch for v10 yet or is it still solely working for v9
Hey if i were trying to set up an aura that grants Temp health per turn for 5e what midi should i use to set the effect with DAE
I've tried ovveriding and add to the attributes system.attributes.hp.tempmax and system.attributes.hp.temp but in neither case the effects are being applied to either the actor causing the aura or others inside of it
effect over time, but doing temp health is not a good idea for effects
Im trying to integrate the Twilight Domain channel divinity, worst comes to worse it can be manual but i wanted to automate it if possible as the player isnt great at tracking it
Active Auras for v10 by Mr.Primate until an official is released https://github.com/MrPrimate/Active-Auras/releases/download/v0.4.19/module.json
Copy paste the link to manually install the module
FYI this is the latest version as of right now.
I do have that module, i might not be using it by accident
im using a small handful recommended as QOL
I was thinking that macro.updateActor would be the best for this, but I am unsure if you can do the usual check for "if higher temp HP already exists don't overwrite" with that one.
hmmm this is getting into level of programming im incapable of,
Yeah not sure i can figure this out ill just do the temp health manually.
Are you in v10?
I have once again returned to ask how to make an attack made at advantage auto miss.
In v9 bugbear suggested workflow.setAttackRoll(await new Roll('1').evaluate()) which worked nicely (though I suspect was bugged). In v10 it "works" but now changes the chat card to show the 1 instead of the original rolls which takes away info from the player.
Previously, I was attempting to make it auto miss by changing isFumble in the workflow and it seems like that's been fixed in v10 for single rolls but still doesn't work for rolls at advantage.
Yes I am
So do you have an Active Aura going? How do you want to apply that effect to others?
I do, what I had set up was that when they activated their channel divinity it creates an aura that should be adjusting temp Hp values for nearby Allie’s but it’s either not finding the Allie’s and caster to apply the affects to or the effects are failing to apply
The aura is set to apply to the caster and targets
Im new to this but what im trying to do is make it so whenever a player ends their turn in the aura and when the aura is cast their temp HP is set back to the features initial roll
Did you get the Active Auras from Mr Primate https://github.com/MrPrimate/Active-Auras/releases/download/v0.4.19/module.json ?
Yes, i have it
Lastly do you happen to have Effect Macro module ?
No i have advanced macros
awesome lemme go grab it, i appreciate the help. FTT is a big learning curve but i feel like im picking it up quickly!
Okay I've got effect macros added on. So am i going to add a macro for both triggering conditions thatll set temphealth to a specific value. How do express it so that it will save and use the first the player makes?
Combat turn end triggers it? What was it again? Twilight sanctuary?
Yes so on initial casting they roll applying it to all close players and then any player ending their turn in the aoe has their temp health reset to whatever was initially rolled
I would go with the v10 token.actor.applyTempHP() which will apply the temp only if the new roll is higher than the current tempHp
never mind I fixed it, snippet looks like:
let workflow = MidiQOL.Workflow.getWorkflow(args[0].uuid);
const roll = workflow.attackRoll;
if (*condition*) {
// make attack automiss
workflow.setAttackRoll(await new Roll('1').evaluate());
setProperty(workflow, "isFumble", true);
// display the original roll
setProperty(workflow, "attackRollHTML", await MidiQOL.midiRenderRoll(roll));
}
Is there a way to keep the first roll or will it roll every time someone triggers the macro?
Which would be the 1st roll?
the one the cleric rolls when their first activate the ability, after that they never roll again and whenever Temp health is set its back to that number
I thought they were rolling each time
But still you can do it if you want
I will be on my PC in a bit.
Awesome i really appreciate the help
Got some issue with Active Auras not working for me right now and trying to troubleshoot it 😅
Im glad im not the only one
Do you have the option in Active Auras settings, Walls Block checked? And if yes are you testing on a scene with even one wall present?
When you drink this potion, you regain 1d3 + 1 (uncommon), 1d4 + 3 (rare), 1d6 + 4 (very rare), or all (legendary) spent Hit Dice. When you drink the legendary variant of a rejuvenating draft, your age is reduced by 1d4 years (to a minimum 1 year old).
How would I implement this increase in hit dice as an ItemMacro?
I have no walls
Do you let your players multiclass?
I do, yes
short of an interactive dialog that validates chosen number of hit die and type to restore, this is firmly a "best to handle manually" type of situation
I did manage to make a series of mana potions using a dialogue option. Here's what I have for that. I'm wondering if I might be able to do something similar with hit dice.
const spells = foundry.utils.duplicate(actor.data.data.spells);
new Dialog({
title: "Potion of Superior Mana",
buttons: {
level1: {
label: "Regain three Level 1 slots",
callback: async () => {
spells.spell1.value = Math.min(spells.spell1.max, spells.spell1.value + 3);
await actor.update({"data.spells": spells});
ui.notifications.info("You regain three Level 1 spell slots");
}
},
level2: {
label: "Regain one Level 1 slot & one Level 2 slot",
callback: async () => {
spells.spell1.value = Math.min(spells.spell1.max, spells.spell1.value + 1);
spells.spell2.value = Math.min(spells.spell2.max, spells.spell2.value + 1);
await actor.update({"data.spells": spells});
ui.notifications.info("You regain one Level 1 spell slot & one Level 2 spell slot");
}
},
level3: {
label: "Regain one Level 3 slot",
callback: async () => {
spells.spell3.value = Math.min(spells.spell3.max, spells.spell3.value + 1);
await actor.update({"data.spells": spells});
ui.notifications.info("You regain one Level 3 spell slot");
}
}
}
}).render(true);```
```You regain 3 spell levels' worth of spell slots when you drink this potion.
If you consume more than one mana potion of any type before completing a long rest, for each potion after the first you take three levels of exhaustion ten minutes after consumption.```
similar complication
Hey! How would you guys go about setting up a spell that has multiple options? i.e; Enhance ability?
Are DamageOnlyWorkFlows working properly in v10? I can't seem to get it to display the damage on the chat card when using the ItemCardId = "new" option, even though the HTML is being properly generated and the damage is being properly applied
@velvet lava really barebones implementation with MidiQOL/DAE/Effect Macro/Active Auras.
It will roll once, save the roll and apply it at the end of each affected creature's combat turn.
It can/will be expanded to add a dialog in case there are the conditions present so as to prioritise their deletion.
It has plenty of forgotten console.logs to be deleted in a future version 😄
how would i apply this to the effect, and damn i would have never been able to figure this out
It works great for the caster but its not updating the other tokens in range, is that fixable or do i just have to give them the item as well
If you manage to make A-A work it should do others as well.
Are they all Allies etc ?
I tested quickly and it was working with the .19 version from Mr Primate
do you have to specify who is allies with who?
as long as they are set to friendly right?
I cant see them, im wondering if the whole module isnt working
Return to Foundry and manually install the AA by copy pasting this https://github.com/MrPrimate/Active-Auras/releases/download/v0.4.19/module.json
There is a newer version but I haven't checked it yet.
It the same with .20 instead of .19
its still not updating for my other actor yet
and i dont see any visual aura if im supposed to
Only an icon on the affected tokens
ahh thats not showing up
Can you also try this manifest https://github.com/MrPrimate/Active-Auras/releases/download/v0.4.20/module.json
Or quickly go into your AA settings and uncheck the Wall Blocks auras to be safe
i did that, no effect
i dont need to do anything on the other actor for them to accept the aura do i?
yes, and ive been swapping between their turns
the tokens are also next to each other so range shouldn't be an issue
Are your modules updated??
And are there any errors in the console when the turn changes?
A: Duplicate Linked Tokens detected, defaulting to first token.
this might be the issue
Hi folks,
I have created an effect for a Chuul's pincer so that it applies Grappled effect on the victim when they are hit with the pincer.
I am on v10 and I used macro.CE. In the effect there is no duration so the Grappled effect is not temporary, however the pincer itself only lasts one turn. Then it drops off taking the grappled effect with it.
There is NO duration set in the effect. The Pincer duration is instantaneous in details. Should this be set to special or permanent, maybe?
Can anyone replicate this and explain what is happening??
This was all run in an environment with FVTT10.288, dnd2.0.3, and (only) midiqol 10.0.18, DAE 10.0.11, libWrapper 1.12.10, socketlib 1.0.12, and MidiSRD 10.0.1 (from thatlonelybugbear's fork).
Background: midiSRD's aid function doesn't handle tempHP correctly. So I set out to fix it. Expected it to be easy.
Built this function(and inserted it into MidiSRD-macros.js...and updated the Aid spell card to call MidiMacros.ook_Aid instead of MidiMacros.aid):
const { actor, token, lArgs } = MidiMacros.targets(args)
let buf = (parseInt(args[1]) - 1) * 5;
if (args[0] === "on") {
// NO IDEA why I need to first zero out hp.temp...but if I remove
// this it doesn't work. Every other (re)casting of the spell on
// the same target ends up with the effect applied, but temp.hp
// showing as zero.
//await actor.update({ "system.attributes.hp.temp": 0 });
await actor.applyTempHP(buf);
} else {
await actor.update({ "system.attributes.hp.temp": null });
}
}
As shown above, every RE-casting on the same PC results in the Aid effect being placed on the actor...but every OTHER recasting shows the temp HP field on the character sheet as empty (and the HP bar on the token shows zero temp HP after those particular castings). In other words:
Casting #1A (PC has NO pre-existing Aid effect): Actor gets Aid Effect, sheet shows 5 temp hp, HP bar shows 5 temp HP
Casting #2A (recasting on same PC): Actor gets Aid Effect, sheet shows ZERO temp hp, HP bar shows ZERO temp HP
Casting #3A = like Casting #1A
Casting #4A = like Casting #2A, etc, etc.
If I uncomment (in the "on" section) the setting of hp.temp to zero, then everything works (although the use of the applyTempHP function doesn't detect attempts to downgrade the # of temp HP, since it always thinks it's starting from zero and therefore every casting looks like an upgrade from zero).
Casting #1B, works as expected: Actor gets Aid Effect, sheet shows 5 temp hp, HP bar shows 5 temp HP
Casting #2B thru n, same as casting #1B
Upcasting: As expected, sheet shows upcasted temp hp, HP bar shows upcasted temp hp
Downgrading: (UNEXPECTED) sheet shows downgraded temp hp (should keep the higher amt), HP bar shows downgraded temp hp
I originally bracketed the lines of the on/off sections with console.log statements to log when I entered and exited each session and it appears that the async nature of stuff means that (on a recast), in instead of seeing the expected sequence of "Entering OFF", "Exiting OFF", "Entering ON", "Exiting ON", I'm instead seeing "Entering OFF", "Entering ON", "Exiting OFF", "Exiting ON".
Totally confused.
Hey! I just set up a macro to apply a CE effect on macro use, it seems like the effect is not linking to the original item making the concentration from Midi not work for the effect (Removing the concentration doesnt end the effect) https://cdn.discordapp.com/attachments/722566083499786352/1035269142930018385/Screenshot_2022-10-27_210945.jpg
If it's a new effect it will not attach the origin unless you build the active effect yourself. Though it might be easier to have the macro look up the uuid of concentrating then using delete uuid flag from Dae to delete it
i would probably dump the applyTempHP function and calculate the appropriate temp HP to apply yourself and update the actor directly
So how would i go about this?
Why? It's a system function. 🤔
Inspect a current active effect on an actor to see the structure. only include the fields you need. You will need the origin field
well, based on the behavior (that I admit I dont fully follow given the toolchain in use), it seemed like other assumptions in that function were getting in the way.
when, in effect, we just want to set the actor's THP to max(current, new)
that is what that does tho
Typically it's label, changes, origin, duration, icon
cool, then it may not be an issue -- i do tend to break things down when i find an issue, then build back up after confirmation of expected operation
I created the effect in DAE and i dont see any of the label, changes, origin fields i can tweak
You're using an entry within the effect right?
It won't be connected, you'd be better off manually making it or hitting the drop down and adding it that way
As a separate Dae effect
The macro is the following;
new Dialog({ title: "Mejorar Habilidad", buttons: { Button1: { label: "Resistencia del Oso", callback: () => { const targets = game.user.targets; const uuids = [...targets].map(t => t.actor.uuid); game.dfreds.effectInterface.toggleEffect('Resistencia del Oso', {uuids}); } }, Button2: { label: "Fuerza del Toro", callback: () => { } } } }).render(true);
Yeah that won't connect
Yes, but timing will be your enemy
You'd be better off creating the active effect yourself
Rather than using dfreds to apply it
Im afraid thats a outside of my understanding
He forgot to mention that you should be looking in the console to see the data structure of an ActiveEffect. Then you copy that structure in your macro.
Isnt there a way to get the DAE effect uuid and the item uuid and link them?
Hmmm, where do i see this exactly?
Console (F12)
Delete all tokens and drag new ones to try again
game.actors.getName("name of an actor that has an effect").effects.find(i => i).toObject();
My original code did exactly that. If I replace my call to applyTempHP with await actor.update({ "system.attributes.hp.temp": buf }); I have the same experience
this?
Yep
So what do i do with this info?
You mimic that structure, insert the stuff you want, and create it in the macro.
Here's a lowbrow example for creating an effect on the token you have selected:
token.actor.createEmbeddedDocuments("ActiveEffect", [{
icon: "icons/magic/holy/yin-yang-balance-symbol.webp",
label: "Steve",
duration: { seconds: 60 }
}]);
The origin will be the original item
Works now thanks!
So i define the effect before the dialog call?
Nice! Tomorrow will send you a better version! I will be using it on my game soon so… 😎
You can also use flags.dae.deleteUuid set it to override and the value should be then uuid for concentrating
I appreciate all the help!
Hi all, does anyone know the Formula to add to make MidiQoL trigger +1 for say undead only creatures?
+1 to hit or damage?
damage? add it to "other formula" (check the box "roll other" at the end of the page)
and in Activation Condition use: ["undead"].includes(raceOrType)
Ah ok the bonus is working but also working for any enemy type, not just undead
don' tick also roll other
and don't write it in on use macros
it's higher "Activation Condition"
and - "undead"
["undead"]
like that
Ah i tried this, but it would just delete the macro
yeah cause it's not a macro
Under Activation Cost
you have "Activation Condition"
put it there
Huzzah!
you can check "Critical Other" if you want that damage to be critical (on critical hits)
no problem 😉
Thanks dude, its working now 🙂
have fun
I assume I can replace "Undead" wtih any othe creature type?
to make more cool weapons?
ah cool
whoa
I seem to be having an issue with MidiQOL that the toggle hotkey "T" does not bring up the original card in fast forward settings. I only seem to get the damage button not the attack, has anyone dealt with this before?
I do not think the toggle key deals with the auto remove buttons. It toggles the roll options.
you only see the damage because you haven't rolled the damage yet.(because toggle turns off auto roll)
So would the toggle key turn off the auto roll for the attack as well?
It should have, didn't it?
No, it still rolls the attack even if toggle is used.
then your damage is not set to auto roll?
Both are set to auto roll.
either v10 bug or module shenanigans
While holding T with both autos set:
did you click the "attack" button in the card and just aren't understanding what auto roll does?
(mine says advantage cause its a barb hitting a paralyzed creature)
Nope, I'm clicking the item itself in the character's inventory.
turn off everything but midi and try it, if it persists, report the bug
Sure thing 😄
are you sure you have auto attack on for attacks? cause I can replicate your issue by toggle attck off
ready set roll, roll groups, quick rolls by default?
I actually don't have any of those modules.
does the issue persist when all but midi/socketlib/libwrapper are off?
small bump
How do you structure the call?