Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[Script] SmartAoE - graphical interface for implementing AoE's on gridded maps

1717848951
David M.
Pro
API Scripter
@Miles, this sounds like a Jumpgate-specific problem. The caster token and the AoE paths have "toBack" / "toFront" commands sent to them by the script. Jumpgate still has lots of issues with mod scripts - it sounds like it's not respecting those z-order commands when initiated by a script. Not sure what I can do at this point.
1717919423

Edited 1717920369
Hi , I have been trying various things with SmartAoE, which I love and Will's 5e Shove (the move token bit) but can't get the move and the AoE to be simultaneous.  I get why, just saying that's what I've had luck with.  Is there a way to use --conditionFail| to move tokens that fail their save (I'm thinking Thnuderwave here) in the same way Will's Shove works (ie relative to token casting the spell)? 
1717937639
David M.
Pro
API Scripter
Unfortunately, SmartAoE cannot do this natively in its current state.  I'm assuming Will's 5e shove is using Scriptcards? Even trying to combine the SC shove code with the SmartAoE trigger would be problematic because the two scripts can't communicate with each other, plus they would run asynchronously (so things like checking status markers applied by one script likely wouldn't be timed correctly).  I would maybe try just using SmartAoE as a graphical cue for the Thunderwave placement, then running a SC macro that uses the SmartAoE control token as the selected token, having SC do all the heavy lifting for saves and conditional token movement. Pretty sure I've seen SC thunderwave macros out there somewhere (forums or wiki, can't remember), but some Google-fu might reveal something.
1717948662

