#MidiQOL
1 messages · Page 108 of 1
So yeah it’s assuming you already have an actor called Dancing Lights
Just create one in the sidebar 🙂
done i just copied the J2BA one to the sidebar
can i add it to the dancing light spells?
or just a normal macro?
just asking
Pop it in the onUse field, shouldn’t really matter when it fires
The name of the macro that is
so like this
onUseDancingLights? on the details tab
Yeah the on use macro section at the bottom of your details tab, pop the name of your macro in… idk what you’ve called it, whatever it is in your macro folder
It can run after active effects or whenever
Alternatively copy the macro contents into the Item Macro and put ItemMacro in the on use macro field
If you want to keep it all in the spell item
thanks it worked
curious - what are the attributes 'hp mt' and 'hp dt'?
Question, how do I do to roll all the savings, abilities, reaction as a DM? What I mean is I dont want my players to see the window when it happen, only me as a DM will able to see it. We play at home with a TV so thats why.
I'm on midi 37 and dae 26, and I had a really weird glitch tonight where players would try to attack once every so often without a target and instead of nothing happening cause I have require target always, instead it would say the attack missed or hit, and roll just fine, but the target would be the last time they rolled that ability. And midi would not complete the workflow to damage it. No errors in console at all. It wasn't a glitch or a bug, only I saw the weird borked workflow they saw nothing they just got the "you didn't target anything" usual occurence.
Now you have me worried, I’m on those same versions. I wonder if I may as well just go Update All
Thank you very much. I have a little troube understanding all the steps in setting it up, as I am still a beginner in the whole midi-qol thning
I’m on 37 and 26 and we played a 3.5 hour session last night and it all went really well. Combat lasted about two hours as well. 😂
That sounds like synthetic items rerolling for some reason 🤔
there's an option in midi's workflow settings to have NPC rolls as GM rolls, but I'm not sure if that's what you need.
just whisper to self your rolls
how hard would it be to automate this to show a dialog window asking "use extra damage die?" and applying the extra damage without using Item Macro?
reason I wanna do this without Item Macro is because Arms of the Astral Self will be created in the actor's sheet by another macro, and I am 10000% sure that creating an item through macro that has another macro in it is WAY beyond my skills
make arms of the astral self a weapon instead of a feature, give it a versatile flag, and put the extra damage die in the versatile field and once per turn roll versatile instead
include the full damage formula with that extra die if using versatile
not sure if this would work, as I'm going full auto on midi
alternatively you can look to emboldening bond for a once per turn setup thats premade. I have a zealot barb divine fury once per turn macro I could share too
you asked for a method that doesn't use item macro, that is the cost, losing automation for it
noooooooooooooooooooooooooooooooo :_(
actually
welp it would use a macro nm
I assume you meant macro, not item macro
but you could janky it with an item that recharges on 1, it has a blank ae that has an effect macro that tells the item to roll on turn start. The item itself has a item transfer effect for bonus damage that expires after the first damage roll.
the macro would literally be origin.use()
interesting
blank ae would be transfer on equip, damage bonus ae would be standard self item transfer
ultimately the better solution is an actor on use though
well, I'll have to automate the other Astral Self features before that anyways, I'm just trying to grasp how much pain it will be
if you only use arms of the astral self this would work as is, if you can pick and choose then you'd have to put an on use macro on the arms of astral self that pre item rolls the buff on the item instead of having it auto fire on turn starts
Right now I've managed to automate arms of the astral self, it creates a weapon with the same name in the players inventory, much like flame blade. Hurray for me!
so, it seems that having a macro create an item with an item macro in it is not that hard after all, so I'll do it that way
but I won't suffer this, no, I'll leave it to future guganda
Optional bonus by MidiQOL
An AE on the item per the readme, to apply damage when the player clicks on the dialog pop up once per turn or round or whatever
is it possible to have the AE filter it so that the damage dialog only pops up for an specific weapon?
0_o what? Why is my divine fury a macro then lol
That needs some thought 🤔
Wow, yeah I'm lookin at it now, that totally could have been an optional.name
theoretically, the bonus damage can only be applied to an attack with the weapon "Astral Arms"
put an active effect thats transfer on equip on the temporary item astral arms that has all the optional.name stuff on it
and for zealot barb divine fury, just add the keys onto the rage
sips delicious bab tea
can't, because that bonus damage isn't immediately available, the actor needs to have Arms of the Astral Self AND Visage of the Astral Self active to have the bonus damage available
that too
if you put turn on then it should be once per turn no?
It’s doable though, but no time. Getting ready to fly out for a couple of days
yeah, but it'd be available on all attacks, not just astral arms
would you use any other attacks while its active?
bonus damage once per turn on any melee attack, quarterstaff, short sword, unarmed, etc...
oh, you haven't met my players
what subclass is this
astral monk
the whole thing is a combo of three features
NA stands for "not automated", isn't part of the feature's name
Honestly, I'd walk away from this automation lol
I'd ask the monk to pick a different sub lol
Leverage the player in this item. Put the automation on Body of the Astral Self and roll that to turn on the bonus damage, the player will know when they can use it.
What is up with that ui
that's a good idea. If can't get around fully automating this, I'll have to resort to this
no automation will work perfectly for that
what do you mean? It's foundry's standard ui
even if it did the amount of poitns of breakage would drive you nuts
text is weird.
its midiqol
the buttons are midiqol, the text is probably just a custom description font from the editor
even better delete your last 3 messages
I don't even know what you're talking about
I've pasted stuff into a description and gotten weird font usage before though
Hell if you copy an non editor version of a description you get weird formatting in the editor you paste it into
Ctrl-Shift-V
yeah thats what I have to do to avoid it
Warp Gate that shiz™
Wait, I might have misread, it's something you opt into while the effect is on, not always on on just one weapon?
you opt into but only possible with one weapon
imagine a weapon that can deal X bonus damage once per turn, you choose on which attack that extra damage is applied
like a smite that can only be used with a specific weapon
Ah, once on your turns, could utilize the Sneak Attack macro from Midi samples, I think that has a once per turn restriction
Yeah, I'm thinking of doing it auto, like sneak attack, no option to choose whether you want the damage or not
I'd probably still Warp Gate or macro.createItem the features, but the Sneak Attack macro looks like a really good point for you to start from. It filters in the start for specific weapons, so you can filter straight by name there, then it has an in combat tracker if you've already used it on your turn, and you can delete the dialog prompts and just do it, if you don't want one
Any Sneak Attack- like once per round damage is just begging to be entered as Versatile damage
Anything else is frankly overkill
We already automate Sneak Attack in Midi-land, overkill is the name of the game :p
I will look for a way to automate my answer to that
jokes aside, automation is what makes it possible for some of my players to play the game with only minor frustrations
hey, I've run into a problem with the "add macro to call on use" function. it's not appearing as an option and all the guides I look up tell me to turn in on. just wondering if it's a bug or something was changed with the module.
In Midi QOL's setting sunder the Misc tab, the first two checkboxes are regarding those, either item or actor on use
sweet, thanks
Here is an exported version of item Flames of Phlegethos, you just need to import it and add the description from the PHB which I removed before exporting it.
thank you 🙂
I think I need some more steps, just importing it isn't all right? because I tried it didn't work
Is there an error? Because by itself, it does not do anything, you don’t ‘use’ that item, it is a passive effect that will be triggered when the character cast a spell that does fire damage, like Fire Bolt, then it should prompt you to activate the flames
ah i see moment i try it
It activates and start the glow. I tried attacking with a meele attack but it doesn't trigger damage
The damage is when another creature attacks the caster
yeah, that is not working
Do you see any error in the console?
You activate the console usually with F12 in the browser
Also the attacker must with next to the caster, otherwise it does not activate the reactive damage
Also creature item used for attacking must be a Melee Weapon Attack or a Melee Spell Attack
It is typically the opposite at tables. Broken automation drives my table nuts.
you must import the data onto the same item type in v10/dnd5e 2.1.5 or it will fail 9/10 of the time.
flames of phlegethos appears to be a feature not an item so create a blank feature and then import onto it.
I have no idea why this is happening its only showing for the DM. Ghost chat cards.
is that an attack with an optional bonus? Can you try without?
is it reproducible?
not reproduceable, its random
its rage+your divine fury macro you made long ago, not using cpr divine fury
I had to reset my site settings last week and it killed my DM settings and I've noticed abnormalities with midi, I thought Midi's settings were serverside stored but I'm starting to have doubts and I think my settings are borked. I should not be seeing an other formula here:
oh wait no, azure edge does have an other formula
Here is a new version, I was not testing with a player and a GM in two different browsers. When I tested it (my default setting for player's is to not auto roll damage) I got an error saying that the item did not exists...
I was able to fix it by removing the random id on the temporary item and MidiQOL was able to find the temp item.
Re-import the new version and try it again.
@vast bane I think I found the problem with temporary items and damage rolls not auto rolled, the temporary item must not have an "_id" value, it seems that MidiQOL checks if there is an id to determine if its a temporary item or not and adjust its behavior in consequence.
That's interesting
If that's the case, I should be able to fix up my stuff with that.
@winter halo Here is my updated version
Any helpers aware of anything that causes transfer on equip to fail on drag and drop?
a user has all their transfer on equip active effects just not showing up till they edit the item, and click the hand icon, the effects don't even show up as inactive or unavailable, they just simply don't exist till they click the hand button
To me it sounds like a module conflict I've never seen before
(dnd5e, v10) Hellooo, I'm trying to get midiQOL to run an effect with damage over time (for Spirit Guardians) and I keep getting this error every time the affected creature's turn starts:
The requested item 45TkNCR0jGbrtmdx no longer exists on Actor Skeleton
Currently when the skeleton's turn starts, the saving throw chat button shows up and then the error appears when I click on the button. This is what I have my flags.midi-qol.OverTime set to:
turn=start, saveAbility=wis, saveDC=14, saveDamage=halfdamage, rollType=save, saveMagic=true, saveRemove=false, damageBeforeSave=false, damageRoll=3d8, damageType=radiant
What am I doing wrong here?
stop reinventing the wheel, CPR and midiqol both have premade spirit guardians
Midi's spirit guardians requires active auras and I think CPR's doesn't
I tried using each Spirit Guardians from Active Auras, Midi QOL, and CPR, but none worked for me. For some reason the aura wouldn't target creature or change their movement speed.
do you have dfreds CE installed?
you probably have dfreds getting in the way cause it also has spirit guardians and its not great
My version requires the token movement setting to be turned on
Yea, but my settings for Midi has it using item effects first. I was trying to get around my issue by using Dfreds. i'll try turning it off for now though
Df reds has a CE for it, if your midi settings are CE before AE, no spirit guardians premade is going to work
yep turned that and the combat listener on
I'm betting they have CE before AE
Also this probably should be read, since you look new around here:
Need to get bugbear to add Mob Attack Tool to the list
Do you think its present even all the way back in midi 37? Is it in my macros or is it something in midi's code?
Oh yep, I do have an _id in my macro:
//Midi-QOL, DAE and times-up is the way to go and this is a DamageBonusMacro.
const levels = args[0].rollData.classes?.barbarian?.levels ?? 0;
//console.log(args[0]);
if (!levels) return {};
if (!args[0].item) return {};
const ttoken = args[0].tokenId;
//console.log(ttoken);
const tactor = canvas.tokens.get(args[0].tokenId).actor;
const titem = tactor.items.get(args[0].item._id);
const rollMod = titem.abilityMod;
if (rollMod !== "str") return {};
const bonusRage = levels < 9 ? "2" : (levels < 16 ? "3" : "4");
const bonusDivine = Math.floor(levels/2);
const diceMult = args[0].isCritical ? 2: 1;
if (game.combat) {
let combatTurnActor = game.combat.turn;
let combatTime = game.combat.round;
let CheckTokenId = game.combat.current.tokenId;
//console.log(CheckTokenId);
if (CheckTokenId === ttoken) {
let lastTime = getProperty(tactor.data.flags, "world.divineFuryTime");
if (combatTime === lastTime) {
return {damageRoll: bonusRage, flavor: "Rage Damage"};
}
if (combatTime !== lastTime) {
await tactor.setFlag('world', "divineFuryTime", combatTime)
return {damageRoll: `(${1*diceMult}d6 + ${bonusDivine})[radiant] + ${bonusRage}`, flavor: "Enraged Divine Fury Damage"};
}
}
if (CheckTokenId !== ttoken) {
return {damageRoll: bonusRage, flavor: "Rage Damage"};
}
}
if (!game.combat) {
return {damageRoll: `(${1*diceMult}d6 + ${bonusDivine})[radiant] + ${bonusRage}`, flavor: "Enraged Divine Fury Damage"};
//await unsetProperty(tactor.data.flags, "midi-qol.divineFuryTime");
await tactor.unsetFlag('world','divineFuryTime');
}```
It doesn't break anything, its just that I'm getting phantom chat cards in random workflows
that apparently only I see
Why not use the item received in args instead of getting it from the actor?
Honestly this is a very old macro that was given to me
I could just toggle on CPR's divine fury but I have just not had an issue with this one till now so didn't wanna swap what wasn't broken
I don't think its just rage, cause it was happening with the druids character too during live session, rage is just easier to replicate the phantom cards
druid was using a cantrip that utilizes the lifesteal macros we been sharing around here and also CPR summon beast
function checkTrait(type, trait) {
return args[0].hitTargets[0].actor?.system.traits[type]?.value.has(trait);
}
if (args[0].hitTargets.length != 1) return;
let damage = Math.floor(args[0].damageTotal / 2);
let hasImmunity = checkTrait('di', 'necrotic');
if (hasImmunity) return;
let hasResistance = checkTrait('dr', 'necrotic');
if (hasResistance) damage = Math.floor(damage / 2);
if (damage != 0) {
let sourceToken = args[0].workflow.token.document;
await MidiQOL.applyTokenDamage([{
damage: damage,
type: 'temphp'
}], damage, new Set([sourceToken]), null, null);
}
oh thats right
she used wither and bloom, thats what caused the phantom card
a CPR premade
What do you mean when you phantom card?
I didn't swing twice and get the same results, it just spits out two cards randomly
usually the phantom card isn't even the same target but does the same stuff and doesn't do any midi workflow
Strange, probably some hooks that were registered but did not kick in when they should have and they are triggered later…
theres no errors or anything and the players confirmed they don't see them
its only the DM seeing the phantom card
if I trigger it? Its after the midi item use, if the players trigger it? Its first and then their workflow goes
This can happen with Hooks.once if the event you are expecting does not happen. The using another item it could that trigger the hook from the previous item…
its also kinda benign cause it doesn't really affect the game
Hooks are only executed on the client where they were registered
Other than this phantom card my live session was pristine, and even this wasn't realy a problem was just weird
Well, my druid player fat fingered a spell and then I discovered that there is a problem when the DM activates a warpgate macro for the player lol
Warpgate assigned the permissions of the canvas actor to just me instead of her, and thankfully I had a macro to fix the issue, but its kinda hard to assign permissions to a canvas actor otherwise
Wierd, I haven’t seen this yet. But I’m pretty sure it is due to hooks that lingers for too long and are triggers on the wrong item. That why usually if I register a hook I make sure that it’s executing on the same item for which it was register and exit it not
speaking of something that sits till resolved, does anybody know how to resolve a Monks tokenbar request that you don't want to resolve?
if you ignore it, the next time that particular save is rolled it will use the roll for both
I've been makinmg the victim roll with a super value and just undoing any effects it does
I don't think deleting the request works
This is a really good question, I’ve been wondering this too. Might have to ask on Monk’s server?
its a midi thing
I already asked over there a loooong time ago and they said to just delete it, but midi will keep expecting the result to be rolled
Just add their permissions to the token actor data
Also, why is the dm running a wg macro for a player? The whole point is to empower the players
I wouldn't think about it too hard 😅 the oddities reported from their world alone could keep debuggers busy for weeks 😂
the player had a problem with their spell not casting but I just attributed it to fat fingering the grid layout of token action hud since the spell they kept casting was right next to it. So I casted the spell for them
Yea, that'll do it. Wg gives token ownership to the spawner
A macro to fix those permissions sounds like a handy tool to have on hand for this
had to dig it out cause I hadn't had to use it at all, but I had gotten it a while back
there is no entry on the tokens on the map that I could find that set permissions that way
Actor data, ownership object
I can dig it out when I get home tomorrow. Probably a useful spawning option, really
I already have a macro for it, I meant there was no ui entry for it
when you double left click the tokens
Correct, it's token actor override data for unlinked tokens
In token.document.actorData
This is the macro I had kickin around that solved it for me after some quick thinking and remembering I had this:
if (!token) { ui.notifications.info("Please select a token"); }
const names = game.users.filter(x => x.active && !x.isGM);
let options = '';
for ( const n of names ) {
options += `<option value="${n.id}">${n.name}</option>`;
}
const id = await Dialog.prompt({
title: "Choose Player",
rejectClose: false,
content: `
<form>
<div class="form-group">
<div class="form-fields">
<select>${options}</select>
</div>
</div>
</form>`,
label: "Select",
callback: (html) => html[0].querySelector("select").value
});
await token.actor.update({ [`ownership.${id}`]: CONST.DOCUMENT_OWNERSHIP_LEVELS.OWNER });
Think Zhell wrote it.
As for why the druids UI was misaligned slightly, I still kinda wanna just think they were misclicking with a really small grid layout, but who knows, I couldn't reproduce it, but they kept clicking the spell beside the summon spell
How stable is the newest DAE? I need to get off my current version cause its breaking @ references in effect values
You can simplify the user collection with using warpgate.USERS.PLAYER
the optional bonus of bab doesn't work with full auto midi, does it?
I know some of his newer features do not work with midi correct, but not sure if that is one of them.
is that CPR's produce flame or someone elses?
let me check
Your problem is probably just not having its hook on:
got the hook and i tested it with firebolt from the SRD spells same issue
and its on the effects tab
midi and dae versions?
10.0.28 DAE
10.0.41 Midi
0.3.41 CPR
is the actor an npc?
PC im testing with a blank sheet same issue
I see this too, report it to the github I guess
Probably some sort of breakage in the new midi, theres no errors
my only thought is that maybe elemental adept is looking at the sidebar actor and our canvas actors are edited to have the resistance
because both of our targets do not inherantly have fire resistance, I can only assume both of us just added it to the canvas actor
maybe
nah tested with a pure fire resistance actor and it still failed
maybe its due to Midi changing something about resistances?
So I have been fiddling with Midi and still cannot figure out how to do this, any ideas on how to make thse work?
Weapon Damage Types Critical Modifier: upon gaining a crit with a weapon it will automatically do the following:
Bludgeoning: On a critical hit, the target is knocked 5ft in a direction of your choice and falls Prone(STATUS).
Slashing: On a critical hit, the target gains the Bleeding (STATUS) condition.
Piercing: On a critical hit, the target becomes Impaired(STATUS) until the end of your next turn
Going back to this, I can understand this. How do I apply this macro to the item to call for this effect to proc. I already defined the conditions and have them setup.
I don't think I'm looking at the sidebar actor, but I'll double check
Honestly, I don't think I even check except for damage immunity
Since I manually redo the math and explicitly don't account for resistance
I'll take a look at it when I'm home tonight to double check
I tried it, still no change. No return damage, no reroll of 1s in fire spells. I tell you what I did there might be the problem. I created a new Item in the items tab with the type feature. then I imported what I downloaded here into that item and drag and drop the item into my players actor sheet. That is all steps.
Fixed in the newest version, not sure how I didn't catch this before.
@forest sequoia is the macro activated by DAE? if so add a line of something like if( args[0] !== "on") return; at the top.
You need to add an ActiveEffect with the midi onuse flag on the proper feat. You should also check on that effect the "Transfer to actor on item equip". See the images.
You can either call a world macro, in which case in my example, you would replace "ItemMacro.Unwavering Mark" with the name of your world macro, or you can store the macro on the feat with ItemMacro, in that case you need to change "ItemMacro.Unwavering Mark" to "Item.<name of your feat>".
You need to keep the ",postActiveEffects", this tells midi when your macro should be called.
iirc thay args[0] in a DAE ran macro is on/off/each depending on the state of the effect.
that would explain how its hitting targets, but I'd almost suggest doing an effect macro instead then
Were you able to activate the console and see if there is any red text? This would indicate that an error occurred during the execution of the process and we could try to figure out where the problem is.
that stops the macro from working
If there is indeed a dae, just remove the key and install effect macro and paste the item macro into on creation. It should be perfectly fine as is with Effect macro other than the v9 data's
do you have the module effect macro?
yes
and does the item actually have an effect?
we're kinda assuming that you have the item macro launching both with midi and dae
i should say my DAE knowledge is ancient :S
the only way i get the macro to work at all was through the effects
its a good guess though, lets make sure its indeed a dae item macro
ok, unless one of the guru's for dae/midi wants to chime in, I'm kinda for making this an effect macro
its a really simple switch
what you need to do is you need to delete JUST the key in your last image, so hit the trash can to the right
then take the macro that is in the items item macro, and copy/paste it into an on creation effect macro
don't use any of what we told you to edit into the macro, use the original macro
can you also show me the bottom third of the Item's details?
we never really solved the duplicate running of the macro, which I'm starting to suspect is that you have it firing via dae AND midi, which is why I wanna see the bottom third
ill give it a try
ok if you move it to the effect macro like I said, and then clear the key from the active effect so dae isn't doing anything else, it should work now
as for the data's, I'll rewrite it so you can copy/paste the v10 macro(you are on v10 foundry right?)
new Dialog({
title: "Mana Potion",
content: "",
buttons: {
level1: {
label: "Regain 2 lvl 1 slots",
callback: async () => {
await actor.update({"system.spells.spell1.value": Math.min(actor.system.spells.spell1.max, actor.system.spells.spell1.value + 2)});
}
},
level2: {
label: "Regain 1 lvl 2 slot",
callback: async () => {
await actor.update({"system.spells.spell2.value": Math.min(actor.system.spells.spell2.max, actor.system.spells.spell2.value + 1)});
}
}
}
}).render(true);
its probably highly unlikely you will run into issues with unlinked actors with this, but I think technically you might want to do token.actor instead of actor if you are knitpicking about perfection
when i put it into a players inventory and try to roll it, it doesn;t work at all atm
can you show me the effect tab of the item and if theres an ae, edit the ae and show me its effect tab? On the actor
the item on the actor I mean
also show me the first tab of the effect to cover all bases here
either this, or move the item to the sidebar, right click it, and export data, and then take that file and drag it to a dm with me so I can fix it for you
Das kommt wenn ich schaden würfel...uhm I mean, this happens when I roll damage against the player with flames
edit the effect in that right hand window and show me the effect tab of the effect
theres nothing in the effects tab
you got a bad checkmark:
Nothing should be checked here, those self boxes are not for your use case and are always confused about and the root cause of failed transfers.
is there a reason you put a duration of endless on the effect?
can they only use it once per long rest?
You don’t have the most recent version of MidiQOL…
as many as they want
@winter halo
This method was added in the latest version
i tried to put 1sec but it didn't do anything
I sent you the item with all the fixes
basically you had a bad box checked in the first tab of the item
Weird, I feel like I updated it just a few days ago but you are right now it works thanks a lot
midi's updated 3 times this week
ah that is the reason why. thank you very much
I have a player that has both Shield and Absorb Elements.
During game play, Absorb Elements worked perfectly, but the option for Shield never came up. Before I dive into finding out why today, I thought I would ask here if anyone knew if there was an issue with a character having two reactions to choose from on midi?
Shield should prompt, I am unaware of any version of shield that fails to prompt. The only way a reaction item can't prompt is if its set to Reaction Manual on the item details. Not even dnd5e srd version has this problem so either you or your player did that, or its some other issue.
if you are on somewhat old midi's theres a chance the fluff messages in your shields activation condition is causing the problem too but all shield spells should have their action type to Reaction and it should show up in the same prompt as Absorb Elements.
in all the new midi's it just throws a warning when you have fluff in the activation conditions, but all reactions specifically will throw the warning, in older midi's it will throw an error and not process the spell:
its cause midi coops the activation condition field and reaction spells always lead with a fancy javascript or regex term Which
I'm betting your players shield is set to Reaction Manual though
player probably got sick of getting prompted for it when they didn't care
When I think about it, were can I find the underlying Item Macro of the Flames of Phlegethos in my game now? I want to try to understand more and TRY if I can rework it (after creating a duplicate) to create the effect of npc who have the heated body trait.
I have no idea i don't have that item myself
Yeah that makes sense
Thank you for all that! - I will check it all 🙂
That was it, it's working now 🙂 TYVM
Hey guys, I'm sure this question has been asked to death already but I can't find anything specific to solve my issue. I have a rogue in my party, and I have gone through the setup to make sneak attack work with midi QOL, when there is a party member within 5ft of the target it works as it should, but when they roll from the card in chat, and select advantage for the roll, it doesnt give them sneak attack. Any ideas on what I can change?
the fact you see those buttons have me quite sus on your midi settings or if you actually are using midi
However:
It is very likely the same problem as the user had in my linked message
I'll take a look, thanks!
you are playing with very abnormal midi settings so some automations may not work with your setup specially if the player has roll automation off.
yeah, they prefer some automation but still want to do the rolling. Skimming through that persons issue didn't resolve mine. I believe the issue is selecting advantage from this box. I made a custom effect to apply advantage and it will work that way, but not if I hit "advantage" from this roller.
believe it or not, your images just proved it is
it only highlights normal when theres infact a disadvantage and advantage flag cancelling out
did you look at what the link was talking about?
theres like 3-4 flags that are hidden, you have to have attribution turned on to see it, but since you have really weird settings I don't even think that setting will work for you
in the console you should be able to find out what flag it is in the yellow warning that fires for all attacks
the attribution tooltip I think only works with merge cards
your issue is most likely that the target has the hidden condition on cause the rogue can't see them
you can't sneak attack if you have disadvantage
this is all assuming you are using midi sample items sneak attack
I had checked the vision of both the PC and the monster, it should be able to see it unless there is a setting I am oblivious to (just started using foundry a few weeks ago). I imported the sneak attack from the midi qol compendium, renamed it and all of that. It works with party members within 5ft of the target, but again just not when they select advantage from the roller. if I force the advantage status on the PC with an effect it works fine.
expand the yellow warning about advantage/disadvantage in the console and share it here
It is in the item macro of the feat.
Hello here, I'm trying to use the MIDI QOL hunter's Mark, but I think I'm doing something wrong. When I click on the spell to cast it, and just before the AbilityUseDialog is showing, I've got this error in my console : Hunter's Mark 10.0.23 - Hunter's Mark 10.0.23 TypeError: actor.flags.dae.onUpdateTarget is undefined
could you help me please?
when you make attacks in midiqol, it spits out a yellow testing message in the console, your answer is in that message:
if you had merge card on, you could follow my instructions above and turn on attribution in the tooltip
There are 3-4 different flags that are hidden that impose disadvantage, it just so happens that hidden is the most common one here, and I still have not ruled it out cause you haven't shown us your attributions yet.
you could be using a ranged weapon attack at 5ft also, which is typical of daggers
update to the newest dae
and probably slap update on midi too for that matter if you are really as old as that error is
I've just setting it up yesterday :/
yeah but the package delivery for foundry is borked
it very often gives people old versions
Oh!
10.0.41 for Midi, 10.0.28 for DDAE
um...thats a lil scary
I thought tthose flags were fixed in dae 28...
well you are new lets rule out the usual suspects
Ready set roll...
also Item Macro needs to have its sheet hooks turned off
Well you have a really hard decision to make
RIP
Ready set roll is so nice
Yeah but its not something we use
Is there other ways to configure Hunter's Mark?
is the only thing I can find in the console
to be clear, both module authors advise to not have them installed together
May be I should have red a bit further :/
drag the sneak attack item on the rogue to the side bar, export it, and send it to me in a DM
also looki at the image above where I listed incompatible modules, you have any?
TBH I still have the same error but now it's working great
nope, i don't have any of those other modules installed
ah there, yeah i am dumb
your settings are your problem if you have no module conflicts.
thank you very much
your item sneak attacks just fine
oh wait are you in combat?
if you have an active combat, sneak attack is once per turn and that could cause it not to work
outside of combat it should work every time though
I am in combat, I advance the turn each time I try to see if it works.
my attack card doesnt show all the info yours does though
||you are rolling with strength||
I try to rename the item macro, but I can't. The Name of the item macro is greyed out. why is that?
what weapon are you using, show us the details tab of the weapon, the bottom third
edit it slightly, hit spacebar on the final line then backspace then hit save to change its name
did you just change it?
nope, its been on default the entire time
um
I think I got it, but its not suppose to, we may have just caught a core bug here
hes not proficient in the weapon
I don't think sneak attack is suppose to fail if not proficient
check the proficient box and try again
also make sure hes hitting
It didn't work. I want to change here. So the system doesn't confuse heated body with flames of phlegethos
whats the name of the item this macro is in?
when you edit the macro, and save, if a change is made, it should mirror the items name
to be clear, I mean the actual macro, not its name
just add a space, backspace it, and hit save
it should change to the items name
Heated body. I duplicated Flames of Phlegethos to build the heated body item
went into the item, made them proficient with it. same results sadly.
but....I think I can work around it
go to the misc tab of midi and export your midi settings
Once you export your settings, keep them somewhere safe. Then import mine.
Oddly enough, I think you actually will like mine as you appear to be a fellow non fast forward user
export your own settings incase you want to try to restore yours and try and figure out what setting it was
Yours work perfectly lol
i'll have to skim through it at some point and see. thanks for the help!
prolly easier to tweak my settings than to try and find it in your bare settings
nah, i like the looks of your anyhow so i'll just stick with them.
In terms of Midi detecting advantage with hidden/invisibility, how does that work, if at all, when a player uses the Hide action? I'm assuming Midi is checking for the visibility in terms of the core function, which players can't see their own tokens of, so it's a setting mostly for the GM to employ?
Stealthy module
The setting is literally the old conditional visibility checkbox, but revamped for stealthy and the byproduct is actors with no vision settings trigger it now.
Fair dues, thanks
if i want to add a color to an effect that gives light i need to use a value or just the name?
using atl.light color
nvm found the reference
Anyone have a macro for Fury of the Tides channel divinity for oath of the open seas paladin? Basically if the paladin makes a weapon attack, the targeted creature gets pushed back 10 feet and if that creature collides with an obstacle or another creature they take damage equal to the paladin’s charisma modifier.
Quick DAE question, is there any way to easily prevent macro.execute effects from running the macro again when they're removed? Or some other way to get around the second execution?
Never mind, I found the fix
Anybody familiar with an issue with dfreds convenient effects atm? Seems like calls to game.dfreds.effectInterface.removeEffect({ effectName: 'Bane', uuid }); are causing macros to fail and returning error 'SyntaxError: missing : after property id'
Is there anything stopping this from adding another 'used' passive every time you use the item? 🧐 I had passives stacking up but I might have borked something. Edit: hmm yeah I see it should skip that part if it exists, what have I done 😅
huh... Seeing an odd effect with sequencer
it's hijacking DAE
if I apply an animated persist effect in on... off will cannot trigger unless I kill the sequencer effect. Ending Concentrating has no effect.
apply i went with game.dfreds.effectInterface.removeEffect({ effectName: 'Bane', uuid: effect.uuid });
Hm that's not doing it either. Seeing other odd stuff with dae though, also getting an error 'dae | create effect error ReferenceError: originitem is not defined' for 'let itemUpdate = mergeObject(duplicate(originItem)...', but logging originItem is giving the correct object. Thought for sure rolling dae back would work but no go
perhaps you're not getting the effect uuid
let effect = token.actor.effects.find(i=> i.label === "Whatever");
DAE does provide the effectId but it sometimes gives the wrong one.
Yeah, I should clarify these are macros that were working a week ago, no changes to them. It is grabbing that uuid as well, I think this one specifically is actually one of yours lol
ah it's the actor uuid
not the effect
await game.dfreds.effectInterface.removeEffect({ effectName: currentExhaustion, uuid: tactor.uuid });
await game.dfreds.effectInterface.addEffect({ effectName: `Exhaustion ${newExhaustion}`, uuid: tactor.uuid });
wow that is weird....
let run = new Sequence()
.effect()
.file(colorAttack[color])
.attachTo(tokenD)
.stretchTo(target, { attachTo: true })
.persist()
.name(`${itemD.name} ${tokenD.id}`)
.waitUntilFinished()
await run.play()
Binds and Hijacks DAE
if I do
new Sequence()
.effect()
.file(colorAttack[color])
.attachTo(tokenD)
.stretchTo(target, { attachTo: true })
.persist()
.name(`${itemD.name} ${tokenD.id}`)
.waitUntilFinished()
.play()
it's fine
How would I set up so that when my players cast a spell of a particular level, they receive a custom condition?
For example, casting Fireball triggers "Spell Exhaustion (3)"?
does this include upcasting?
or just the flat level of the spell?
If it's just the flat spell level, you can use flags.midi-qol.onUseMacroName and go with preItemRoll or postActiveEffects. You can grab the item's level and create the custom effect from there. Depending on what you want to do
You'll need to filter for the exact item type
bleh preItemRoll doesn't happen before concentration check
It would need to include upcasting, yes.
The conditions are already in place, so it'd be linking it from there. I could otherwise just manually trigger the conditions, but that'd be less than optimal.
args[0].spellLevel will contain the upcast level
const lastArg = args[args.length - 1];
const itemD = lastArg.item;
if(itemD.type != "spell") return;
const level = lastArg.spellLevel;
if(level < 3) return;
// do stuff
Unless it does things based on the level
Thanks. I'll thump on the keyboard until I get the code right for the rest of this.
flags.midi-qol.onUseMacroName Custom ItemMacro.Spell Exhaustion,event event would be preItemRoll orpostActiveEffects
Danke. I had a late night to bed 'cause people sick in the house, 0200 fire callout, 0330 MVA callout, 0630 wrong number on the on call phone, 0700 kid to school, 0900 started on video call.
I have a single braincell right now, and it's bouncing between the code I'm working on and reminding me to breathe.
postActiveEffects would after it's finished casting. hit or miss
I might go with preItemRoll as the concentration check won't be interacting with this situation.
you have obsidian or ready set roll installed, they can't be used with midi
For whatever this matters, I am definitely giving Midi 41 and DAE 28 my stamp of approval. I ran a 7 hour session on them and it was one of the most stable reliable sessions I've run as of late.
That’s all I needed to hear… I’ll be updating before our session tomorrow then
I was 2 versions behind on CPR but I don't think that holds any sway on things
(Only cause my rule is I don't update anything on day of a session)
is there a way to create an effect that lets a monster or player resist at 1 hp?
hat do you mean resist?
instead of describing foundry terms, give us the description of the feature in dnd terms
most likely means When you are reduced to 0 hit points but not killed outright, you can drop to 1 hit point instead.
that, sorry i was thinking how to write it
I've done stuff like that with midi hooks.
Probably can use the newer actor on use things
CPR does death ward well, maybe the orcish one too?
someones got the aura of life one around here somewhere, if its not ddbi its probably a macro shared in here
DDBI:
Death ward is:
CPR and DDBI, but I suspect ddbi's death ward is a false identifier as you probably aren't using a CPR function in the on use field and I misidentified it.
I might still have my janky death ward if you want a simple share of a somewhat functional death ward effect, but I suggest just using CPR.
I don't think the ddb one does anything beyond an icon
when I did the DDBI pass I had used my live world to look and it had your stuff sprinkled in, I tried to sus out if they were yours or primates but some were hard
oh lol, yep, it is indeed just an active effect, still counts though for the record, all it simply needs to do to qualify is work with effect transfer
yeah i was thinking about the orcish one but my brain kinda got stuck while thinking lol...
Not everyone who uses midi wants the full automation experience so when I did the tables I lowered the bar for automation
anyone aware of issues with midi and convenient effects at the moment?
the two modules and authors synergize and coordinate, however the nested feature in dfreds is designed for non midi users and midi ignores it mostly I think
there are very recent fixes for dfreds CE in midis versions, the last few versions so are you on the newest?
I'm having issues with DCE not removing effects via macro, ex:
const immunity = actor.system.traits.ci.value.has("frightened");
const uuid = origin.actor.uuid;
console.log(uuid);
if(immunity === true)
{
console.log("this happened");
await game.dfreds.effectInterface.removeEffect({ effectName: 'Concentrating', uuid });
}
In this effect macro, everything seems to be working correctly up until the dce effect removal which doesn't apply. I seem to be having some issues with other macros with similar setups
Yeah I'm on the most recent versions of dae, midi, and dce
CE API will only remove CE effects. I would swap to using the midi function to remove the effect
Good chance your concentration may not be considered a CE
Interesting, if I go to the ce menu and remove Concentrating that way it does get removed, so it should be a ce. I can give it a shot with midi
where is this macro?
It's an Effect Macro
so its removing conc when they are frightened?
On Effect Creation
supposed to remove concentration on the casting actor if the target is immune to being frightened via condition immunity
frightened is a string, is your condition Frightened or frightened?
I just sounded smaaaht
lol, it's frightened all lower. That part does work because the console.log shows it gets past the if statement
it returns true if frightened is present, false if not
so that part I'm not worried about
frightened is a condition immunity from the char, concentrating is a ce
no way does that concentrating have an origin of an actor
I believe concentrating is applied by midi as a ce on the saving throw from the sheet
origin in effect macro is the item or actor
in midi it will be the item
if you are trying to get the actor just do token.actor.uuid or something
Hm alrighty
whats the origin of the frightened thing, but honestly you don't want to use origin here, theres already a helper for actor/token
if you ar dealing with unlinked I think zhell said to use token.actor?
Cool, frightened isn't an effect, it's an condition immunity they can have
i think you cant add specific conditions immunity YET
i tried to do the same before
origin of the effect macro is whatever the CE is, probably dfreds hidden item
There is a ce, but this isn't looking for that
its either dfreds hidden item or the item thats applying macro.ce
That part is working, it returns true or false based on the ci so you might be able to try that again!
nice
Cool will do
midi+dfreds is weird and effect macro doesn't really care about that weirdness and expects core behavior
if the effect is on an item, origin is an item, if its on an actor the actor is the origin
do you know where to look up effect macros helpers? they are right on the git readme fyi
its why I like effect macro, nice easy helpers
I suppose you could console.log(origin)
token.actor.uuid returns Scene.6nGPpsIvLabHFIWn.Token.ferxf59msGqGRnep
yeah I've used that. The odd thing is I haven't had an issue up until now, I've definitely used em's in the past with similar things and it's returned values that I expected. Now it seems I'm always getting back stuff like Scene.6nGPpsIvLabHFIWn.Token.ferxf59msGqGRnep or Actor.w88977HaPVOXN7mP.Item.1KBBPJCjjW5bGaUI where I'm expecting the uuid of the actor only but getting additional info with it for the item or scene, etc
Additionally, origin.actor.uuid actually returns the proper uuid for the actor who cast the spell 'Actor.w88977HaPVOXN7mP'. However, the convenient effect is still not removed.
does token.actor.uuid work?
if you can make a macro that adds immunity to a specific condition can you share it with me?lol im interested
the only catch to that is you have to worldscript it in so midi sees it
midi only reads the fixed CI's not the custom field
it doesn't, the value returned is Scene.6nGPpsIvLabHFIWn.Token.ferxf59msGqGRnep
lol yeah if I can ever get convenient effects working
try actor.uuid
does the concentration toggle when you use dfreds menu?
That returns Scene.6nGPpsIvLabHFIWn.Token.ferxf59msGqGRnep
yeah concentration toggles with dfreds
what version of effect macro you on?
latest version, 10.0.15
this problem isn't only on em either
I've tried doing this through an item macro and it's not working their either
which is why I was wondering if there's a more general problem with dce right now
or if my world is fucked up somehow or something
well its an effect macro not using midi, you could just step into the booth and ask zhell over in #macro-polo
yeah he told me he wouldn't help lol
I suspect you got something weird in the setup, you only showed us the macro
because the saving throw technically uses midi from the sheet
what is the item thats applying this frightened
show me the active effects 3 tabs on the spell enemies abound
is the acive effect on the spell or is it in dfreds CE?
The item itself isn't applying frightened, there's just a condition immunity where if they are immune to frightened they won't be effected by the spell
what is the npc you targetted?
lol
what do you mean login?
the DM can see all this theres no need to look at a player and that function in effect macro needs a DM logged in I think
so you should just need to be logged in as a dm
to check linkage, double right click the token
what is this creature:
is it linked?
alrighty
I suspect effect macro is testing against the sidebar actor instead of canvas actor
my last idea to try is to change it from removeEffect to toggleEffect
Effect Macro is not that stupid.
starter hero has the same outcome as the astral blight I was using before
Afaik, token.actor.uuid should work for them, we're in hail mary territory
try toggle instead of remove
k
is midi your concentrator?
yeah
does CE even work on unlinked tokens
it does
you pass it the name and the uuid
when he logs out origin he gets weird stuff
the actor casting the spell we're trying to remove concentrating from is linked anyway
the caster doesn't matter
the effect macro is playing off the owner of the effect, which in this case is the target
Effect [object Object] was not found
this is why origin was a bad use case, it would have had the origin set to the item that cast it
toggle doesn't like uuids
its meant for selected
const actorid = actor.uuid
await game.dfreds.effectInterface.toggleEffect('Concentrating', { uuids: [actorid] });
the bizarre thing about all this
are you just trying to remove concentration if it exists?
Nuke the effect macro and just use an item on use and find for an executeasGm function from chris or bugbear and plagerize
its a targetted spell so this.actor.uuid?
yeah, running a straight macro from the macro bar does this fine
it's only in item macro and effect macro that it's not working
you could have just done an effect.delete
let effectNameFallBack = "Shield Master" //Define the name of your shield master feat
let effectName = actor.effects.find(e => e.label === effectNameFallBack); // Find the effect with the specified name
if (effectName) { // Check if the effect was found
await effectName.delete(); // Remove the effect
ui.notifications.notify(`Removed ${effectNameFallBack} effect from ${actor.name}.`); // Show a notification with the name of the removed effect
}
they always have permission to delete their own things, once midi gets it over the hurdle and onto the actor, you can just use core stufff
I'd argue most of those two macros I made were mostly macro polo, chat GPT just made the general structure lol
can't you just do
await Concentrating.delete();
@molten solar
Why do people have to define things out so much?
share the macro and what is the error?
also just to be safe, can you just run fin dthe culprit and ditch your likely 200 modules nad just use effect macro, midi, dfreds, dae, socketlib, libwrapper?
Lets trim down the variables
if you replaced the name with Concentrating above and its not working, you got serious problems
that thing should work
(period)
change Shield Master for Concentrating
Why would I know? You're intermingling at least 5 modules, only one of which I use
gotcha, I'll give that a shot
wow I was lowballing it
my question was more a core question, if the effect is curently disabled and I put an on toggle on and its just that command, will it find and delete an effect called "Concentrating" or do I still have to define it?
What is Concentrating?
This worked, kind of:
let effectNameFallBack = "Enemies Abound" //Define the name of your shield master feat
let effectName = actor.effects.find(e => e.label === effectNameFallBack); // Find the effect with the specified name
if (effectName) { // Check if the effect was found
await effectName.delete(); // Remove the effect
ui.notifications.notify(Removed ${effectNameFallBack} effect from ${actor.name}.); // Show a notification with the name of the removed effect
}
I get ya , so we do still need to find the effect
But it did not automatically remove concentrating from the casting actor
why are you removing that?
you got this all backwards
what is the effect you are trying to remove?
I'd like to remove concentrating from the actor that cast the spell ultimately, but I was seeing if I could even remove the spell itself from the targeted actor
wait a minute here
what?
you are trying to automate removal of conc if the spell fails?
thats not rules as written
the player concenterates till they decide not to
I'm trying to remove concentration IF the actor being targeted has a condition immunity to being frightened
I thoughtyou were trying to make enemies abound interrupt concentrating
ah no
now this all makes sense
ofcourse its not going to remove concentration on the target, because the target was never conetnrating
yeah of course
the actor.uuid on an effect macro is the owner of the effect, the target
but I've been trying to get the uuid of the actor who cast the spell
the origin is the item or the actor on the effect, effect macro does not care about the fact you transfered it from another actor
so you have to use a midi on use
that was properly returning the casters uuid
origin assumes core behavior
hm alright
there is no effect transfer in core
as far as its concerned the origin is the source int he tab on the target actor
effect macro was never going to give you the source actor
midi could though
wouldn't a ce removal sort of override that though? Basically the code is saying does this ci exist for the actor? If so, take this uuid and remove concentrating from it
maybe I'm not understanding it well enough
the effect macro is on the target, it can't seee anything about the source actor unless you bring args in
and if you are having to use args, it might as well be a midi on use
cast enemies abound on another actor, then go to their effect tab, what is the source?
is it an actor?
or is it a spell?
lemme check
this realy feels like something not worth automating btw
I don't even auto remove conc in my world
you have any idea how annoying it is when conc is removed when you didn't want it to be?
for sure, but this isn't because I'm just arbitrarily dropping it
it's a workaround because a condition immunity would prevent the spell from working
you want to check for auto fail
so the saving throw should never happen
but I don't have a way of stopping it at that point
The source on the targeted actor is 'Enemies Abound'
Maybe someone else can come up with something for you, but its gonna have to be a midi on use
alrighty
maybe a pre-item roll check for fear immunity and bail on the roll
this has definitely worked for me before so I'm honestly at my wits end on this one. I guess I'll have to revisit it when I'm feeling a little calmer
lol
but you still need to expend the resoruce so probably not pre item roll, after target set
Okay, it's specifically something with On Effect Creation
Switching the macro exactly as is to On Combat Turn Starting removes everything like it should
const immunity = actor.system.traits.ci.value.has("frightened");
const uuid = origin.actor.uuid;
console.log(uuid);
if(immunity === true)
{
console.log("this happened");
await game.dfreds.effectInterface.removeEffect({ effectName: 'Concentrating', uuid });
}
I can't even come up with a way for actor b to delete actor a's effect with effect macro
that screams midi on use not effect macro
you leverage effect macro to cheese self deletions and self management, not another actors stuff
alright, any examples for midi on use? Is that just in an item macro?
once the effect is on actor a, how do you define actor b
if the answer is with midi, then why are you using effect macro 😉
lol, well the origin of effect macro works, it's just not working in the On Effect Creation
On Combat Turn Starting does, but yeah I'll need to come up with something else to remove immediately after casting
there is no way you are going to get zhell to look at that
no not expecting him to
hes going to say it works fine in core
but I should be able to use an item macro with args === on or similar correct?
ah, that's from the details tab right
on use, at a pass that is after consumption and before roll
if target is immune to frightened bail on item
then it never concentrates, and the target never makes a save
gotcha, yeah after active effects should likely work then
ah
and after the effect is applied
you need to find a pass thats after resource consumption and before the roll
probably after target
target is about to roll a saving throw
now as for what these are called in a macro, thats usually where I bug chris or bugbear
I think you only need to define a pass when theres more than one?
so just make your macro, define target, so this.something
this.target.actor
cool will give that a shot
Midi expose a function to get the concentration effect on an actor:
MidiQOL. getConcentrationEffect
You could then just call delete on it if found
they want to bail on the spell if the target is immune to the a specific condition
I wonder if putting a key for macro.ce would cause the spell not to work if set to frightened
It’s not all phases that allow bailing from the workflow…
At which point the spell needs to fail? Before the save?
Thanks, do you know what the deletion statement would be?
await effect.delete()
yeah in theory it should bail before the save
I'd just prevent the transfer instead of deleting it after the fact
he wants to cancel the item roll after it consumes, before conc and the ae transfer happen
with an if statement for if the target is immune to frightened
There is an attribute ‘aborted’ on the workflow that is used to verify things at the end of a workflow execution and concentration is in that phase.
So in theory you could set this attribute to true in the ‘preSave’ phase, you would also need to clear the current targets associated to the user
Look into .tieToDocument() 🙂
It can tie an effect to a document, so when that document is deleted (like an active effect), it will automatically end the effect
@proper siren args[0].workflow.aborted=true
Cool thanks, I think this is a bit beyond my expertise as far as when/where/what to set, but maybe I can dig into it tonight
Is it a spell that can have more than one target?
No only one target
What’s the spell? Maybe I could take a look at it tonight
Thanks! it's called Enemies Abound. There's another layer to it where the target can try to save again if it's damaged, I was going to try and use a midi onupdatetarget for that piece
Is there a midi option to automatically succeed a saving throw? If so I could roll the saving throw with midi and if they have the condition immunity to frightened pass the argument for success
are you trying to automate removal of conc?
I'd just make enemies abound an overtime and call it a day
if you turn on auto remove conc that should handle most cases
No this is in reference to the first piece of the spell, where if they have immunity to frightened they should automatically succeed the saving throw
does it also apply that condtion?
yeah I'd look into the new midi srd's tashas hideous laughter when it releases, this is all macro territory
any suggestions on how to code this: No attack roll has advantage on the grandfather of assassins as long as it isn't incapacitated.
and this? If the grandfather of assassins misses a target within range, it can turn the miss into a hit. Alternatively, if the grandfather of assassins fails an ability check, it can treat the d20 roll as a 20.
I'd make a janky solution, have another action on the actor that is just the damage it would have done on a hit, and then either manually fire it, or make a macro that checks on miss, if yes then roll this other item.
the ability check is easily done with a dice roller option
first one could probably be a free reaction that changes the workflow to normal if advantage /shrug
thanks! I'll look into that
hm. ok. i've not kept up with the midi changes, apparently. I've got this Elusive feature set up as a "0 reaction" and the item macro, which right now just pops up a notification to see if it triggers, is set to go off when Actor is target of a hit... but it's not triggering the macro
welp, solved. I moved my instance to a remote server and now latency is playing a part. Adding await wait(2000); solved it but probs will move back to my local server, no idea what other stuff could be messed up
Is there a way to make Item Macro filter if the rolled item dealt damage?
this.damageDetails won't exist if there isn't any damage
or you can check this.hitTargets.size to see if a target was hit
Thanks, Chris!
I just noticed there's also this filter in midi-qol item fields, would it work as well?
That works a little differently
The details for that are pretty new, you can read about them in the readme here: https://gitlab.com/tposney/midi-qol/-/blob/v10/Changelog.md#anchor-10033
oh, yeah, totally forgot midi-qol has documentation. Thanks, mate!
@violet meadow your Psychic Whispers is applying the 'used' AE every time you roll it so they're piling up. What's the best way to avoid that? Whack in an if statement or is there a lil flag we can put in to avoid stacking?
Also, is there a way to ensure the user is always part of application targets? 🤔 So they don't need to target themselves
Is there a way to have a convenient effect automatically apply when you use a class feature like they do for spells? I made a Bladesong convenient effect, but when I hit Bladesong on the character sheet it does not alert to effect to apply.
I thought it might work if I named the effect the same as the ability like it does for spells.
I think that you need to set the target self and range self for midi to trigger in that case
thank you, i'll try that
How to make generic actions on all tokens you select in Token Action Hud if you have Midiqol and CPR:
https://github.com/MotoMoto1234/Midi-Wiki/wiki/How-to-Make-CPR-Actions-in-Token-Action-Hud
The macro for them is pending input from Chris so I may post a change to the macro used in this wiki
He's busy atm and wants to add something special to it
I tried setting target and range to self, and it still didn't work. I tried making Bladesong as a spell, and it still didn't attract DFred's attention.
bladesong is a class feature, you really don't want to use midi+dfreds for player stuff
the players sheets should have all their stuff made on the sheet, I can count on one finger the amount of things on a players sheet fires a dfreds CE
Okay, they can easily add the effect, I was just tring to figure out what i was doing wrong
take what you made for a CE, and go to the feature on the player and make it there
Usually DFred;s fires on Bless and Aid i think
did you import bladesong or make it from scratch?
unless he fixed it, aid on dfreds CE is broken
upcasting dfreds CE's is broken in general unless tposney fixed it
Use midi srd's aid
I used the DDB import for the base, but it's only a description
When using DDBI, if you import a generic character instead who happens to be a bladesinger that is how you get the automated versions of stuff with DDBI
the muncher for features/class features/feats is very um...empty
the magic happens when you click a blank character's ddb button to the left of their name
however, my guess why it doesn't transfer the CE is probably that the ddbi item has the box checked for "Don't apply convenient effect" at the bottom of the item details, as he flags all of his items for that
ok
(but you really should just make the players stuff on them, specially don't rely on dfreds CE for spells that upcast)
bless's upcast is fine cause its just more targets, no big deal, same with freedom of movement. But Aid's upcast gives more hp
Midi SRD should have aid
(And in turn, so will DDBI since he yoinks all the midi srd macros)
Where do you find that Don't apply CE box? I'm not seeing it
Very nice!
The best Aid I can find upcasts just fine, but it doesn't do the heal to fill up the new max. I made a cantrip to do that for us
if you don't see it, then that answers it, your workflow button, workflow tab, specials section, second drop down is set to OFF or your item and CE names do not match
midi srd's aid works...where did you get yours?
OH
hah, midi srd's works when you aren't "applying CE" lol
i think i have the midi srd, it's usually what i try first
if a person is prone/unconcious will a template ability not hit them?
is it an overtime effect?
and what is it doing other than placing a neat geometry shape on the map?
isn't targetting those who are unconcious/prone
Is there a warpgate dismiss macro?
if its an overtime effect you need to add the new overtime option for ignoring incapacitated too
Bless your soul moto
Truth I showed the wrong drop down, you want the first drop down
freudian slip cause its the second one that gets the most usual questions about, you want the template draw one
(though a point blank aoe ability in your homebrew world may want to hit incapacitated actors too)
What is that second one for? It picks a target for you?
it is how you enable the ability to auto target everything in range, the easiest examples of that second drop down is Swordburst, Thunderclap, and turn undead.
if you have my option above this now auto targets
ah I see so ranged AoEs... I think of ranged spells/attacks as things like firebolt or longbows
(ignoring incapacitated)
firebolt has none, creature, or object in the right hand target box so the option doesn't apply to it
there needs to be a better term for that... self burst AoE or something
midi actually doese weird stuff with a bunch of the boxes in target/range on item details
I call them pulse auras
Trying to make this effect macro to play when the effect is deleted, and the effect is deleted when the monster reaches 0 hit points.
const tokenD = canvas.tokens.controlled[0];
await new Sequence()
.sound()
.file("/Sounds/Creatures/Ghostly/VO_70_Night_Elf_Male_Ghost_*.ogg")
.volume(0.5)
.effect()
.file('jb2a.energy_strands.complete.blue.01')
.on(tokenD)
.center()
.scaleToObject(2.5)
.belowTokens()
.fadeIn(500)
.fadeOut(500)
.randomizeMirrorX()
.randomizeMirrorY()
.randomRotation()
.play();
await warpgate.dismiss(token.document.id, token.document.parent.id)```
Is this correct?
controlled is gonna be weird
just use token and don't define the token
effect macro has helpers for that
infact you are using the helper in the last line
if the token to dismiss is the one with the effect on them then actor or token is all you need for the .on(tokenD) line
tokenD as it stands is looking for the first owners selected token
may not even work actually
is that with tokenD?
I don't think you can do a controlled token in effect macro
that could fire with nothing selected and you haven't defined the user whose selecting things
find out what .on wants
await new Sequence()
.sound()
.file("/Sounds/Creatures/Ghostly/VO_70_Night_Elf_Male_Ghost_*.ogg")
.volume(0.5)
.effect()
.file('jb2a.energy_strands.complete.blue.01')
.on(tokenD)
.center()
.scaleToObject(2.5)
.belowTokens()
.fadeIn(500)
.fadeOut(500)
.randomizeMirrorX()
.randomizeMirrorY()
.randomRotation()
.play();
await warpgate.dismiss(token.document.id, token.document.parent.id)```
This gives me
.on(token)
effect macro when you use token or actor, willl use the token or actor the effect is on
its a helper, you can see all his helpers in the documentation for it
but find out what .on wants
I'm guessing this means it wants an object
Ah, I found the issue
so your macro should work with just what I showed
It wants .atLocation(token)
The macro already targets the caster automatically, don't target the caster
Yeah I thought it was doing that but on the last cast it didn't seem to... maybe I need a refresh. Just for my education, which part of the macro does that?
(I know it adds the 'used' AE to the caster automatically, I'm talking about the AE with the duration)
So, I got this line to delete an effect called "Empowered Strike", and it works fine if I place it as an Effect Macro on another effect, but it doesn't work at all if I place it as Item Macro and try to trigger it with midi-qol fields on use macros.
actor.items.getName("Empowered Strike")?.delete();
Also tried defining the effect and using await actor.deleteEmbeddedDocuments, but didn't work either.
Any ideas why?
I take it back, thatlonelybugbear edited the macro, it does not automatically target the caster anymore
thought it was already passed down cos all my other item macros use just actor and were working fine
will try with this.actor
pretty sure those break now since he stopped relying on advanced macros helpers
token might work as the selected token but would break if the macro fires and the user has no selected, but that also might be an advanced macros helper
oh, this is no good
just do this.actor instead
yeah, but most of my automations weren't made by me, most of it is CPR and Midi
hope everything is still working
CPR and Midi should not be relying on actor as is?
I think he's right for some midi srd stuff
we all need to change away from advanced macros I think
did you uninstall advanced macros?
advanced macros is going to die?
its not going to die, but I don't think midi passes the helpers anymore
I'm also not 100% sure I'm right
alright, lemme check the this.actor
I'm hard pressed to think of any automation midi premades have that don't use args or this
relying on advanced macros is more like an active auras or maybe macro polo thing
damn, still not working, wth
weirdest thing is that I have an Item Macro that creates 3 items on an actor using just actor, and it works just fine. A simple one to delete an effect just doesn't work at all
Do you actually mean effect or an item here? A feature/weapon/spell/whatever?
What I want to delete is an active effect
await this.actor.deleteEmbeddedDocuments("ActiveEffect", effectId)
That takes an array (a list) to remove, can remove the plural to just have one removed
yeah, it seems actor.items.getName on ItemMacro deletes any item just fine, but not effects. Effect Macros on the other hand, deletes effects just fine.
... With that command? Really?
so, I tried this but without the id. Defined the effect earlier with const effect = this.actor.effects.find(e => e.label === "Empowered Strike") then tried deleting using await this.actor.deleteEmbeddedDocuments("ActiveEffect", [effect])
Should've worked too, right?
I double-take it back, it's in the last sentence. He compacted it from when I originally sent you the example. Do you get an error or anything running it? Notice how it has both effectData and effectDataLingering.
await sourceActor.createEmbeddedDocuments("ActiveEffect", [effectData,effectDataLingering]);```
Yeah, It was Zhell who wrote that command when I asked specifically for a macro to delete an effect.
Try await this.actor.deleteEmbeddedDocuments("ActiveEffect", [effect.id])
Sneaky bugbear! That's why it's not working for me, I iffed that out bc I was getting an additional lingering AE on every roll. I'll have to break them out. Thanks for schooling me
Can you show your full macro here and reiterate for me what you're trying to do? Just delete an ActiveEffect through an on use ItemMacro?
yeah
it's just a macro to delete a generic effect called Empowered Strike
first I tried this:
//How macro works
//Macro is triggered when item is rolled
//Checks if there was a hit. True: macro proceeds. False: macro stops.
//Removes effect Empowered Strike
//Check if there was a hit
const hitTrue = !!this.hitTargets.size;
if (!hitTrue) return;
//Define effect to remove it
const effect = this.actor.effects.find(e => e.label === "Empowered Strike");
//Delete effect
await this.actor.deleteEmbeddedDocuments("ActiveEffect", [effect]);
my idea was to remove the effect only when there was a hit. Then I kept removing stuff from the macro to see if it worked, until I ended up with just await this.actor.deleteEmbedded...
await this.actor.deleteEmbeddedDocuments("ActiveEffect", [effect.id]);```
That command takes a list of ids to remove from the actor
so I switch my last line for this or use just this command?
Last line for that
Just as a heads up – this will keep adding the 'used' AE every time you roll this ability. I've updated my version to sort that out but I have a different scale value. I can send it to you if you like or I'm sure you can adapt yours
THANK YOU! YOU'RE MY SAVIOR. If you ever come down to Brazil, lemme know, I'll buy you a drink, lol
😄
I'm looking to write a macro for use with the Borrowed Knowledge spell (utilizing item macros/midi qol, etc.). I'd like the spell, when cast, to open a dialog box for the player to select which skill to grant them proficiency in for the duration of the spell. Any guidance (no pun intended) would be greatly appreciated. --- This is using DND5e.
GetName is not for active effects, use find
I'm questioning how this has not been made already
its like the one use case for making an active effect for proficiencies
I actually think if it wasn't for the fact its not srd, dfreds CE nested would be the best way to employ it
doesn't seem hard to do, but seems time costly
Pretty sure the ddb importer has a macro for that
Pretty sure it's based on Zhells macro
wow that spell is missing in the spell tables
Do you use Warp Gate already?
I can't find it in Primates' repo
Did Zhell make one so I can steal his dynamic html?
its all going to be embedded in a dae
it likely isn't in his macro repository
is it possible to create an effect on an actor through macro and have it pass an args off when it's deleted? Like it would if it had macro.ItemMacro?
whats the use case cause my usual go to for that is effect macro if its affecting the actor its on
Ability X checks the presence of effects Y and Z. If none is present, it creates effect Y. Once effect Y is deleted, effect Z is created.
The whole purpose is to have ability X provide it's bonus just once per turn.
oh, and ability X creates effect through macro, not dae
since dae would delete the effect and reapply
Yup, you programmatically create the ActiveEffect with a change where it has macro.itemMacro and a flag where the itemMacro actually is to do your args off thing
nvm, I'm overcomplicating things, I'll have the same ability that deletes effect Y also apply effect Z, much simpler than creating effects through effects
did this, the macro creates the effect without any change
I guess it makes sense because the effect would retrigger the macro
creating an endless loop
How do you actually programmatically apply that effect in your macro there? For learning though, your approach to apply when delete is better than this
I believe I have warpgate, yes.
I defined the whole effect in the macro as a const, then applied using this.actor.createEmbeddedDocuments("ActiveEffect", [effect])
but it seems it doesn't carry some changes, not sure if all of them or just macro.ItemMacro
No, that should work, so there's probably some syntax somewhere. Oh well, do your other approach, that'll be cleaner
is the item you are making a published item? if so what is it called
it isn't 😦
if its homebrew, change it so you can make it easier 😉
it ain't homebrew either
are you trying to make Schrodinger's Cat?
🤣 sorta
j/k
it's that monk stuff that I pasted here yesterday (or the day before that, I don't remember)
astral monk
isn't that published?
the features are, but the bonuses provided by them "aren't"
I mean, Arms of the Astral Self states that you gain "spectral arms that deal X damage yadayadayada"
what level is the actual monk right now?
but there's no item "spectral arms from the arms of the astral self", so I can't pull that
12
I'm going to pull stuff from my sidebar, because it's too much work to define EVERYTHING inside every macro
Didn't even need it, dnd5e has proficiency overrides apparently. Neato. Put this in a macro on use on the spell, the spell doesn't need to actually do anything itself. Replace the "your icon here.webp" with a filepath for an icon you want, or it gonna look uggo.
// original macro made by Zhell, anything Midi related is not. Don't ask them for help with Midi macro.
const options = Object.entries(args[0].actor.system.skills).reduce((acc, [key, {value}]) => {
if(value > 0) return acc;
return acc + `<option value="${key}">${CONFIG.DND5E.skills[key].label}</option>`;
}, "");
const content = `
<form>
<div class="form-group">
<label>Skill</label>
<div class="form-fields">
<select>${options}</select>
</div>
</div>
</form>`;
const key = await Dialog.prompt({
title: "Borrowed Knowledge",
content,
rejectClose: false,
label: "Become wisdomous",
callback: (html) => html[0].querySelector("select").value
});
if(!key) return;
const effect = args[0].actor.effects.find(e => e.getFlag("world", "borrowed-knowledge"));
const mode = CONST.ACTIVE_EFFECT_MODES.UPGRADE;
const changes = [{key: `system.skills.${key}.value`, value: 1, mode}];
if(effect) return effect.update({changes});
return args[0].actor.createEmbeddedDocuments("ActiveEffect", [{
icon: "your icon here.webp",
label: "Borrowed Knowledge",
duration: {seconds: 600},
"flags.world.borrowed-knowledge": true,
changes
}]);```
For the lowest feature, I'd make a feature that rolls and does a macro.createItem to make the special unarmed strike.
for the level 11 feature I'd make the lower feature then also roll a new feature when it rolls to also roll "Body of the Stral Self"
On body of the astral self there would be 2 active effects, first active effect is a standard effect transfer to self that buffs your melee weapon attacks with a martial arts die, and have it expire after 1 attack. The second active effet would be transfer on equip, have an effect macro on turn start to be origin.use();.
You don't need to warpgate the damage of the melee weapon attacks because what monk is going to roll their special fists and not use them in melee while they are active.
just mod the global mwaks
with an active effect
Something doesn't seem right on my end. Does this need to be in a macro not housed within an Item Macro? By it doesn't seem right, I mean it isn't prompting a dialog after target selection etc.
Nope, tested it with ItemMacro myself. You don't even need to target, just any item that runs that as an on use macro, itemMacro or otherwise
Do you get any error when you run it?
setup.mjs:27 Uncaught (in promise) TypeError: undefined. Cannot read properties of null (reading 'append')
[Detected 1 package: addar]
at Object.fn (setup.mjs:27:7)
Pulled from the console.
I don't recall needing this in the past (at least, can't find an example where I have been required to), but do I need to call the Item Macro in the Midi QOL fields on the spell? I have an automated Tasha's Caustic Brew with an itemmacro that does not specifically call it in that section.
In this case, yeah
The Caustic Brew might be executing it in its' active effect instead
Here's the setup for mimicry
Ah, might've seen the issue.
Add a Resource should definitely not come into play here, unless you've got some funky town going on
Indeed - was trying to call it via @itemMacro instead of ItemMacro without the "at" Simple syntax issue.
Thanks!
what version of dae are you on, thenewest is suppose to fix that
nm I misread your comment
I am trying to implement some kind of "Death Burst" feature - the only problem is that, once the token is set to 0HP, it can't attack :v Is there a way to trigger a Feature when an actor goes to 0HP (or rather, just before that)? Right now I am using a Reaction Damage usage, but it comes up every time the actor is damage instead of just on "fatal" damage
there is a setting in one of the later tabs in midiqol workflow button that blocks attacking while incapacitated, toggle it off see if that fixes it