#MidiQOL
1 messages ยท Page 59 of 1
I don't fast forward either of them
I auuto roll, but I don't fast forward attack nor damage
I'm gonna setup your flag
Get the macro once again. Might have missed some edit
Shouldn't make any difference. Same thing, more automated application of it ๐
Hello, I was wondering, how would I generally go about making an item (a feature) only available upon another item equip or activation? I run 5e and use Midi, DAE, Item Macro and Advanced Macros all. I prefer not to do this through the Magic Items module so I was thinking doing it with a macro.
is that dae suppose to populate the actor on use field?
bugbear you not gonna bleieve this
Nope. Only if you log the actor
I hadn't hit "begin combat"
it was popped out, the combat inits were rolled, but I hadn't noticed I wasn't started yet
its working now
its not critting the sneak attack from midi sample items
wait what is sneak attack at level 1 lol
I think that the Hooks.off should be after the damageRoll to be safe โ๏ธ
edited again to Hooks.once to be safe
Potentially using macro.createItem to add it to the sheet depending on the use-case
updated it but its really for yollo not me
if its a spell, use items with spells module, MIM is kinda meh now
I don't think magic items module works with midi anymore
Items with spells is a better smoother item creation and is easier to share, but sometimes you have to do macro.create
Effect Macro on a DAE on the main Item, which when the effect is toggled on/off will change the secondary Item to do what you want ๐ค
Its not a spell unfortunately, its a feature. So I could just export the secondary item and than import it as an item macro that causes it to be created whenever the main item is equipped? But wont the secondary item stick around when the main item is unequipped than?
Nope, if the DAE that creates the secondary Item via macro.createItem is disabled, the secondary Item will be deleted
OK Assassinate should be fine after some more testing ๐ฅณ
Okay so how exactly would I go about writing a create macro item? I know this is probably complex, but maybe there are some examples online? I got the items json file exported.
Do you have the Item on the sidebar?
Or a compendium?
Create the DAE and then literally drag and drop the secondary Item on the Effect Value field
It will automatically populate the Item.Uuid
Okay I did that, but its giving me the No Macro Found for item error. Am I supposed to import the secondary items json file into the primary item Item Macro?
Do you have the secondary Item on the sidebar? No need to import any JSON
oh ffs...
sorry macro.createItem
Okay now I am getting a Model Validation Errors.
When does this error happen?
I think you have to pick the right type now when importing from jsons
When I go activate the effect. I set the effect to apply on item equip.
is the origin item a item or a feature cause if its an apply on equip whats the point of the daisy chain here
Its a Class Feature that activates with an action.
then you don't want it apply on equip, you want it to roll
if we're talking about the same item
if you have the first item set as an apply on equip, then theres no point in doing macro.createitem, it will always exist on a feature
No so the primary item is a weapon, the secondary item is a feat. I want the primary item to create the feat in the actors inventory on equip.
ooh ok then yeah
I tried setting the item value for macro.createItem as Feat instead of Item, but that doesn't seem to do anything.
you put the feature already made in a compendium somewhere, then you drag it to the effect value field
he made it so midi accepts drag and drops
What do you mean?
Yeah thats what I did and I still get the Model Validation Error.
I tried editing the effect value field
You just drag the Item (which can be a Weapon, Spell, Feat whatever) onto the open DAE's effect value field.
Item is eveything that can be found in the Items on the right sidebar
I suspect they have not understood what goes in the effect value field yet
My guess is they are dragging an items json
No I am literally dragging the item onto the value field.
I did that and on the effect activation I get the Model Validation Error.
then all I have to say is dnd5e 2.1.x is so not worth updating to lol
It is working fine...
Probably an unrelated Model validation issue. I would try to run the script in #dnd5e pins
yeah, did you make the second item or are you yoinking it out of an old compendium?
I bet you the dnd5e migration missed it
I made the secondary item. Here is the error message I am getting. And yeah I am on 2.1.x.
you got bad actors from the update, you have to run the script and pray thats the solution
Can you export and send me the Item? What do you use as its max uses?
So the actors themselves got corrupted with the update? I use Tidy5e sheet, the newest version, but I updated the module when I already had 2.1.4 installed.
they aren't corrupted they just require fixing cause they had data dnd5e wasn't expecting is my guess
If you delete the @prof from the uses of the Item it seems to be fine.
yeah thats why I went with items with spells , just make it an innate spell, cause items with spells can carry the charges like that, but macro.createitem won't carry consumptions
@gilded yacht #1010273821401555087 message
macro.createItem with an Item that has @prof in the uses field creates a Model Validation Error
MidiQOL 10.0.27, DAE 10.0.18, dnd5e 2.1.4
*Actually it is kind of expected on a second glance. On the sidebar an Item having a preset, in limited max uses, derived value like @prof would essentially be like ```js
uses: {value: 1, max: NaN, per: 'lr', recovery: ''}
Yes that worked! Thank you so much!
Nope when it is being created by the macro.createItem
On the activation of the effect. I set the primary item (the weapon) to transfer the effect on item equip.
If you drag it on the character sheet it's working
maybe an effect macro to modify the max field after creation?
Its a bug somewhere
it works in 2.0.3 fwiw
It would be nice if I could sync the secondary item uses with the actor resource.
Scrap that, that works. Its just that it cant have the uses set to prof.
yeah that could be done
use backticks to surround anything with @ so as not to ping here in discord
this is precisely why I suggested a cantrip spell with the module item with spells
because you can prelink consumptions in Items with Spells
if MIM wasn't so funky, you could use mim cause mim lets you put features on items
@tender radish and @vast bane
A workaround for the issue would be to use an Effect Macro on the same macro.createItem DAE with triggers for Effect Creation and Effect Toggle (on) (the second because someone might want to toggle the effect on/off or it could automatically be toggled off if the initial Item becomes unequipped or something) ```js
const createdItemName = (await fromUuid(effect.changes[0].value)).name
while (!actor.items.getName(createdItemName)) {
await new Promise(r=>setTimeout(r, 500));
}
const createdItem = actor.items.getName(createdItemName);
await createdItem.update({"system.uses": {value:"", max:"@prof", per:"lr", recovery:""}});
await createdItem.update({"system.uses.value": createdItem.system.uses.max})
That looks neat. I however have no idea on how I would get this to work.
Put the code in these 2 entries
On Effect Creation and On Effect Toggle (on).
Only if you have the Effect Macro Module installed and enabled.
I don't have it but I could install it. So this would make it that the secondary item uses would work off of the actor proficiency mod?
yeah
Could you make the effect macro deactivate effects on feature activation? Lets say I made a feature that would deactivate an effect applied by a different feature when activated.
yes. On Effect Toggle (on) you could do something like ```js
const secondaryEffect = actor.effects.find(eff=>eff.label === "Name of the other effect you want to deactivate");
await secondaryEffect.update({"disabled":true})
and for enabling when the primary effect is toggled off, as you might have guessed,
On Effect Toggle (off) ```js
const secondaryEffect = actor.effects.find(eff=>eff.label === "Name of the other effect you want now to reactivate");
await secondaryEffect.update({"disabled":false})
Okay, thanks ๐๐ผ
@violet meadow one more thing. I have three createItem macro effects on the primary item (each creates a different item). How do I make it so that this adjust the uses of only the Defensive Field item I sent you the json of earlier? Do I just change all of the CreatedItemName to DefensiveField?
Change it yes ```js
const createdItemName = "Defensive Field";
So changing just this one line should do it?
How would I apply a DF effect through an ItemMacro? I am looking at the Branding Smite macro as an example but I need to apply poisoned to the target if they fail a save
click the wrench and choose poisoned instead of New
await game.dfreds.effectInterface.addEffect({effectName: "Poisoned", uuid:args[0].hitTargetUuid[0], origin:args[0].uuid})
If through MidiQOL workflow.
I don't think thats going to work is it?
We are in #1010273821401555087 ๐
I think the Branding Smite is irrelevant at this point. More like how to use DFreds CE API ๐คท
You can also check the DFreds CE included compendium for macro examples
you basically need bugbears args entry and then you can put together any of dfreds macros in an item macro
It works, just need to make it roll a CON save before that now
the real pro tip is to use the dfreds CE command there to be able to work around the limitations of midi only applying one status effect per ae
that sounds very much like you could do that just with putting an ae on the item you are rolling instead
unless its a banked effect like branding smite, youd be better off clicking the wrench on the item you roll, adding the CE there, and then setting the item to be either an attack and save, or just a saving throw
It's a banked effect. It's exactly like branding smite but damage + poisoned on failed save
the way I handle those is I use kaelad's inlineroll commands and just have the item on the actor. I do this with all the poison save damages like drow poison and damage poison
and I put the inline commands in the advantage reminder
(doesn't work if you fast forward)
const roll = await args[0].hitTargets[0].actor.rollAbilitySave("con");
const result = roll.total;
let dc = 15; //or get it from the args[0].actor's system
if (result < dc) await game.dfreds.effectInterface.addEffect({effectName: "Poisoned", uuid:args[0].hitTargetUuid[0], origin:args[0].uuid})
OR you can just create a DAE for Poisoned, define a Saving Throw on the Item's details tab and use the MidiQOL Activation Conditions to apply it only when the save is failed
yeah but its a bonus action spell that when activated banks bonus stuff on the next attack they make, honestly the midi sample item could probably just be copied/pasted
I'm managing to roll the target but now I can't get the spell's level
tryin to think of a cleaner banked effect to show
Since it's Xd6 with X being the spell's level
thats actually the easy part
thats just as simple as banking a bonus damage flag until you hit with a special duration
its the applying on the next hit thats complicated for an effect
I see that Branding Smite uses a flag I can't find in the dropdown tho
you basically want to use the structure of branding smite the proble for me atleast is that I don't understand half the lines
Couldn't I apply on next hit by setting a custom duration of 1 hit?
and its basically doing the opposite of what you want, branding removes an effect, you want your spell to add one
It's not that I want, it's more that I don't really have a grasp on the various apis which are a bit confusing
branding has this line here:
if (effects) await MidiQOL.socket().executeAsGM("removeEffects", {actorUuid: targetActor.uuid, effects});
I think you could clear out most of the macro and use that line minus If and effects at the beginning and change remove to apply or add Iam guessing.
effects would need to be defined though
yeah too messy for me to figure out without a few more cups of coffee
pretty certain what you want is in that midi sample item
Just share your macro to see what you're working with
args[0].spellLevel will have the relevant info.
Also the castData flags on the effect too
That one will not be on the dropdown menu. Its a way to set a flag on the actor without using a macro to do so
I managed to make it work. I had no idea I could make custom flags so I was put off by the brandingSmite.level one
I replicated that and it worked flawlessly, thanks again to both of you
In other words it says put a flag on the actor, similar to await actor.setFlag("midi-qol","brandingSmite.levels",spell_lvl_used)
Hi I am looking at the Hunters mark spell v10.0.23 it does not appear to work. The Item macro is called for the "preItemRoll" but not for the "DamageBonus". So the 'hunter' has the target recoded and the target is marked but the additional damage is not added. Anyone know what is missing?
are you using module conflicts, do you have item macro character sheet hooks enabled by accident it conflicts with midi
Midi does not work with:
Ready Set Roll
Better Rolls for 5e
Roll Groups
Fast Rolling by Default
Fast Rolls or Quick Rolls
Dice Tooltips
Taragnor's Gm Paranoia
WIRE(Whistler's Item Rolls Extended)
Minimal Roll Enhancements
Retroactive Advantage/Disadvantage
Max Crit
Multiattack 5e
Advanced Spell Effects module is in beta in v10 and often the culprit of things..
no not using any of those
unless its some new dnd5e 2.1.x conflict that item works in 2.0.3
no need to be called for DamageBonus. That is done by the DAE flag
sorry what do you mean by "done by DEA flag"?
thanks found that. under dnd 2.1.4 no call is made to the macro the bounds damage.
It works for me. Just imported it as is from the MidiQOL sample items compendium
Any console errors?
Do you have the Item Macro Sheet Hooks option checked maybe? In the Item Macro module settings?
yes my bad I had not realised that having the spell creates a permanent effect that is used to call the itemMacro for DamageBonus which checks for a "mark". I was removing thinking it was not being removed. Thanks for the help.
Can't ItemMacros access scene?
yes
Are there any Thunder Step macros kicking about out there?
Also, did you ever end up finding a successful way to automate Elemental Bane?
Hey, is there a way to make it so that activating an item with DAE on it already activated disables the effects (so that the players wouldn't have to go to the effects tab to do that)? I suspect this can be done through effect macro somehow, but I would appreciate some advice.
here is one for dimension door, grabbing another player and placing them would follow a similar pattern
Similar to what you need #1010273821401555087 message
Yep, the thing is I don't know how to modify that macro so that the items disables its own effects (applied by it). When I just swap the name, it disables the effect right on activation which isn't what I want. I want the first click (first activation of the item) to apply the effects that are on the item and than when the player clicks the item again (activates it for the second time) the same effects becomes deactivated. So essentially I need the macro to check weather the item is active or not and only deactivate when it is and I am not sure how to exactly go about that.
pretty easy with warpgate...
const hasMut = warpgate.mutationStack(token.document).getName('Mutation Name');
if(hasMut) return warpgate.revert(token.document, hasMut.name);
return warpgate.mutate(token.document, {ActiveEffect: {'effect name': effect_data}}, {}, {name: 'Mutation Name'})
removes change if present, adds otherwise
hmm, maybe even shorter...
if(await warpgate.revert(token.document, hasMut.name)) return;
return warpgate.mutate(token.document, {ActiveEffect: {'effect name': effect_data}}, {}, {name: 'Mutation Name'})
that's gonna really stress my event return values, but should work
So you need a toggle for an AE?
return (await warpgate.revert(token.document, hasMut.name)) ? undefined : warpgate.mutate(token.document, {ActiveEffect: {'effect name': effect_data}}, {}, {name: 'Mutation Name'});
ONE LINE
Basically yes. I want the players to be able to deactivate effects through the item they applied them with rather than having to go to the effects tab in the sheet.
OK does that Item have an Active Effect that is transferred to the actor?
Is it something like Great Weapon Master for example?
Yes, there is one effect that's transferred to the actor and one create item effect attached to it.
Can you export the Item and DM it to me?
Finally green. Took you long enough. ๐
Hey guys, is there any way using MidiQOL to create an attack that prompts as con save and then afflicts the Poisoned condition on a fail?
Either create the attack as a saving throw with a DAE on it for poisoned condition from DFreds CE or CUB.
Or make it a normal weapon attack with a saving throw added too.
I havenโt installed any new modules this week, I donโt think ๐ค @violet meadow should I be installing yours?
Nah. Itโs meant more to be used when you arenโt t using DFreds and itโs preconfigured conditions with MidiQOL.
Throw a Poisoned named AE on an actor and the disadvantage button will be highlighted when attacking for instance.
Or if using a rolling module, for Fast forwarding rolls, it should roll with disadvantage
To be fair, Iโm gonna install it. Itโs just whether I need it or not
You and Z coming after DFred
In the future you will be able to quickly add conditions which will not need any setting up and any modules to automate (slightly) rolls
Sounds awesome. I know youโre just getting warmed up for that other module you teased us with earlier ๐
Is there a function to apply damage in an itemMacro? I have an effect applying damage to tokens in a cone behind the attack's target. I'm through getting possible targets, rollings saves and getting damage but idk if I should just reduce actor's hp or there's a specific method to call
I saw that there was a similar in concept module, Commander and had to rethink how to go on with that one
MidiQOL.applyTokenDamage
Search in discord for examples and in console for the function
Oh thatโll complement baboonous nicely wonโt it? Since that doesnโt touch advantage
const magmaDmg = workflow.bonusDamageRoll.total;
await MidiQOL.applyTokenDamage([{damage: magmaDmg, type: 'fire'}], magmaDmg, new Set(secondaryTargets), workflow.item, new Set());
}
Hooks.once("midi-qol.RollComplete", (workflow) => finalize(workflow, secondaryTargets))```
I tried this but doesn't work and console gives no help on why
Secondary targets are the tokens in the aoe, while magmaDmg is the roll result total
Does Roll.Complete trigger at any point?
Put a console.log in there to check if it triggers
Inside the callback?
In the hook just log the workflow to see if it reaches
It does
Try quickly using [secondaryTargets] in the set
On the phone so I will be afk for some time ๐
I'm having trouble trying to get MidiQoL to automatically roll saving throws against creatures with this item. For some reason the module doesn't like items prompting saves for large areas.
posting the script is generally more helpful
There's no script, it's just standard saving throw setup.
oh, my b ๐
I can't seem to actually being able to pass the secondaryTargets array to the callback
Is there a way to get, among all those targeted by an area, only those that are allies and save the array in a variable using macro scripts?
Yes. If no one helps I will when I am back at my desk!
๐
I would suggest to initially try without the Sequencer animations on the Item so as to check if the base workflow works. Then start adding more stuff to it
Aye, it looks like even without the animations it doesn't seem to work
Errors in console?
Just try something like ```js
Hooks.once("midi-qol.RollComplete", async (workflow) => {
const magmaDmg = workflow.bonusDamageRoll.total;
await MidiQOL.applyTokenDamage([{damage: magmaDmg, type: 'fire'}], magmaDmg, new Set(secondaryTargets), workflow.item, new Set());
})
Also log secondaryTargets to be sure that it is what you expect it to be
There you have the reason why. An interaction between MidiQOL and one of the cover check modules messes up the workflow
Disable and try again
const allies = args[0].targets.filter(t => t.disposition === token.document.disposition)
``` should be a quick check
thanxx
hmmm let me look
omg bugbear is green!
I never finished elemental bane, I gave up cause it was getting too complicated for me. I believe my thought process was to use dfreds CE and I have a nested macro half made but I don't recall what was the bottleneck in the work, but I haven't revisited it since.
General structure is as follows:
The spell launches an item macro that queries for what damage type the caster chooses, then applyes Dfreds CE that removes resistance of that type, and has an effect macro for turn starts to launch another macro that is another dfreds CE that applies a "reverse damage reduction of the damage type". I think I gave up for now because I couldn't figure out the spells item macro to get it all going, as well as the fact it was tedious to setup, I have the 10 dfreds CE's made and the effect macro, just not the item macro.
I manaaged! THanks!
Just a quick question, how can I enable platyers using macros? ๐
that might be a setting in item macro itself
if there is one thing that is my weakness, its dialogs, and the on use macro to start it all I just couldn't figure out.
is there a reason why you have active effect manager?
if I recall it interfers with midi in a few ways
also dae is kinda required for midi
Do you have the Simbul's Cover calculation active in the Mechanics tab of MidiQOL?
No, though Levels - Automatic Cover Calculator is active
disable and check again ๐ค
does the map have wall height disabled?
Module disabled, but I still have the same issue.
Have active only MidiQOL, DAE, socketlib and libwrapper and check again.
Also in the Mechanics Tab of MidiQOL module, can you make sure that there is no cover selected if that error keeps popping up?
I bet you it shows up on maps where wall height is disabled
That won't matter if the module is disabled to test it
Okay, success! I also discovered it was using Simul's cover calculator when Simul's cover was disabled to begin with. I'll try reactivating all modules again, and changing it to the Levels cover module.
Yup, that seemed to have been the issue
Yeah that's what I saw from the error stack and why I asked for symbul's.
Can you flag the issue to Midi git?
is there any way to do the same as sneak attack, where it appears if he wants to use it before any rolls
Have you tried the Sneak Attack MidiQol item that you can find in the Sample items compendium?
also if you are the DM, you probably should ask the player if they want to have an always prompt in their attack workflows, some players hate those
Has anyone had a problem with an item adding multiple effects when there is only one effect on it?
Known issue with DAE if you are on v10.0.15 or later (I imagine that is the case).
It will be fixed when the next release is out
ohhh okay! Thank you for letting me know. does re-installing the old version of the mod cause problems?/should I wait until the update
Just check against the DAE change log if the version you want to downgrade to, has any issues with the DnD5e system version that you have currently installed
Do not downgrade dnd5e system though ( needs a bit of care to do that properly )
๐ Me sitting on dnd5e 2.0.3, midi 24, and dae 14 muahahaha
I think I meant to lock dae from updating but totally forgot to actually do it๐
there havent really been anything feature wise in the newer dnd5e, midi, or dae that are worth updating for for me. You really do have to take stock in the release notes of this stuff cause every update can potentially be very destabilizing for your campaigns vtt
if you are on dnd5e 2.1.x you can't run dae 14
and you can't manually install 2.0.3 over 2.1, it'll corrupt data
you have to revert to a backup
or live with beta testing everything for me 8)
Ohhh, that's what it was. I came into foundry and an... inopportune time and started making a TON of stuff before I actually looked into the consequences of what I was doing lol. Now i'm stuck in quite a strange space
You have 20 open issues for macro create item and you don't want to upgrade? ๐
Tststs
he hasn't implemented them
I have an issue in item delete check that I really hope he implements
I think it'd be a great quality of life feature to add an undo button to the item delet echeck messages for charges/consumptions/spellslots
atm I'm lucky enough that session one will be at lvl 1 so what they are actually going to use right away is quite limited. I'm just trying to get ahead and start understanding how all this works so I'm not banging my head against a wall the night before a session
Anyone know of a way to get MidiQOL to work with spells that have multiple attack rolls like scorching ray or eldritch blast? When I set the workflow to "roll a separate attack per target" it tries to recast the spell entirely and use another spell slot.
Uncheck use spell slot the easiest
If you don't get that dialogue check your midi settings to prompt for spells
I use macro.createitem for scorching ray
the spell is a self/self buff that gives an item that is X charges where X is the item level cast of it
and the item can be used X times and you fire them off all you want till they expend all charges and it destroys itself on empty
I only didn't do warpgate cause I suck at macros
Totally fair
hmm that could probably help me with the issue Im having with melf's minute meteors
look at chris, bugbears, and mrprimates githubs for premade macros
I thought I saw a minute meteor on one of them
sure ill check it out. thx
Not mine, don't have any players that use that one
Me neither
@fallen token I'm using Advantage reminders grant message flag here, but with DAE I believe you can fiddle with the attribute you reference in effect values, I'm not entirely sure if this is right.
This is an ae thats on a target, but its proposing the save dc of the caster so it can potentially be a third party spelldc so is this going to work right? Player A casts on Player B and Player C attacks B. Is the attribute populated on cast?
should I inline roll this so it does populate on cast?
via dae's feature
(its sanctuary btw)
It might apply the caster's spell DC, but I can't remember. I always have to play with it. Try it and see what the AE looks like when it's applied to the target of the Sanctuary spell to see what the value is. If it doesn't work, you might have to use the double-brackets to get it to evaluate the variable immediately while applying the AE: [[@attributes.spelldc]]
yeah I did that just incase
It looks like you have the cover check set to be simbul's cover calculator and midi is not realising that it's not installed. Midi does disable being able to set simbul cover calculator, but probably does not blank the setting if it's not installed.
I was wondering, the other day when they helped me with something, to create a spellItem in a macro script I learned that there was this way
const item = actor.items.getName("name of the Item you want to be rolled");
But is there a way to do the same but with SpellItems that are not in the actor's sheet? That they be called directly from the Items collection.
const itemFromSideBar = game.items.getName("name of the Item")
You can't use an item that is not owned by an actor.
It is to create a "Special Burn" action effect with a macro that is executed at the beginning of each turn of whoever has "Special Burn" and calls the Item that makes a damage roll by saving throw of constitution to the one who suffers it
So you have an Item that transfers an AE named Special Burn to a target.
That target needs, at the start of its turn, to Roll a CON saving throw and get damaged accordingly.
Is that correct?
the AE "special burn" call an Item called "Burn damage" to damage the token with these AE at the start of his turn, I don't know if it's possible to do this
OverTime effects help with that. https://gitlab.com/tposney/midi-qol/-/tree/v10#flagsmidi-qolovertime-overtime-effects
for example:
flags.midi-qol.OverTime OVERRIDE turn=start,damageRoll=1d4,damageType=fire,saveDC=15,saveAbility=con,label=Burn damage
Ohhh thats true, no need to use an item :00
Hi guys, i have a question..... there is some macro for faerie fire? D&d 5e
Hey guys, is there a way to automate a custom weapon to do extra damage vs enemies of size Huge or larger?
Do you use DFreds CE?
Wrong reply. Yes can do, give me a sec
Do you use DFreds Convenient Effects module?
It's already premade there and you can use it automatically via MidiQOL's workflow
yeah I do, what would it be under?
Faerie Fire ๐
Wait... no I am confused again ๐
thanksssss i have to install this module and i try
Activation conditions in MidiQOL. Do you use them?
Put this in the Activation condition field of the Item in its details tab:
["huge","grg"].some(size => target.traits.includes(size))
Put the extra damage in the Other Formula field, for example 1d8[slashing]
ok I'll give it try
It worked! thank you very much!
Ah i didn't realise there was documentation for midi
Is there a way that the "Effect Macro" module can access midi-qol args? it would make many things easier for me
Hello, how would an activation condition look like for something to trigger only if the target is an Ally?
Nope.
It has its own parameters passed to the macros.
They're more than enough.
okai
isnt the midi workflow object stored in some global memory for situations like this?
What are you looking to do? If the origin of the effect is an Item then you could try to get the MidiQOL workflow that **created ** the effect at the point of Effect Creation.```js
const workflow = MidiQOL.Workflow.getWorkflow(origin.uuid)
All bets are off if you want it to trigger at other points
To be used when you are targeting only 1 creature.
workflow.targets.first().document.disposition === workflow.token.document.disposition
I was trying to pass the token.actor.uuid in the options like
MidiQOL.completeItemUse(..., {targetUuids: [token.actor.uuid]})
but it looks like I wasn't expecting that type of object , but rather the most typical of the args, which is why I wondered if it was possible to do it
I'm not doing a specific thing I'm just messing with the functions to see what can or can't be done
I was trying to make the selected token itself the target of an item
Still not sure what you're trying to do. Why would you need Effect Macro to do that?
I wanted to see how I could use that without using args, I mean, I wasn't doing anything specific, just testing if I could do something like that, but it doesn't matter
Useful titbit (irrelevant but ๐คท )
If a Spell creates an Effect when its rolled, you can get some basic info by getting the castData from the created effect ```js
const {baseLevel, castLevel, itemUuid} = effect.getFlag('midi-qol','castData') ?? {};
hmm I think it can help me in some future. By the way, where can all these options be seen? The thing is that in the documentation I often see that they put options as an argument of said functions but I don't know which are the specific keys that can be handled in each case. It's just that I'm trying to learn how to handle the APIs so I don't bother too much around here.
Probably by asking in #macro-polo
To be honest I stumble my way through foundry.js and dnd5e.mjs etc looking for the functions, instead of documentation.
Console is the most trusted friend ๐
What is the cleanest way to run a macro when a CE is removed?
ahahah that's true too
Effect macro on the CE using the effect deleted option
Hi, I'm trying to link my Wild Magic barbarian's rage to a roll on the Wild Surge d8 table, as well as apply the rolled effect through CE or DAE, and I'm not sure of how to go about that
I tried creating a macro with game.tables.getName('Wild Surge: Wild Magic').draw() and attach it on use to the rage, but i get TypeError: wrapped is not a function Same error when using the table ID instead of the name
I'm probably misunderstanding something?
advanced-macros returns the error
I forgot that existed. On the pile it goes.
would there be another way?
did you swap the functions as i previously noted?
Yes, tried with both getName(Name) and get(ID)
lets see the getName code you used, exactly. And is it word for word identical to the table in the sidebar?
this will not work if its in a compendium
you know what? forget it, just throw science at the wall
const table = await fromUuid(tableUuid); //right click book icon in table header to copy UUID
await table.draw();
RIGHT-click
Even if pulled from the character sheet?
hmm? can you rephrase?
the table being rolled appears to be stored in a compendium, which requires the fromUuid version, above
The table is in a compendium. That is fine, but you can't use getName or get in that case; you have to use fromUuid
Take a closer look
right, thanks
unsure if this was left hanging, replacing tableUuid with the string copied from right clicking that header icon is the fix
kk, great
I appreciate the help
I am using this ItemMacro for Dragon's Breath that is a hybrid of honeybadger and chris macros. Everything works except for the warpgate revert in the onDelete.
whats the error?
likely because token is not defined in the script handler?
that token.document seems suspicious, but I am new to this
It is
token is the token placeable of the owner of the effect, as I have defined it
Did you disable the effect?
No, I dropped concentration
Does that disable the effect?
Deletes it yes
No, does it disable the effect
It doesn't disable it. It removes it
also I see the script above does not actually have Effect Macro listed as a requirement despite using it
(as a sidenote, that secondary "custom effect" function could be avoided all together -- just put the effect data inside your mutation data and warpgate will route as needed)
ok. I assumed that was needed since that did the running as gm check
nah, warpgate can modify anything (contained from a token, that is), and it will handle it automatically ๐
Great thanks!
I'm not sure what is meant by listing Effect Macro as a requirement. None of the examples I've found mention that
this line: * Prerequisites: Foundry v10+, Warp Gate, Item Macro (as written), just add "Effect Macro" so that users who come across this in the future are fully informed of the prereqs -- and Midi-qol as well.
So how do I fix the token.document issue? Can I pass the token actor id or something instead or grab a reference to the actual document somehow?
Well, do you have Effect Macro?
and no, you cannot; warpgate always uses the token.
You appear to have copied some from my Dragon's Breath script. I have token.document in mine since midi arguments provide the token object not the token doc. You can change your const updates to the following to apply the mutation and add the effect at the same time:
const updates = {
embedded: {
Item: {
[abilityData.name]: abilityData
},
ActiveEffect: {
[abilityData.name]: effectData
}
}
}```
(since it's just an item, could just delete it in the script tho...)
Move your effectData above the updates as well obviously.
Just double checked, token.document appears right as that's what Warpgate wants for the mutation.
If you really want, you can just delete lines 30-36 on my version of the macro and change line 37 to have the item data.
I try to avoid embedding item data into my macros and pull from a compendium with the feature saved there. Less easy for sharing I guess.
Yeah, using the console I can manually make the warpgate call and it does the revert. Just not when the effect gets deleted
Yeah, took me a while to figure out that is what you were doing lol
I don't have one so I started to code around it
Just pushed a small update if you're looking at mine to compare.
Do you have the effect macros module? And can you verify the mutation name is correct in the effect macro?
well, that would explain why I wasn't aware of the Effect Macro dependency... Sorry guys
i would similarly recommend adding some header info to these scripts, at least the module dependencies and foundry version
Yea, I need to work on my readmes.
its a really really great example of using warpgate only, rather than mixing and matching midi socket functions and warpgate
That fixed everything
I only started posting them to github because I kept sharing scripts as examples and found myself doing it from mobile a lot.
that's exactly how it starts, haha
Thanks everyone
it takes a village in this thread ๐
There is a way to do it with DAE on and off item macro passes
if you want to avoid adding effect macros, but honestly that module so useful
i would definitely love to see more warpgate into effect macro usages. Not that other approaches arent perfectly valid, but i think those two modules can simplify a lot of the common stumbling blocks with more "piecemeal" approaches
This is only my second macro. Modified a sleep macro as well. That one is a pain. Constucts, undead, fey ancestry, charm immunity, unconscious already, and finally just a custom sleep immunity to cover evrything else when I remember to set it
Tons of my stuff use this exact combo
with the added benefit of being more agnostic, so help is easier to provide ๐
i eagerly await the next generation's midi automation modules
My crimson rite macro I'm pretty happy with. Checks for equipped weapons, uses a warpgate dialog to ask what one to apply the changes to then uses effect macros to handle the revert.
Think I'm going to start writing these things in vscode. Long ones get cumbersome in foundry
its just
prep data
prep data
prep data
...ok more data
ONE API FUNCTION CALL ๐ฅณ
Contemplating sharing my item macros... urge rising...
hooooooold it
My item macros are too strong for you, traveler
I get the feeling yours must mostly work around having as little modules as possible.
Anyone have ideas for multitarget magic missile? I'm just hoping that doesn't come up in my game lol
Don't think they ever have more than 1-4, not counting Item Macro obviously
I think I'm using one from Crimic. I'm sure someone here must have shared their own version probably.
What would actually help me a bunch would be a way to store midi on use macros on an effect instead of just items.
I pretty heavily make use of flags.midi-qol.onUseMacroName and that requires having the macro just sitting in a folder.
I love how the srd version of sleep kills entire groups of enemies. Found that out in game
the DDB importer version of sleep is pretty well done.
Ahh, I don't have DDB
https://github.com/MrPrimate/ddb-importer/tree/main/macros
All the macros are here. Although some may need a specific setup on the item to work as intended.
Is it worth making a Foundry enhanced spell compendium? How often do you have to go back through it all when things break or new toys come along?
My setup is to use the ddb importer and if it's not already automated, or not done well enough make my own version of the spell. I then pop them into a compendium for safe keeping and for after doing level ups on characters.
Plus getting my players to pull from the correct compendiums is like herding cats...
hide the ones you don't want them to see
I have a personal module where all the item macros are stored; the items then just call those functions. Then it doesn't matter where they pull from; they or I just add a one line Item Macro.
I've hidden some stuff, but not the entire SRD spells folder
And if you use the quick insert module, you can specify what compendiums are searchable.
Midi lets you just call the macro via it's name, so all macros are just neatly stored into folders on my setup.
(Using the sidebar macros module for this image)
I also use a world script to handle all my commonly used things so I don't have a ton of repeated code in each macro.
I have only a measly 300 lines of helper functions specifically for itemacros.
Nice, that magic missile works great, just had to update the npc image variable
Yep, I remember having to do the same.
Bit surprised it isn't fixed by now.
is it possible to detect Dim Light and Darkness in an effect? wondering how to do Shadowblade. Gets advantage in Dim/Dark
(unless there is a method im unaware of) its pretty tricky to work with lighting like that. Could you use a second item that always rolls at advantage, or perform the roll with advantage when needed?
Not sure about checking the lighting, but this.advantage = true in an item macro will make it an advantage attack. I normally just tell my players to just hold alt when I tell them they're attacking in dim light with that spell.
Could have a dialogue I guess.
Could ask for a feature that sets a token flag of the lighting level when the rendering happens...
Doesn't solve the immediate problem though
(too many updates for such a thing)
There is probably some sort of foundry function for light related things. You would need to look around through foundry.js presumably.
Far easier to have the GM make a judgement call. ยฏ_(ใ)_/ยฏ
You'd think it would be easy, until you realize that anyone can add strobing light sources wherever they wanted
Is there a way that, when selecting multiple targets for the same feature/attack, that the attacker will make a separate attack roll for each target?
Ah ha. Nevermind, found it.
It would be fantastic if there was a setting to make midi ask each time multiple attacks are prompted for multiple targets. Some effects in our game use one attack roll for multiple targets, while other effects roll a separate attack roll for each target.
Having one attack roll for multiple targets seems like something that's outside the norm for DND.
It some kind of homebrew feature?
Well yes, but it's also built into midi as an option. I'm just saying I wish there was a prompt for that option
theres that new midi feature where if you have more than one target it rolls an attack roll for each, but I found it to be contrary to the only times I need to utilize it
so I just never utilize it
only time I'd use it is scorching ray, mm, and eldritch blast but for those I use temp items with charges and the charges don't expire per roll
It's doable with a macro to be fair
Have the macro roll the item multiple times then set the attack roll in the workflow from the initial roll
Does anyone know why there is a ${diceMult}d6 on Hunter's mark? Isn't it always just 1d6? It is rolling 2d6 for me right now
ah!
if spellLevel is in that line then we have an issue, if instead its working with crit or something then its ok
I will look
you could also just have a bad modifier hitting the same flag
always lead all modifiers with a + or else they will ADD the integers together without the plus
but 2d6 isn't possible so nm
if you critted the 2d6 makes sense though
It looks like it is applying it twice...
So doubling up on a dae
yes I think so
hex
that was it. had two passive effects
yeah theres a bug with the newest build where the ae's double. Thats partially why I'm rocking 2.0.3/10.0.24/10.0.14 dnd5e/midi/dae. I understand its important for devs for people to test their stuff, but ultimately for live play, I think using the most stable bug free build is logical and better to do as an end pointuser. By all means test with a test build, but why would anyone run the newest in a live session.
is there a known recent issue with Midi Qol? In a session and none of us can use attack buttons with it enabled
Can I use the onusemacro key that you showed me the other day to temporarily turn on an actor on use macro for just the next attack @violet meadow ? And if so, is there a way to force that next attack to be at half damage total and if possible respect resistances and halave again down to 1/4 damage? I assume the effect value would be macroname, preitemroll or something? I dunno how to manipulate the damage workflow though.
I'm trying to remake a cleave feature for my group as one of the things we lost from roll20 to foundry was our house rule on cleave for martials, the original rule was any overflow damage could be applied to a secondary target but midi doesn't make that easy to do, so I was thinking of giving the players a special item they can roll that flags their next attack to target multiple creatures and challenge their ac and deal half damage(1/4 incase of resistances).
are you targetting and require targets is on but late targetting is off?
also you need the source token on the scene too
so consider confirming you don't have wonky actor tokens on the map
same goes for the target tokens
if they are bugged dead actors that don't have a link then midi can't do anything with them
So you need the optional damage overflow rule or however it's called?๐ค
very common problem if you just updated dnd5e 2.1 and have bad model validation errors
Who would be targeted next? Closest?
yeah I was thinking just giving them the ae damage ability as a preflag before the attack would be simpler than carrying the overflow over to another target
the rule is it has to be another creature within reach range
sorta like green flame blade
The overflow carried over is really easy with a damageOnlyWorkflow or applyTokenDamage
I'd be fine with that if its possible do they have to retarget?
thats literally what the roll20 house rule was
Do you want to retarget?
I know you can get the math cause I've done it a couple times cause you can see the overflow in the damage card
It can be both
would it prompt late targetting?
we have a glitch in our world where the late targetting window is in the bottom right and hard to see
dialog would be better
Thanks for the reply. I'm not sure about the targeting options but I'll keep that in mind when GM tries again
just a thought, lowest health within 5 feet? or whatever your range is -- wouldnt that cover the vast majority of picks?
yeah but it has to respect the origin points range not a find nearby enemy thing like midi has done for other stuff
I think I have something almost ready for that, but not at my desk now
Its cause my players really wanted martials to have a way to clear through the trash like the casters do
If you don't get it, I have something that might help
oh sure, that works, whatever range filter condition you want -- just suggesting that you could skip the dialog by chosing lowest health in range
Yeah it can be fully automated easily
prolly filter out allies
Just gotta remind you, I don't fast forward so some of midis stuff won't work for me
we've seen this issue before so figured I'd throw that out there
The only thing you need is to know the rolled damage
So just a macro after damage rolled
If you need it, I have a warpgate dialog function that will make a list of tokens to select from. Can feed it the token list from midi find nearby.
Sorry applied
the most common reason for nothing to happen when rolling is that theres no target and requires target is on in midi. Its very very common and its insidious in a way cause theres no warning, just plainly nothing happens.
We did try targeting/not targeting; both ways gave no feedback. But yeah didn't know about those settings
I think you might have much more serious issues going on in the world, the Dm likely is getting red errors in the console, I suspect they udpated to dnd5e 2.1.x and haven't realized yet that they got model validation errors.
ah, DM mentioned he is also seeing this:
Error: Metadata validation failed for module "midi-srd": The file "scripts/midiSRD-styles.css" included by module midi-srd does not exist
at PackageAssetField.initialize (file:///opt/foundryvtt/resources/app/dist/packages/package.mjs:1:1270)
at file:///opt/foundryvtt/resources/app/common/data/fields.mjs:857:40
at Array.map (<anonymous>)
at SetField.initialize (file:///opt/foundryvtt/resources/app/common/data/fields.mjs:857:18)
at SetField.initialize (file:///opt/foundryvtt/resources/app/common/data/fields.mjs:908:26)
at Module._initialize (file:///opt/foundryvtt/resources/app/common/abstract/data.mjs:198:27)
at new DataModel (file:///opt/foundryvtt/resources/app/common/abstract/data.mjs:60:10)
at new BasePackage (file:///opt/foundryvtt/resources/app/common/packages/base-package.mjs:61:5)
at new BaseModule (file:///opt/foundryvtt/resources/app/common/packages/base-module.mjs:11:16)
at new ServerPackageMixin (file:///opt/foundryvtt/resources/app/dist/packages/package.mjs:1:1854)
this is solved by installing the newer midi srd found in bugbears profile
I don't think its the problem though
the person pressing the attack has to look at their console at the moment of pressing the button
also
Midi does not work with:
Ready Set Roll
Better Rolls for 5e
Roll Groups
Fast Rolling by Default
Fast Rolls or Quick Rolls
Dice Tooltips
Taragnor's Gm Paranoia
WIRE(Whistler's Item Rolls Extended)
Minimal Roll Enhancements
Retroactive Advantage/Disadvantage
Max Crit
Multiattack 5e
Advanced Spell Effects module is in beta in v10 and often the culprit of things..
Noted, I'll take a look when it is enabled again
nah none of those are on
Also if you are on 2.0.3, midi and dae should be on 10.0.24/14 respectively
he has not tested the newer versions with 2.0.3
What foundry build are you on?
Your best most stable midi setup should be 10.0.24 midi, and 10.0.14 dae.
if he hasn't updated yet, he should fin dthe 24 and 14 zips on tposney's git. If he just blindly clicks update, hes gonna wind up with newer versions that are untested
dae atm is 10.0.18, not sure where midi is since it's not enabled atm. I'll keep that in mind ๐
I would confirm that all the tokens on the scene have a represented as field:
if either the source or target don't have that field I think a red error will pop and midi will have a stroke and not do anything.
I think that happens when a DM is mismanaging their actor sidebar and prepped materials
you can replicate this by dragging from a compendium the actor, and then deleting the sidebar actor and redragging it again
my player token definitely has the represented as field filled in, but I'm not sure about the targets
however even without targeting it still wasn't working
can you show me a snippet of the thing you clicked that you expected an attack to start from?
no I mean the literal web element:
in order:
Token Action Hud
Tidy sheet inventory tab
Combat Booster history button
Default Sheet inventory tab
it could be that your method of starting the attack is a broken module with midi
I do spot a bunch of token action hud versions as of late
also if the weapon has an item macro, and TAH is setup wrong, or if character sheet hooks are left on in tiem macro, that could be the problem.
Now that you said TAH. Get the new TAH Core and TAH 5e ๐
hes on 2.0.3
he'd want my version
but hes a player not a dm so he can only relay it
we're assuming they even have it
(I meant you get it when you can) ๐
I don't update unless I absolutely need a fix or a feature of it
So far the only thing pushing me towards 2.1.x dnd5e is inventory plus's minimum requiredment for its newly fixed version
I'd honestly be there if dae wasn't duplicating effects
I really want Zhells new resource module lol
Ah, sec, taking a combat turn next
Its all speculation but I wonder if nothing could happen if TAH was not set to midiqol roller.
in my version I can't choose anything else, its like TAH auto detects it
yeah, locks it like that
or maybe midi auto detects TAH either way
@sullen ingot Message me the module list that your DM has for the world. Don't share it here.
alright- curious though, why is it bad to show here? Spam or security?
I am fairly confident that your DM's issue is that they have a very old verison of Libwrapper installed
(Over a year old)
cool, I'll let him know when the session is over, thanks
Also, it is very likely that they are using the newest mid cause they have the newest DAE installed
but your list is "active" modules and you guys disabled midi so its not in the list
but I strongly feel the problem is the v8 era libwrapper
oh sorry my eyes decieve me, its a v9 era libwrapper.
still about a year old lol
eh its the 1.11.4 so the last v9 verion.
Also his advanced macros is on the bad version, I can't remember what that version did, but 1.17.3 was notorious that we had to downgrade from if I recall, just have them update to the newest.
gotcha, thanks, man
kinda nostalgic atm in a pitched battle doing everything manually though ๐
@violet meadow its become so many that I think its worth point out to you, unless I'm missing something, every single potion in Midi SRD does not have a proper duration appointed to their duration tabs:
For some stuff this might be ok if the details tab is respected, but for a few potions they don't have a simple duration to be put in the details tab.
It will be auto populated when the effect is created on the target actor. Does it not?
Yep, ok, must be a feature of dae/midi doing that? I've just assumed I had to put a duration in the tab
I will circle back to the others to find the few that had weird durations later
Yeah DAE should take care of the transformation from Item.system.duration to Effect.duration
Its not a bad thing if I went and put the durations in manually right?
Its not gonna like add the two right?
In the Effects Duration tabs?
yeah
Nah, it might overwrite them though ๐คท
thats fine, they are identical
posting in here at @vast bane behest, but still unclear on the tie to DAE, does it change the model or something for the fields in addition to all its AE stuff?
#dnd5e message
synopsis:
putting a roll formula into the "Duration" on an item and then refreshing will result in that item being deleted from the world without notification. You can see it referenced somewhat in the console log, but still nothing really useful imo:
The field will complain with an error "Duration formula cannot contain dice expressions" if you just do: "1d4" in the field, but nothing complains to the user if the roll formula is put in "[[/r 1d4]]"
yeah its really weird that you came across this right when the two of us were in here talking about it, but dae takes the data in the details tab and converts it to seconds.
ah
but that would still mean DAE is just reading from the system model then, no?
not actually affecting the field itself?
or are you saying that the background processing of the "rounds to seconds" is doing that in the data, but not in the ui?
Items seem to be duplicating themselves on Actors:
this is why dae is getting an update soonish
its a known bug
personally I'd run 2.0.3 dnd5e, midi 10.0.24, and dae 10.0.14 for live sessions till its fixed.
but you can't revert dnd5e versions if you already updated to 2.1.x
the only way to go back is a backup
yea, which is 2wks of sessiosn too late ๐
i did week with no midi and dae and we all hated it, so now we're just lasting through the rough patch
so what exactly was it in this system update that hosed things so bad? I wouldn't expect this from a minor version update
Arbron would better explain it I bet, but basically they restructured stuff and also changed how scaled items work, and that wreaked havoc on midi, dae, and item colllection
is there a way to add a d4 roll onto any hit die rolls a character makes?
only if you create an item that does the roll, or make a world script
gotcha, thank you
what is this display you're showing here? what does it do and how did you get it? looks interesting
that is either Visual Active Effects or Dfreds Effect Panel.
Hey dudes, when I set a feature to perform an ability check, it's not showing the result
I believe he had a reason for this, and he even answered me months, possibly over a year ago, it was something like, Midi has no purpose for an ability check so it doesn't output it or something like that, its really old in his message history. To be clear, if you turned off midi, it totally would output an ability check there.
lame. I'm not turning off midi for that lol
use MTB or LMRTFY to roll it
OR, use an on use macro to make it
i wonder if kaelads inline commands work as on use macros lol
Also, this is not limited to midi, but what is the proper syntax and setup for an ability that is "within X feet of token" like a dragon's wing attack? All creatures within 15 feet take damage and make a save, etc?
cuz this just places a 15 circle template, which obviously doesn't account for the token's size, and also targets the token itself if I place it over top of the dragon.
Put special in the right hand range drop down if it doesn't target self
no
15 feet Enemy
blank blank blank
the radius makes it a template
you don't want to use radius because it will count the creatures space in the circle
you want all creatures within 15 ft of the edge of the creature
If it can hit anything, even allies, then:
15 feet creature
blank blank special
So that seems to target the right creatures, but now it's just doing this in the output
not rolling damage or prompting me to apply it
your target settings are off
Its the second drop down:
the reason why is because you have no targets
either they are behind walls, and you have walls block, or you set it to NONE
and keep in mind that levels walls matter as sad as this sounds
So if its a wall on another floor its gonna block the ae
These three goblins I'm using to test range. The closest two should be hit by the wing attack, the furthest one shouldn't. When I have no targets selected, it auto selects these two as targets.
no walls
whats the range?
but good checking
wait it targets but doesn't roll damage?
oh I found it. There was an error in the damage syntax
derp
Thanks moto โค๏ธ
I didn't know about that special tag so a radius ignores the source token. Very handy.
I think if you do radius it counts from the center though, so a gargantuan dragon will barely touchanything due to 10 of that 15 being in the radius
oh no, it caught the middle goblin, which is 15 feet away from the edge of the dragon's huge token
@vast bane You ever get a overflow damage macro?
Was wondering if he got one. Sounded like an interesting concept to make
Curious to see how yours looks however
I've got a bunch. OverTime is an incredible tool
Does the extra damage with an overtime?
the what now?
Here's one. Corroding. I use it for acid type effects where you continue to take damage each round until you make the save
I did not, I am not good with macros sadly
our martials wanted a house rule so they could do aoe damage so they were as relevant in boss fights clearing trash, so we devised for overflow damage to cleave through to an adjacent target
Just getting home, I'll give it a go
But then I had an epiphany since I suck at macros, what if I gave them an aoe attack that deals half their damage total, but I ran into the problem that I don't know how to halve the damage in the workflow and I didn't wanna make 20 different attacks
I have a pretty good idea how to go about it
yeah I gotta believe its possible cause I can do it in my head looking at the damage chat card, I just wanted it automated so i didn't have to keep doing the math myself
I think I'd prefer the choose target rather than lowest health adjacent though just cause my players rarely choose efficiently
Does the target need to be next to the attacker and the original target?
Technically the rule is within the attacks range of the source actor, and adjacent to the original target
Yea, I'll make it a dialogue like my magical inspiration macro
Easy enough
Find nearby on the attacker and the target, any overlapping tokens would qualify
Alright, after session we're looking into things:
His libwrapper was out of date because he tried reverting to fix things- even with the latest libwrapper midi doesn't work.
Advanced Macros required uninstalling + reinstalling to update, since pressing the update button didn't work, but even after updating there's no change
Midi Qol is giving him an error on startup "Error detected in module, it is likely the module has not been updated for V10 (he's on midi v10.0.27). See JS console"
gonna look into your other suggestions now
where do I find the urls for the older versions on gitlab?
or you meant to get the zips and upload them manually to his server?
yeah he doesn't keep prior versions ready to install if they aren't the last of a branch
he does keep them in zip ffiles that you just put int he modules folder
actually if I recall the zip has the midiqol folder in it
I had no idea there was a 10.0.27
yeah, he confirms he hit the update all button the other night
personally I stay on stable builds and only update stuff if it is critical. Blind updates aren't worth the headaches as your table is discovering
yeah, he was under the assumption that updates found through VTT would be stable
oh hek no
apparently not ๐
depending on how many modules you have each author rarely works with each other to confirm compatibility
What would you call this feature Moto?
and theres little coordination with foundry/system devs
In terms of showing up in a dialogue?
Cleave honestly
yeah, that's fair
I think its similar to a previous editions cleave
I can't test anything for 30ish minutes server unavailable
That's fine, still ironing out stuff
Hello question, is there something with MidiQOL that doubles all dice rolled?
wait nvm, I figured out the issue
it was stacking with another module
hehe the answer is another roller module(rsr)
@vast bane Up for giving my macro a test?
The dialogue needs to be formatted a little bit better for longer names but otherwise it's functional.
Attacker is the bottom left Kobold
The macro could easily be modified to follow the rules from the dungeon master workshop in the DMG to not half the damage and work for any melee attack.
getting in to test now
The new target is supposed to have it's own attack roll right?
Or is it using the original attack roll?
If so I'll need to adjust it.
the house rule is original, but I'd be fine with whichever is easier
I'll see what I can do for that.
But let me know how the current form works for your setup.
I am unable to import this item, is it not an import?
is it just a macro cut and paste?
yep
file extension is .js not .json
I could make it a worldscript so it doesn't need to be applied to actors but just runs on any actor
Nah its a player only thing
so far didn't work but could be undead fortitutde being the issue
hmmm no way to determin which one hes targetting
theres probably no way to do that other than turning on tokenmold I imagine right?
and do the randomized prefix thing on token names
I already use tokenmold for hp rolling, I could probably do token randomizer for prefixes if it'd be too weird to fix
I'd hate to make you turn that on just for this
But I'm not sure how else to differentiate the targets in the dialogue
I could try setting an item to use late targeting I think before the roll instead of the dialogue
but I don't know how that even works
let me see how tokenmolds thing works
oh shit actually it'd work
cause you can just number them
I don't show names but I'll turn it on for this
If you make the use same roll macro I may still propose both to the party cause I think both ways have their merits
almost done with that
@vast bane
Try this out
Now it's even closer to the DMG workshop thing
all it needs is allowing melee spell attacks and not doing half damage
Any ideas for this error popping up after an ItemMacro tries to work with CE? Uncaught (in promise) ReferenceError: Sequencer is not defined [Detected 5 packages: autoanimations, midi-qol, lib-wrapper, system:dnd5e, advanced-macros]
Do you have the sequencer module?
Or part of the macro is looking for a variable named Sequencer (and it doesn't exist)
I'm not sure if a capital S matters in its function
It would
if (args[0].item.system.actionType !== "rwak") return {};
if (args[0].hitTargetUuids.length === 0) return {}; // did not hit anyone
for (let tokenUuid of args[0].hitTargetUuids) {
const target = await fromUuid(tokenUuid);
const targetActor = target.actor;
if (!targetActor) continue;
const roll = await args[0].hitTargets[0].actor.rollAbilitySave("dex");
const result = roll.total;
let dc = args[0].actor.system.attributes.spellDC;
if (result < dc)
await game.dfreds.effectInterface.addEffect({effectName: "Shot Wings", uuid:targetActor.uuid, origin:args[0].uuid})
console.clear()
console.log(result, dc)
}
Hooks.once("midi-qol.RollComplete", async (workflow) => {
const effect = await args[0].actor.effects.find(e => e.label === "Deed: Targeting Shot - Wing");
if (effect) effect.delete();
return true;
})
} catch (err) {
console.error(`${args[0].itemData.name} - Deed: Targeting Shot - Wing`, err);
}```
The macro in quesiton
I have Sequencer installed and activated
Nothing in that mentions sequencer
I don't see sequencer in there, does the ability have an animation set for it with AA?
it could be that the newest AA has got an error
Yea, seems like a module bug at this point
Might have, it's another on hit effect a-la branding smite
So I roll a crossbow attack to test iit
what version of Automated animations are you on?
if its going to have an issue its going to be yesterdays version drop of it
the odds someone hasn't seen this yet is slim to none if its an older version
I figured there was an update, maybe that fixes it
Test the new version of the macro Moto?
nah my guess is its cause of a new one
yes, works perfectly but I have a question
all 3 creatures had 1 hp
and it chained?
each additional cleave seems to reduce
I want the chain yes
but it seems to be costing more than their 1 hp every cleave
its like the macros halving the damage
uh
Ok it was AA breaking it (still not used to this modules web)
Yes technically
I have it doing leftover damage / 2
I had two ideas, one I thought was undoable by me, so I had resorted to some sort of workflow manipulation
halving was never part of the original hehe
My idea was to turn their melee attacks into an aoe that deals half the roll
ah
I dunno man, I kinda like this
You're pretty much at the DMG workshop rule at this point
how bout we shelve it, cause I think this is great, and I kinda think its a lil op anyway so it could use some debuff
I like this method more where it halves on cleaving
the two people cleaving are a barb and a pally who do crazy damage anyway
Change line 119 from:
weaponData.system.damage.parts = [[Math.ceil(leftoverDamage / 2) + '[' + this.defaultDamageType + ']', this.defaultDamageType]];```
to:
```js
weaponData.system.damage.parts = [[leftoverDamage + '[' + this.defaultDamageType + ']', this.defaultDamageType]];```
If you don't want it halved.
I should probably make it not append "cleave" to the item name when it chains.
One small thing to keep in mind @vast bane. If you have any rider bonus damage from effects or whatever it's likely to get added to the additional targets.
already noticed that cause its a barb raging with divine fury but thats fine
At the end of the day, it's for a feature that will only come up on minions mostly.
So it shouldn't be too big of a deal.
Also the additional attacks won't get any item macros the item originally had
In fact I set my own item macro on the cleave item to set the attack roll lol
I made it a folder macro so that it'd be the same for all the players
oh
It's very unlikely you have any weapons that use macros
The thought was that any item macro it may have had would mess with the cleave
Originally I was just deleting it on the temp item, but now I'm setting my own to set the attack roll
The original item you attack with is untouched, it copies the item as a synthetic item to do the cleave roll.
it seems to roll the item macro on each cleave
The embedded item macro yes
That's how I'm setting the attack roll to the original attack roll
I just tried the cleave with the mace of disruption, which has its own item macro and it seemed to run it alongside the cleave
no wait
the save was what I thought it was doing, but its not a save
its something else, the save was built on the weapon
nope save works I'm fine with that
// check the remaining hp <= 25 set to dead
const version = "10.0.10";
try {
for (let damageItem of this.damageList) {
if (damageItem.newHP <= 25 && args[0].failedSaveUuids.includes(damageItem.tokenUuid)) {
damageItem.hpDamage += damageItem.newHP;
damageItem.newHP = 0;
}
};
} catch (err) {
console.error(`${args[0].itemData.name} - Devil's Glaive ${version}`, err);
}
``` this is maces item macro
Yea, in theory that should be getting overwritten on the cleave.
yeah it is but honestly I'm fine with it its the only weapon that I see that has one
if their armory
Now do rail gun cleave ;p
I'm just kidding, the group said no to it lol
The thought process behind railgun cleave is that their ammunition can hit anything in the line it fires at and once it hits a target, and if it reduces it to zero with overflow, it keeps going and hits the next target.
I thought it was cool, but they didn't lol
I think the gunslinger critical role homebrew has something kind of like that
Not overflow damage however
Piercing shot feature IIRC
yeah
I'm off to bed, ping me if you run into any breaking issues with it
Will do, they aren't playing till next sunday
Just realized the same way I set the attack roll could be also used to set the damage roll to make sure no bonus damage is applied
Would it be possible to implement "minions" who have hits-to-kill instead of actual hps through an effect (maybe flags.midi-qol.DR.all)?
Someone made that, its cause MCDM or some book published minions like that
Someone made a world script for MCDM minions yeah
Wasp has shared the Attacking part for Minions afaik
Any advice on how to implement this (if possible): "Gnome Cunning BR, pg. 37
You have advantage on all Intelligence, Wisdom, and Charisma saving throws against magic".
I guess you'll rarely save with those attributes if not against magic; so this may work most of the time. But I would like to know if it's possible to make this advantage apply only against magic
Thank you!
Hi guys, anyway ideas why it doubles some of the effects when I apply stuff ?
DAE bug for versions newer than 10.0.15
It will be fixed in the next release (10.0.19), when it comes out
Okok thanks you !
Btw is MidiQOL Challenge mode working properly ? Character has 18 AC / 10 EC and 8 AR with House Version Challenge mode Armor class Enabled
But it seems to not work properly with EC shots
What is not working? Does the target happen to have damage immunity to the attack's damageType?
(I have never used Challenge mode, so I can just offer some generic troubleshooting steps)
No they don't have damage immunity to this, I use just a longsword so its pretty generic and normal damage i guess, i double checked if he had immunities or resistance and he doesnt have any
Hey there! Dug around for Hex-related macros for a bit, and found a couple mentions of this one! I still know next to nothing about actual macro text, so I was wondering if this one was specifically made to automate the ability disadvantage, or if it was also supposed to add the on-hit necrotic damage (which is the part I'm struggling to find ๐ ).
I think it was, since the last few lines apparently go into the checking for the Hex condition and the return of the proper damage, but it doesn't seem to be working for me. I assume this is a simple question and some misconfiguration on my end, but thought I'd ask if you've got any tips?
Thank you!
This macro should be taking care of both choosing the Ability to apply disadvantage to and the per hit extra damage.
How do you set this macro up?
It is supposed to be included in the ItemMacro of the Hex Item and then called as a MidiQOL macro onUse, by creating an entry in the Hex's details tab for, ItemMacro | After Active Effects
is there a way to add rwak flag to ac ? like get circumstance AC against ranged weapon attacks only ?
There are a couple of ways that I can think of.
- With a worldscript,
or - through babonus (not straightforward but I can walk you through)
Oh, that makes more sense. I misunderstood the initial instructions. Wonderful things happen when you get both a knowledge barrier and a language barrier 
Lemme try it out properly!
The screenshots in this post can guide you through a bit.
You will need to create a babonus on the actor you want to get betterAC against rwak attacks.
The caveat is that there isn't a babonus that can target actually AC.
So you will need to work around that.
1 . Create a babonus that targets Attack Rolls.
- Give it a name, description, a
-xin the relevant field and a filter forrwakaction types and save it.
- On the main tab which opens up again after saving, make that babonus and Aura, with a radius of
-1and againstAll
Aight, worked just right! I was having the macro called regularly, never inserted it as the item macro itself ๐
Thank you!!
Is there a quick way to export midi-QOL settings from one world to apply them in another world on the same system and module versions?
MidiQOL settings => Workflow settings => Misc tab
Export and import in the other one
...if only I had clicked one tab further into my settings. I knew I had seen that somewhere. Thank you!
Please can anyone tell me how this is supposed to be written in an example if possible?
Do the args go in the effect value?
How can one place a token on the scene after creating the actor using:
await MidiQOL.socket().executeAsGM("createActor", { actorData: trapData });
PS: I can see the actor created in the actors tab
macro.execute | CUSTOM | "My super secret but awesome macro name" @target @item.level
This will make available the @target and @item.level to your macro as args[1] and args[2] respectively.
The name of my macro needs to be in " " ?
Also, I am sorry to say, the second line I am not sure I understand? @target and @item.level will automatically add the args to the macro on/off? Or do I need to add the args to the macro so they pick them up? ๐ฆ
(And it definitely is my lack of knowledge not your explanation)
If your Macro name has spaces, yes put it in ""
the existence of createActor implies the existence of createToken, as a wild guess
Not in MidiQOL.sockets() though.
You have to go through DAE.createToken
Thanks, I'll try with DAE
Or just straight up create it on the canvas ๐
OK I am back. You said you wanted to execute a macro through a DAE macro.execute
Yes Sir...
DAE will pass to the macro a specific set of arguments to make your life easier ๐ค
If you need some external data passed along you can use the args as that screenshot suggests
The problem I am having is that I don't understand the screenshot. Do I put the args in the effect value?
Have you got an example of what one looks like? Please ๐
Go to the MidiQOL sample Items compendium and grab the Banishment.
Granted it is a DAE macro.itemMacro method, but same principle, using the included ItemMacro window as the "storage" space of the macro to be executed, instead of a hotbar macro.
whoops Banishment doesn't use the external argument in the macro.
Spirit Guardians does though, even if its much more advanced
Unfortunately I am only using DAE and not Midi Qol, so I don't have access to the compendium.
OK give me a sec
OK this is a Banishment macro, to be executed via DAE, macro.itemMacro | Custom | @target passing the @target as an extra argument (even though that wouldn't be needed, but as an example).
The macro would be something like ```js
const targetID = args[1]
const targetToken = canvas.tokens.get(targetID);
if (args[0] === "on") {
await DAE.setTokenVisibility(targetToken.document.uuid, false)
await DAE.setFlag(targetToken.document.uuid, "banishment", 1);
// TODO look at obfuscating the name
await ChatMessage.create({content: targetToken.name + " was banished"})
}
if(args[0]=== "off") {
await DAE.setTokenVisibility(targetToken.document.uuid, true)
await DAE.unsetFlag(targetToken.document.uuid, 'banishment');
// TODO look at obfuscating the name
await ChatMessage.create({content: targetToken.name + " returned"})
}
When the effect is created the @target will be automatically replaced by the token.id of the target.
Hi All I encountered a visual issue. So I give a sword bonus attack on hit (flametongue in a way). When used, the damage did went through as expected (both original sword damage, and the additional necrotic damage) , but the damage card only show the bonus damage? Many thanks
On use Macro
if (args[0].tag === 'OnUse') { if (args[0].hitTargets.length < 1) return const sourceToken = await fromUuid(args[0].tokenUuid); const source = sourceToken.actor; const target = canvas.tokens.get(args[0].hitTargets[0].id); const bonusDamageType = 'necrotic' const bonusDamageRoll = await new Roll('2d4').evaluate({ async: true }) new MidiQOL.DamageOnlyWorkflow(source, sourceToken, bonusDamageRoll.total, 'necrotic', [target], bonusDamageRoll, { flavor: (${CONFIG.DND5E.damageTypes[bonusDamageType]}), damageList: args[0].damageList, itemCardId: args[0].itemCardId }); }
Screen Shots:
The damage is functioning as expected, but I have no idea why the weapon damage is not showing? Thanks for helping out
No reason to go through macros for that any more.
Activation conditions can roll Other Formula for that type of weapons easily
I did not know it can do other damage type? let me give it a try
Yup work like a charm! Thank you for the help! I will save the macro for future I guess
I was working on my player's Flurry of Blows. Is there a way to have it make the two attacks?
Not sure if here is the correct place to ask, but I'm trying to add a couple of conditional item bonuses with Babonus after recently updating to V10 and I'm not sure quite how to do it.
you do not want a feature to roll two attacks because the target can change, plus features can't roll proficiency right, not to mention if its set to one hit, it will expend a ki point for each hit. I would have flurry of blows be a blank ability that just rolls a description to read, and then fire 2 of your already existing martial arts unarmed strikes.
Sooo this refuses to activate the ItemMacro (console.log(args[0])) for some reasons
I'm sure thre's something obvious I'm missing
features can't roll proficiency right
is this a midi quirk? because they should.
Mine rolls proficiency right
you'd have to add prof in the formula
Theres no checkbox
well yea, it's a feature not an item
its automatically added
not for features
nods at least in 2.1.x it is, yea, if the action type is a melee weapon attack, the feature will add prof to the attack
because, naturally, you would be proficient with your own features
I did not know that, but however, the rest of my point stands, if you make it roll an attack, flurry is 2, he'd expend 2 ki points
personally I'd do what I said before, but you could do an on use macro that rolls 2 unarmed strikes
yea, i just noticed that one part because i (re?)discovered it just the other day
Yea, far easier to just click it to expend the ki point
then make attacks like normal
if you don't delete the buttons you could have it on use fire a unarmed strike and then reuse the card so you don't expend a second ki point too
but if I recall the second attempt using a reused card does not automate damage
Could also just uncheck use resource on the second attack
Or better yet, put an inline roll command in the description of Flurry of Blows
At the end of the day, limiting the player to attack the same target twice with the feature seems counterproductive
[[rollItem Unarmed Strike]]
also the last monk I hosted for had 10 different unarmed strikes, but it was in roll20 and it was cause he had an animated gif for a karate move for each one.
Can you as a player choose, or as a GM restrict a player not to use the Midqol? I have some players who solves the targeting, attack and so on without problems, and some where me as GM has to step in to solve it for them.
First check box(note its clientside)
You can always use monk's client settings to set it from the DM side for the player
I also don't think you want to do this because I don't think you understand what will shut off on that client
Especially if that players a caster, cause then you'd have to start storing two different batches of spells with premade stuff on them for midi, and then the basic stuff from no midi
My players aren't getting advantage when flanking. I have CE + Flanking enabled but it never seems to work as intended
Midi does not work with:
Ready Set Roll
Better Rolls for 5e
Roll Groups
Fast Rolling by Default
Fast Rolls or Quick Rolls
Dice Tooltips
Taragnor's Gm Paranoia
WIRE(Whistler's Item Rolls Extended)
Minimal Roll Enhancements
Retroactive Advantage/Disadvantage
Max Crit
Multiattack 5e
Advanced Spell Effects module is in beta in v10 and often the culprit of things..
If you clear all of this, then your dm's not managing dispositions right, if you hold down ALT while selecting nothing, you should see the colors, and only same color tokens flank
green and blue are considered allies
(player and ally colors)
Orange means you didn't unselect ๐
If those are all modules I don't have any of those
When I hold down alt it does indeed do nothing though
then you have a different interpretation of flanking and/or dispositions aren't set, I will say that a few positions we used to call flanking midi does not for what its worth, its most common on large or bigger tokens where the flanking is abnormal, but we just follow midi's rulings just out of sheer laziness of not wanting to manually add the effect.
Oh disposition is hostile, neutral or friendly. Yes that's working, just hard to see
if two of the same color can draw a line that dissects an enemy by 50% then its flanking
I think it's not working for my PC's
exception being green and blue are the same color
It applies the flanking when the player targets an enemy
See how Wigs has no flanking yet glug does in my image?
its because wigs has not had a turn and designated target
Do I need to somehow set disposition for my PC's
honestly some would say no, but yes, open their sheets in the side bar, click prototoken at the top of the sheet and its on the first tab of token settings, do not edit a canvas token
some player controlled tokens are set to hostile and disguise themselves as GREEN due to player
I think this is usually a warpgate fluke
Trying to setup an elemental bane effect but getting a qol is not defined error from this
console.clear()
const target = args[1].targetActor;
if (!target.flags?.midi-qol?.elementalBane) return;
const baneFlags = Object.keys(target.flags.midi-qol.elementalBane);
if (!args[1].options.damageItem) return;
const damages = args[1].options.damageItem.damageDetail;
console.log(damages)
damages.forEach(async (d) => {
if (baneFlags.includes(d.type)) {
const extraDamage = await new Roll('2d6').evaluate();
new MidiQOL.DamageOnlyWorkflow(args[1].sourceActor, extraDamage.total, d.type, [target], extraDamage, {flavor: 'Elemental Bane'});
}
});
} catch (err) {
console.log(err)}```
This procs on onUpdateToken on the target
you have not defined that flag yet in the macro is it on the actor?
Interesting way of doing it, I had intended on just using reverse damage reduction but got confused and gave up after making all the flags