Edited 1718111020
Thanks David, that's very helpful.  Yes, Will's is a Scriptcard.  Knowing what I can't achieve is more than half the battle.  I wrote my own thunderwave and then found Kurt's yours (for SmartAoE), which is much more succinct (I had a lot of waffle in mine from other stuff that was unnecessary), but the learning was worth it : ) I've messed about with this but ultimately the aim was to do this with minimum clicks and it is becoming protracted - I'll just drag those tokens around ; ))))
Hello! I'm having a very strange issue with smartAoE that I've either never encountered or never noticed before. My measurements with line aoetypes are all janky. When it's aiming down (or right) it's one less tile than when it's aiming up (or left). All the diagonal lengths are the same (although, they are shorter than they should be with 5e grid measurements). It also seems like the origin isn't being set correctly when the token is larger than 1 grid square. I've tried using the macro with different tokens, on different pages, even in a different (brand new test) campaign and the issue persists. The only other API I'm using is tokenmod. Any ideas on how to fix this? Side note: Has roll20 always ignored the first grid square with it's measurement tool when measuring from the center? I could have sworn that didn't used to be the case and I don't like it.  !smartaoe {{   --title|Wyvernfire   --leftsub|Reimund   --rightsub|DC [[8+@{Reimund|strength_mod}+@{Reimund|pb}]] DEX   --titlecardbackground|linear-gradient(#2B2130,#2B2130)   --titlefontface|Arial Black   --titlefontsize|1.4em   --tablebgcolor|black   --tableshadow|0px   --hideNames|1   --evenrowbackground|black   --oddrowbackground|#1e1e1e   --evenrowfontcolor|white   --oddrowfontcolor|white   --subtitlefontcolor|white   --aoeColor|#ff999950   --isDrawing|0   --tableborderradius|20px   --aoeType|line   --origin|nearest,face   --radius|30ft   --forceIntersection|0   --minGridArea|0.25   --minTokArea|0.25   --fx|beam-fire   --dc|[[8+@{Reimund|strength_mod}+@{Reimund|pb}]]   --saveFormula|5eDEX   --damageFormula1|[[3d6]]   --damageType1|Fire   --instant|1   --ignore|SmartAoE_Ignore,1    --autoApply|1   --bar|1   --zeroHPmarker|dead }}
Hi David, hoping you can point me in the right direction.&nbsp; I have decided not to bother moving via scriptcards for Thunderwave and will just click n drag, but I wanted to automate things&nbsp; a bit more by deducting spell slot.&nbsp; Took your Thunderwave SmartAoE and stuffed it into a SC.&nbsp; Works perfectly in the sandpit but when I add it to the current game it starts the process (rolls damage, subtracts spell slot) but then Smart AoE puts a chat message of "SmartAoE:You must either select a token or pass the tokenID via --selected|ID".&nbsp; I don't get why the same character transmogrified across gets a different result based on which game it is in?&nbsp; Your SmartAoE works in both.&nbsp; This is what I have: !script {{ +++dnd5elib+++ --#hideCard| --=Level|?{Cast at what level?|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9} --=dice|[$Level]+1 --=damage|[$dice]d8 --+DMG|[$damage] --&gt;Lib5E_DeductSpellSlot|@{selected|character_id};[$Level] &nbsp; --@smartaoe| &nbsp; _title|Thunderwave &nbsp; _leftsub|Cast at Level[$Level] &nbsp; _rightsub|DC @{selected|spell_save_dc} CON &nbsp; _titlecardbackground|url('<a href="https://s3.amazonaws.com/files.d20.io/images/253624290/aHQ8iSGWD1gYyR94kocxOg/max.png?1635893578');background-size" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/253624290/aHQ8iSGWD1gYyR94kocxOg/max.png?1635893578');background-size</a>: 100% 100%; background-repeat: no-repeat &nbsp; _subtitlefontcolor|#ffffff &nbsp; _aoeColor|#88888850 &nbsp; _aoeOutlineColor|#ffffff &nbsp; _aoeType|square, float &nbsp; _forceIntersection|0 &nbsp; _offset|1,0 &nbsp; _radius|7.5ft &nbsp; _fx|burn-smoke &nbsp; _dc|@{selected|spell_save_dc} &nbsp; _saveFormula|5eCON &nbsp; _damageFormula1|[$damage] &nbsp; _damageType1|Thunder &nbsp; _instant|1 &nbsp; _ignore|SmartAoE_Ignore,1 &nbsp; _autoApply|1 &nbsp; _bar|1 &nbsp; _zeroHPmarker|dead &nbsp; _desc|A wave of thunderous force sweeps out from you. Each creature in a 15-foot cube originating from you must make a Constitution saving throw. On a failed save, a creature takes [$damage] thunder damage and is pushed 10 feet away from you. On a successful save, the creature takes half as much damage and isn't pushed.%br%In addition, unsecured objects that are completely within the area of effect are automatically pushed 10 feet away from you by the spell's effect, and the spell emits a thunderous boom audible out to 300 feet. }}
So, I realised I didn't have Select Manager installed on the problem game, rectified that and also added libTokenMarkers as instructed.&nbsp; Now I get "SmartAoE: When SmartAoE is called by another script, it must pass both the selected token ID and the playerID"
Belay the last, it had to be something about setup and then I actually slowed down to read what was in front of me... +playerID, I just needed to configure Select Manager .&nbsp; Away we go rejoicing
1718973863
David M.
Pro
API Scripter
SwagVozhd said: I'm having a very strange issue with smartAoE that I've either never encountered or never noticed before.&nbsp; &lt;snip&gt; @SwagVozhd : Sorry I'm just now addressing this. I was on a cruise ship all week! :) Currently, the line aoeType only uses Euclidean distance calculations, so a 30ft line follows a 30ft radius, which explains why your diagonals are "shorter".&nbsp; I should try to add an option to make it follow 5e measurement rules.&nbsp; Line AoE's are handled differently that all other types (using a Bresenham line algorithm). It's been a couple years since I last looked at this part of the code. I'll have to refresh my memory on how the heck I got it to work in the first place, lol.&nbsp; For now, one option would be to remove the --radius keyword and manually place the control token in a square an appropriate distance away, though that will require counting. @Simon: &nbsp;glad you got it working. Another option is to just use the&nbsp; --resource keyword in your SmartAoE macro to automatically deduct the spell slot. You can find information on how that works in the wiki , but here is a screenshot.
1718994575

