#MidiQOL
1 messages Β· Page 93 of 1
and I have no insight into this chain of events, so go with what works π
Does the token have the vision set properly though?
To set Strength save advantage I target the following midi qol flag: flags.midi-qol.advantage.ability.save.str
Is that correct, and what do I set the value to?
And what's the target for strength checks?
Sorted.
Thank you all very much. I have come unstuck, after two days of tinkering, and I now know where to get help.
Turns out that the scale rounds to nearest 0.5. Small at 0.7 changes it to 0.5, but at 0.8 it remains 1.
I guess small is staying full size.
scale should be pretty arbitrary -- width/height snaps to 0.5 unit increments
My modification is by width height. That'll be why. Thanks for the heads up.
Fixing it will mean dynamically grabbing the scale factor from the sizes (scale factor from large to medium isn't the same as medium to small, etc.), and using that. I'll fix it tomorrow.
just create a lookup table
const {scale, width, height} = {
'small': {scale: 0.8, width: 1, height:1},
'medium': {settings for medium},
'large': {scale: 1, width:2, height:2},
}[currentTokenSizeValue]
https://github.com/MrPrimate/ddb-importer/blob/main/macros/spells/enlargeReduce.js You can probably swipe this macro. Looks like it's a DAE item macro.
Personally I'd just make the effect in the macro to avoid doing an update after.
for onUseMacro one needs to to use function.await to call async?
Yes
Maybe oversight but that is the case for now
I was trying to learn exactly how Chris's module works and saw it but couldn't find anything about it in midi's help
It's very new, the only documentation is in the changelog
It'll likely get bug fixed to not need the await eventually
the new ATE offered by kaelad in kandashi's server handles token changes now perfectly so the ATE version in dfreds/midi srd should be fine with ATE.
Thanks for that. I checked, but I'm afraid it doesn't work.
Also, when I try to type the key in, I don't get it in the drop-down menu.
I have the Chris's Premades module, is there anything else I may be missing?
you don't have his Conditional resistances script enabled
I see this alot
Oh, I have, actually.
all his stuff is on in its settings?
Unless there's another setting to make these work to begin with.
The only settings before this that are off are these two. But they don't seem relevant.
show me the active effect that causes prone, the key drop down and value
Yeah, granted, but I just saw the option for this to work and my character has that resistance, so I was hoping to simply enable it - given the option exists.
It's just for testing purposes, but that would be the way, right?
yeah this is why I kinda hope bugbear picks up CPR's strategy
CR only works with macro.ce
so any DAE created conditions are statusEffect
How is macro.ce used? Sorry, never did anything with it before.
and most if not all of the midi srd are statusEffect
well change the key and find out
you have CPR so you have to hae dfreds ce so it should work
Right, sorry, got intimidated before I even applied the key π
Savior, thank you. Since I'm not sure how these are different, is it safe to stick to macro.CE or does it work on case by case basis?
its going to be ridiulously annoying to transfer all of midi srd to it but that is the only way CPR CR works
someone needs to write a script that changes statusEffect to macro.ce on everything in a world.
Anyone automated shepherd druid totem?
Thanks Moto, this helped with my issue. I'll remember this in case anything similar happens in the future.
if you are a CPR user all your dae wrench usages for conditions need to follow up by changing statusEffect to macro.ce no more just slappin a condition via the wrench
Hey friends im looking for the setting to bypass having to roll attack rolls and just roll damage if needed
does the item normally require an attack roll?
yes
for instance if i roll a physical die and just to be able to click roll damage is my goal
there will be no midi version of this but you can click the description on the sheet and click the damage button in the description but it will mimick the core roller
you can also turn off auto roll and just roll damage
which would be the same core roller method
by core I mean no midi damage card displays and it doesn't look like a merged card
Okay thanks for the response - may just turn it on all auto roll just to make combat a little quicker
for me atleast
I should probably just update the condition check to look for status effect as well
think after the other day with bugbear and I fiddling with immunties with combined statusEffects its probably in need of an issue report to stop it from combining them
when statusEffect combines them the keys are not very informative and only the first status effects name/id is used
will only happen for 2 statuseffect ae's
either a DR of 999999 or DI flag
I would just use the immunity to healing core flag
For some reason all of my players are rolling attacks at disadvantage. They shouldn't be π€¨
lovin the new dfreds changes
Follow the two images near this link:
#1010273821401555087 message
although....always disadvantage sounds an awful lot like you got one of the naughty modules installed in the pins here
either retroactive advantage or ready set roll
but it can also be the hidden flag
(or ranged disadvantage flag) as they are invisible flags to users who do not have attribution turned on
If your issue is not related to hidden flags or a naughty module let me know so I can add it to the list
It was me being an idiot. I had an NPC listed as hostile
my bad
highly recommend still turning on attribution, midi has an increasingly large amount of hidden roll flags nowadays
it was only the ranged characters rolling disadvantage
Already did
I like that feature
thanks so much for always helping out and all, really appreciate all you do π
Hey Moto, I'm trying to follow your steps here. What does "Change its creature type to "noTarget" mean?
are you using jb2a's creature?
export it and store it in the sidebar in a safe spot
Kk I see it in the sidebar
which premade spiritual weapon are you using?
spell I mean
CPR strangely updates to a bad midi srd one
so if you want the sample item you need to get that, or you can get the cooler v9/v10ified one I shared here
where did you get your spiritual weapon spell item
the midi srd one doesn't use warpgate, the sample item does
Compendium -> Actors -> JB2A
Oh SRD I believe, let me see
the actor is pointless if you don't have warpgate/are not using the sample item
I prefer the v9 version of spiritual weapon from the midi sample items, heres its macro, or you can just use the midi sample item in v10:
console.log(args);
const origin = args[0].itemUuid;
if (origin) {
const removeList = actor.effects.filter(ae => ae.origin === origin && getProperty(ae, "flags.dae.transfer") !== 3).map(ae=>ae.id);
await actor.deleteEmbeddedDocuments("ActiveEffect", removeList)
}
const updates = {
Item: {
"Spiritual Weapon Attack": {
"type": "weapon",
"img": "icons/magic/symbols/runes-star-pentagon-magenta.webp",
"system.actionType" : "msak",
"system.properties.mgc": true,
"system.attackBonus": `${Number(args[0].actor.system.abilities[args[0].actor.system.attributes.spellcasting]?.mod) + Number(args[0].actor.system.attributes.prof) + Number(args[0].actor.system.bonuses.msak.attack)}`,
"system.proficient": false,
"system.damage.parts":[[`${1 + Math.floor((args[0].spellLevel-2)/2)}d8 + ${args[0].actor.system.abilities[args[0].actor.system.attributes.spellcasting]?.mod || ""}`,"force"]]
}
}
}
const result = await warpgate.spawn("Spiritual Weapon", {embedded: updates}, {}, {});
if (result.length !== 1) return;
const createdToken = game.canvas.tokens.get(result[0]);
await createdToken.actor.items.getName("Spiritual Weapon Attack").update({"system.proficient": false});
const targetUuid = `Scene.${canvas.scene.id}.Token.${result[0]}`;
await actor.createEmbeddedDocuments("ActiveEffect", [{
label: "Summon",
icon: args[0].item.img,
origin,
duration: {seconds: 60, rounds:10},
"flags.dae.stackable": false,
changes: [{key: "flags.dae.deleteUuid", mode: CONST.ACTIVE_EFFECT_MODES.ADD, value: [targetUuid]}]
}]);
Sweet sample item is in the Midi compendium right?
you need to make your actor look like this:
The best out of the box spiritual weapon is in the "Midi Sample Items Compendium". The best imo is the one I just pasted above.
Sweet I've got the v10 + warpgate for the moment, let me find the target cog
Once I've got it working I'll try the v9 as well
all you need for the pasted code above is Item Macro installed with its character sheet hooks off, then you can paste the v9 macro above into the v10's spot as the items setup the same just needs the code change
the v10 one gives new users trouble if their actor is not setup right
think the v9 one just makes the item if you named it wrong so its user friendly
Kk found the NoTarget, it was blank which was throwing me. I'm unable to add the spell as an attack to it
rename the attack already on it to the same as mine
you don't need to edit it beyond its name
Ah kk, it has no attack currently, do I just add a blank one and name it?
Doh, if it is a hassle no worries. We currently just recast the spell everytime, so this is just an improvement
prolly give it an icon, but I like a lil janky in everything so I approve
Haha ya
while in the sidebar click its prototype token button at the top and make sure its set to neutral
Is warpgate a module I need for the v10 to work?
kk grabbing that
SICK!!!!
Getting close, when I click the attack it says "Spritual Weapon is Incapacitated" I'm guessing because it has 0 HP as it should?
how can I add some condition when fail a saving? Thanks
mine didn't
midi defaults to this if you set effect activation true box at the bottom of the items details and add an ae to the item
if your items have fluff in the activation conditions that could be problematic though
which is why nobody should use dnd5e srd
Ya might be something I've got set, giving it 1 HP and it works perfectly
we all have that set as its midi π
TY for the help!!!
I was pondering if the addition for some sort of flag that would allow a creature on 0HP to not be "incapacitated" would make actual sense.
So that if you have a "Spiritual Weapon" Actor with 0HP, it can attack, but it should be relatively safely ignored from attacks of any kind.
One issue would be the findNearby check with incapacitated paramater set to false
But I don't think that this solves any more issues than what the NoTarget creature type currently does π€
checking now, thanks
DFred's addEffectWith is the part that was giving me grief with my Light macro and he's just done a fix on that now... interesting
So you don't need this anymore! π
gib please
That is outrageous... and wonderful. But that title bar though π€
i need to check the box and add a dae of the condition?
And anyway, my macro still doesn't work 
It started as just Select Light Colour and it was your fault π
It has MidiSRD functions, in the version I got now easily accessible. I will share in the morning
What you've done seems like a 3rd level spell... far more power than a simple cantrip π
Light cantrip will just trigger a colour picker if anything at all.
This is more like a MidiMacros function that will be exposed for someone to create a light on the fly
Nope, Warpgate instead
Don't tell Kaelad
I saw that Kaelad straightened it out though
Sounds like it, I'm excited to test it this weekend
and have flag for vulnerable? Cant find
type dv in the key field of the Active Effect and DAE should offer auto complete options
nice! thanks! o/
Questions about Chris' premade Ancestral Protectors feature:
-Is there meant to be a way to limit it to 1 creature per turn? (Current behavior, it marks everything the Barbarian hits while raging instead of only the first creature)
-It should clear on the start of the Barbarian's next turn, correct? (Currently, it is tagged with a special duration to end on Source Actor's next turn start, but actually removes itself after 2 rounds)
What version of my module are you on?
Give me just a moment and I'll letcha know
That can easily be an oversight by me as well, I'll double check it
0.2.25
It should be removing itself at the start of the source actor's turn
If it's not, I would check your DAE version and make sure it's up to date
Do other special duration effects not work?
I found the bug with it doing it more than once a turn, fixing that now
I gave a Hill Giant a dummy effect with a duration of "1 attack" and it cleared correctly
And when I put a dummy effect on a Hill Giant's greatclub to clear at the start of source actor's turn, it clears correctly.
But Ancestral Protectors doesn't π
Effect applied on the Barbarian's turn in Round 6, cleared on the barbarian's turn in Round 8.
the attacker is in combat right?
Errors in console when the turn comes around?
That's on his turn when the effect is supposed to end
And when the effect actually ends (a round later)
Does it not know that the Barbarian is the source actor? So it's just defaulting to the 2 round duration?
Actually
it should
Hm
Would it break if, say, this were a duplicate of the actual actor that the player uses?
One that I quickly made to test some stuff without accidentally expending his resources
smh apparently so
It works for the actual actor
I'm sorry to waste your time on that part
Can confirm that he does still have the issue where it applies to multiple targets in a single turn, though
yea, troubleshooting that right now
Ok so, revisiting my unidentified magic item prefab
Everything works great, except that in the latest dae, 23 that is, he made something different in how items go on the actors. If I have a magic item that itself has a macro.createItem key on it, like this one:
the two items are the ranged special attack and a light feature. When the unidentified item attunes and gives the actor THIS weapon, I attune and equip it, but if its attuned/equipped by the MACRO I worked on yesterday that Krig wrote the last part of, these macro.createItem keys do NOT work till I manually through the UI toggle attunement off and then on.
is there any midiQOL effects that allow you to reduce on coming damage instead of just healing damage back as a reaction when hit?
in DAE have it auto complete:
.DR.
DR=damage reduction
dr=damage resistance
DR is a midi flag, dr is a system flag
did you get it working? I would love to profit from your work π
Just to be clear, I stand on the shoulders of giants like @scarlet gale and @violet meadow, just to name two. They are doing the real work. But no, not fully fixed yet. Been busy with RL.
I feel that π
thanks π
I don't know about callbritton but I did, so I can summon it using warpgate/arbor's
Create a feature on that Spirit Actor, with a DAE set to transfer to Actor when equipped.
The Effect Value will be a MidiQOL OverTime effect and that Effect will be an aura.
This way will not need any macros, but will not be RAW as it will be affecting the caster and the creature too.
With a macro, you can limit the targets to the ones you need, but it becomes more difficult
its similar to spiritual defender or whatever the spells called. For me I just made a special item on the faux actor that the caster used manually cause other than spirit guardians, nothing ever works right with at start of turn or first time you enter.
I should take some time at some point, to write the rest of the spells the same way I did for Spirit Guardians.
yeah that was the way I went for now, but then I saw callbrittons message and thought maybe I could be a lazy dm and copy his homework π€
isn't it also immune after it saves?
nope, repeats every turn
I'll try that π€ My caster is ranged anyways, so I think the instances of him being near the spirit are very limited anyways
Just set the attack type to other and set a damage roll formula. That will do it.
btw, tposney got his shotgun and is hunting them π
π₯³
Tposney back from vacation I take it
There a way to set an item to ignore the midi settings and auto roll damage?
Short of toggling the setting
You can fastForward core style?
yeah, have Zhell write it hehe
item.Roll({fastForward: true}); afaik
its item.use now though
yeah fast forward is skip popout, auto roll is what Chris wants
item.rollDamage({fastForward: true}) is just a one click roll damage specifically
I use it for my cleric's spiritual guardian
fast forward is not auto roll
I need to find a good way to get my synthetic items to roll without issues for people who have auto roll damage off
Since the button in chat to roll damage doesn't like when the item no longer exists
I'm confused or don't understand the distinction, isn't skipping the pop up and rolling the item's damage what you want, or do you want the entire item to be rolled?
embed the macro in the chat button π€―
Can something be set during the pre item roll?
auto roll triggers the attack skipping the chat message with the buttons in it
in the case of damage, auto roll auto rolls right after the attack rolls without the need to click damage in chat
fast forward auto picks normal or crit for damage
I'm the resident non fast forward fella here, I find that alot of people merge the two features thinking they are the same
Doesn't quite look like fastForward works in core with rollDamage regardless right now, just testing, that is strange
its probably because midi rebound the keys
second object parameter I think
the popout for damage is 2 options instead of 3
Nope, works with rollAttack
or am I confused?
token.actor.items.getName('Shortsword').rollDamage({options: {fastForward: true}})
Am I odd in thinking that's weird that it works that way with rollDamage but with the other rolls, you don't put in options?
Doing a midi complete item use
function prototypes dont lie π
I do often forget that is possible
@scarlet gale you can hook on the midi-qol.preAttackRoll and from there Hooks.once("dnd5e.preRollAttack") for FF
Or maybe alter the workflowOptions
Sorry preDamage roll, but still
Though now that i think about it, you need to make sure that the Hook on the preAttackRoll is deleted if the workflow is aborted or something, cause it might mix up future ones
So, I got back to this, and did as you suggested. Thanks for that.
I added scale to the mutate, but it will only change the size, or the scale, not both at once:
await warpgate.mutate(target.document, {token:{width: newTokenSize, height: newTokenSize, scale: newTokenScale}}, {}, {name: mutName});
I've been looking in the Warpgate documentation you pointed me to yesterday, but haven't managed to figure it out...
oh, right, yea, scale is in texture now
try 'texture.scale'
guess my shims dont catch that one π whoops
not quite
This produces a syntax error, unexpected token.
texture.scale: where it used to say scale.
texture.scaleX, texture.scaleY -- need both
put it in quotes
(the . is confusing the interpreter)
await warpgate.mutate(target.document, {token:{width: newTokenSize, height: newTokenSize, "texture.scaleX": newTokenScale, "texture.scaleY": newTokenScale}}, {}, {name: mutName});
I get the exact same error.
can you show the full error?
did you copy my snippet above?
the texture.scale keys are not quoted in your version
I did.
Use scale: "0.8"
you are on v10 right? can i see your script?
hrm?
I must have had a typo in there somewhere, because I copied it again and now I'm not getting the error. It's still not applying it though.
something else must be getting in the way -- i just tried it with hardcoded values (2 for everything) and it worked
I don't know why I read it 0,8
click a token, run this:
await warpgate.mutate(_token.document, {token:{width: 2, height: 2, "texture.scaleX": 2, "texture.scaleY":2}})
if that no worky, pretty sure its not wg
That worked.
then your input data must be wrong
what is target would be my first check
that would produce an error in that case
I'll post the relevant lines:
const tokenSizes = [{scale: 1, size: 0.5}, {scale: 0.8, size: 1}, {sacle: 1, size: 1}, {scale: 1, size: 2}, {scale: 1, size: 3}, {scale: 1, size: 4}];
const sizeCategories = ["tiny", "sm", "med", "lg", "huge", "grg"];
const newSizeIndex = sizeCategories.indexOf(currentSizeCategory) + 1 < 5 ? sizeCategories.indexOf(currentSizeCategory) + 1 : 5;
const newTokenSize = tokenSizes[newSizeIndex].size;
const newTokenScale = tokenSizes[newSizeIndex].scale;
await warpgate.mutate(target.document, {token:{width: newTokenSize, height: newTokenSize, "texture.scaleX": newTokenScale, "texture.scaleY": newTokenScale}}, {}, {name: mutName});
not if target is the proto token and they are lookin at a canvas token to see changes
then they just aren't lookin at the right thing to see changes
prototokens dont have document fields
it would error
The target is correct, and the size changes are working, but the scale doesn't seem to work.
log out all your derived values
Enlarge works, but reduce is now giving a Can't create property scale on number '1' error, number 1 being the target token.
{sacle: 1, size: 1}
I think I found the error. When I changed the function to a table(?), from an array, I missed adding the .size to the reduce side of the function.
Yeah, that was it. Fixed.
Thanks again.
So now that I have Enlarge/Reduce, lets see if I can figure out using that for the Duergar Magic Enlarge self spell, without having to ask for help.
Are you aware of the CPR and midi srd modules?
Nope. What's CPR?
And Duergar is none-srd. It's from SCAG.
Is game.user.active the selected equivalent of game.user.target?
May want to inform the dev staff then 0_o
this is a boolean for if the user is active (connected) in your world
Midi SRD module has enlarge/reduce already made, and CPR has the duergar invisible and enlarge features prebuilt
CPR=Chris' Premade Module
The player race, not the hostile unit.
I think its the same is it not?
its srd -- the creature
btw, I am waiting on a MidiQOL/DAE update to validate the MidiSRD updates and then release it
I think lastArg.tokenID is what I'm after in this case.
As much as I love midi srd, I'm more happy Tposney is back lol
Sources of premade stuff for Midiqol:
Midi Sample Items Compendium(comes with the module)
Midi SRD's compendiums
https://foundryvtt.com/packages/midi-srd
Mr.Primates premade macros:
https://github.com/MrPrimate/ddb-importer/tree/main/macros
Chris' Premade macros:
https://github.com/chrisk123999/foundry-macros
Chris' Module form of his macros:
https://foundryvtt.com/packages/chris-premades
Dfred's Convenient Effects:
https://foundryvtt.com/packages/dfreds-convenient-effects
Activation condition and other useful info:
https://github.com/thatlonelybugbear/FoundryMacros/wiki
unless you want to reinvent the wheel, the things you are making are already available in these locations
has anyone noticed issues with dfreds newest version yet, am pondering mashing the update button
Moto maybe link this https://github.com/thatlonelybugbear/FoundryMacros/wiki as a landing page cause it has also the Item Ideas and some more visible links to relevant READMEs
That's a lot of stuff.
Very good to know.
For the sake of learning, I am still going to make some of these things myself. That way I understand how they work, what they're doing, why, etc., so that if I ever want to tweak something, I can do so.
I only suggested incase you were unaware
it will pay off so well in the long run
I was unaware. You were right to suggest, and I may end up using some or all of them.
That's the idea.
CPR has a really cool feature where you click a button and your current item updates to the best of either CPR, midi srd, or midi samples
This is the stripped down version of Enlarge/Reduce that I've made for the Duergar Magic's Self Enlarge
const mutName = "enlarge/reduce";
const effName = "Enlarge/Reduce";
console.log(args);
if (args[0] === "on") {
const tokenSizes = [{scale: 1, size: 0.5}, {scale: 0.8, size: 1}, {sacle: 1, size: 1}, {scale: 1, size: 2}, {scale: 1, size: 3}, {scale: 1, size: 4}];
const sizeCategories = ["tiny", "sm", "med", "lg", "huge", "grg"];
const { tokenId } = args.at(-1) ?? {};
const { actorId } = args.at(-1) ?? {};
if (!tokenId) return ui.notifications.error("tokenId not defined");
if (!actorId) return ui.notifications.error("actorId not defined");
const target = canvas.tokens.get(tokenId);
const actor = target.actor;
const currentSizeCategory = actor.system.traits.size;
const newSizeIndex = sizeCategories.indexOf(currentSizeCategory) + 1 < 5 ? sizeCategories.indexOf(currentSizeCategory) + 1 : 5;
const newTokenSize = tokenSizes[newSizeIndex].size;
const newTokenScale = tokenSizes[newSizeIndex].scale;
await warpgate.mutate(target.document, {token:{width: newTokenSize, height: newTokenSize, "texture.scaleX": newTokenScale, "texture.scaleY": newTokenScale}}, {}, {name: mutName});
const effect = actor.effects.find(e => e.label === effName);
if (effect == undefined) return ui.notification.error("Enlarge/Reduce effect not found");
const changes = foundry.utils.deepClone(effect.changes);
changes.push(
{key: "system.traits.size", mode: "5", priority: "55", value: sizeCategories[newSizeIndex]}
);
await effect.update({changes});
}
if (args[0] === "off") {
const { tokenId } = args.at(-1) ?? {};
if (!tokenId) return ui.notifications.error("tokenId not defined");
const target = canvas.scene.tokens.get(tokenId)
await warpgate.revert(target, mutName)
await ChatMessage.create({ content: `${target.name} is returned to normal size` });
}
For some reason, I'm getting a cannot derive actor document from provided Token error.
one thing -- const actor = game.actors.get(actorId);. This is dangerous on unlinked tokens
change to const actor = target.actor
I don't have SCAG but the monsters of the multiverse version they can reduce also
and the actual warpgate commands, you want target.document.
As a further step -- i see you are mutating, and then doing an effect update. You can do both inside the same mutation
Mosnters of the Mutliverse... Is that a book I don't know of, or is it from the UE column?
its THE race book now
The typo. That's the problem. Thanks.
Shouldn't that be safed by the null check?
its a question of exactly which actor document you are grabbing
by going through the actor collection, you are getting the sidebar version
which, for linked actors, is the same as their token actor, however, for unlinked -- it is NOT
so, if you are dealing with a specific token and its actor, its better to go through the token to get it
I see. Changed.
does that make sense? its a huge stumbling block when getting started
an unlinked token keeps a "soft" copy of the sidebar actor (in so many words) and stores its actor data on the token itself
Now I'm getting an undefined somewhere.
click the VMxxxx:yy link to the right of the error
it will take you right to the line breaking
Side note you still got a sacle instead of a scale in ```js
const tokenSizes = [{scale: 1, size: 0.5}, {scale: 0.8, size: 1}, {sacle: 1, size: 1}, {scale: 1, size: 2}, {scale: 1, size: 3}, {scale: 1, size: 4}];
Oh. That's not good. Thanks.
That's the error.
There was no .scale for a dwarf going from small to medium.
Or not. Still got an undefined.
And that now works fully. I had the effect name wrong.
I changed it back to Enlarge/Reduce, from Enlarge, to stop it stacking with the spell.
I can now drag Duergar from my compendium, and everything populates. I've not looked at getting the spells to show up at the correct levels yet though.
You can add hooks, so I should be able to do that, right?
If it's not simple, I'll ignore it, as it's very easy to fix manually.
Actually, sunlight sensitivity will need some setup.
spells?
the srd creature should have its features configured π€
Duergar from Scag have Duergar Magic as a racial feat. It grants modified spells to the player as innate spellcasting, being self-only enlarge-only Enlarge/Reduce, and self-only Invisibility.
hes referring to starter race, I think they made a race item
gotchya gotchya
I drag Duergar onto the character sheet, and all the racial features get added automagically, and they in turn add their own effects, spells, etc.
I haven't looked at the invisibility macro yet (change token vision permissions to GM and owner only), nor have I looked at a macro for Sunlight Sensitivity.
Is there a premade example somewhere of the whole "if you fail the saving throw by x, this also does y"?
Do you have another effect or Other Formula damage on the Item already?
If not, you can use an activation condition
I got another effect unfortunately
will check the drow
It's "fail save, get deaf, fail save by 5 or more, also get blind"
this is exactly the scenario where statusEffect gets weird beware
if you use statusEffect for ae's with more than one condition, it combines them into one and it looks like it doesn't apply the second but its keys are in the other one
This is just for future learning, I'm doing this manually in this game, so I'm not in a rush or anything
Can light sources, including global illumination, have the sunburst animation type?
I've not started looking making maps into that yet.
not global, but yes, light sources can
The function I just copied only checks for tokens. How would I modify that to also check lightsources?
AmbientLight is the document type
which live on the lighting layer of the canvas, or in the lights embedded collection of the scene
@short aurora btw I remembered our conversation about raceOrType being available as an argument in MidiQOL ones.
Here ya go. I was sure I had seen that in there.
workflow.conditionData.raceOrType
Actually one should look at all the goodies in that conditionData
Ooh, sweet, that's much easier, thanks mate
I did say I'd leave sunlight sensitivity manual if it wasn't simple to do, and I can't even find where findNeabry is defined or what it's arguments are.
I can just apply it as an inactive effect and have folks toggle it as needed. That also solves the 'I'm outside' global illumination problem.
I'd personally make it a dfreds CE
toggle it when needed in each situation since you can mass select and apply ce's
dfreds Combat Effect?
Dfreds Convenient effect, one of the links in that premade copy/paste
I've got Combat Utility belt in, but haven't started looking at it yet.
(cub is fiiiiine)
Didn't know that. It kept coming up in searches as a thing to use, so I picked it up for later examination.
So for that you need to go into ```js
workflow.saveResults[0].total
Or against specific targets ```js
let saveTargetsExtraBoom = [];
for (const target of workflow.targets) {
if (workflow.saveDisplayData.find(s=>s.target === target).total >= Number(workflow.item.system.save.dc) + 5) saveTargetExtraBoom.push(target)
}
//do stuff to the poor saveTargetExtraBoom tokens
Make use of some optional chaining to be sure that everything exists but should do it
Respectfully, that's so rude. CUB is a great module made for free for love of development or the community with so many hours of unsolicited labour. It's fine to express preference, but maybe don't put the developers' work down while doing so?
the reason Dfreds CE stands out to cub is the much stronger UX and tons of premades that come with dfreds CE as well as midi having functionality with it that improves automation. Cub's midi integration goes as far as having one key useable in dae, thats about it and no premades nor auto application.
meaning its not a good fit for your use case
Do I want DFreds effects panel along with that?
Type in console ```js
MidiQOL.findNearby
There are two modules that are almost identical in that department, Visual Active Effects and Dfreds Effect Panel, I think VAE has prettier CSS but they are basically the same thing.
Much love, will look into automating that for next timeΒβ’
Okay. I'm already stuck into DAE, so I'll stick with that. Thanks.
VAE not dae don't mix em up ;p
Oh, sorry. I misread that.
@deep harbor you can base Sunlight Sensitivity on darkness of the Scene as well
but yeah it needs some setting up to automate it properly, meaning build the check around your table demands
True, but lowering the global illumination can make the scene harder to see when it doesn't need to be, reducing clarity.
I think having it manual is perfectly fine for Sunlight Sensitivity.
Oh, that's great to know. Thanks.
As for findNearby, it only finds tokens, so that doesn't help with light sources anyway.
warpgate.crosshairs.collect could probably work to collect light placeables
there are 2 different monster features for light
cloakers are sensitive to light.(period), drow are sensitive to sunlight
Two things.
- A magical light can produce sunlight.
- I'm running a campaign, porting it from Roll20, in which we have Light Sensitivity instead.
"Summoned" light sources create an actor with that type of light for me, so I have linked the check with the Sunburst light animation type, for my table
just went through this with my players theres apparently only 2 spells that make sunlight and oddly daylight is not one of them
I think it was Dawn and Sunbeam
Dawnbringer Item is the one being used from my players that needs this treatment too
yeah I haven't parsed items yet
So I want to replace status effects in the dfreds settings..?
What are ATE and TokenMagic that it has integrations for?
ATE is about to become awesome
Just need Kaelad to release the test he showed off on kandashi's server
Yes to REPLACE btw
ATE is a module that lets you mod token settings with active effects
tokenmagic is a module that handles animation overlays on tokens
dfreds has a bunch of module collaborations if you have them all, when you refresh after enabling them it should auto pick them all up
I'm not looking to animate stuff, and I don't have ATE, so they should be off, but they're both on by default, seemingly.
if they don't exist in your session then it doesn't matter
This is basically ATE in a nutshell in dfreds
ATL can do a bunch of various token settings in ae's
That is awesome. I was already thinking of doing that with DAE. Didn't know I'd need ATE for it though.
Openned and bookmarked.
also ATE=ATL, they just didn't wanna change the old keys
kaelads gonna kill me cause he made it officially in the module somewhere but I never can find it so I share maxpats link to everyone lol
Why does VAE have 9 days per week, 3 weeks per month, with an extra day each year? Default settings.
I didn't like how the lights were named differently so I duplicated them as custom and renamed them so they would be together in the statusmarkers:
I don't know what that means but my guess would be you have simple calendar installed set to a weird calendar?
I have no calendar in at all.
yeah my guess is Zhells world is that
Perks of making ya own modules. π
Can I modify a workflow to add a DC and an effect after the attack hits via macro?
is that a published calendar?
Eberron or something?
Home game. Homebrew all the way.
nifty
VAE was initially part of my personal module if you recall.
The lights don't show up in the status list at all. How do I add them, or make custom statuses?
I'd recommend renaming them by duplicating them otherwise they are all over the list, but right click
Toggle status effect is what you want, and you must refresh your client for changes to happen
I like to call it the Jazz Hand button
Ooh. Rage and everything is in here. That's so useful.
π I'll have to look into that later. I'm still trying to sort out the Dwarf races to do what I want. Nothing else yet.
Enlarge Reduce is in there, if you have ATE installed that is
pretty sure it leverages ATE/ATL keys
just a note on that -- if you have a working setup with wg mutations, they will be more stable overall than ATE due to its prototype bound nature
I really hope next MidiQOL version has an implementation that will allow for an easy way to automate Dwarven Resilience
It is, but it doesn't do the token size changes.
that is about to be fixed, kaelad just has to get it pushed through Kandashi
that's good to hear
have you seen CPR's version of dwarven resilience?
Now that I changed eveything to use warpgate, I will stick to it π
in the long run, still, the wg approach is more stable
nope
It does do size changes, but it doesn't like going from small, with scale 0.8, to medium.
as long as you use macro.ce instead of statusEffect
to add to this, there is a demonstrable benefit of leaning on warpgate api. The v9 -> v10 transition? basically all macros broke in half. However, any that used the wg api exclusively, still work π
the only thing his CR keys don't pickup is a save for poison damage that doesn't do the condition(poison spray)
what about scale π
obviously the middle 2 keys are not CPR, I took liberties
ok fair, i did miss that one in my custom shims π lemme log an issue
the CPR module will prompt advvantage to the dwarf if the save is going to apply the macro.ce key for poisoned
(second benefit, you can yell at me for fixing your code!)
the first key is for midi halving poison damage, and the middle two keys are my own advantage reminder keys cause its smart to combine ae's if you can into one ae
I see, so it's using flags. It also means everything else needs to be made to match those keys.
I didn't wanna have a stonecunning ae and a dwarven resilience ae
I actually made this before Chris made dwarven resilience
I guessed that he had a CR.poisoned
Need to change some thing like the token names based on options to hide them βοΈ
***This is not to be used as is ***
Challenge accepted
The enlarge reduce in the CE menu doesn't make small units smaller. It does for Tiny, but not small. It isn't using scale at all. That's why it seems slightly off compared to what I just did.
I didn't understand why all the monster srd tokens had scale till I used one, cause I always yoinked their topdown off
never realized that scale looks cool with topdowns
scale > 1 is pretty neat for top downs in general
yeah, thats what I meant, wasn't thinkin of scale down actually
Also, all the effects are on timers, not on turns. Gameplay is rarely real time, and pausing un-pausing constantly to prevent the timers running out seems tedious. Am I missing something here?
I never play in real time
thats where the lack of simple calendar is showing though for you
So you're saying that with simple calendar, I will have manual time controls?
SC you can pause the ingame time and I personalyl never let it play live, I advance in minutes/hours during live session
I hope it also gets rid of the game-paused message?
Excellent. On it.
I don't link game time to pause
my game is unpaused yet time stands still, another dope feature
If in a combat encounter, does it automatically progress time 6 seconds per turn, or does that need to be done manually?
turns advance 1 second I think in midi, and rounds are 6 seconds
dae usually does the heavy lifting for converting durations I think
turns aren't time, its just that if you advance a turn it clears an instant template
So I don't need to worry about it. That's great.
you also need times up module if you intend for your ae's to expire by time
but honestly times up, dae, midi are like basically core in this channel realistically
Don't worry. I found Times Up all on my own.
Can I use Simple Calendar with the day number and calendar bit turned off? So it just has times?
one of the simpler time modules might be your jam then. I dunno I don't use smalltime or weather control
SmallTime utilizes Simple Calendar, so the info is still there, but you can minimize it so it doesn't show
minimized
with dates
what calendar is that out of curiosity
I think I stole the day/months from somewhere in the DMG but the years are homebrew
:p
I think I will use the smalltime module for campaign 3, but in dotmm daytime rarely matters to the party
thats the thing I like the most about smalltime is the sun meter
The daylight tying to scene light is super useful and the drag the sun to progress the day stuff
Hi Folks. Can I use MrPrimate's macros/module If I do not use DND Beyond?
Does Simple Calendar support variable week lengths, recurring events by offset from month (such as second Sunday of the month), and things like that?
That sounds ideal, as it means years and such can be sorted for games where that's desired, and ignored for ones where it isn't, but the UI is consistent.
And does VAE pull the day/week/moth/year setting from Simple Calendar if it's enabled?
the catch with doing his macros without his module items is you don't technically know exactly how the item should be setup, but you can guess really well.
the top of all his macros have instructions
I honestly don't know about that, I'd ping the author or ask generally in #513918036919713802 I only use it for the forgotten realms calendar myself
I have his module installed but the compendiums are empty unless his macro requires me to get the items from DDB
I had no idea vae had those settings and its done nothing to my 10day/4week/16 month calendar
if you have to manually input the macros, you will need the module ItemMacro, and theres a tip in the pin here by me about item macro so that it works with midi
Okay. I'm back to macro questions.
Currently, adding Duergar Magic to your sheet adds the custom spells, but it should only do so if your level is 3rd/5th or higher.
How hard would it be to attach a macro to character changing level, and then add the spells if the character level is high enough (checking to prevent duplicates, of course)?
sometimes automation macros change how the spell works mechanically in foundry, for instance, my scorching ray automation is a self/self item instead of a targeted spell, so beware when you start yoinking the macros from chris and mrprimates githubs that they might be implying a differently setup item from the dnd5e srd item
more trouble than its worth
I think I Should just ban paladins from my game XD
I think we're gonna get a race item soon in dnd5e but right now there isn't a way to do it
what item are you trying to make...wait let me paste THE mega list
Sources of premade stuff for Midiqol:
Midi Sample Items Compendium(comes with the module)
Midi SRD's compendiums
https://foundryvtt.com/packages/midi-srd
Mr.Primates premade macros:
https://github.com/MrPrimate/ddb-importer/tree/main/macros
Chris' Premade macros:
https://github.com/chrisk123999/foundry-macros
Chris' Module form of his macros:
https://foundryvtt.com/packages/chris-premades
Dfred's Convenient Effects:
https://foundryvtt.com/packages/dfreds-convenient-effects
Activation condition and other useful info:
https://github.com/thatlonelybugbear/FoundryMacros/wiki
Yes this is the list I have been following for the past 5 hours
Thought this might be the case. Just wanted to make sure.
yes all three. Thunderous, Wrathful and Searing Smite
pretty sure those are exact examples of the item being different than the dnd5e versions
they are self buffs
// Modules Required - Item Macro, MIDQOL, Dynamic Active Effects
// Card settings - Target & range: Self
// DAE settings - [1] flags.dnd5e.DamageBonusMacro / Custom / ItemMacro.Searing Smite [2] flags.midi-qol.brandingSmite.level / Override / @item.level
if (!["mwak","rwak"].includes(args[0].item.system.actionType)) return {};
if (args[0].hitTargetUuids.length === 0) return {};
let selected = await MidiQOL.MQfromActorUuid(args[0].actorUuid);
let DC = selected.system.attributes.spelldc;
for (let tokenUuid of args[0].hitTargetUuids) {
const target = await fromUuid(tokenUuid);
const targetActor = target.actor;
const effectData = {
label: "Searing Smite",
icon: "icons/skills/melee/strike-sword-steel-yellow.webp",
changes: [
{key: "flags.midi-qol.OverTime", mode: 0, value: `"turn=start,saveAbility=con,saveDC=${DC},damageRoll=1d6,damageType=fire,label=Searing Smite" `, priority: 20},
],
origin: "Searing Smite",
disabled: false,
icon: "icons/skills/melee/strike-sword-steel-yellow.webp",
label: "Searing Smite"
}
await MidiQOL.socket().executeAsGM("createEffects", { actorUuid: targetActor.uuid, effects: [effectData] });
await ChatMessage.create({content: `${target.name} is set on fire and begins to burn!`});
}
Hooks.once("midi-qol.RollComplete", (workflow) => {
console.log("Deleting concentration")
const effect = MidiQOL.getConcentrationEffect(actor);
if (effect) effect.delete();
return true;
})
const spellLevel = actor.flags["midi-qol"].brandingSmite.level;
return{damageRoll: `${spellLevel}d6[fire]`, flavor: "Searing Smite"}
my item is setup wrong lol
remove the on use macro entry at the bottom of my searing smite item
oky....
pretty sure all the bonus smites follow this basic theme though
Is that not where we link it to the item macro
theres a couple ways to do item macros in midi
there is the actor on use, item on use, dae keys
and in searing smites case, its a dae entry
There's so much workflow stuff I've got to figure out in Midi Qol's settings. Guess I'm off to #513918036919713802 ...
they'll swep you back here
the rest of this discord doesn't exactly like midi using up 200 messages of its space for midi questions hehe
is this correct
if midi is involved in your environment, this is the thread to be in
UNLESS, you are extremely sure that midi doesnt touch any part of the issue you are facing (and disabling it beforehand would be wise)
only if that item code is your spells uuid
if you mouse over the lil gray icon at the topbar of the spell Searing Smite you should see the code match
Oh, yeah. I'm in midiQOL, not macro-polo. Oops.
Is there a generally accepted setting list for the workflow section?
my pally doesn't have any of the bonus smites prepared, I'm kinda banking on Tposney fixing the damagebonusmacro key before he prepares them again lol
its too specific to every user
I think the best approach to take is to snippet any settings you don't understand and ask here what they are
I see templates stuff. I take it spell can have templates attached directly, for easy casting and targeting?
I'm pretty sure this is actually suppose to work but midiqol is broken right now with this specific key and some people have to do your way:
So once I use the spell the Toon casting searing smite has to do a saving throw
So sounds like auto-target walls block is a good default for that.
that is because you are using dnd5e's item
yes have tried this before aswell
dnd5e's item is a target with a save
compare my item to your items details, you left the saving throw in
CE effect application. How are those linked?
At first glance its an amazing feature, but typically its more of a fallback feature, I use it mostly for npcs
Seems like I'd want to set it from the spell effect, rather than have it do it automatically.
I do AE before CE for it, the setting right above that is THE effect transfer setting, make sure THAT is on for sure
Thanks. Done.
I've got late targeting on already, so that'll stop players forgetting to target things.
Does this mean I need to add a target requirement to all swords and stuff?
I never thought of that but I'm weird and don't have a target for weapons cause then opp attacks are annoying to manage
I do always require targets, and I don't have late targetting on
Well, if I want to automate reactions, then I'll need the player or npc to target the target.
my player shave learned fast that if nothing happens its cause they didn't target
reactions don't require targets they just happen I think
Auto check hits to GM see. What about the separate attack per target?
But then how does it know who to prompt for reactions?
I actually have this setting on and I find it really useful for the DM, it lets you select 2 targets for a singular attack like the greatsword on a hobgoblin warlord and then he'll attack those two targets with seperate rolls speeding up its turn
reaction automation in midi can only be the victim and the attacker
third party reactions are...possible in a really janky way, ill advised
manual reactions can have targets if you want
but if you are automating midi on high automation, good luck getting those manual reactions off in time
Saves, search item descriptions?
never a reaso not to
If a player has shield as a spell, they would want to be prompted for the reaction, so they need to have been targeted. Is that not correct? Otherwise, they'd be prompted every attack roll, or never?
I was sent here from Macro-polo.
Is there a way to set up percent chance effects using midi?
Like if I want an attack to have a 5% chance to stun.
they are only prompted if they are the target and only prompted on hit
I actually think its not raw how the default midi shield works, it should be an optional.NAME.macro cause you can see the roll first before shielding
And that will trigger even if the item doesn't have a target requirement?
shield is a self spell
The prompt for the reaction.
Alright all of the smites are there now. It applies the concentration and the effect. Now should the damage get added to the Toon's next attack?
you can potentially be prompted 3 times for reactions on a turn
depending on what action type is set on the reaction
Auto apply damage seems useful for players Vs NPCs, but they'll want to do that themselves, and it allows for reactions and such.
think of them like instants in magic the gathering
reactions are usually automated no worry about damage getting messed up
imo damage should be automated, I hate having to sit there questioning if they reduced their damage or not, but I'm scarred, I've had cheaters at my table
What I'm trying to ask/figure out for the reaction prompt is this:
If the player is targeted, but the weapon, item, skill, spell etc., doesn't have a target requirement, does the target still get a reaction prompt if they have a valid reaction?
I feel as though you are fundamentally misunderstandin how midi works
if you have always require target on, then weapons will require targets
That's why I'm asking.
unless you have a really weird importer, all weapons have targets
So when I asked earlier if I needed to add target requirements to weapons, that would be a no. Thank you.
The default SRD ones don't.
Not listed in their details at any rate.
Which is why I was asking.
lol yikes, I hope midi srd knows this
I want to believe that midi fixes this under the hood
as I've never seen this be an issue till you just brought it up
Ironic that its the dnd5e srd thats the problem and not the importers lol
I can confirm that a none weapon cannot roll if it has no target
therefore not an issue unless you have requires target off
I've got the DAE SRD module, but I've seen people reference that it has all the spells, and it doesn't. I'm guessing I'll need to dig through those other sources instead.
srd weapons dont define targets because a weapon can be used to attack objects and creatures
that module is dead you can delete it
is there a way to add damage to my attacks with the smite effects active or is that the broken part in the current dae and midi modules
its actually set to none, its a noteable mistake I think when dnd5e 2.1 released
that is the default "empty" value
I think midi is just treating none as creature under the hood
it is not core's burden to arrange data specifically for a third party module
also pro tip if anyone has require target on, you can make the attacks manually by using the buttons in their descriptions
Done.
the modules with premade stuff has been shared above somewhere, CPR, Midi SRD, dfreds CE, and then a few githubs
That's what I'm working on right now.
DAE SRD was meant for the v8/v9 era for the folks who used better rolls or the core roller instead of midi for semi automated stuff, it died when better rolls died basically
midi users would just use midi srd
If I were to set a type of damage to 1d100cs100. Could I set a condition to activate on true.
That way it would show a 0 on anything but a roll of 100, in which it would give a 1. Telling midi it is true and to place the condition on the target. Or is that outside the modules scope?
damage can't have a cs I don't think
You could do an activation condition for an OTHER roll of 1d100, and have the condition look for 100 on the roll
or a damage roll that deals NO damage
since others dont auto roll
If I wanted to tweak invisibility so that it only worked on self, how would I change that?
I'd have to check that the targeted token is the linked to the actor source?
I'd just use CPR's duergar invisibility
you can make a basic feature that is self/self for target/range and then drag dfreds CE's invisibille condition onto the effect tab of the item, this only works if the feature is on an actor, not the sidebar.
You can also just click the dae wrench on the feature and add the invisible condition that route too
I just switched to v10 and forgot I canβt use better rolls to split damage anymore. Youβre right.
How does the conditions line work? Iβve written stuff in but never actually gotten it to flag the condition correctly.
So I can't then compendiumize it?
Can I enable the effect in some other way?
Manual is always an option for invisbility mind you. It's not exactly common, but auto would be nice.
are you using ready set roll?
the duergar invisible in CPR is in a compendium so you can just drag and drop it to your compendiums if you wanted
Iβm trying to now, but it seems to conflict with roll automation of midi more then it did in v9
all it is is a macro.ce for the invisibile condition
read the first pin here
if you can't live without ready set roll, you gotta drop midi
yeah but it has dope art π
like the icon?
its better than a bag icon
ah lol
if you pick midi as your roller, the wiki has examples for activation conditions, but the best person to ask will be Thatlonelybugbear as he knows how to do them best.
hey guys - stupid question, but is there a way to abort a midi workflow in a macro?
I definitely have to stick with midi. I built everything on top of it haha. Ready, Set was just a pretty front end for my players.
Certain stages you can return false to cancel it.
Pre item roll I think you can
preDamageRoll isn't one of those, is it?
bugbear gave us a way to do that
basically wanting to have a 'cancel' button in a choose number of charges dialog
and returning false doesn't work there
Cancel workflow
could always update the item to have the desired number of charges after canceling the dialog
Activation condition is a field on items that if its a true statement, then if you check a box at the bottom of the item, any effects on it will transfer to the target
I dunno how you will do the 1d100, but this is basically what you want
the wiki has a bunch of examples to put in that field
that's not the problem - the problem is that it continues into casting because the spell is a separate call from the 'use item'
You may need to change where you're doing the dialog then
Thank you! I tried to implement this and failed <sadness> but I will continue to poke at it. I can't use it exactly as written - different setup
pre item roll you can just cancel
I have an example of a pre-item roll cancel in a macro if thats of interest
maybe I can switch to that - seems like it should work
So I can do a cs in damage and label it No Damage. Iβll see if I can flag the no damage roll as true for placing the effect.
Iβm assuming the issue will be that even if it returns β0β damage it will still think thatβs a true statement
count success
oh
the damage formula will be 1d100, and then damage type "No Damage"
THEN, your activation condition will be probably something very similar to the sword of lifestealing or one of the sample items
you don't want to do cs
the only way you are gonna get an effect applied on a roll is using an activation condition, the cs is redundant
Ya I was doing cs because it will only generate a 0 or 1, and from programming in my head that meant true or false haha.
In that case, could you not have the effect applied to the target regardless, and then use a the ItemMacro to remove it with a random numer check?
Just spit-balling, and trying to learn in doing so.
You could try this as a wildguess:
workflow.diceRoll === 100
make an item with a damage only workflow of 1d100, damage drop down set to no damage
put the above code in the activation condition
put an active effect with your condition on the item, set the target/range to what it needs to be, don't check any boxes in the first tab of the ae
I see. You're using the item to generate the random number.
Is there any easy way to clone all the configurations and modules from one game to another, or is having and duplicating a template world the best option?
forien's copy environment module, modulemanagement+
midi's settings can also be exported/imported
@celest coyote stupid activation condition. Works for a d100 roll and then apply an effect if higher than 50 ```js
mek();function mek() {const roll = new Roll("1d100").evaluate({async:false});console.log(roll.total);game.dice3d?.showForRoll(roll,game.user,true);if (roll.total > 50) return true};
Thanks! Iβll play around with it later and see what I can come up with. Iβm hoping I can use midi .damagetype to single out βno damageβ and have it on a weapon.
That way it doesnβt have to be itβs own card
it will roll the d100 twice unfortunatelly
is that an activation condition?
I'm getting nowhere with this right now
if you could shoot me that example, maybe it will shake something free in my brain
π
if (args[0].macroPass === "preItemRoll") {
if (!actor.items.getName("Gilded Acorn")) {
ui.notifications.error("You have no Gilded Acorn")
return false;
}
}
I'm surprised it can actually do a roll
@gilded yacht do Activation Conditions fire twice in a workflow? π€
It is a stupid case, but I was trying this as an actual activation condition ```js
mek();function mek() {const roll = new Roll("1d100").evaluate({async:false});console.log(roll.total);game.dice3d?.showForRoll(roll,game.user,true);if (roll.total > 50) return true};
But it rolls the d100 a second time for some reason.
So I wondered if, even though this is not a planned way to use them ( π
), this is an underlying problem
is there a way to add +2 to AC against ranged attacks only?
I tried using system.attributes.ac.cover but it still calculates for melee
yeah cover can affect melee attacks too
Thatβs amazing! I can work with it rolling twice. In theory I would just halve the total I wanted right?
So for 50% I just have to rolls at 25 instead?
Maybe its called for the chatcard or something
It is rolled for some reason I cannot see right now. Probably the Activation conditions are cheked twice π€
ty - still not working. but I think it's a deeper issue in returning false from a static method. I'm going to have to bang my head against the rock more later
The only way I can think of to pull this off is to give them a reaction that is 2 ac, costs 0 action economy an dhave the player's brain decide if it applies or not
or use simbul's and simply correct the cover calculation in certain circumstances
or an optional.NAME. cause those have cooler prompts
and optional.name won't charge a reaction
Could you not check the distance between the attacker and victim? No default weapon attack has more than 10 foot of range. Or use a macro to get the attack source item and check it's properties somehow?
how would the defender be able to fire a macro to raise their ac
it would be extremely difficult to manage actual cover in melee range, simbul's will cover the vast majority of cases
I actually think this is a great usecase for the ac optional.name
all I had to do was admit defeat... it works, though it is not as elegant as I would like
or reinvent the wheel, i guess π whatever you like best
I'm kinda against simbuls cause its not exactly workin right atm
simbuls is spammy
he still hasn't fixed the debugger
so "not working right" = "sends debug messages in a debug window"?
but with midi it sends them in the extreme, and its exponential based on all the tokens on said scene
it is a noteable performance hit for my table atleast
ok, so in short, it functions as advertised
trying to automate the "arrow catching shield." i'll give them both a try see which works
Why haven't you just commented out the debugging line yourself Moto lol
I know you know how to
Iβm not home to try sadly. It would work as long as I donβt have other damages on that item.
Or possibly with zhellβs categories mod if I unautomate damage. Since they can still be separated.
But I think the other conditional will work better because it looks to flag the d100 I believe, even with other dice in the roll.
it was discovered it had adverse effects
Is it not just a console.log?
it is
Because removing a debug output won't break anything unless very rare race conditions are involved
what exactly IS the simbuls solution?
cause optional.name has dope documentation easy to implement, do we have to go digging in the console and make a macro with simbuls?
screenshot the debug message for me
I don't have simbuls anymore
literally these two lines
its not in that module
bugbear had found out its in the other module that comes with it
then comment it out in that module too?
And report it on their issues too preferably
same thing can be done for that one too presumably
click on the console message to find the line it's generated at
then just go edit it out
yup, just comment those lines out
how do you give an actor 2 ac from ranged attacks only in simbuls?
I can think of a dumb way to do it via midi only
I thought opional.name myself or a reaction
wait...I think I got a dumber way
take shield or parry, and put an activation condition on it if the workflow is a ranged weapon attack
Another random question. We use Damage reduction a lot. I have midi reactions on so people are prompted when damaged. But if they use a reaction that would increase DR against that attack, it doesnβt seem to trigger before the incoming damage.
What type of reaction is it?
I think that this is a known bug with midi 33+ that is hard to hunt down
I have personally seen shield do the same, apply too late, I think its a lag thing
in the extremely limited chance that a melee attack does actually suffer cover (which it can), you can simply "undo" the attack penalty applied by clicking it in chat
We just have custom reactions like a block which might add 1d8 DR for example.
I've just noticed that the uncanny dodge works every time but anything we make seems to trigger to late I guess.
what is the action type on the items that don't work
also what key are you using for the DR
They are all reaction for the type, so that they will be on the prompt list when damaged
I suspect either its the weird lag bug or your key is wrong on the DR
was it a DR.all key?
Ya they are all DR.all I believe
share the effect tab of the ae lets see if you got something wrong on it
first tab too
alot of folks will check the self boxes on the first tab and not realize thats a bad thing
Do I use the macro.createItem in effects If I want to add a item to my players inventory via a spell . Example I use green flame blade and it adds a modified longsowrd to my inventory
Yes.
As for the value, it can be either the full definition, or a compendium link.
are you trying to make green flame blade?
My suggestion is to not reinvent the wheel:
https://github.com/MrPrimate/ddb-importer/blob/main/macros/spells/greenFlameBlade.js
yeah all the macros I have found dont seem to work for me
Iβll be home in like an hour and can take screen shots
You likely just need to setup the spell right to use that macro
One stop shoppin
yeah so I had that in my item macro but nothing hapens when using the spell. Also added the on macro use
convince someone with the ddb importer item to share the spells details tab hehe
aaah i see
show me your item macro settings
the modules settings
my first guess would be that you have character sheet hooks on in item macro
i want to have the spell "lesser restoration" to remove a condition on the target using midiqol. I don't know which attribute key and effect value to use to make this happen. any suggestions?
I removed that weeks ago
Lesser Restoration
if(game.user.targets.size !== 1 ){
ui.notifications.warn("You must have one token targeted.");
return;
}
let VALID_EFFECT_LABELS = ["Blinded", "Deafened", "Paralyzed", "Poisoned"];
let [targetedToken] = game.user.targets.values();
let availableValidEffects = targetedToken.actor.effects
.filter(e => VALID_EFFECT_LABELS.includes(e.label))
if(availableValidEffects.length < 1){
ui.notifications.warn("No conditions exist on this creature which are removeable by Lesser Restoration.");
return;
}
let dialogButtons = availableValidEffects
.map(e => Object({
label: e.label,
callback: () => {e.delete();}
}))
let dialog = new Dialog({
title: "Lesser Resoration Condition Selection",
content: ``,
buttons: dialogButtons
})
dialog.render(true);
oh damn.. needed a macro too..
gotcha..
it also assumes you are using dfreds CE's names for conditions
uhh i'm not
then edit the names of the conditions in the macro to what you have
Thank you so very much for this
Thanks!
I have one for greater restoration too, but its mostly homebrew choices if you want it
Greater Restoration
if(game.user.targets.size !== 1 ){
ui.notifications.warn("You must have one token targeted.");
return;
}
let VALID_EFFECT_LABELS = ["Charmed", "Cursed", "Ability Drained", "Exhaustion 1", "Petrified", "Hp Drained"];
let [targetedToken] = game.user.targets.values();
let availableValidEffects = targetedToken.actor.effects
.filter(e => VALID_EFFECT_LABELS.includes(e.data.label))
if(availableValidEffects.length < 1){
ui.notifications.warn("No conditions exist on this creature which are removeable by Greater Restoration.");
return;
}
let dialogButtons = availableValidEffects
.map(e => Object({
label: e.data.label,
callback: () => {e.delete();}
}))
let dialog = new Dialog({
title: "Greater Resoration Condition Selection",
content: ``,
buttons: dialogButtons
})
dialog.render(true);
oh theres a data in that one
I would eventually have gotten to it. i'll save it for later.. thanks!
It is working now. Maybe it was Ready Set roll that I had on when I switched to v10 that was messing with the DR timing
Ya I just switched from v9 and was used to them interacting decently.
read the first pin in this channel
first pin has a ton of informative info for new midi users and v10 updates
Ya Iβve been using it to figure out item macro. I have hooks unchecked but doesnβt seem to work with midi anymore. All my players visual effects are on item macros, but none trigger correctly.
Is there somewhere else I can place those macros now?
Maybe I just have to rewrite all of them yikes.
I'm looking on my spell sheet, under Midi QOL fields, i don't have the "on use macro" field. Where do i enable that?
do you see the + to the right in that general area?
depending on your ui mod
its highly unlikely that someone has shut off on use fields but it is actually a possibility, if you have no + theres a setting in midi somewhere that says something like " actor on use and item on use" and they are checkboxxes
but you probably just have to click the plus
yeah i dont even have a "+" but i'll check midiqol in the settings
if this is checked an dyou stillcan't see it, then your modules are interfering
yeah made the changed and refreshed, and still not there.. gotta do some troubleshooting
snippet the bottom ofthe details of your item
you probably just aren't understanding that the field has to be added via a button and maybe your UI mods are hiding it in plain sight
ok, just did that.. still the same.. π¦ troubleshooting time..
what versions of dnd5e, foundry, midi, dae, socketlib, and libwrapper are you on?
ok.. its there now.. i went back in midiqol settings, and the boxes where not checked.. Must have not saved the config
we all do that from time to time.
Hopefully ok to ask here.
I am trying Midi for the first time and I am confused what Auto Roll Attack does? Because I still get this everytime I select a weapon attack https://gyazo.com/f04507d10d1a07d5ed74e538eeaca67a
Do you guys use item macros anymore? I see that i can still execute some of them if I go into the item macro screen and hit execute, but cant execute with any of my other old tricks.
do you have "Enable Roll Automation Support" checked?
I believe so, let me check
Yes I do
hmm, you should be getting a dialogue that asks if you want to roll advantage/normal/disadvantage. are you rolling the item by clicking here? or clicking Standard Roll?
The circle
My enlarge reduce macro is failing to find the user's target for players.
Does anyone know what could be causing this:
const target = game.user.targets.first();
if(!target) return ui.notifications.info("no target set");
Also, time's up is marking effects as expired, not disabling or deleting them when their time is up. Is this a config issue?
If you're using an on use macro, it's just easier to do:
let targetToken = this.targets.first();
Fixed it! DAE didn't install properly. TY
Being expired instead of deleted does sound like a settings issue
It's an item macro on the spellcaster that is effecting a token with an effect granted by the item (spell). changing it as you suggested is leading to target being undefinined.
An on use macro on an item? or an on use macro on the actor?
Or something else
such as a item macro in DAE
On use item macro.
this.targets.first() should return the first targeted token in the workflow
If that's not happening, something very weird is happening
So, I have the target now, passed in through args, but it's now displaying the dialogue box to the owner of the target, rather than the caster.
How do I change the target of the dialogue box to be the owner of the caster, rather than the one that the effect is calling the macro from?
Hey guys i got a question and i am wondering if anyone is having this as well. But DR Damage Reduction doesnt stack or overlap anymore for me, it only uses the highest one rn, and i dont even have the setting enabled within Midi. Can anyone else confirm as to what is causing this?
Also my midi version is the most recent one rn 10.0.35
So to be clear, you're trying to have the target of the effect get the dialog?
When the spell is cast "Enlarge/Reduce", it applies an effect to the target. That effect calls macro.itemMacro, back to the spell, so that the choice can be made.
The dialog should just be in the item macro, then it applies the effect to the target depending on what was selected.
You can use the midi function await MidiQOL.socket().executeAsGM('createEffects', {'actorUuid': actor.uuid, 'effects': [effectData]}); to avoid permission issues.
Hello there. I am trying to use the automation for sneack attack, but it isn't working.
What am I doing wrong?
Version of DAE?
How do I call the item macro when the spell effect is applied to target?
DAE SRD is defunt
defunt?
yeah
i turned it off
Without context of how you're setting up the macro, I'm not sure what you mean.
You can just have the item macro handle the dialog before even applying an effect.
I turned it off but sneak attack isn't working yet
Is this correct?
Should just be: ItemMacro assuming the macro is on the spell.
Try these steps:
#1010273821401555087 message
this means it'll automatically track the saving throw against the initial source actor's DC right?
for effects that allow you to repeat the save?
nope
It'll remove itself on the first wisdom save that passes
Lookup midi-qol overtime effects in the documentation
Chris, can you assist me with something?
Just ask
Thank you very much.
This did the work: 5. Edit the imported Item and the DAE's Effect Value to be ItemMacro.Sneak Attack
Alright, The current version with midi, DR.all reduces healing for some reason and it doesnt accumulate DR it only chooses the highest one for me. I dont even have the settings enable for the rule set. I wonder if its the same for you too?
IIRC there is a setting to allow DR to accumulate?
About the Challenge Mode, is there any information about the armor actual reduction value? I am getting DR 8 for a chainmail...
I'm not familiar enough with midi DR to know what's going wrong
Okay, well let me screen cap it for you and show you what i mean.
DR.all technically makes sense to include healing, but that's likely an oversight
I wonder if you could also put in a DR.healing for the opposite amount to counteract it?
how does it define what passes
@scarlet gale
I had it stack with DR.all with the Armors being the ones to help add to the Damage reduction.
Well, any save that has a DC that's run through midi
You want an overtime effect
not a special duration
check out the hold person spell in the sample items
Iβm guessing .all only accumulates with .all etc. Probably an oversight
(I think it's in the sample items?)
I tried it with other DRs too like slashing and they dont accumulate either, it only takes the highest one. I even turned Dr.All off of the sheet and still behaves the same.
yeah its a mystery alright, and whats worse, i did not touch it at all and left it the same cause it worked before now it doesnt.
Did you try putting a + in front of the effect values? Worth a shotβ¦
ill try it out
ok
And you could try doing a negative healing value to counter that out
How so?
Wasn't it an accidental oversight by tim?
Most likely, just suggesting a workaround until he fixes it
Does a midi workflow know about the range an attack was made at?
Or the positions of the attacker/target(s)?
Perhaps, but if its going to be fixed in the future, Then why bother, i already made a sort of work around to suit my needs. Problem is i need DR to accumulate for my Armor update for my session to function. All the more frustrating if the problem suddenly appears out of no where.
If it appeared with a recent update it might be worth considering downgrading until itβs fixed then
is there a MIDI setting or some way to set an area of effect that exudes from the caster but excludes the caster himself?
like Sword Burst hits everything within 5 feet of you, but not you yourself
I know as a workaround for "all or nothing" saves you can do this
@coarse mesa Also to explain whats going on the picture. I have a sort of migration system for damage, So 1 +2 = 3 dr vs slashing but yet it still accounts only the Natural DR.all instead of adding it along with the armor she wears. She suppost to have 3 at least protecting her from Slashing but the numbers i see here doesnt add up literally.
Put the third range box to "Special"
Yeah I see⦠it does look like you should be getting 3
now you understand my plight.
Youβve obviously checked that the .slashing is working at all?
Sounds like a bug then
ha... goodness.
DR is pretty uncommon in 5E, youβre likely the first to encounter this
Yes somehow i ve been a first towards many things.
I tried to push the game of 5e to its limits.
Likely. It due to the System customizer from Ripper's Modules i have my suspicions about.
is there some reason it might just refuse to roll damage with a weapon attack even though auto damage is on and works with spells?
error in console?
You have a mixed up damage formula somewhere
this was working until recently
now it just refuses
even when I take out activation conditions for the improved divine smite
I see a [1d8]radiant in that error
its like it suddenly can't handle Other damage
When it should be 1d8[radiant]
check your passive effects for something adding a bonus to damage
yeah you were right but I don't know 1) how it got changed to that and 2) how it was working fine before
Β―_(γ)_/Β―
also in future MIDI QOL sample compendium that activation works for improved divine smite if you wanna add it in somehow
so it nicely auto adds extra damage to undead/fiends, but I'm not sure if the divine smite from MIDI does that
5e System customizer doesnt hinder with Dr to say the least.
is there some way to get it to recognize a "turn" effect? for creatures with turn resistance?
ditto for creatures with things like dark devotion (advantage to saves vs fear/charm)
How do I apply an effect to a target using a warpgate mutate?
the effect creation, or the not owned token part?
The effect creation part. I have all the targeting sorted and working.
do you know how to create the effect normally? without warpgate, using the core api?
Either is fine. I'm applying a warpgate mutation already.
You can't have effects in a compendium can you? Nope.
i meant more as "do you know the data structure for the AE you want to make" π
if not, create the AE on some actor like you want it to be, right click the compendium icon in its title bar, then type this in the console
fromUuid('string copied').then( doc => console.log(doc.toObject()) )
I will just whip it up, then log it to console. I have most of it already. Oh, it also needs to be bale to call the ItemMacro from the source.
once you have the data, its basically the same as any other warpgate update
its embedded: ActiveEffect: [effectname]: data
just like it is for embedded Items
and just hand it the target token document -- warpgate will handle the rest
Is there a way to manually set an item to not fast forward damage? Otherwise Dimension Door always damages the caster
nevermind I just moved the damage to other formula
This is returning a null error when fed with the id. Cannot read properties of null, promise rejected
Is there a simple way to prompt for an option of cone/line template when an item is rolled?
Bros, is there any way to end a macro when the concentration of the spell that triggered it ends?