Hey all, So this one is a bit of a long one sadly. One of my players is finally high enough to take 7th level spells and she snapped up Prismatic Spray. There is a lot going on with this spell and I think I've got the basics of what I want in a Powercard macro, but it got ... a bit long. Plus I'm missing a logic check that I am not sure how to build. If you are not familiar with this spell, it is an AOE that affects every target in the area based on a 1d8 roll. On a roll of an 8, there are 2 rolls that ignore the 8 and should not be the same. Each number 1-7 has a different effect, each with a saving throw to avoid the effect. Here is the chonker: !power {{ --format|Belladonna --name|Belladonna - Prismatic Spray --leftsub|2 actions --rightsub|Verbal, Somatic --hroll|[[ [$SaveDC] 0d0 + @{Belladonna|spell_dc} ]] or [[ [$Color] 1d8 ]] or [[ [$Dupe1] 1d7 ]] or [[ [$Dupe2] 1d7 ]] or [[ [$Fort] 1d20 + @{target|saving_throws_fortitude} ]] or [[ [$Ref] 1d20 + @{target|saving_throws_reflex} ]] or [[ [$Will] 1d20 + @{target|saving_throws_Will} ]] --?? $Color == 1 AND $Ref < $SaveDC ??Red - Failed|//Belladonna deals **[[ [$Fire] 0d0 + 50 ]] fire damage** to @{target|token_name}.// --?? $Color == 1 AND $Ref < $SaveDC ??alterbar1 *1|_target|@{target|token_id} _bar|1 _amount|-[^Fire] _show|none --?? $Color == 1 AND $Ref >= $SaveDC ??Red - Saved|//@{target|token_name} takes no fire damage.// --?? $Color == 2 AND $Ref < $SaveDC ??Orange - Failed|//Belladonna deals **[[ [$Acid] 0d0 + 60 ]] acid damage** to @{target|token_name}.// --?? $Color == 2 AND $Ref < $SaveDC ??alterbar1 *2|_target|@{target|token_id} _bar|1 _amount|-[^Acid] _show|none --?? $Color == 2 AND $Ref >= $SaveDC ??Orange - Saved|//@{target|token_name} takes no acid damage.// --?? $Color == 3 AND $Ref < $SaveDC ??Yellow - Failed|//Belladonna deals **[[ [$Shock] 0d0 + 70 ]] electrical damage** to @{target|token_name}.// --?? $Color == 3 AND $Ref < $SaveDC ??alterbar1 *3|_target|@{target|token_id} _bar|1 _amount|-[^Shock] _show|none --?? $Color == 3 AND $Ref >= $SaveDC ??Yellow - Saved|//@{target|token_name} takes no electrical damage.// --?? $Color == 4 AND $Fort < $SaveDC ??Green - Failed|//Belladonna deals **[[ [$Poison] 0d0 + 30 ]] poison damage** to @{target|token_name}. They are also **Enfeebled 1**.// --?? $Color == 4 AND $Fort < $SaveDC ??alterbar1 *4|_target|@{target|token_id} _bar|1 _amount|-[^Poison] _show|none --?? $Color == 4 AND $Fort >= $SaveDC ??Green - Saved|//@{target|token_name} takes no poison damage.// --?? $Color == 5 AND $Fort < $SaveDC ??Blue - Failed|//@{target|token_name} is affected as if by **Flesh to Stone**.// --?? $Color == 5 AND $Fort >= $SaveDC ??Blue - Saved|//@{target|token_name} is not affected by the blue ray.// --?? $Color == 6 AND $Will < $SaveDC ??Indigo - Failed|// @{target|token_name} is affected as if by **Warp Mind**.// --?? $Color == 6 AND $Will >= $SaveDC ??Indigo - Saved|// @{target|token_name} is not affected by the indigo ray.// --?? $Color == 7 AND $Will < $SaveDC AND $Will.base <> 1 ??Violet - Failed|//@{target|token_name} is **Slowed 1 for 1 minute**.// --?? $Color == 7 AND $Will.base == 1 ??Violet - Critical Failure|//@{target|token_name} is randomly **Plane Shifted**.// --?? $Color == 7 AND $Will >= $SaveDC ??Violet - Saved|//@{target|token_name} is not affected by the violet ray.// --?? $Color == 8 AND $Dupe1 == 1 AND $Ref < $SaveDC ??Red - Failed|//Belladonna deals **[[ [$Fire] 0d0 + 50 ]] fire damage** to @{target|token_name}.// --?? $Color == 8 AND $Dupe1 == 1 AND $Ref < $SaveDC ??alterbar1 *5|_target|@{target|token_id} _bar|1 _amount|-[^Fire] _show|none --?? $Color == 8 AND $Dupe1 == 1 AND $Ref >= $SaveDC ??Red - Saved|//@{target|token_name} takes no fire damage.// --?? $Color == 8 AND $Dupe1 == 2 AND $Ref < $SaveDC ??Orange - Failed|//Belladonna deals **[[ [$Acid] 0d0 + 60 ]] acid damage** to @{target|token_name}.// --?? $Color == 8 AND $Dupe1 == 2 AND $Ref < $SaveDC ??alterbar1 *6|_target|@{target|token_id} _bar|1 _amount|-[^Acid] _show|none --?? $Color == 8 AND $Dupe1 == 2 AND $Ref >= $SaveDC ??Orange - Saved|//@{target|token_name} takes no acid damage.// --?? $Color == 8 AND $Dupe1 == 3 AND $Ref < $SaveDC ??Yellow - Failed|//Belladonna deals **[[ [$Shock] 0d0 + 70 ]] electrical damage** to @{target|token_name}.// --?? $Color == 8 AND $Dupe1 == 3 AND $Ref < $SaveDC ??alterbar1 *7|_target|@{target|token_id} _bar|1 _amount|-[^Shock] _show|none --?? $Color == 8 AND $Dupe1 == 3 AND $Ref >= $SaveDC ??Yellow - Saved|//@{target|token_name} takes no electrical damage.// --?? $Color == 8 AND $Dupe1 == 4 AND $Fort < $SaveDC ??Green - Failed|//Belladonna deals **[[ [$Poison] 0d0 + 30 ]] poison damage** to @{target|token_name}. They are also **Enfeebled 1**.// --?? $Color == 8 AND $Dupe1 == 4 AND $Fort < $SaveDC ??alterbar1 *8|_target|@{target|token_id} _bar|1 _amount|-[^Poison] _show|none --?? $Color == 8 AND $Dupe1 == 4 AND $Fort >= $SaveDC ??Green - Saved|//@{target|token_name} takes no poison damage.// --?? $Color == 8 AND $Dupe1 == 5 AND $Fort < $SaveDC ??Blue - Failed|//@{target|token_name} is affected as if by **Flesh to Stone**.// --?? $Color == 8 AND $Dupe1 == 5 AND $Fort >= $SaveDC ??Blue - Saved|//@{target|token_name} is not affected by the blue ray.// --?? $Color == 8 AND $Dupe1 == 6 AND $Will < $SaveDC ??Indigo - Failed|// @{target|token_name} is affected as if by **Warp Mind**.// --?? $Color == 8 AND $Dupe1 == 6 AND $Will >= $SaveDC ??Indigo - Saved|// @{target|token_name} is not affected by the indigo ray.// --?? $Color == 8 AND $Dupe1 == 7 AND $Will < $SaveDC AND $Will.base <> 1 ??Violet - Failed|//@{target|token_name} is **Slowed 1 for 1 minute**.// --?? $Color == 8 AND $Dupe1 == 7 AND $Will.base == 1 ??Violet - Critical Failure|//@{target|token_name} is randomly **Plane Shifted**.// --?? $Color == 8 AND $Dupe1 == 7 AND $Will >= $SaveDC ??Violet - Saved|//@{target|token_name} is not affected by the violet ray.// --?? $Color == 8 AND $Dupe2 == 1 AND $Ref < $SaveDC ??Red - Failed|//Belladonna deals **[[ [$Fire] 0d0 + 50 ]] fire damage** to @{target|token_name}.// --?? $Color == 8 AND $Dupe2 == 1 AND $Ref < $SaveDC ??alterbar1 *9|_target|@{target|token_id} _bar|1 _amount|-[^Fire] _show|none --?? $Color == 8 AND $Dupe2 == 1 AND $Ref >= $SaveDC ??Red - Saved|//@{target|token_name} takes no fire damage.// --?? $Color == 8 AND $Dupe2 == 2 AND $Ref < $SaveDC ??Orange - Failed|//Belladonna deals **[[ [$Acid] 0d0 + 60 ]] acid damage** to @{target|token_name}.// --?? $Color == 8 AND $Dupe2 == 2 AND $Ref < $SaveDC ??alterbar1 *10|_target|@{target|token_id} _bar|1 _amount|-[^Acid] _show|none --?? $Color == 8 AND $Dupe2 == 2 AND $Ref >= $SaveDC ??Orange - Saved|//@{target|token_name} takes no acid damage.// --?? $Color == 8 AND $Dupe2 == 3 AND $Ref < $SaveDC ??Yellow - Failed|//Belladonna deals **[[ [$Shock] 0d0 + 70 ]] electrical damage** to @{target|token_name}.// --?? $Color == 8 AND $Dupe2 == 3 AND $Ref < $SaveDC ??alterbar1 *11|_target|@{target|token_id} _bar|1 _amount|-[^Shock] _show|none --?? $Color == 8 AND $Dupe2 == 3 AND $Ref >= $SaveDC ??Yellow - Saved|//@{target|token_name} takes no electrical damage.// --?? $Color == 8 AND $Dupe2 == 4 AND $Fort < $SaveDC ??Green - Failed|//Belladonna deals **[[ [$Poison] 0d0 + 30 ]] poison damage** to @{target|token_name}. They are also **Enfeebled 1**.// --?? $Color == 8 AND $Dupe2 == 4 AND $Fort < $SaveDC ??alterbar1 *12|_target|@{target|token_id} _bar|1 _amount|-[^Poison] _show|none --?? $Color == 8 AND $Dupe2 == 4 AND $Fort >= $SaveDC ??Green - Saved|//@{target|token_name} takes no poison damage.// --?? $Color == 8 AND $Dupe2 == 5 AND $Fort < $SaveDC ??Blue - Failed|//@{target|token_name} is affected as if by **Flesh to Stone**.// --?? $Color == 8 AND $Dupe2 == 5 AND $Fort >= $SaveDC ??Blue - Saved|//@{target|token_name} is not affected by the blue ray.// --?? $Color == 8 AND $Dupe2 == 6 AND $Will < $SaveDC ??Indigo - Failed|// @{target|token_name} is affected as if by **Warp Mind**.// --?? $Color == 8 AND $Dupe2 == 6 AND $Will >= $SaveDC ??Indigo - Saved|// @{target|token_name} is not affected by the indigo ray.// --?? $Color == 8 AND $Dupe2 == 7 AND $Will < $SaveDC AND $Will.base <> 1 ??Violet - Failed|//@{target|token_name} is **Slowed 1 for 1 minute**.// --?? $Color == 8 AND $Dupe2 == 7 AND $Will.base == 1 ??Violet - Critical Failure|//@{target|token_name} is randomly **Plane Shifted**.// --?? $Color == 8 AND $Dupe2 == 7 AND $Will >= $SaveDC ??Violet - Saved|//@{target|token_name} is not affected by the violet ray.// --!Another Target|~C [Affect Another Target](~BelladonnaMacro|PrismaticSpray) ~C }} I have a color roll of 1d8 to determine the effect and if that roll is an 8, then there are Dupe1 and Dupe 2, which are 1d7 rolls to have two effects. I'm not sure how to write in that if Dupe1 == Dupe2, then there should be another roll for the 2nd effect so it doesn't duplicate effects. I'm also wondering if there is some way to condense this thing down any amount. I'm using Alterbars for the damaging effects, which luckily a successful save avoids all damage so I don't have to deal with any half. Any advice or thoughts would be appreciated. Thanks!