Edited 1718995314
Hi Dave, hope you had a good time!&nbsp; I keep trying to play with code as I love the exercise, but don't actually have the spare time really, so tend to rush in and make things more complicated.&nbsp; I really do need to slow down and read things twice as those of you who know what you're doing have probably already been there and worn out the Tee shirt.&nbsp; This is a much neater solution, thank you
Hi Dave, no worries! Hope you had fun on your cruise (jealous)!&nbsp; That makes sense in regards to the diagonals being shorter. Would that also be why the lines up and left are longer than the lines down and right, or would that be some other complicated reason entirely?&nbsp; Either way, I'll just deal with it for now and manually measure *gasp*&nbsp; Thanks! :)
Hi quick question, Is there a way to respond to smart AOE events usinf a custom api module? I have my own script to apply damage and conditions but want to do so based on the tokens targeted by smart aoe. Thanks!
1720691965
David M.
Pro
API Scripter
Yes! SmartAoE has a public-facing function to handle this very thing. There is a section in the wiki &nbsp;that describes how to go about this in your script. I stole this approach (and function name) from Token-mod, so while your at it I would register that script to yours as well. Same method, just add another code block and replace the text "SmartAoE" with "TokenMod".
Hello, if anyone could help, if would be greatly appreciated. When using any of the examples in the wiki, the trigger-all works fine but we cannot trigger target.&nbsp; We get this error.&nbsp; (From SmartAoE): Error: Cannot read properties of undefined (reading 'get') This is the case both with spells using the control token (burning hands) and also weird ones like spirit guardians.&nbsp; When attempting to trigger target, we are hitting the button and then clicking the token which we want to make the saving throw and take the damage.&nbsp;
1721572592
timmaugh
Pro
API Scripter
Pyxel said: (From SmartAoE): Error: Cannot read properties of undefined (reading 'get') Hey, Pyxel... to help narrow this down can you run ScriptInfo on the line number associated with that error? You'd first want to install ScriptInfo, then generate the error, again. When you get the error, you'll notice line numbers at the end of the lower lines: TypeError: Cannot read properties of undefined (reading 'get') at apiscript.js: 42014 : 72 ... You're looking for the part that comes between the colons (in the above example, 42014). Record that number, reboot your sandbox, and run a command like: !scriptinfo 42014 ...where you use the line number you recorded. Share the results, here, so David (or others) can look at what's potentially going on.
1721603372

Edited 1721606810
fixed it!! we had tried clearsmartcache before, but.. idk it just worked this third time. maybe we had a faulty api before. sorry for the nuisance :D
1721607002

