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

June 08 (6 months ago)
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.

June 09 (6 months ago)

Edited June 09 (6 months ago)

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)? 

June 09 (6 months ago)
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.

June 09 (6 months ago)

Edited June 11 (6 months ago)

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 ; ))))

June 15 (6 months ago)

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

}}

June 19 (6 months ago)
Hi David, hoping you can point me in the right direction.  I have decided not to bother moving via scriptcards for Thunderwave and will just click n drag, but I wanted to automate things  a bit more by deducting spell slot.  Took your Thunderwave SmartAoE and stuffed it into a SC.  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".  I don't get why the same character transmogrified across gets a different result based on which game it is in?  Your SmartAoE works in both.  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]
-->Lib5E_DeductSpellSlot|@{selected|character_id};[$Level]
  --@smartaoe|
  _title|Thunderwave
  _leftsub|Cast at Level[$Level]
  _rightsub|DC @{selected|spell_save_dc} CON
  _titlecardbackground|url('https://s3.amazonaws.com/files.d20.io/images/253624290/aHQ8iSGWD1gYyR94kocxOg/max.png?1635893578');background-size: 100% 100%; background-repeat: no-repeat
  _subtitlefontcolor|#ffffff
  _aoeColor|#88888850
  _aoeOutlineColor|#ffffff

  _aoeType|square, float
  _forceIntersection|0
  _offset|1,0
  _radius|7.5ft
  _fx|burn-smoke
  _dc|@{selected|spell_save_dc}
  _saveFormula|5eCON
  _damageFormula1|[$damage]
  _damageType1|Thunder
  _instant|1
  _ignore|SmartAoE_Ignore,1

  _autoApply|1
  _bar|1
  _zeroHPmarker|dead
  _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.
}}
June 19 (6 months ago)

So, I realised I didn't have Select Manager installed on the problem game, rectified that and also added libTokenMarkers as instructed.  Now I get "SmartAoE: When SmartAoE is called by another script, it must pass both the selected token ID and the playerID"

June 20 (6 months ago)

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 .  Away we go rejoicing

June 21 (6 months ago)
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. 

<snip>

@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". I should try to add an option to make it follow 5e measurement rules. 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. 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: glad you got it working. Another option is to just use the --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.







June 21 (6 months ago)

Edited June 21 (6 months ago)

Hi Dave, hope you had a good time!  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.  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.  This is a much neater solution, thank you

June 23 (6 months ago)

Hi Dave, no worries! Hope you had fun on your cruise (jealous)! 
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? 
Either way, I'll just deal with it for now and manually measure *gasp* 
Thanks! :)

July 10 (5 months ago)

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!

July 11 (5 months ago)
David M.
Pro
API Scripter

Yes! SmartAoE has a public-facing function to handle this very thing. There is a section in the wiki 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.  We get this error. 

(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. 


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. 

July 21 (5 months ago)
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.

July 21 (5 months ago)

Edited July 22 (5 months ago)

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

July 22 (5 months ago)

Edited July 22 (5 months ago)
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:

  1. Delete any active AoE's on the map
  2. Run the following command in the chat window
!smartclearcache

 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?

July 28 (5 months ago)
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. 

Any ideas David?

July 29 (5 months ago)
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  you so much for your advice! WIll try it all. 

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!
July 31 (5 months ago)
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.

August 01 (5 months ago)

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. ;)

August 01 (5 months ago)
David - You are probably aware of the issues with SmartAOE on Jumpgate.  I’ve posted the issues on the Jumpgate forum, but haven’t seen any feedback from the Roll20 developers acknowledging the issues.  It’s my assumption that the fix is on the Roll20 side.  Do you have any additional information on a possible fix?
August 01 (5 months ago)
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.

August 04 (5 months ago)

David,

I'm using your great script in Roll20 but I've reached a bit of a snag.  Everything seems to work with the exception of the logic to determine if the target made their saving throw.  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...]



August 04 (5 months ago)
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? 

August 05 (5 months ago)

David,


I'm using a modified version of the old 3.5 Character sheet.  I've made some simple changes to it - nothing major.  I did get some help from someone and he figured out my mistake right off the bat.  I was having some issues regarding when to use the "a" in place of the "@" and "<<" in place of ">>".  He got me sorted out and here's my final code in case it helps anybody else.


!smartaoe {{

 --title|Shatter

 --leftsub|Spell Level ?{CAST AT WHAT LEVEL?|2|3|4|5|6|7|8|9}

 --rightsub|DC [[@{selected|spelldc2} + @{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|[[@{selected|spelldc2}  + @{selected|cha-mod}]]

 --saveFormula|<<1D20 + a{Fortitude}>>


 --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 noinse, 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.

}}

August 05 (4 months ago)

Edited August 05 (4 months ago)

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.  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.  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|<<1d20 + a{fortitude}>>


--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.

}}
August 05 (4 months ago)

at 9th with Cha 18

August 08 (4 months ago)
Tilt
Pro

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.  Take into account different conditions, etc..     I am to the point that I want to do this for my SmartAOE scripts.  However,  I 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|<<1d20-a{savespells}>>
  --damageFormula1|[[@{selected|level}d6]]
  --damageType1|Electricity
  --resistAttr|special_defenses 
  --resistanceRule|*0.5


Here is what I have on my Ogre's character sheet to try and test this..  (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.  I may not be understanding correctly how it all ties together.

Thank you in advance

Any help is appreciated, thank you

August 08 (4 months ago)
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.

August 09 (4 months ago)
Tilt
Pro


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.  Thank you very much

August 30 (4 months ago)

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?


September 01 (4 months ago)


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.

September 01 (4 months ago)


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.

September 01 (4 months ago)
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.

September 01 (4 months ago)

Edited September 01 (4 months ago)


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.

September 02 (4 months ago)

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 repository.

!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

  --titlecardbackground|url('https://s3.amazonaws.com/files.d20.io/images/253253846/-01wiItwF1nthkh7UwRkIQ/max.png?1635696123');background-size: 100% 100%; background-repeat: no-repeat

  --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.5

  --minTokArea|0.25

  --fx|burn-holy

  --dc|@{selected|spell_save_dc}

  --saveFormula|5eWIS

  --damageFormula1|[[?{Cast at what level?}d8]]

  --damageType1|Radiant


  --ignore|SmartAoE_Ignore,1 

  --autoApply|1

  --bar|1

  --zeroHPmarker|dead

}}


Am I missing a line of code?

 

September 02 (4 months ago)
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. 

September 02 (4 months ago)

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. 

September 07 (3 months ago)

Hey David, 

It's been a bit since I've worked with SmartAOE so I know I'm missing something. I have the following code:

!smartaoe {{ 
--radius|30ft 
--aoetype|PFcircle 
--instant|1 
--forceintersection|Yes 
--selectedID|@{selected|token_id} 
--PlayerID|-O5jjlH1-qG6r5Q2U0IF 
--affectsCaster|true
        --damagetype1|Undead 
--damageformula1|-1d8 
--bar|1 
--autoapply|1 
--vulnerableRule|*-1 
--vulnerableAttr|traits 
--title|Heal 
--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. 

I'm sure it's something simple I'm missing. 




September 07 (3 months ago)
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  "--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 [[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.

September 07 (3 months ago)

That was perfect! I knew it was something small. Many thanks!

September 11 (3 months ago)

Edited September 11 (3 months ago)

I am sure this is a simple fix, but can't see what I'm doing wrong.  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.  The code is from the Github with a description added and  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').  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.  Can somebody please slap me thrice and show me the error of my ways?

September 11 (3 months ago)

NM, found a page a bit further on and this fixed it

!smartclearcache