#MidiQOL
1 messages Β· Page 36 of 1
let me know if you run into any issues. I tested everything I could think of so I think it's covering like 99% of use cases
Absolutely, will do β thanks. Might be a few weeks before we get to see it in action though.
Yeah, I'm working on some other ones my party routinely uses so I may just throw them in a github and edit them as issues arise
one sec, that one isn't the updated one
There we go
didn't hit save in vscode before dropping it
Thanks. It's nice to have another script guru in here, for us who aren't so competent π
lol, well I'm working on it. Hopefully can pick up more as I go along
Oh, wait and there's the AE effect
flags.midi-qol.onUseMacroName | Custom | ItemMacro.Zephyr Strike,preAttackRoll
flags.midi-qol.onUseMacroName | Custom | ItemMacro.Zephyr Strike,postAttackRoll
flags.dnd5e.DamageBonusMacro | Custom | ItemMacro
Then just clear out the spell effects section in details, and change target to self
Good evening. I have an issue with the Fireball template. Whenever I cast it, the caster gains a temporary effect "Fireball Template" with a duration of 1 turn or 1 second out of combat (real time doesn't pass due to Small Time module). As a result Automated Animations' beautiful fireball effect is hidden behind the template unless I immediately end my turn or remove the effect manually.
I suspect this self effect is something DAE adds but I can't figure out how to remove it. I want the template to expire/be removed immediately after it properly targets and fast forwards damage. Is it possible? MidiQOL's "Auto remove placed templates on spell expiry" is on
I am on v10
If you look in your Automated Animations settings for fireball there should be an option for 'above template' or 'remove template' β assuming it is a template style anim
It works, many thanks
I just had a look, there's a tradeoff β if you want to use the Fireball preset, you can't have it 'remove template'. So it works better as a Template style autorec, but in that case you can't do the fireball beam before the explosion... unless I'm missing something
Ah nvm, I found it β remove template is on the projectile part. Happy days
How should the max critical behave?
I think typically people who do the max crit house rule have the standard damage maxed and roll the crit dice on top of that. Midi does it differently iirc, you do the standard roll and then the extra crit dice is maxed and added. Same result but potentially a bit confusing.
yeah that's it
basically just expected the one normal crit die to be maxed
then an extra normal d8 for piercer
Why don't you use the Dnd5e rules for critical in MidiQOL settings?
they are very different when its a barbarian
I think it respects the system's option
Is there a midi flag for the wielder of a weapon to not have any penalties for being flanked?
Brutal critical changes completely when the max dice is critical dice vs the weapon dice
OK dnd5e maximises the base damage, midi does the opposite:
I haven't dealt that much with other crit rules than the default, so... not sure of all the different options
I don't really care what rules are used cause at the end of the day a sorlockadin still exists to break tables anyway, just pointing out that brutal critical changes is all
Thanks for the heads up, we don't have any barbs rn but for our next adventure there are two in the party (A House Divided lol... they'll fit right in π )
Hmm a flag I don't think so π€
You can give him condition immunity against flanked condition π
an aura of 5ft that gifts hostile creatures with condition immunity: Flanking
nooo, don't use auras if you can get around them via other means π
flanked is different than flanking though
flanked is a debuff to ac, flanking is advantage
thanks!
I saw flanked in the question soooo π
I can't read sooo 8)
Yeah now I don't remember how it behaves
I only use flanking so I was being selfish in my solution lol
Probably you will need to make the Flanked from DFreds a status effect
Hmmm I dont see a condition of flanked... is that just going to be a custom one?
Do you use DFreds CE?
The Flanked from DFreds, grants advantage to attacks. So it should be fine
Let me check if it works
Hi folks, I have a player with a dragon slayer sword. All the dragon slayer damage is applied to any creature attacked. How do I set it up (or can it) to make damage happen only to dragons? Thanks!
Ah, I thought I was getting unexpected behavior
But the 2d8 is the crit dice and bonus crit, and I guess dnd5e rules just add +max
Open up the MidiQOL sample items compendium and find the Arrow of Slaying (dragon). It will give you the activation condition needed.
ps: ["dragon"].includes(raceOrType)
But check how the item is setup.
π
And also you will need to enable activation conditions in MidiQOL settings => Workflow settings => Workflow tab
Thanks!!!
How does this work or where can I configure it
Probably needs to create a custom Flanked condition
ahh ok cool
I will take a look later
Ye no worries, thanks!
There is a Flanked condition in the DFreds already, but it will not get picked up if set as custom condition immunity on a character sheet as is
Anyone got a macro for Blessing of the Raven Queen?
what is that blessing?
As a bonus action, you can magically teleport up to 30 feet to an unoccupied space you can see. You can use this trait a number of times equal to your proficiency bonus, and you regain all expended uses when you finish a long rest.
Starting at 3rd level, you also gain resistance to all damage when you teleport using this trait. The resistance lasts until the start of your next turn. During that time, you appear ghostly and translucent.
So, I got the misty step macro on it but want to add the macro for damage resistance
relevant topic: <#1010273821401555087 message>
No need for a macro. Create an (D)AE applied to self when rolled for the resistances
and you can have a special duration till the start of the source's next turn.
Also was running testing out crymic blood hunter macros
got an error message with it
system.traits.dr.all | Custom | 1 with DAE iirc
Thank you
That is probably in the spot where the macro creates the roll for damage. The macro is probably needed to check what's up, but if it is a patreon one, I would contact @celest bluff directly instead of posting it here π€·
Yeah, I prob have midi-qol set up wrong
re reading everything atm
What part of blood hunter you trying to setup? I have a few automations for it if you need. Specifically crimson rite and some blood curses.
Your blood hunter class is missing advancement table. Refer to the one provided
I need to add in an alert for it
anyone have experience with the dae special durations?
trying to figure out why this "flags.dae.specialDuration", ["1 turn"] isn't working
also tried 1Turn since I saw a similar format in the docs
yeah actually found a post further up in the discord. In order to have it work, I guess I have to set a duration on it first
Ahh makes sense! will fix it
was referring to this for direction on the special durations from the wiki
figured 1 turn would be valid, and it seems to be. Fell off as expected
FWIW I set a spell to the fourth one on that list "Expires at the end of the source actor's next turn (in combat)" and exported it as a json to see what it gave:
"turnEndSource"
],
yeah actually 1 turn didn't work
I normally setup an effect on a dummy actor and export it when I need stuff like that
thought it did, but seems to not be repeating
Easier then trying to manually setup the effect
I thought I might be able to get away with just doing seconds:0, rounds:0, turns: 1 in duration but it seems like that doesn't work either
I'm probably missing however it's getting that data
turns is probably not specific to that actor, everyone has a turn in the round
hang on, what duration are you after exactly? so it expires at the end of the same turn?
ah sorry
I had an idea instead of using flags and having to clean them up later, it seemed like I could set an duration on an effect to just clean itself up automatically
but effectively use it the same way I would use a flag
you can't use a regular duration?
"startTime": null,
"seconds": null,
"combat": null,
"rounds": null,
"turns": 1,
"startRound": null,
"startTurn": null
},
I tried with 0 in there, let me try with null
I wish I could set a duration on a flag. Lot of extra stuff I don't need on effects
thanks for the suggestion, that didn't seem to work either
I can definitely set a duration on an AE so it only lasts a turn
(regular duration, not special duration)
so interestingly enough, I figured maybe there was just some issue with something I as doing and just used yours instead copy/pasted
and it worked, so uh
Awesome, and thanks lol
you could prob get rid of most of that... it just came from the exported json
but, that's great!
yeah, odd ok. I just clipped it down to only "turns": 1 and it works
Looking at code for too long I guess. Must've missed some error somewhere
v10 foundry, midi should be updated
let me get it really quick
looks like midi isn't in my modules list?
just updated to v10, most recent version
and searching in install, it's not here either?
When I updated to v10 I had to reinstall a few modules
Instead of using the update function
Return to the setup screen and delete midi then search for it again and install it
same with DAE
is Midi SRD considered as midiQOL?
It seems like I can't edit workflow.applicationTargets or workflow.Saves. Is there something special I need to do for those?
I'm able to change other values seemingly
No
redownloaded, going to check if all's good now
Midi SRD is just an item compendium
Well you can call upon MidiSRD functions too from other macros, but pretty much an assortment of pre-made items, introducing automation to some SRD items and spells.
I've got a Macro for Radiant Soul and I want to update the existing Spell cast card in chat with the extra damage
Anyway to post update a chat message with a flags.midi-qol.onUseMacroName postActiveEffects
Check the pins for the MidiQOL readme,
Towards the bottom there is an example of chat message manipulation of the midi card
chatMessage.update no longer works in V10 by the looks of it
chatMessage isn't a thing
it's what it's defined as
probably game.messages
const chatMessage = game.messages.get(args[0].itemCardId);
console.log(chatMessage);
probably cannot locate it
This Hunter's mark macro updates the original card
Ends up looking like this
Granted this is for Favored Foe, so that's why the damage flavor says that
Wow... Um I am too much of a smooth brain to understand /where/ in that codeblock the spell is being updated, This is happening as a flags.midi-qol.onUseMacroName postActiveEffects, just before a applyTokenDamage
Radiant soul doesn't really need a macro
For warlocks it does :V
You can do it all in DAE
a Single Target Selectable +3 on Fire or Radiant Attacks delt?
The "Other" Radiant sould you can do in DAE
this says it only deals Radiant damage
Starting at 6th level, your link to the Celestial allows you to serve as a conduit for radiant energy. You have resistance to radiant damage, and when you cast a spell that deals radiant or fire damage, you can add your Charisma modifier to one radiant or fire damage roll of that spell against one of its targets.
ok then you just an application macro
I have a onUseMacroName that does it now, but I wanted to prettify it to update the card
if(!["fire","radiant"].some(value=>args[0].damageDetail.find(i=>i.type.includes(value)))) return; //if not fire or radiant stop
const damageType = args[0].damageDetail.find(i=>(["fire","radiant"].some(value=>args[0].damageDetail.find(i=>i.type.includes(value))))).type; //ugly but works
const extraDamage = args[0].actorData.system.abilities.cha.mod;
const dialog = new Promise((resolve, reject) => {
new Dialog({
title: `Radiant Soul: You used a ${damageType} damage dealing spell`,
content: `<p>Choose on of the targeted tokens to deal extra damage</p>`,
buttons: {
one: {
icon: '<i class="fas fa-check"></i>',
label: "Confirm",
callback: async () => {
const target = game.user.targets;
if(!target){ui.notifications.error(`You did not target anything for Radiant Soul Extra Damage!`)}
const chatMessage = game.messages.get(args[0].itemCardId);
console.log(chatMessage);
var content = duplicate(chatMessage.content);
const searchString = '<div class="midi-qol-hits-display"></div>';
const replaceString = `<div class="midi-qol-hits-display"> +${extraDamage} ${damageType} from Radiant Soul</div>`
content = content.replace(searchString, replaceString);
console.log(content);
chatMessage.update({content: content});
await MidiQOL.applyTokenDamage( [{type: `${damageType}`, damage: extraDamage}], extraDamage, new Set(target), item, new Set());
}
},
two: {
icon: '<i class="fas fa-times"></i>',
label: "Cancel",
callback: () => {resolve(false)}
}
},
default: "two",
close: () => {resolve(false)}
}).render(true);
});```
dont need to do any of that
Replace String is wrong in that macro, thats was is breaking the update
Change it whatever is needed
But wait, will that add the +3 when I do radiant damage
I mean bonus damage on radiant damage
hmmm even D&D beyond has
Radiant Soul. Two luminous, spectral wings sprout from your back temporarily. Until the transformation ends, you have a flying speed equal to your walking speed, and once on each of your turns, you can deal extra radiant damage to one target when you deal damage to it with an attack or a spell. The extra damage equals your proficiency bonus.
Sounds like a job for Build a Bonus
Oh, That does a /extra/ roll on ALL damage I do
the ability description is actually a hot mess
Yep, Thats a common mistake
There are 4 types of Radiant Soul in 5e
Only 1 is rather simple
Think I have this written already
You can change the turn to each-turn
That should stop it from going more than once a turn
The big issue is the damage can only apply to one target AND /might/ bypass their save check
and can only happen if I do fire or radiant damage, so a outbound damage type has to be checked
ah
it's easy to set up.. lemme see where it is
It would be great if its rather simple Midi instead of a macro
Probably best solved with a flags.midi-qol.onUseMacroName set to run on postDamageRoll
and shove it back onto the stack with a return damage roll
but still needs to be single target
so if I do a AoE (I've got one) only one gets the bonus damage
I do something similar here for Alchemical Savant.
Having it only do damage to one target is annoying, but I'm sure doable
And thats why I'm using this kind of macro
Oh lol that macro rings a bell π
bet it does ( I stole it from this very discord :V)
Oh yeah the bananas and ugly it works !
That feature is so poorly made after looking at it.
5 extra damage on only one target from a warlock spell seems lame
+3 really since its my cha.mod
99% of the time that's an extra 10 damage if you use 2 warlock pact slots lol
and have +5 charisma
its meant for the cantrip spam
Also... I'm not sure if it should trigger if flaming sphere does AoE Damage
That would be.... OP
game.messages.contents.get(). Does this work?
Where does the chat message search fail?
The Example off the Gitlab had a bad peice of Div in there
const searchString = '<div class="midi-qol-hits-display"></div>';
There have been updates to include another div inside that div, so it never matches
Ah probably needs some updating
Yep, thats all it was really
I always Log the message (stuff in general tbh) and then dig around
ooo, I want to put the single target I choose, how do I abuse midi-qol-target-name to do that :V
looks like I just need to do something like <div class="midi-qol-target-npc-GM midi-qol-target-name" id="uFNmt5DIB5kMiSUU"> Space Hamster</div>
Sounds about right
oh.. it has a toggle for GM/Player that sounds.. awful
Oh I got one @celest bluff how do I set TempHP oneshot on a spell cast
token.actor.applyTempHP(number)
applyTokenDamage the target var, what is it looking for? the actorId in a set?
Nvm, got it fixed, It needs a Javascript Set, so something like new Set([target.first()]); is a vaild first target
Not sure what's going on but sometimes in combat, when a player casts invisibility it adds the invisible X number of times instead of just once not sure if I have configured Midi + DEA and DFreds CE right
I got a good one, When I cast Healing (Temp) midi removes 10 HP from the heal
[BENEOS TOKENS] Not Beneos/No image undefined
midi-qol.js:21 midi-qol | DmageRollComplete elapsed 47ms
midi-qol.js:21 midi-qol | Jet Balsa 36 takes -10 reduced from 15 Temp HP 0 HP 36
---- Fixed -- had wrong spell calc
Is midi and the dependence modules up to date?
Does the issue occur on a newly created actor with regular srd items
Hmm you know they probably aren't up to date, I haven't been modding 'sustainably', my setup is pretty much held together with twine. I think I'll go without Midi for now, but thanks for the help. It does occur on a new actor with regular SRD items.
Just to make sure, you don't have any other roller modules, right?
Donβt believe so
The weirdness is that no updates or changes were made to anything, it just suddenly stopped working
@violet meadow Do you know if preCheckHits working differently in v10 than in v9?
It's suddenly blowing past me changing attack rolls
And it didn't do that before in v9
It's working as intended for me π€
What about with a flag on use macro?
flags.midi-qol.onUseMacroName
Hmm lets see
Yeah works.
What kind of macro are you using?
Could use post one that works for you. I feel like I'm going crazy. I'm updating my focused aim for v10
Not at my PC right this second but I'll be soon if you have a moment to see what I'm doing wrong
this.setAttackRoll(await new Roll('1d20+152').evaluate())
flags.midi-qol.onUseMacroName | Custom | ItemMacro.Trident,preCheckHits calling on an item Macro in the Trident item on the actor
@deep dove regarding the question in #dnd5e , do you use MidiQOL.
No matter what though, that would be a world script or at least you would need to use Hooks to check the attack against the actor that has the effect on.
How is it supposed to behave? Is it something that you use an item to activate?
It is an item that once you have 0 HP it activates this effect "system.traits.di.all" which will basically make the actor invulnerable to all damage. Now this it's too powerful so I want tot end the effect if the actor receive a critical hit. So I need some trigger when the actor receive damage and there I can insert my script to end the effect.
Maybe something like ```js
const hookId = Hooks.on("midi-qol.preCheckHits", async (workflow) => {
if (Array.from(workflow.hitTargets).includes(game.user.character.getActiveTokens()[0].document) && workflow.isCritical) {
const effect = game.user.character.effects.find(eff=>eff.label === "Name of the effect to delete")
await effect?.delete()
Hooks.off("midi-qol.preCheckHits", hookId)
}
});
Sorry my incompetence, this script should be in ItemMacro? And if yes on which trigger?
So how does the effect application get triggered in the first place? Within the Dead Condition or something?
But yeah, a macro run After Active Effects should do it I guess
(ps that script is for a Player's character)
For the activation I have a different effect which it'a passive and trigger at the start of each turn and if the actor HP = 0 then it creates the "system.traits.di.all" effect
Is that effect creation done with a macro? If yes, include the hook code in the same macro
Yeah put that in the hp<1 check
But keep in mind, if you happen to reload, the hook will be lost
Thanks π
So maybe world script would be "safer"
It is ok, it will be lost after 2 rounds eitherway
Yeah, just wanted to point that out π
Make sure to use the Hooks.off call in the effect deletion too then.
Cause if it doesn't trigger, it will remain active until reloading the client
The effect have a span of 2 rounds so it will automatically deleted after 2 rounds. Where I can include the Hooks.off ?
Put the hookId in an accessible flag, or just in the game like game.undeadFortitude.hookid = Hooks.on("midi-qol.preCheckHits", async (workflow) => {//blahblah})
In the On Effect Deletion call the js Hooks.off("midi-qol.preCheckHits", token.actor.getFlag('world','whateverFlagYouUsed')) await token.actor.unsetFlag('world','whateverFlagYouUsed') //just to be complete or ```js
Hooks.off("midi-qol.preCheckHits", game.undeadFortitude.hookid)
Thanks π
Hello! trying to use Midi-QOL's @target and "Roll Other" feature to make an effect similar to Slayer, where if is the target is Large/Huge etc, the target takes additional damage. I thought anything from the target.actor.data.data, via (@target.abilities etc), would cover that, but "@target.actor.data.traits.size"includes("large") does not call the correct field.
Any tips/advice?
v9 or v10?
v9
"@target.traits.size".includes("lg")
if I add to that, such as "huge","gargantuan", will that also work?
so, "@target.details.traits.size".includes("large","huge","gargantuan")
Hmm try this ["lg","huge","grg"].includes("@target.traits.size")
try the edited one
That worked, thank you!
Just as a reference: CONFIG.DND5E.tokenSizes for the list of token sizes
can warpgate be used to move templates?
(warpgate can be used to do almost anything, lol)
just need to have your GM client with an event watcher, and the player client send a notify with the template UUID and new coordinates
Thanks
note, this is not built in, but rather, you can quickly create this using the event system in warpgate
Another way would be to attach a template to a player's token
ah I think at least. Let me quickly test it
Anyways all depends to your usecase π
Trying to work out moving moonbeam as an action
The way I'm trying at least is still with a template with active auras
Seems like it should be possible so far, just working out some issues
Is there any way to figure out what tokens would be within range of a certain position?
I know findNearby works for tokens, but I'm trying to figure out what tokens are within a certain range of a template when I re place it
Do you use Template Macro module?
I have it installed
I'll check it out
and warpgate.crosshairs.collect
I was fixing an issue and I noticed that when I was on the DM screen using a player's token to attack it always did so with advantage, but when I used the players screen, it did not. I looked around MIDI-QOL, but couldn't tell what to do.
Thanks for this suggestion. Exactly what I needed
Hey friends,
I have an item (5E) that proc's a save versus condition on critical hits. Could someone show me how to set this up? I'm a bit lost here :ΓΎ
@strong yew there are 2 ways to go about.
Easiest is to pass @token in the DAE arguments and then check ```js
if (args[0] === "each" && args[1] === lastArg.tokenId) {
//that means the token with the effect is the caster
//do stuff
}
Ah, unfortunately @token becomes undefined when using the template active-aura stuff
Alright, ```js
const originItem = fromUuidSync(args.at(-1).origin);
const originActor = originItem.parent;
let originToken
if (originActor.token) originToken = originActor.token ?? originActor.getActiveTokens()[0]
const {uuid} = originToken.document;
Fair warning, my brain is scrambled at this point after a freaking hectic day
Haha no worries. I appreciate the help
Or you get the actorUuid from the origin.
const actorUuid = args.at(-1).origin.split(".Item")[0]
check if it is of type Actor.xxx or Scene.xxx.Token.yyy and go from there
Is there a way to call an unrelated item macro in an effect
Yes, check the Item Macro documentation.
There's the option "return a damage bonus" within the on use macros drop down list. How do I get that option in an item creation macro? And where do I have to put it? At "effectActivation" or in front of the "onUseMacroName"? I've found an example where it was put in front of the name: [postActiveEffects]Light-EnableDfredsLight. But I don't know the exact phrase for the damage bonus option.
Trying check for if the target token has the necrotic damage immunity, and I want the macro to abort if that's the case, getting this error though
any ideas why?
Double ?? in the check maybe for character OR type
fixed that error, but now i'm getting "targets is not defined"
but then if i define it earlier, I get
by that i mean doing something like
let targets = args[0].hitTargets[0];
Zhell came through in the other channel, just replaced that whole mess with something simpler
Hi yall
I tried using the Lay on hands sample item
but am unsure what this error means
You have a macro returning false in a hook before the item is used.
that's weird since this is from the midi-qol sample pack
idk how the macros work in that
Me neither.
You either don't have enough resources to use it, or it is being used on an invalid target.
Read the MidiQOL specific instructions, added in the description of the item
A Spike Growth spell macro; 35-feet square rather than 20-foot radius circle due to tile limitations. Requires Midi-QoL, jb2a patreon, and Monk's Active Tile Triggers. Spawns a 35-foot square tile that prompts to roll damage upon moving over it.
Needs a actor like a normal Monk's tile to function
@proper sluiceMidiQOL/DAE/Foundry/Dnd5e versions?
Foundry V10 Build 290
5th version 2.0.3
Midi version 10.0.22
DaE version 10.0.13
Alright. Times UP, Simple Calendar?
Times up version 10.0.2
Simple calendar version 2.1.58
OK, Blur is a concentration spell. Are you using MidiQOL's concentration?
yes
oh!
if i set remove concentration when effects removes to never instead of check effects and templates
it no longer removes blur
check effecks also works
its just check effects and templates
Blur should have a duration of 1 min, correct?
now even that is working
hahaha
lol
Did you just update to v10 or something?
oddly it says 1 turn on the effect but it is set and works as 10
i updated a couple of months ago
yes
they only get removed once it goes back to their turn and shield falls off
also back to not working xD
ok i refreshed with F5 after changing the setting this time and never does seem to work
but it means that removing concentration doesn't remove blur anymore
π€
which makes sense but idk why it thinks the concentration is linked to the shield spell
OK, as it is rather late for me and I was about to go to bed, do you want me to connect quickly to your world to take a look, or you could just wait until someone else comes by π
If yes DM me!
I can wait until tomorrow if thats better for you?
In the meantime, do you use DFreds? Or do you have the spells set up with DAE?
I live in the UK so its late here also π
( me too π )
I have set them up with DaE
OK post some screenshots from the effects, duration, details
quick question (hopefully)
flags.midi-qol.OverTime
override
turn=start, label=Effect Label, saveAbility=con, saveDC=@attributes.spelldc, saveMagic=true, macro="worldMacro"```
worldMacro should only be triggering on a failed save? or does it fire regardless of if the save is passed/failed?
regardless, but it has all the args needed for you to play around after, who saved who failed etc
dang... well that explains that then. cheers
OK so for some reason the effect is created with a 1 Turn duration π€
it does actually work for more than 1 turn when it isn't removed by shield
Well that is even stranger. Are these items imported ?
I made them in another world and transferred them to this one
I would remake them at this point to be safe
Linked or unlinked actor as the caster?
I'll give that a try and if that doesn't work i'll pm you tomorrow at some point with an invite.
Linked actor
So when a player casts invisibility on themselves the condition gets added multiple times, not sure whats going on
How many Invisible/Invisibilities do you have in Convenient Effects?
Disable Cub and Dfreds CE, if the behavior goes away, you need to tweak your settings and stop using both of them to manage ae's.
I don't have CUB installed atm
I'll check when I get home.
if you say multiple times as in twice, then you probably have an ae on invisibiility and dfreds+midi applying dfreds
when you have a premade and that setting on, you need to check a box at the bottom of the details tab that stops dfreds from applying
Sometimes its twice and others its like 9+
what spell is it technically?
its probably the premade, I see a bunch of deprecation errors, replace it with a more modern macro for whatever spell it is
Level 2 Invisibility imported from DDB
The imported from DDB Invisibility will have a DAE for Status Effect Invisible (CE), if you use DFreds CE.
Then, depending on your MidiQOL settings, when using Invisibility, MidiQOL will auto match the spell name to a DFreds effect and apply it.
That gives us 2 sources of the spell and something like this will probably happen.
To keep that from happening, either use the SRD spells that have no AEs set (for the most part), but might need to change some stuff to make them MidiQOL compatible (see Shield SRD spell for example).
Or in the Invisibility details tab, when you edit the spell, you can probably find a checkbox towards the bottom
Don't Apply Convenient Effect. That will negate the auto match of MidiQOL for spells with a same name as a predefined DFreds CE/
Last option, go to MidiQOL settings => Workflow Settings => Workflow tab, locate the Apply Convenient Effects and select an option like shown
is there a way to setup a creature's alignment as a reference for Activation Condition? I'm trying to make a weapon do extra damage based on alignment
wouldn't it do that damage all the time? π€
oh, you mean actual alignment and not disposition lol nm
yea kinda like slayer weapons but alignment instead of race
Activation condition. Instead of race target alignment.
target.details.alignment.includes("Evil") for v10 iirc
yep its working, wasn't sure how to reference alignment, thanks
Finally got moonbeam 99% of the way there. Pretty much everything working. I just need to implement some kind of distance measurement between the initial cast and the move on later actions
When about to recast trigger a warpgate crosshair which will allow for a specific radius.
The crusher macro I have shared has one such way
Hi I'm not very good at writing macros. Could someone help me write a macro that goes on armor that when they are hit they do 1d4 damage to the attacker?
Is there a way to get Divine Smite to automatically deal extra damage to undead/fiends?
smite is premade in midi sample items bud, don't reinvent the wheel
Oh nice
Off hand do you know what the difference is between the two options they give you? One is labeled No Macro and the other isn't.
They both get the job done but one looks nicer when you have all the bells and whistles on in midi
That's the Macro one?
personally I don't use either cause I don't fast forward and would rather smite be included in the weapon so I use advantage reminder module for it
I don't remember which is which, I don't use them
Got you
Hello, I have some weird issue. I have an item on an actor which uses a Hook.on to check when he receive a critical hit. The Hook works just fine on the Foundry App but when the user log in and he uses the item the Hook it's created only on his browser and the biggest problem it's that the Hook actually doesn't trigger. The same Hook (Hooks.on("midi-qol.preCheckHits")) works fine on the App when no player it's logged. I am doing somethig wrong?
PS: from the Player console I can see the hook present (Hooks.events["midi-qol.preCheckHits"];) but the issue it's that it does not trigger (I put some console.log in there and I cannot see them)
No macro needed.
Use MidiQOL reactions.
The reaction item will be just dealing 1d4 damage to the attacking creature.
Select the attacker and roll the item after a Reaction hit is triggered
If it's more like fire damage against melee attackers I have shared some reactive damage scripts with instructions on how to use them
The hook will be created on the client that registers it
So if you can only use it as a GM when no player is connected, it might mean that the macro isn't suitable for a player client π€·ββοΈ
What is the actual macro script?
And do you use the Advsnced Macros execute as GM by any chance?
This it's the macro
ok that makes sense. forgot about that feature. But how do I set that up? These are my midiqol reaction settings.
if (actor.system.attributes.hp.value < 1 && lastBreathUses < maxLastBreathUses && !critReceived) {
// Set the HP = 1;
await actor.update({ "system.attributes.hp.value": 1 });
// Activate the DAMAGE IMUNITY
await actor.createEmbeddedDocuments("ActiveEffect", [damageImunity]);
// Update the usage FLAG
await actor.setFlag("world", "symbiotStats", { uses: { lastBreath: lastBreathUses + 1 } });
// Activate the trigger
const hookId = Hooks.on("midi-qol.preCheckHits", async (workflow) => {
// console.log("----- midi-qol.preCheckHits -----");
// console.log(workflow);
if (workflow.isCritical) {
const [symbiotToken] = canvas.scene.tokens.filter((tok) => tok._actor.getFlag("world", "symbiotStats"));
// console.log(symbiotToken);
Array.from(workflow.hitTargets).forEach(function (token) {
if (token.document._id === symbiotToken._id) {
const symbiotActor = symbiotToken.actor;
const effect = symbiotActor.effects.find((eff) => eff.label === damageImunity.label);
effect?.delete();
Hooks.off("midi-qol.preCheckHits", hookId);
// Mark the Critical hit
actor.setFlag("world", "symbiotStats", { uses: { criticalHit: true } });
}
});
}
});
} else {
// Check if actor have the Damage Imunity effect
const effect = actor.effects.find((eff) => eff.label === damageImunity.label);
if (!effect) {
// console.log(Hooks.events["midi-qol.preCheckHits"]);
const hookData = Hooks.events["midi-qol.preCheckHits"];
if (hookData?.length > 0) {
console.log(`Delete the Hook ${hookData[0].id}`);
Hooks.off("midi-qol.preCheckHits", hookData[0].id);
}
}
}
The script it's put on an effect which it's triggered on each combat turn
Yep, used it as reference, was going to look at the distance stuff next
Yeah I am on the way, so cannot read that easily on my phone .
Try wrapping the code in
```js
//Code here damn phone
```
if (actor.system.attributes.hp.value < 1 && lastBreathUses < maxLastBreathUses && !critReceived) {
// Set the HP = 1;
await actor.update({ "system.attributes.hp.value": 1 });
// Activate the DAMAGE IMUNITY
await actor.createEmbeddedDocuments("ActiveEffect", [damageImunity]);
// Update the usage FLAG
await actor.setFlag("world", "symbiotStats", { uses: { lastBreath: lastBreathUses + 1 } });
// Activate the trigger
const hookId = Hooks.on("midi-qol.preCheckHits", async (workflow) => {
// console.log("----- midi-qol.preCheckHits -----");
// console.log(workflow);
if (workflow.isCritical) {
const [symbiotToken] = canvas.scene.tokens.filter((tok) => tok._actor.getFlag("world", "symbiotStats"));
// console.log(symbiotToken);
Array.from(workflow.hitTargets).forEach(function (token) {
if (token.document._id === symbiotToken._id) {
const symbiotActor = symbiotToken.actor;
const effect = symbiotActor.effects.find((eff) => eff.label === damageImunity.label);
effect?.delete();
Hooks.off("midi-qol.preCheckHits", hookId);
// Mark the Critical hit
actor.setFlag("world", "symbiotStats", { uses: { criticalHit: true } });
}
});
}
});
} else {
// Check if actor have the Damage Imunity effect
const effect = actor.effects.find((eff) => eff.label === damageImunity.label);
if (!effect) {
// console.log(Hooks.events["midi-qol.preCheckHits"]);
const hookData = Hooks.events["midi-qol.preCheckHits"];
if (hookData?.length > 0) {
console.log(`Delete the Hook ${hookData[0].id}`);
Hooks.off("midi-qol.preCheckHits", hookData[0].id);
}
}
}
The script works also on the player side
The part where it's deleting the Hook
I can see that on the console
The only thing that does not work it's the Hook
All good there.
Create an item on the actor.
Set it as Reaction Hit
use Hooks.once instead so you dont have to fiddle with removing the hook afterwords
Ok, but the Hook should work also on the client side? (Player)
the hook will only be active on the client that registered it
Wait dot you use that item to trigger the hook?
In the Foundry app I can see the Hook like this:
you are also trying to use an async function in a "pre" hook, so if any part of your rolling process depends on the changes done by the hook code, it will not update in time
In the player client (chrome browser) I cannot see that log anymore although the Hook It's created, I can see it in the Hooks.events["midi-qol.preCheckHits"]
midi/dae also executes macros seemingly randomly between the client and gm
in some cases, the client executes, in some cases, the GM client executes
(its not random, i just dont understand the workflow)
I am a bit confused as to what you want to achieve
Log the token if it's what you want
Like this? I don't see a field to put the reaction. Do I need to make an effect?
Cause it will be the player,,'s on the players side
is it meant that reach creatures aren't affected by this?
No it's fine. Did I write Reaction Hit by mistake? You've set it up corebtly
So everything from the script show in console (except the part that it's actually inside the Hook)
haven't decided just setting up the basics of it right now. I know I could change the range to 10 if I wanted.
Does the precheck hit trigger on the players client?
It does only on the attacker's afaik
not the main problem, but this statement wont ever work:
Hooks.off("midi-qol.preCheckHits", hookId); (inside the hook function), as you are trying to reference hookId inside a function argument that RETURNS the hookId -- i.e. hookId doesnt exist at the time you define the hook function
Not sure I understand the question... π¦
You want to trigger something when a player receives a critical hit, correct ?
yes, exactly
oh I see, okay I set up the Equipment action and that's what triggers on the reaction. Ok that's cool. But it rolls it as an attack, I want it to just be an automatic hit.
Ok so that hook will be triggered on the GM client only iirc
Make it Action Type Other or utility with just a damage formula
Raincheck for when I am at my desk? π
Yes, exactly, that hook only works on the GM client but I need it to work on the client browser also (and it doesn't)
You will need to go a different route then. You could try to execute the macro as a GM
Advances macros module lets you execute a macro as a GM
I think I have them installed..
Thank you!
If I want a spell to deal damage to everyone within 5 feet of a character, but not deal damage to the character, how would I automate that?
A 5-foot radius template would target the character casting it too, right? How would I exclude the caster from it?
It might be easier than this, since I'm still getting familiar with everything myself, but just from what I've seen, this might be a good starting point
if (args[0].tag === "OnUse") { //this triggers as soon as the spell is first used.
const targets = MidiQOL.findNearby(null,token,15).partition(tok=>tok.document.disposition !== token.document.disposition)[1]
for (let target of targets) {
await target.actor.setFlag('midi-qol',`SpiritGuardians_${item.id}`,{initialCastingTime:`${game.combat.id}-${100*game.combat.round + game.combat.turn }`})
}
await token.actor.setFlag('midi-qol',`SpiritGuardians_${item.id}`,{targets:targets.map(i=>i.document.uuid)})
return;
}```
It's from a Spirit Guardian macro I think Bugbear made? unless I'm misremembering
I imagine if it's just within radius of a character, you don't really need a template I wouldn't think
Yeah
For the one above, and someone correct me if I'm wrong, cause I haven't even looked at dispositions and all that, it looks for any tokens nearby the caster within 15ft that are disposition[1] which I'm assuming is hostile
you set it to like...targets, "special" or something like that, right?
some item setting tells midi not to hit self
Ahhhh, Special excludes self.
Ah, I didn't know that either
Awesome, that makes things a lot easier, thank you!
@errant gull Range Special to exclude self
Target 5 | ft | creature or enemy depending on description
Yep, thanks!
is there an easy way to apply a CUB condition?
With MidiQOL? When or how do you need to apply it?
Probably with a DAE StatusEffect, or macro.CUB
oh is that DAE, yeah the srd module uses StatusEffect but that doesn't seem to do anything, wasn't sure if it was out of date or smth
this is specifically hold person from midi srd (it was supposed to apply non-CUB condition out of the box though but that doesnt work either)
And how do you have set up the item?
Target etc?
it applies the effect fine but it doesn't seem to do anything
it's 1 target, the apply effect button appears and everything
That means that probably you haven't set the CUB condition to do something π
idk
That seems fine then!
i'll try with other modules disabled though I don't think I have anything else that'd mess this up
So is the effect transferred on the target?
yeah this effect is applied fine but saves and speed are unaffected
If you click on the character sheet of the target and go to effects, is that Paralyzed populated with the correct effect values?
it has the StatusEffect paralyzed CUB thing
I see a different icon that the one from the 1st screenshot though
that's the icon for the effect attached to the spell, the CUB effect has a different one
Can you edit the Temporary effect and check what it has in its Effects tab?
it's the thing I posted earlier yea
OK and is that StatusEffect not present on the actor too ? π€
I'm not sure what you mean
it didn't add a separate CUB paralyzed condition if that's what you ask
I have to bow out for the time being, as I am leaving and also not using CUB (I am using DFreds CE instead) so I cannot troubleshoot effectively. If noone picks this up, we can take another look later!
I'll be trying with other modules disabled in the meantime
One quick thing you can check, is instead of StatusEffect, use macro.CUB as the Attribute key in this screenshot
same dealio, movement is unchanged
meanwhile applying paralyzed directly does work
From CE
oh hey so that's how you give free adv I wanted to add that neat
not the problem tho
Yes, it is not updated as of yet.
neither StatusEffect nor macro.CUB seem to actually transfer any of the effects onto the actor and I'm a bit lost as to where to look
lol, I didn't even know it existed. Looks like his moonbeam does exactly what mine does, but better
Ah well, it was a hell of a learning experience
ok so the reason macro.CUB didn't work is I changed to it after the effect was already applied, I tried changing the effect attached to the spell to that and it works now
Anyone know why hunters mark doenst apply bonus dmg?
is that THE hunters mark or just a basic Hunters mark? I don't see item macro installed, where did you get that spell?
After seeing your better links in the other channel, I don't think you have an automated hunter's mark.
install item macro or drag and drop midi sample items Hunter's Mark and use that one.
item macro is installed
Something really weird going on with Aid in v10 from Midi SRD
The 87 in the second window is referencing the casters max hp, this is not the caster
Its not modding the max hp field on the sheet
Try 5*((@spellLevel)-1)
the first ae example is the effect on the target after the spell is cast, it does not seem to be doing anything
theres nothing in the max field
Make sure you don't double trouble with DFreds CE at the same time
Works fine for me
that was probably what caused it
the original item has no action type set so I couldn't access the checkbox
what is weird is that its still working, just not displaying in the temp field
so I think I have borked my players max hp, it seems to be modding the actual max fields
IΒ΄m not sure what you mean?
show us the details of your hunter's mark spell, thats on the actor in their spellbook
pretty sure you got the same problem that I just reported
cause your ae icon for hunter's mark is dfreds icon and not the premade items icon
ah ok one second
@violet meadow are you sure its working right? it is modding max hp, but its not doing the temp max hp values, its doing actual max hp
Its empty here still with actual midi srd version:
details of the SPELL not the active effect
ok for the record, this image is dfreds hunter's mark, you are showing us a bunch of active effects, show us the details tab of the actual level 1 spell in the rangers spellbook
Why temp max? Max and current hp
thats the point of temp max, for spells like AID, temp max is temporary changes to the max hp
not the same thing as temp hp
ok to be clear, do you know where the spellbook is on a character?
almost there, details tab
also now that you do have item macro installed, you'll have to go in and turn off character sheet hooks in the module settings for it
Ok two problems
in which module?
midi qol?
probably a third cause of item macro installed....
Item Macros module settings, uncheck the box for character sheet hooks, thats a side problem not the issue here though
your problem is you have a dndbeyond imported item, ALSO you have hunters mark being applied by dfreds CE instead of letting the item do it. So you should probably delete that hunters mark spell, find the midi sample items compendium, and drag out the proper automated hunters mark
the proper automated hunters mark will have a code at the end of the name, that you can delete off of it, however, you need to edit the item, give it an action type(other) and then check the box at the very bottom "Don't apply convenient effect"
and if your importer is setup to replace items, turn that off as well, because midi sample items are usually better than what you get from dnd beyond
I've had this enabled the whole time >.>
Also Override default macro execution was on lol
hmmm how doi drag the spell into the char?
Sheet Hooks is a nono for MidiQOL compat
drag and drop
you need to be open to the players spellbook
if you drag it to the inventory it creates a spell scroll instead
how on earth were you doing all that macro work with character sheet hooks on lol
That is the way it was π€·
You can use DFreds Aid tbh!
hunter's mark is not at will, its a level 1 spell
but regardless, you still need to make sure the box is checked at the bottom
I am right though right? its targetting the wrong key yeah?
MidiQOL version @placid folio ?
Now I'm worried all my stuff was made accounting for errors lol
it gets the job done cause its automated, but it is technically the wrong key
that don't actually exist
hmm doenst work π¦
yeah probably, never used that spell
it probably doesn't work because you didn't do the checkbox part yet
Is it that last available Hunter's Mark from the MidiQOL sample items?
It might not be working as is
I told them to get hunters mark from midi sample items yes
Hunter's Mark 10.0.13
if you search hunters mark in the discord, tposney posted another one that accounts for retargeting
think it'll be in the next update probably
lets not overcomplicate the poor new guy
Do you have babonus module?
what?
hunters mark 10.0.13 works just fine
what is babonus?
their problem is they did not uncheck dfreds CE
I just tested it myself
they are new, they missed my last instruction
Yeah I'm using the midi sample one as well. Seems to work alright
their ae is dfreds icon not the spells
Nevermind me!
oh actually if they left the numbers in the name, they don't need to check the box
IΒ΄m no confused..
only need to worry about it with the dndbeyond import or if you edited the name down to the spell
what needs to be disabled?
show us the spells details tab again
Your spell should look like this:
if you left the version number in the name, that is fine
ok, now
That is not imported yet
And also you have ASE module active on v10
yep, need to drag the spell and uninstall ASE
are you a player or the dm?
go to manage modules and disable Asomething spell effects
oof, in the top right corner of your screen, there is a settings side bar cog button, click that, then manage modules, and then find advanced spell effects and uncheck the box so it disables, when you hit save it will refresh
now in the compendium sidebar is a midi sample items compendium, search it for hunter's mark, and drag and drop it onto the rangers spell book tab
(delete the old hunter's mark before you do this)
also can you show us a snippet of your attack when you go to test it as well
drag out a new actor, or if you know how to delete active effects on actors, clear the combat dummy of the extra stuff
hes probably got like 5 hunters marks on him
I am referring to the guy you are shooting btw
ok, show us the targets active effects
ok now show us the active effect tab of the ranger
thats all fine, the ranger should have a self buff on them as well
ok shoot the weapon again, and then hit F12 and show us the errors
you may have to find the console tab when you hit f12
hmmm
he marked himself atleast once, that could be the problem too
it could be the newest attempts that marked himself too...
clear the ae's from the ranger and the target, and retry again ensuring that only the bad guy is marked
Nevermind marking self is actually a thing apparently
shoot the devil with the setup you had, and then F12 and find the console and show us your errors
here
what module is spell template
its not called spell template in manage modules iisn't that the old v9 module that auto removed templates?
sift?
side question. Is advanced macros still not good for updating?
I don't recall the actual name of that module, I am guessing maybe you have v9 sift installed? find a module with spell template in its name but I doubt that is its actual name in manage modules
thats what is getting in your way
If its Spell Template Manager disable it, Bugbear would know what its called, I think its initials are SIFT
Workflow button, workflow tab, saves section
disable all the yellows with 9's and probably that yellow with no number
keep the yellows with 10's, those are fine
Link Item and resource dnd5e is ok to leave installed, the mod author just needs to fix their compatibility warning field @placid folio
I don't see a way to make it invisible as a GM tho
Oh, in the midi documentation it says character sheet hooks and the override are player specific, but my players aren't seeing the options
is that outdated?
item macros character sheet hooks are in the midi readme 0_o
When you have it set to Only Gm Sees, you need to log in as a player to see the effects:
left is gm's screen, right is the players
Yeah in the compatibility section iirc
they are global in v10 atleast
DF settings clarity I think?
thanks
ok you should work this time when you cast it
If it fails still, then it has to be user error, nothing short of us watching your screen will solve it
if you can stream your foundry down in a vc real quick we can watch you use it and see what the fundamental step you are missing is
thanks for the answer, i know that, i was asking a way to get rid of the success confirmation as a GM Too, because some other modules make it redundant
Don't think you can when using Monks TokenBar. There is a relevant issue in MidiQOL I think
Spell Template Manager is the predecessor of SIFT, so think back to v8 almost π
ahh i see thanks, at least it wasn't me being blind or something π
can you post your screenshots here, your midiQOL settings and steps to reproduce?
@violet meadow hey, i was told to you share this with you:
this one is uncanny, I have no idea why its not rolling
@violet meadow His settings are sound, I watched him roll, we even did a fresh world with just dae/midi/socketlib/libwrapper. The bonus damage just refuses to work in the ae. In the new world we were getting the no item macro error even though it was clearly there on the item.
they are locally hosting, had the newest midi/dnd5e/foundry/dae
ItemMacro?
it runs in the ae
when you cast hunters mark it calls Itemmacro there
we didn't do anything with the import, he dragged out to starter heroes and cast the spell
I just reattempted same that he did, and its not happening, something about his install, or his hosting method is interfering or his browser itself is the problem
Item Macro module version?
I've never seen this, he was doing everything perfectly right, his versions were all right as well, I genuinely am stumped
I never checked that for him but his images are above lets see
he has the same version as me
the only other abnormality, is that they are using a german keyboard, probably german localized browser as well(sorry assuming that was your accent)
I have no clue if that even matters here though
their foundry wasn't localized to german, but their console/browser was
done
@placid folio Only other steps you could take to try to fix your issue is to try a fresh reinstall of midi, socketlib, libwrapper, and dae
And item macro
(and reboot your server)
Did you drag and drop the MidiQOL sample item on the character sheet directly from the compendium or imported it in the sidebar and then onto the character sheet?
Trying to see if there is a connection
I watched them, we did it a bunch, every time he opened the compendium and dragged it directly from compendium to the spellbook
Also is that being used from a GM account or players?
yes, he was logged in as a GM
Try importing the item and then putting on the actor
He went of to bedtime.
oof wrong reply @placid folio π
I never import to sidebar, but at this point, I'd do anything too to get it to work lol
I have seen that error before, but I can't remember exactly now. Will take a look in the midi files
I will be on again tomorrow, just brushed my teethπ€£
Its gotta be something in their browser, their server, or something cause I mirroed them on my end and it worked, and we went through all the midi settings and even did a fresh world with starter heroes to test.
I have docker install, all clean every update...
and they did do a clean browser attempt, no extensions, however, they did have an invasive autocorrect extension, could that have modified the item macro somehow?
This macro seems odd
thats not the macro we used
Is that what you see on the Hunter's Mark?
So, only browser, will try Firefox tomorrow ,
that was before they started using the sample
thats their dndbeyond imported version
also tiny lil sidenote for tposney, the hunters mark item macro says 10.0.10, but is labeled in the item as 10.0.13, just a lil typo is all
he had an auto correcter on that clearly detected effect value fields and item macros, I wonder if it cleaned his macro when it ran
and then when I had him turn it off, we never redragged out the item
I think it was grammarly
k, was it that extension though?
k, so your instructions for your next tests are, uninstall/reinstall modules, redrag out the item, keep the spellchecker turned off or whitelist your foundry url for it.
Is there a call that gets made when concentration is dropped?
when you do that, don't migrate your settings/bookmarks
Ah, I see, the on/off is only sent if there's an active effect actually on it
If anyone needs a Vampiric Touch for v10 I just made one
Makes an At Will item for it while you're concentrating that reverts when concentration is dropped
You can probably change out the warpgate health update with midi damage so the health change gets an undo button.
Something I just saw in MidiQOL issues: ```
10.0.23 will add an "off hand" property to each item which will roll damage without adding the damage bonus
Thanks. I'll look into this
await MidiQOL.applyTokenDamage(
[
{
damage: diceRoll.total,
type: 'healing'
}
],
diceRoll.total,
new Set([tokenDoc]),
null,
null
);
might not need to be awaited
Β―_(γ)_/Β―
Take note that the default state of MidiQOL.applyTokenDamage() is to change the hp of the target automatically. So if you need it not to do that, you will need to pass it in an object with this option at the ,{forceApply:false});
(it is async by the way)
Hey there, having some issues with an old flame blade macro updated to v10
Macro:
const DAEItem = lArgs.efData.flags.dae.itemData
if (args[0] === "on") {
let weaponDamge = 2 + Math.floor(DAEItem.data.level / 2);
await actor.createEmbeddedDocuments("Item",
[{
"name": "Summoned Flame Blade",
"type": "weapon",
"data": {
"quantity": 1,
"activation": {
"type": "action",
"cost": 1,
"condition": ""
},
"target": {
"value": 1,
"width": null,
"units": "",
"type": "creature"
},
"range": {
"value": 5,
},
"ability": "",
"actionType": "msak",
"attackBonus": "0",
"damage": {
"parts": [
[
`${weaponDamge}d6`,
"fire"
]
],
},
"weaponType": "simpleM",
"proficient": true,
},
"flags": {
"midi-srd": {
"FlameBlade":
actor.id
}
},
"img": DAEItem.img,
"effects": []
}]
);
ui.notifications.notify("A Flame Blade appears in your inventory")
}
if (args[0] === "off") {
MidiMacros.deleteItems("FlameBlade", actor)
}```
Errors:
[Detected 1 package: midi-qol]
at eval (eval at callMacro (workflow.js:1627:15), <anonymous>:5:30)
at Workflow.eval (eval at callMacro (workflow.js:1627:15), <anonymous>:6:4)
at Workflow.callMacro (workflow.js:1628:14)
at Workflow.callMacros (workflow.js:1518:21)
at Workflow._next (workflow.js:923:18)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)
at async Workflow.next (workflow.js:261:10)```
Changed the "data" to "system" in the weapon description but error remains the same
Do you have the v10 version of Midi SRD?
Works for me!
That is weird
trying directly with the MidiSRD spell rather than a custom macro leads to
[Detected 4 packages: midi-srd, advanced-macros, lib-wrapper, dae]
at MidiMacros.flameBlade (MidiSRD-macros.js:1360:59)
at eval (eval at executeScript (lib.js:175:13), <anonymous>:4:13)
at Macro.eval (eval at executeScript (lib.js:175:13), <anonymous>:5:3)
at Macro.executeScript (lib.js:179:13)
at πcall_wrapper [as call_wrapper] (libWrapper-wrapper.js:591:14)
at πMacro.prototype._executeScript#0 (libWrapper-wrapper.js:189:20)
at Macro.renderMacro [as renderContent] (lib.js:288:10)
at _executeMacroInternal (lib.js:137:17)
at Macro.executeMacro (lib.js:77:8)
at πcall_wrapper [as call_wrapper] (libWrapper-wrapper.js:591:14)
at πMacro.prototype.execute#0 (libWrapper-wrapper.js:189:20)
at daeMacro (dae.js:771:42)
at async Semaphore._try (commons.js:11563:19)```
I suppose could always skip DAEItem entirely and just hardcode the damage possibly
Or maybe just reference actor level
Strange. Advanced Macros version?
1.19.3
In v10 what point of time should I be setting advantage or disadvantage to overwrite what it previously had? It should be preAttackRoll right?
I am on 1.18.1, there were some issues, but I don't know if 1.19.3 has fixed them
Sounds about right
I'm setting it, but then it's reverting
foundry.utils.setProperty(workflow, 'advantage', true); ?
Let me try 1.18.1 then, see what happens
I am off, but will check later
Yep
console.log(this);
console.log(this.advantage);
console.log(this.rollOptions.advantage);
if (this.targets.size != 1) return;
//if (!this.advantage) return;
let sourceActor = this.actor;
let effect = sourceActor.effects.find(eff => eff.data.label === 'Wildhunt Aura');
if (!effect) return;
console.log(effect);
let origin = await fromUuid(effect.origin);
console.log(origin);
let originActorId = origin.actor.id;
let targetToken = this.targets.first();
let targetActor = targetToken.actor;
if (targetActor.id != originActorId) return;
console.log('This far');
foundry.utils.setProperty(this, 'advantage', false);
foundry.utils.setProperty(this.rollOptions, 'advantage', false);
foundry.utils.setProperty(this, 'flankingAdvantage', false);
//this.advantage = false;
//this.rollOptions.advantage = false;
//this.flankingAdvantage = false;
console.log(this);```
It's getting set back to an advantage attack
Same issue unfortunately
oh wait
slight difference
[Detected 1 package: midi-qol]
at eval (eval at callMacro (workflow.js:1627:15), <anonymous>:10:32)
at Workflow.eval (eval at callMacro (workflow.js:1627:15), <anonymous>:64:4)
at Workflow.callMacro (workflow.js:1628:14)
at Workflow.callMacros (workflow.js:1518:21)
at Workflow._next (workflow.js:693:35)
at async Workflow.next (workflow.js:261:10)```
...though it's saying advanced macros isn't installed now, which might be it. Lemme try to fix that first
Right, same issue with that
Own macro results in the same flag error, pre-built with the level error
Effectively these attributes are reset just after the preAttackRoll, you should try to set workflow.rollOptions.advantage
I did both
It works as intended if I make this a worldscript
Hooks.on('midi-qol.preAttackRoll', async workflow => {
if (workflow.targets.size != 1) return;
let sourceActor = workflow.actor;
let effect = sourceActor.effects.find(eff => eff.label === 'Wildhunt Aura');
if (!effect) return;
let origin = await fromUuid(effect.origin);
let originActorId = origin.actor.id;
let targetToken = workflow.targets.first();
let targetActor = targetToken.actor;
if (targetActor.id != originActorId) return;
workflow.advantage = false;
workflow.rollOptions.advantage = false;
workflow.flankingAdvantage = false;
});
Working as intended, I was trying to have it run as a flags.midi-qol.onUseMacroName from an active aura.
So that way it only runs on the targets in the aura, instead of everyone always checking
The hook is called much later in the process compared to the onUseMacro⦠maybe the call to the macro should be moved closer to the hook like the others
That would explain it
They have the same name, so I figured it was doing the same thing
hey team, for the first time I've had a play with PV in v10 with a view to see how Darkness is working, and wow it's great. So if you set the parameters on the template, anyone in it can't see, and anyone outside can't see in. Someone with Devil Sight can still see and target creatures
So that was all with manual playing around... just wondering if there's a preset that works like this? Tried the midi SRD one but no cigar...
I don't touch token visibility, but I do have a darkness automation that covers advantage and disadvantage with visibility rules.
https://github.com/chrisk123999/foundry-macros/tree/main/Spells/Darkness
If you care for it.
Does the PV one just not play nice with midi workflows?
I'm sure it would, I just don't know how to set up a template so it has the right PV settings when you cast a spell... I could take a crack at it but wondered if there was one already set up somewhere. Wondering if the easiest way would be to set PV flags on the template with Template Macro? π€
Any reason why clicking item image does not roll attack / damage card with MiDI?
Probably many π
But any console errors? Popups? No target selected based on settings?
Wasn't Chris making a darkness template macro one? π
No errors
I just posted it above lol
I blame the time and my phone π€£
What does PV do for templates? I don't currently use that module
But I don't mind updating it to work with it
All actors, all weapons? Do you have a target selected?
Neither do I! I actually just started using it to test it out cause we are getting in some creepy caverns with my group and wanted to see if it can help with the atmosphere
refresh the browser if there are people in it, I find that sometimes targets get stuck unuseable during live sessions sometimes, and they fix it when they reconnect
... YOu need a target selected...
Cna that be disabled
you gonna be surprised what section thats in
Its disabled in the options tbh
midi module settings>workflow button>workflow tab>targeting subsection, I think its at the top.
define disabled
and its still requiring a target?
did you save at the bottom?
did you restart the server?
not yet the world just reloaded after the module enabling
after restarting, confirm that setting took
never encountered a need to restart server for a module
we're testing to see if your server needs a reboot
gonna take a while its in a docker
alternatively you could target something to roll
explain that to lazy players half of whom are new to ttrpgs
you could also disable midi
seeing as how 90% of midi is stuff with targets, it seems like a bad fit for the table
I would but the only other thing that allows fast rolls is the fast roll module which sucks as it only created 3 separate chat cards with description, attack and damage instead of small neat one card with everything
Still dont ducking understand why the autoroll is not core in 5e
fast rolls, fast rolls by default, and ready set roll would be fast roller alternatives to the beast that is midi
clicking item to create card that allows attack and damage buttons like cavemen
oh I think your issue is you are using more than one roller
just seeing your dialogue in dnd5e
fast rolls by default, fast rolls, ready set roll, roll groups, better rolls for 5e, better dice tooltips, and minimal roll enhancements are all incompatibile with MidiQol
to be honest 5e is so barebones and 0 automation it needs so many modules and configuration done to be usable without headaches
Some folks prefer manual
Many things such as applying damage sure since resistances but why make things like roll damage with weapon a 10 click process
Its still faster than waiting for a wizard to pick what level to cast magic missile at
just look at how neatly some other systems do the rolls such as PF1 or even PF2 and SWADe. Not to mention the 5e is missing simple stuff like "Apply damage" button where DM can easily apply fireball damage to bunch of enemies by mass selecting and clicking button :.(
the folks who make the things we can have fun with decided to take dnd in a different direction than pathfinder here. It is what it is. But hey, thanks to tposney, we get a module that can do it!
Did you figure out your settings issue?
Yeah I know its just sad seeing how awfully manual and tedious it is without modules
was it a module conflict?
what?
Yeah the Ready set roll is fine for the automation
Midi is a bit overdone (eg someone might use counterspell)
I listed a bunch of rollers, theres a few that work ok, but for the most part do not mix any of them with midi whatsoever
Yeah disabled midi
alot of them are also incompatible with each other. Roll groups and fast rolls by default specifically are great together, everything else should be seperate
you will lose all active effect transfer features and damage application
will have to use the core damage application
also if you had the premade midi stuff, you will need to swap out for other stuff probably
This is what PV does... seeing from the outside, seeing from within, seeing from without with Devil Sight
Interesting
Also, if you're inside with Devil Sight, you can still see creatures without
The problem I had with darkness in v9 is yeah, it blinds creatures within, but doesn't stop you seeing through it. This does
I wouldn't play with it like that personally. Since you can still attack unseen creatures at disadvantage. Unless they hide
Yeah but creatures shouldn't know what's on the other side, even if they're not blinded
I just use an animation cause I don't have warlocks at my table and 99% of the time every roll is a straight roll
even if I had a warlock we'd just handle it manually, theres multiple floors of drow tossing darkness out left and right so we're all so used to it by now that its become a meme
yeah I just like using darkness to prevent being targeted by the millions of features that affect a 'creature you can see'
we still have to look at them all
you don't necessarily need to blind with it, just put it in the way
my casters never read their spells
" but it says it ignores cover" yes, right after it says a creature you can see...
well I certainly hope someone is taking advantage of this amazing feature of PV
I just feel like you'll be fighting with being unable to target when they want to make attack rolls
With PV
they can always target with the combat tracker
all of our enemies have unique names
(thanks token mold)
I want your table
that part isn't really different to how blindness works in core now
my players are very casual to foundry, they hate changes to the UI and hate having to manually do things or do things differently than usual.
Do you have any martials?
I have a barbarian and a paladin
What if they want to position themselves in front of the person they can't see?
the barbarian is a "spectator" player who basically rocks the combat booster history buttons and is just in love with the game and isn't trouble, its the 3 casters that are a handful
I am tossing up giving everyone see invis so they can 'hear'... but our only martial has blindsight anyway so that's not an issue
anyway the GM could 'ping' where they need to go... it would still be a good reminder they're actually blinded and can't use terrain to their advantage etc
tbh if we told our GM we were attacking into melee while blinded he would probably make us roll to see who we hit π
I like to stick to RAW for stuff like that
Anyways
I'll have to play with PV and get my darkness to work with it
The darkness from your screenshot, was that made with a spell?
or just at template that was manually placed?
I don't see any config on a spell with a template
But I'm sure it can just be done by setting flags
Or an API method if it has one
Looks like it's just a matter of setting the flag on the template
One of my players is way of the ascendant dragon monk
Going to have to figure out how to handle draconic strike
Change the damagetype in the workflow.
Yeah I just feel like it'd be annoying to have to choose a type every attack, so might make a separate item for them
https://github.com/MrPrimate/ddb-importer/blob/main/macros/spells/chromaticOrb.js
Could base it off this one.
thanks
Also, how do you guys handle sharpshooter?
I have it toggleable as a CE
But just curious if there's a better way
yeah dfreds
that seems like it would get annoying
Yep
So yeah I think toggle is the way to go
Thanks. Haven't run a combat with all this new automation yet
So trying to get a feel for what's going to be annoying and what isn't
My paladin player has it prompt for using a smite on every attack
They don't mind it
It just depends on the player for stuff like that
yeah good point, guess I'll just have to wait and see
Our paladin has a smite he can toggle on before the damage roll... he only ever uses it on a crit
Tested in firefox, no effect, will do now a fresh install of foundry and delete all settings, worlds, mods etc...
wooaaahhhh
crazy
complete fresh install works
it finnaly adds the hunters mark dmg
wtf
installed dnd beyond impΓΌorter
went back, no even activated the new modul, stopped working
whats going on? are there modul conflicts even without using them?
nope
uninstalled, still doesnt work
it added the dmg, logged in in backend admin, logged back into world, stopped working..
ahhh I think it has something to do with reloading of the world...
Any able to tell me how flags.midi-qol.max.skill.per functions?
you have the setting on where the importer rebuilds the character with its own items or whatever, I forget what its called.
after playing around so far, i think it has something to do with the tokens or the world not cleaning up it effects or settings correctly