Edited 1721607104
David M.
Pro
API Scripter
EDIT - Oops, didn't see you already resolved it. I should have refreshed the page before responding! Glad you got it working. I actually just ran into this recently in one of my test games. For me, it was something corrupted in the State object. Try this: Delete any active AoE's on the map Run the following command in the chat window !smartclearcache &nbsp;Then try your macro and trigger-target again.
Smart AOE works perfectly when logged in as a DM, but does not work when logged in as a player. Any ideas?
1722166093
David M.
Pro
API Scripter
There shouldn't be anything that relies on GM status in the script. Does the map on the player page have an active grid?
The map has the player ribbon and grids on.&nbsp;
Any ideas David?
1722295990
David M.
Pro
API Scripter
Sorry, haven't been able to devote much time to Roll20 support the last couple weeks. Nothing jumping out at me atm. Is it one of your players, or is it you on your GM account after "Re-join as Player?" Is this a Jumpgate game, or standard? What is the observed behavior? Nothing happens when you initiate the macro? A control token is spawned, but not respecting AoE parameters? Token spawns and AoE is properly formed, but triggering does not do anything? Are there any error messages in chat or the api console? I assume you've confirmed that the sandbox is running when having the problem. Does it work on a different map, or in a different game? Wouldn't hurt to try a !smartclearcache operation, though I'd be surprised if that was the problem.
Thank&nbsp; you so much for your advice! WIll try it all.&nbsp;
Here is the low down. I have 2 Roll20 accounts. The first account has 5 servers on which I am running SmartAOE. SmartAOE works in all of the servers in my first account. The second account has 4 servers that I am running. SmartAOE will not work for any of the players in any of the servers in the second account. It works for me as the dm, but as soon as I join as a player and try it, it says "No ability was found for %{AoESpellStuff|FireBall}". I am unsure if it is a Jumpgate game, so I think it is standard. I can get as far as hitting the SmartAOE macro and then selecting the spell that I want. The button is created inside the roll20 chat, but as soon as I go to hit the button, it comes up as an error. It used to work, but then it stopped. I did an update on my sheet with all the smartaoe macros and then imported it into all of my servers for both accounts. So something happened there. Just not sure what; or, why it works on one server but not the other. Any help would be much appreciated. I am running a Westmarch server with about 50 people in it. They all love the SmartAOE!
1722421441
David M.
Pro
API Scripter
Ok, so it sounds like you are using a chat menu that calls various SmartAoE macros that exist on a macro mule. I'd check the Controlled By settings of the macro mule character named AoESpellStuff and ensure that "All Players" is included. If that doesn't work for some reason (it should), then you could try explicitly adding yourself to the controlled by list. I hope that isn't required because that would suck for a big Westmarch game.
It worked. I can't believe I missed the "All Players" is included part. lol. Everything is operational. Thanks so much for your help David. ;)
David - You are probably aware of the issues with SmartAOE on Jumpgate. &nbsp;I’ve posted the issues on the Jumpgate forum, but haven’t seen any feedback from the Roll20 developers acknowledging the issues. &nbsp;It’s my assumption that the fix is on the Roll20 side. &nbsp;Do you have any additional information on a possible fix?
1722548883
David M.
Pro
API Scripter
@Wolfstalker: great! @WIll: I haven't actually played around with Jumpgate much since it first became available, due to the lack of api support. Haven't heard much about it since, other than the ever-present troubleshooting question on bug threads asking: "is this a Jumpgate game?" lol.
David, I'm using your great script in Roll20 but I've reached a bit of a snag.&nbsp; Everything seems to work with the exception of the logic to determine if the target made their saving throw.&nbsp; It's calculating - and displaying - the DC correctly as well as the roll but the P/F? column is declaring a Roll of 19 as a failure against a DC 14 (see picture) [I don't understand why it's displaying the snapshot twice...]
1722797601
David M.
Pro
API Scripter
Can you share the exact text of your macro? Also, just double-checking that this isn't a Jumpgate game (not that I have an idea of what is going on if it is, but would be good to know)? What character sheet are you using?&nbsp;
David, I'm using a modified version of the old 3.5 Character sheet.&nbsp; I've made some simple changes to it - nothing major.&nbsp; I did get some help from someone and he figured out my mistake right off the bat.&nbsp; I was having some issues regarding when to use the "a" in place of the "@" and "&lt;&lt;" in place of "&gt;&gt;".&nbsp; He got me sorted out and here's my final code in case it helps anybody else. !smartaoe {{ &nbsp;--title|Shatter &nbsp;--leftsub|Spell Level ?{CAST AT WHAT LEVEL?|2|3|4|5|6|7|8|9} &nbsp;--rightsub|DC [[@{selected|spelldc2} + @{selected|cha-mod}]] FORT &nbsp;--titlecardbackground|linear-gradient(blue, cyan) &nbsp; &nbsp;--oddrowbackground|#00ccff &nbsp;--evenrowbackground|#edfcfc &nbsp;--oddrowfontcolor|#000000 &nbsp;--tablebgcolor|#edfcfc &nbsp;--controlTokName|AoEControlToken &nbsp;--controlTokSize|1 &nbsp; &nbsp;--aoeColor|#00ccff50 &nbsp;--aoeOutlineColor|#0099ff &nbsp;--aoeType|circle, float &nbsp;--radius|10ft &nbsp;--minGridArea|0.5 &nbsp;--minTokArea|0.5 &nbsp; &nbsp;--fx|burst-holy &nbsp;--dc|[[@{selected|spelldc2}&nbsp; + @{selected|cha-mod}]] &nbsp;--saveFormula|&lt;&lt;1D20 + a{Fortitude}&gt;&gt; &nbsp;--damageFormula1|[[(?{CAST AT WHAT LEVEL?}+1)D8]] &nbsp;--damageType1|Thunder &nbsp;--instant|1 &nbsp;--damagesaverule|*0.5 &nbsp; &nbsp;--autoApply|0 &nbsp;--bar|1 &nbsp;--zeroHPmarker|dead &nbsp;--forceIntersection|0 &nbsp;--triggerSound|ThunderBurst &nbsp; &nbsp;--desc|A sudden loud ringing noinse, painfully intense, erupts from a point of your choice withing range.&nbsp; Each creature in a 10-foot-radius sphere centered on that point must make a Fortitude Save.&nbsp; A creature takes 3D8 Thunder Damage on a failed save, or half as much upon a successful save. }}
1722864607

Edited 1722876023
Just been testing and I think it is a{Fortitude} that is the problem, I think it should be a{fortitude} to match the case on the 3.5 sheet, seems to work.&nbsp; Sent OP message on Discord the save DC also appears to be off as it calculates at 2nd level (spelldc2), if I recall correctly - and my 3.5 is so very rusty, it should be 10+Spell Level+ ability modifier, so an 18 Charisma for this would give 10+2+4 = DC16.&nbsp; If so, I believe this works (edited - failed to modify DC further down the script initially and only modified the info bit in right sub) !smartaoe {{ --title|Shatter --leftsub|Spell Level ?{CAST AT WHAT LEVEL?|2|3|4|5|6|7|8|9} --rightsub|DC [[(?{CAST AT WHAT LEVEL?}+10) + @{selected|cha-mod}]] FORT --titlecardbackground|linear-gradient(blue, cyan) --oddrowbackground|#00ccff --evenrowbackground|#edfcfc --oddrowfontcolor|#000000 --tablebgcolor|#edfcfc --controlTokName|AoEControlToken --controlTokSize|1 --aoeColor|#00ccff50 --aoeOutlineColor|#0099ff --aoeType|circle, float --radius|10ft --minGridArea|0.5 --minTokArea|0.5 --fx|burst-holy --dc|[[(?{CAST AT WHAT LEVEL?}+10) + @{selected|cha-mod}]] --saveFormula|&lt;&lt;1d20 + a{fortitude}&gt;&gt; --damageFormula1|[[(?{CAST AT WHAT LEVEL?}+1)D8]] --damageType1|Thunder --instant|1 --damagesaverule|*0.5 --autoApply|0 --bar|1 --zeroHPmarker|dead --forceIntersection|0 --triggerSound|ThunderBurst --desc|A sudden loud ringing noise, painfully intense, erupts from a point of your choice withing range. Each creature in a 10-foot-radius sphere centered on that point must make a Fortitude Save. A creature takes 3D8 Thunder Damage on a failed save, or half as much upon a successful save. }}
at 9th with Cha 18
Hey David, or anyone else that can help... I have been putting in work to add a great deal of status-markers, so that I can better automate my attack scripts in my game.&nbsp; Take into account different conditions, etc..&nbsp; &nbsp; &nbsp;I am to the point that I want to do this for my SmartAOE scripts.&nbsp; However,&nbsp; I&nbsp; will be honest, I do not quite understand how the resistances work and am looking for a little guidance if possible. Note: My game is a 1st Edition game, but I do not mind modifying or adding any attributes I need to the character sheets if needed. Here is what I have in my Lightning-Bolt Scrip --saveFormula|&lt;&lt;1d20-a{savespells}&gt;&gt; --damageFormula1|[[@{selected|level}d6]] --damageType1|Electricity --resistAttr|special_defenses &nbsp; --resistanceRule|*0.5 Here is what I have on my Ogre's character sheet to try and test this..&nbsp; (It does say Electricity.. just can not see it all) I would think this would work, but when I cast the spell on them, there is no reduction on damage at all.&nbsp; I may not be understanding correctly how it all ties together. Thank you in advance Any help is appreciated, thank you
1723155185
David M.
Pro
API Scripter
@Tilt, do you get a valid result when entering @{charName|special_defenses} in chat? (replacing charName, of course) This one is a longshot, but did you happen to write your macro in a text editor and then paste into Roll20? Depending on the editor, sometimes strange "invisible" characters get pasted which could mess things up. If so, try deleting that block and typing it directly in the ROll20 macro editor.
David M. said: @Tilt, do you get a valid result when entering @{charName|special_defenses} in chat? (replacing charName, of course) This one is a longshot, but did you happen to write your macro in a text editor and then paste into Roll20? Depending on the editor, sometimes strange "invisible" characters get pasted which could mess things up. If so, try deleting that block and typing it directly in the ROll20 macro editor. That worked.. I use notepad++ but like you said, there may have been something hidden in there.&nbsp; Thank you very much
Dave, any luck with the front/back priority issue with the aoe control token, or is that moreso an issue/ bug that roll 20 has to work out on jumpgate?
Nirgel said: Dave, any luck with the front/back priority issue with the aoe control token, or is that moreso an issue/ bug that roll 20 has to work out on jumpgate? SmartAOE seems to work pretty good on Jumpgate except for this issue.
Surok said: Nirgel said: Dave, any luck with the front/back priority issue with the aoe control token, or is that moreso an issue/ bug that roll 20 has to work out on jumpgate? SmartAOE seems to work pretty good on Jumpgate except for this issue. Was working fine now getting the default token error.
1725200719
David M.
Pro
API Scripter
I don't have any control over behavior in Jumpgate. You **may** want to try the experimental sandbox to see if that clears up some errors.
1725204913

Edited 1725206219
David M. said: I don't have any control over behavior in Jumpgate. You **may** want to try the experimental sandbox to see if that clears up some errors. Actually I had switched to experimental and switched back to the default. Seems that fixed the problem! Edit: well the default token problem. Still has the z axis issue.
Hi David, I just started using Smart_AoE. It's a great mod. Thanks for creating it. I have what is hopefully a quick question. I'm trying to use aura scripts (Vitality and Spirit Guardians), but when I use them the "Trigger All" and "Trigger Target" buttons do not appear. I'm using the scripts straight from the Github&nbsp; repository. !smartaoe {{ &nbsp; --title|Spirit Guardians &nbsp; --leftsub|Slot level ?{Cast at what level?|3,3|4,4|5,5|6,6|7,7|8,8|9,9} &nbsp; --rightsub|DC @{selected|spell_save_dc} WIS &nbsp; --titlecardbackground|url('<a href="https://s3.amazonaws.com/files.d20.io/images/253253846/-01wiItwF1nthkh7UwRkIQ/max.png?1635696123');background-size" rel="nofollow">https://s3.amazonaws.com/files.d20.io/images/253253846/-01wiItwF1nthkh7UwRkIQ/max.png?1635696123');background-size</a>: 100% 100%; background-repeat: no-repeat &nbsp; --oddrowbackground|#ffffaa &nbsp; --evenrowbackground|#ffffff &nbsp; --oddrowfontcolor|#000000 &nbsp; --tablebgcolor|#ffffff &nbsp; --aoeColor|#ffff0050 &nbsp; --aoeOutlineColor|#cccc00 &nbsp; --gridColor|#ffffff00 &nbsp; --controlTokName|self &nbsp; --aoeType|circle, float &nbsp; --radius|17.5ft &nbsp; --forceIntersection|0 &nbsp; --minGridArea|0.5 &nbsp; --minTokArea|0.25 &nbsp; --fx|burn-holy &nbsp; --dc|@{selected|spell_save_dc} &nbsp; --saveFormula|5eWIS &nbsp; --damageFormula1|[[?{Cast at what level?}d8]] &nbsp; --damageType1|Radiant &nbsp; --ignore|SmartAoE_Ignore,1&nbsp; &nbsp; --autoApply|1 &nbsp; --bar|1 &nbsp; --zeroHPmarker|dead }} Am I missing a line of code? &nbsp;
1725291807
David M.
Pro
API Scripter
You will have to create token action abilities on the caster character sheet when using "self" as the control token (you can get the syntax from the generic aoe control token character sheet). I didn't want to automatically create abilities on character's sheets because it would be intrusive and I felt it should be the player's choice. While you're at it, I would also create a token action to remove the aura using the !smartremove or otherwise have that command easily accessible.&nbsp;
Thanks, David. I saw your remark about !smartremove in another post and made a token action based on that. Thanks for the info about the action ability for self. I'll give that a go for tonight's game.&nbsp;
Hey David,&nbsp; It's been a bit since I've worked with SmartAOE so I know I'm missing something. I have the following code: !smartaoe {{&nbsp; --radius|30ft&nbsp; --aoetype|PFcircle&nbsp; --instant|1&nbsp; --forceintersection|Yes&nbsp; --selectedID|@{selected|token_id}&nbsp; --PlayerID|-O5jjlH1-qG6r5Q2U0IF&nbsp; --affectsCaster|true &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --damagetype1|Undead&nbsp; --damageformula1|-1d8&nbsp; --bar|1&nbsp; --autoapply|1&nbsp; --vulnerableRule|*-1&nbsp; --vulnerableAttr|traits&nbsp; --title|Heal&nbsp; --desc|The healing burst heals all for 1d8 points of damage. }} The AOE token pops up fine, i can get the AOE on the map, but when I click the trigger all button, nothing happens. No card output, no change in bar 1, nothing.&nbsp; I'm sure it's something simple I'm missing.&nbsp;
1725676993
David M.
Pro
API Scripter
There is no DC for the saving throw. Of course, this is healing that does not require a save, so in that case add the line&nbsp; "--noSave|1" to your macro. Also, the --selectedID and --playerID terms are not necessary. Those were only created for rolls that originate from within an api script. If running the macro from a macro they are not required. Finally, "healing" with negative rolls is a bit finicky with the script's roll parser. You need to use a nested roll, something like&nbsp; [[0 + [[-1]]d8]] instead of -1d8. Otherwise it always will return a result of -1. All told, try !smartaoe {{ --radius|30ft --aoetype|PFcircle --instant|1 --forceintersection|Yes --affectsCaster|true --damagetype1|Undead --damageformula1|[[0 + [[-1]]d8]] --noSave|1 --bar|1 --autoapply|1 --vulnerableRule|*-1 --vulnerableAttr|traits --title|Heal --desc|The healing burst heals all for 1d8 points of damage. }} BTW, the way you used vulnerableRule to instead deal damage to Undead is pretty clever! Might have to steal that sometime.
That was perfect! I knew it was something small. Many thanks!
1726044020

Edited 1726081224
I am sure this is a simple fix, but can't see what I'm doing wrong.&nbsp; I get this error anytime I click Trigger Target rather than trigger all, with any SmartAoE I have, some of which are just straight cut n paste from Github.&nbsp; The code is from the Github with a description added and&nbsp; spell slot management !smartaoe {{ --title|Spirit Guardians --leftsub|Slot level ?{Cast at what level?|3,3|4,4|5,5|6,6|7,7|8,8|9,9} --rightsub|DC @{selected|spell_save_dc} WIS --oddrowbackground|#ffffaa --evenrowbackground|#ffffff --oddrowfontcolor|#000000 --tablebgcolor|#ffffff --aoeColor|#ffff0050 --aoeOutlineColor|#cccc00 --gridColor|#ffffff00 --controlTokName|self --aoeType|circle, float --radius|17.5ft --forceIntersection|0 --minGridArea|0.1 --minTokArea|0.1 --fx|burn-holy --dc|@{selected|spell_save_dc} --saveFormula|5eWIS --damageFormula1|[[?{Cast at what level?}d8]] --damageType1|Radiant --resource|lvl?{Cast at what level?}_slots_expended,1,Level ?{Cast at what level?} Slots --desc|Concentration. You call forth spirits to protect you. They flit around you to a distance of 15 feet for the duration. If you are good or neutral, their spectral form appears angelic or fey (your choice). If you are evil, they appear fiendish. When you cast this spell, you can designate any number of creatures you can see to be unaffected by it. An affected creature’s speed is halved in the area, and when the creature enters the area for the first time on a turn or starts its turn there, it must make a Wisdom saving throw. On a failed save, the creature takes 3d8 radiant damage (if you are good or neutral) or 3d8 necrotic damage (if you are evil). On a successful save, the creature takes half as much damage. Upcasting: the damage increases by 1d8 for each slot level above 3rd. --ignore|SmartAoE_Ignore,1 --autoApply|1 --bar|1 --zeroHPmarker|dead }} The caster has two abilities added aRemove and aTrigger-Target. The first works no probs but target gives me (From SmartAoE): Error: Cannot read properties of undefined (reading 'get').&nbsp; I see on P7 of this thread that @Saul J had the same issue, but can't see the fix. If I sub in Target All, although I don't want it for this spell, it also works a treat.&nbsp; Can somebody please slap me thrice and show me the error of my ways?
NM, found a page a bit further on and this fixed it !smartclearcache