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
This post has been closed. You can still view previous posts, but you can't post any new replies.

[Script] PowerCards 3 (Thread 3)

Modnar Wylde said: SeanOG said: Reading over these, I just thought I'd let you know that PowerCards will nest a macro from the Abilities tab. I use it all the time for my mother's Paladin (posting full macro so you can see where it calls, etc.): May I say, that is the most inspiring thing I've read this week?  Because it is.   :) My parents raised us on Dungeons and Dragons. I started playing when I was about 7 or 8 in the 80s. We play 5e every other week on Roll20 because we are spread out all over geographically. Our group is my mother and father, myself, younger brother, cousin and cousin's friend. I had two other brothers and a sister that also played, but work schedules on weekends ended that.
OKAY, so I hope this is not something I am just missing that will make me feel as stupid as I currently feel -  But what in the nine hells causes a script that has the same exact lines (In Power Cards V3) to simply stop working after a number of them are added for multiple conditions.  Now each subset below is uniquely identified by the $TYP (1,2,3,6,7 and 8). Assume that all 6 macro sets are pasted in the macro, it will not work. However, if I remove 6,7 and 8, it works! So maybe there is an error in the code for 6,7 and 8? NOPE. If you switch the $TYP == x to 6,7 or 8 it works. BUT if I add in another macro set, it stops working.  What gives? Am I just not seeing a better way to write the macro - is the PCard API just overwhelmed if I do it this way?  The code is here: !power {{ --charid|@{selected|character_id} --emote| **GET SOME!** --name|@{selected|token_name} ^^FIREARMS RAPID --hrolls| [[ [$TYP] 0d0 + ?{Weapon Type?|Revolver,1|Pistol,2|Rifle,3|EPistol,6|ERifle,7|Railgun,8} ]] [[ ?{Attack Option?|Rapid Shot,0|Move and Fire,20|Run and Fire,50} ]] [[ ?{Rounds Fired?|2,10|3,15|4,20} ]] [[ ?{Recoil Rating|1,0|2,5|3,10|4,20|5,40} ]] --?? $TYP == 1 ?? Weapon:|~C REVOLVER ~C --?? $TYP == 2 ?? Weapon:|~C PISTOL ~C --?? $TYP == 3 ?? Weapon:|~C RIFLE ~C --?? $TYP == 6 ?? Weapon:|~C ENERGY PISTOL ~C --?? $TYP == 7 ?? Weapon:|~C ENERGY RIFLE ~C --?? $TYP == 8 ?? Weapon:|~C RAILGUN ~C --?? ?{Attack Option?} == 0 ?? | ~C RAPID SHOT ~C --?? ?{Attack Option?} == 20 ?? | ~C MOVE & FIRE ~C --?? ?{Attack Option?} == 50 ?? | ~C RUN & FIRE ~C --Weapon Divisor:| ~R [[ ?{Weapon Divisor?|1|2|3|4|5|6|7} ]] ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 10 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 10 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 15 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 15 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 15 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 20 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 20 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} - ?{Recoil Rating} -10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 20 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} - ?{Recoil Rating} -15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 1 AND ?{Rounds Fired?} == 20 ?? STRIKE 4:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Revolver} - ?{Attack Option?} - ?{Recoil Rating} -20 ]] ~R **DMG** [[ ?{Attack DMG} ]] R4 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 10 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 10 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 15 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 15 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 15 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 20 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 20 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 20 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 2 AND ?{Rounds Fired?} == 20 ?? STRIKE 4:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Pistol} - ?{Attack Option?} - ?{Recoil Rating} - 20 ]] ~R **DMG** [[ ?{Attack DMG} ]] R4 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 10 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 10 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 15 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 15 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 15 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 20 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 20 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 20 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 3 AND ?{Rounds Fired?} == 20 ?? STRIKE 4:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Rifle} - ?{Attack Option?} - ?{Recoil Rating} - 20 ]] ~R **DMG** [[ ?{Attack DMG} ]] R4 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 10 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 10 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]]~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 15 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 15 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 15 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 20 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 20 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 20 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 6 AND ?{Rounds Fired?} == 20 ?? STRIKE 4:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|EPistol} - ?{Attack Option?} - ?{Recoil Rating} - 20 ]] ~R **DMG** [[ ?{Attack DMG} ]] R4 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 10 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 10 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 15 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 15 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 15 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 20 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 20 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 20 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 7 AND ?{Rounds Fired?} == 20 ?? STRIKE 4:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|ERifle} - ?{Attack Option?} - ?{Recoil Rating} - 20 ]] ~R **DMG** [[ ?{Attack DMG} ]] R4 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 10 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 10 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 15 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 15 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 15 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 20 ?? STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG} ]] R1 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 20 ?? STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 20 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? $TYP == 8 AND ?{Rounds Fired?} == 20 ?? STRIKE 4:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + @{selected|Railgun} - ?{Attack Option?} - ?{Recoil Rating} - 20 ]] ~R **DMG** [[ ?{Attack DMG} ]] R4 ~R }}
1460758831

Edited 1460761547
Silvyre
Forum Champion
A maximum of 100 Roll Queries can be sent to the Text Chat at once. To be clear, this is a limitation of Roll20, not PowerCards. Any more will fail to parse (which can break inline rolls, causing PowerCards macros to fail to output): !power {{ --hroll|99 Roll Queries: ?{Q|A} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} --Roll Query 100:|?{Q} --Roll Query 101:|?{Q} }} I reduced the size of your macro to bring it under the Roll Query limit: !power {{ --charid|@{selected|character_id} --emote| **GET SOME!** --name|@{selected|token_name} ^^FIREARMS RAPID --hrolls| ?{Weapon Type?| Revolver, [[@{selected|Revolver}]][Revolver]| Pistol, [[@{selected|Revolver}]][Pistol]| Rifle, [[@{selected|Rifle}]][Rifle]| EPistol, [[@{selected|EPistol}]][EPistol]| ERifle, [[@{selected|ERifle}]][ERifle]| Railgun, [[@{selected|Railgun}]][Railgun] } ?{Attack Option?|Rapid Shot,0|Move and Fire,20|Run and Fire,50} ?{Rounds Fired?|2,10|3,15|4,20} ?{Recoil Rating|1,0|2,5|3,10|4,20|5,40} --?? ?{Weapon Type?} == [[@{selected|Revolver}]][Revolver] ?? Weapon:|~C REVOLVER ~C --?? ?{Weapon Type?} == [[@{selected|Revolver}]][Pistol] ?? Weapon:|~C PISTOL ~C --?? ?{Weapon Type?} == [[@{selected|Rifle}]][Rifle] ?? Weapon:|~C RIFLE ~C --?? ?{Weapon Type?} == [[@{selected|EPistol}]][EPistol] ?? Weapon:|~C ENERGY PISTOL ~C --?? ?{Weapon Type?} == [[@{selected|ERifle}]][ERifle] ?? Weapon:|~C ENERGY RIFLE ~C --?? ?{Weapon Type?} == [[@{selected|Railgun}]][Railgun] ?? Weapon:|~C RAILGUN ~C --?? ?{Attack Option?} == 0 ?? !RS| ~C RAPID SHOT ~C --?? ?{Attack Option?} == 20 ?? !MF| ~C MOVE & FIRE ~C --?? ?{Attack Option?} == 50 ?? !RF| ~C RUN & FIRE ~C --Weapon Divisor:| ~R [[ ?{Weapon Divisor?|1|2|3|4|5|6|7} ]] ~R --STRIKE 1:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + ?{Weapon Type?} - ?{Attack Option?} ]] ~R **DMG** [[ ?{Attack DMG|0} ]] R1 ~R --STRIKE 2:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + ?{Weapon Type?} - ?{Attack Option?} - ?{Recoil Rating} - 10 ]] ~R **DMG** [[ ?{Attack DMG} ]] R2 ~R --?? ?{Rounds Fired?} >= 15 ?? STRIKE 3:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + ?{Weapon Type?} - ?{Attack Option?} - ?{Recoil Rating} - 15 ]] ~R **DMG** [[ ?{Attack DMG} ]] R3 ~R --?? ?{Rounds Fired?} >= 20 ?? STRIKE 4:| [[ (d100cs>95cf<5) - @{selected|Injury} + @{selected|Targeting Bonus} + ?{Weapon Type?} - ?{Attack Option?} - ?{Recoil Rating} - 20 ]] ~R **DMG** [[ ?{Attack DMG} ]] R4 ~R }}
JB, I am using this Descent Dice API script:&nbsp; <a href="https://app.roll20.net/forum/post/796153/slug%7D" rel="nofollow">https://app.roll20.net/forum/post/796153/slug%7D</a> Anyway to make this work within Power Cards?
'Fraid not. Not without a lot of work.
How about making Rollable Table images only appear within power cards?
Master MJ said: How about making Rollable Table images only appear within power cards? I don't know. Will double check next time I get a chance to do some scripting.
Silvyre said: A maximum of 100 Roll Queries can be sent to the Text Chat at once. To be clear, this is a limitation of Roll20, not PowerCards. Any more will fail to parse (which can break inline rolls, causing PowerCards macros to fail to output): !power {{ --hroll|99 Roll Queries: ?{Q|A} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} ?{Q} --Roll Query 100:|?{Q} --Roll Query 101:|?{Q} }} Thanks Silvyre - I figured it would be something like a limitation of queries, just wasnt 100% - I appreciate the rewrite - Ill look it over and apply the concept to streamline the queries - really appreciate the help!!
THanks again Sylvyre &lt; so I was playing with this revamp you kindly provided to determine how to invest in the design.....however, I think there may be a bug in it? Example - If I select Revolver or EPistol the output is fine. However, select [Pistol] or [Rifle] and the output is I looked for strange spaces ans such, however cannot find anything - at least to my novice eyes. I looked closer at the multi select query and not certain but I think the --hrolls| ?{Weapon Type?|Revolver,[[@{selected|Revolver}]][Revolver]| is just calling out the [[@{selected|Revolver}]] as a label of some kind? I dont see how it is part of any active equations that could be causing this. Since the macro is calling the sill on the character sheets I changed all the values to a different number (since skills can have the same number there) just to eliminate the possibility it was seeing all skills as equal (65% for example). I also caught that "revolver" was repeated twice in Pistol callout and corrected that as well so thats not it either. Any ideas or pointers?
1461008303
Silvyre
Forum Champion
I wrapped the @{selected|Guns} within [[inline roll brackets]] just in case there were any spaces within the values of these Attributes. I don't know why you're getting repeated tags, but if there are no spaces within your Attributes, you could try without the inline roll brackets, e.g. ?{Weapon Type?| Revolver, @{selected|Revolver}[Revolver]| Pistol, @{selected|Pistol}[Pistol]| Rifle, @{selected|Rifle}[Rifle]| EPistol, @{selected|EPistol}[EPistol]| ERifle, @{selected|ERifle}[ERifle]| Railgun, @{selected|Railgun}[Railgun] } ?{Attack Option?|Rapid Shot,0|Move and Fire,20|Run and Fire,50} ?{Rounds Fired?|2,10|3,15|4,20} ?{Recoil Rating|1,0|2,5|3,10|4,20|5,40} --?? ?{Weapon Type?} == @{selected|Revolver}[Revolver] ?? Weapon:|~C REVOLVER ~C --?? ?{Weapon Type?} == @{selected|Pistol}[Pistol] ?? Weapon:|~C PISTOL ~C --?? ?{Weapon Type?} == @{selected|Rifle}[Rifle] ?? Weapon:|~C RIFLE ~C --?? ?{Weapon Type?} == @{selected|EPistol}[EPistol] ?? Weapon:|~C ENERGY PISTOL ~C --?? ?{Weapon Type?} == @{selected|ERifle}[ERifle] ?? Weapon:|~C ENERGY RIFLE ~C --?? ?{Weapon Type?} == @{selected|Railgun}[Railgun] ?? Weapon:|~C RAILGUN ~C If that doesn't help, you could also try removing the spaces within the Roll Query, e.g. ?{Weapon Type?| Revolver,@{selected|Revolver}[Revolver]| Pistol,@{selected|Pistol}[Pistol]| Rifle,@{selected|Rifle}[Rifle]| EPistol,@{selected|EPistol}[EPistol]| ERifle,@{selected|ERifle}[ERifle]| Railgun,@{selected|Railgun}[Railgun] }
Not sure exactly why, but this worked - I am using the theory here applied to my other macros. Appreciate the help - your reputation is truly deserved! I wrapped the @{selected|Guns} within [[inline roll brackets]] just in case there were any spaces within the values of these Attributes. I don't know why you're getting repeated tags, but if there are no spaces within your Attributes, you could try without the inline roll brackets, e.g.
I'm trying to wrap myself around my first Trail of Cthulhu - campaign using Roll20. Any of you nice people have any good powercards for the Gumshoe system? I'd hate to reinvent the wheel. :)
1464897456

Edited 1464928975
I've created a whole set of random attack effect cards based on a [[d100]] in conjunction with a prior attack roll. &nbsp;I also do all custom power cards for each of my monster's attacks and abilities, which I can only assume everyone does. &nbsp;I'd love to know if there is one central database to use for this sort of thing. &nbsp;As far as the table below, feel free to use and modify it if you like. &nbsp;It's just a conglomeration of my own scribbles and a excel sheet I found somewhere on the Googles. SLASHING ATTACK !power {{ --name|Orc Handaxe --bgcolor|Yellow --txcolor|black --leftsub|Action --rightsub|Melee --tokenid|@{selected|token_id} --Handaxe Attack|[[ [$Atk1] d20+5 ]] vs @{target|token_name}'s [[@{target|ac}]] AC --?? $Atk1.base == 1 OR $Atk1.total &lt; [[@{target|ac}]] ?? Under AC|You deal no damage --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 ?? Over AC|Deal [[ d6+5 ]] slashing damage --?? $Atk1.base == 20 ?? Critical hit|Deal [[ 2d6+5 ]] slashing damage --Flavor *1|[[ [$FLAVOR1] d100 ]] --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| @{target|token_name} makes a quick grab for @{selected|token_name}'s blade mid-attack! Anticipating the move. @{target|token_name} quicksteps backwards with a look of amusement! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| @{selected|token_name} aims with all his might. but fails to connect with his blade and is deflected by @{target|token_name}'s weapon instead! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name} slashes at @{target|token_name}'s body but they dodge his blade deftly! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| @{selected|token_name}'s attack hits @{target|token_name}'s armor at an awkward angle and chinks harmlessly away! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| @{selected|token_name} hacks at @{target|token_name}. but only the air around them is disturbed. cooling him off pleasantly. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{target|token_name} is one step ahead of @{selected|token_name}'s blade and deftly dodges dissection. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| Aiming for a quick kill @{selected|token_name} reaches for the face. Parrying the worst of it. @{target|token_name} only allows for a small nick above the cheek --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| @{target|token_name} makes a quick grab for @{selected|token_name}'s blade mid-attack! Anticipating the move. @{target|token_name} quicksteps backwards with a look of amusement! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| @{selected|token_name} aims with all his might. but fails to connect with his blade and is deflected by @{target|token_name}'s weapon instead! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name} slashes at @{target|token_name}'s body but they dodge his blade deftly! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| @{selected|token_name}'s attack hits @{target|token_name}'s armor at an awkward angle and chinks harmlessly away! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| @{selected|token_name} hacks at @{target|token_name}. but only the air around them is disturbed. cooling him off pleasantly. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{target|token_name} is one step ahead of @{selected|token_name}'s blade and deftly dodges dissection. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| Aiming for a quick kill @{selected|token_name} reaches for the face. Parrying the worst of it. @{target|token_name} only allows for a small nick above the cheek --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Making the most of @{target|token_name}'s flawed posture @{selected|token_name} slashes forward at their knees. and causing them to stammer backwards! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Slashing at @{target|token_name}'s legs. @{selected|token_name} manage to connect and draw blood from the inside of their thigh! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name}'s blade finds the soft tissue of @{target|token_name}'s belly and cuts them deeply. drawing a fair amount of blood! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| @{selected|token_name} manages to find a lucky spot between the folds of @{target|token_name}'s armor and cuts them deeply! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| @{selected|token_name}'s blade slips past @{target|token_name}'s careful guard! slicing open their forearm. @{target|token_name} clutches his arm to staunch the bleeding! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{target|token_name}'s throat is left open! @{selected|token_name} takes the initiative and makes a strike at their jugular! His reach falls short. but not before drawing a little blood! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| Making the most of a small window. @{selected|token_name} slashes out at @{target|token_name}'s face. drawing a strong line of blood across their nose! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Pressing forward. @{selected|token_name} slashes precisely at @{target|token_name}'s legs and nearly eviscerates them completely! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| @{selected|token_name}'s blade cuts through the femoral artery, causing a fountain of blood to erupt from @{target|token_name}. --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name} slashes open the @{target|token_name}'s belly, prompting foul smelling innards and intestines to fall to the ground. A horrified @{target|token_name} scrambles to hold their exposed organs in! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| @{selected|token_name} opens a rift in the @{target|token_name}'s chest. revealing the bones and sinew inside. Blood spurts from the wound and they stare at the gaping wound in disbelief! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| Catching @{target|token_name} completely off guard, @{selected|token_name}'s blade cuts through to the bone of his arm. nearly severing from it the torso! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{selected|token_name} forces @{target|token_name} off balance and strikes at their throat! @{selected|token_name}'s blade connects nicely and blood showers his forearm! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| @{selected|token_name}'s blade arcs towards @{target|token_name}'s head menacingly! Fear flashes in their eyes as the blade slices cleanly through the skin and breaks the skull with a sickening crack! }} BLUDGEON ATTACK !power {{ --name|Orc Warhammer --bgcolor|Yellow --txcolor|black --leftsub|Action --rightsub|Melee --tokenid|@{selected|token_id} --Warhammer Attack|[[ [$Atk1] d20+5 ]] vs @{target|token_name}'s [[@{target|ac}]] AC --?? $Atk1.base == 1 OR $Atk1.total &lt; [[@{target|ac}]] ?? Under AC|You deal no damage --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 ?? Over AC|Deal [[ d8+5 ]] bludgeoning damage --?? $Atk1.base == 20 ?? Critical hit|Deal [[ 2d8+5 ]] bludgeoning damage --Flavor *1|[[ [$FLAVOR1] d100 ]] --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Swinging and thrusting toward the knee-caps @{selected|token_name}'s bludgeon falls short and taps @{target|token_name}'s shin. bringing about only a small response. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| @{selected|token_name}'s bludgeon lightly catches @{target|token_name} on the thigh. nearly causing them to lose their footing. but they quickly recover. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name}'s bludgeon bounces off the belly of @{target|token_name} due to their "belly muscle" and makes the sound of a ringing gong. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| @{target|token_name} just manages to deflect @{selected|token_name}'s bludgeon mid swing. but the blow carries through and hits their chest. causing them to wince. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| @{target|token_name} manages to dodge out of the way just in time. and @{selected|token_name} barely touches their arm. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{target|token_name} just manages to dodge out of the way, and @{selected|token_name}'s bludgeon glances off the side of their neck. They let out a small wince. but otherwise seem unfazed. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| @{selected|token_name} strikes down with force. but only manages to land a glancing blow on @{target|token_name} head. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Swinging and thrusting toward the knee-caps @{selected|token_name}'s bludgeon falls short and taps @{target|token_name}'s shin. bringing about only a small response. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| @{selected|token_name}'s bludgeon lightly catches @{target|token_name} on the thigh. nearly causing them to lose their footing. but they quickly recover. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name}'s bludgeon bounces off the belly of @{target|token_name} due to their "belly muscle" and makes the sound of a ringing gong. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| @{target|token_name} just manages to deflect @{selected|token_name}'s bludgeon mid swing. but the blow carries through and hits their chest. causing them to wince. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| @{target|token_name} manages to dodge out of the way just in time. and @{selected|token_name} barely touches their arm. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{target|token_name} just manages to dodge out of the way, and @{selected|token_name}'s bludgeon glances off the side of their neck. They let out a small wince. but otherwise seem unfazed. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| @{selected|token_name} strikes down with force. but only manages to land a glancing blow on @{target|token_name} head. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Aiming for the under-guarded shins @{selected|token_name}'s bludgeon makes solid contact. sending a cold shiver through @{target|Target1|token_name} body --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| @{selected|token_name}'s bludgeon careens towards @{target|Target1|token_name}'s legs and finds its mark. Their kneecap buckles with a crunch. bending backwards before popping back into its proper position painfully. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name}'s bludgeon makes contact with @{target|Target1|token_name}'s stomach. knocking the wind from their lungs temporarily as they struggle to breathe properly again. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| A heavy blow of @{selected|token_name}'s bludgeon manages to get past @{target|Target1|token_name}'s guard and hits them directly in the chest. driving them back a little. As they recover. you notice they are breathing significantly harder than before and look to be in pain. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| @{selected|token_name}'s bludgeon solidly hits @{target|Target1|token_name}'s arm. causing them to wince in pain. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{selected|token_name} swings with his bludgeon. hitting @{target|Target1|token_name} in the side of the neck. While obviously causing pain. the blow misses the vital areas needed for a killing blow. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| Head, @{selected|token_name}'s bludgeon bonks @{target|Target1|token_name} on the head causing them to stagger back. notably affected by his blow. --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| @{selected|token_name} slams his bludgeon down on the @{target|Target1|token_name}'s foot. squashing it to the size of a pancake! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| @{selected|token_name} aims to hit your foe in the thigh but your blow lands slightly higher. @{selected|token_name}'s bludgeon arcs between @{target|Target1|token_name}'s legs and squashes their groin between their pelvis and @{selected|token_name}'s bludgeon! @{target|Target1|token_name} screams in pain! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| Vomiting blood. @{target|Target1|token_name} keels over as @{selected|token_name} strikes them with a mean blow to their stomach! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| @{selected|token_name} swings with great strength and catches @{target|Target1|token_name} in their chest! @{target|Target1|token_name} hears bone break. and struggles for air as their ribs puncture lungs! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| Not willing to take any more punishment, @{target|Target1|token_name} cries out in agony as @{selected|token_name} crush their arm. nearly causing them to drop their weapon! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| As @{selected|token_name}'s bludgeon catches @{target|Target1|token_name} in the throat, their eyes go wide and he realises he's crushed their trachea! @{target|Target1|token_name} reaches up to their neck. gasping for air. before finally catching their breath! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| Swinging @{selected|token_name}'s bludgeon in a vicious overhead arc, he impacts @{target|Target1|token_name}'s head with a sickening crunch, nearly caving in their skull! }} PIERCING ATTACK !power {{ --name|Orc Spear (Thrust) --bgcolor|Yellow --txcolor|black --leftsub|Action --rightsub|Melee --tokenid|@{selected|token_id} --Spear Attack|[[ [$Atk1] d20+5 ]] vs @{target|token_name}'s [[@{target|ac}]] AC --?? $Atk1.base == 1 OR $Atk1.total &lt; [[@{target|ac}]] ?? Under AC|You deal no damage --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 ?? Over AC|Deal [[ d6+5 ]] slashing damage --?? $Atk1.base == 20 ?? Critical hit|Deal [[ 2d6+5 ]] slashing damage --Flavor *1|[[ [$FLAVOR1] d100 ]] --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Having @{selected|token_name}'s blow largely blocked and his momentum brought to zero. @{selected|token_name}makes a last ditch attempt at damage and slides his weapon around to strike a shortened second blow at @{target|token_name}'s exposed leg! The hit lands. but with no force behind it! The damage (if any) can't be much! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Aiming for a gap in @{target|token_name}'s armour around their thigh. @{selected|token_name}'s stab falls short and hits hard into the armour protecting their leg! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| As @{target|token_name} steps back @{selected|token_name}'s stab makes light contact with their stomach. failing to make much more than a scratch! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Taking a stab. @{selected|token_name} flings his weapon forward! @{target|token_name} steps back with the attack. and minimizes the impact to a scratch! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| Working past the defenses. @{selected|token_name}'s stabs @{target|token_name} in the upper arm. but their reinforced shoulderpads prevent any real damage. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{selected|token_name} attempts to impale the neck of @{target|token_name}. but only manages to nick them in the side of the neck. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| Aiming directly for the eyes @{target|token_name} reacts quickly. leaning back with the same momentum as @{selected|token_name}'s weapon. Only a nick that barely bleeds is left on their forehead. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Having @{selected|token_name}'s blow largely blocked and his momentum brought to zero. @{selected|token_name}makes a last ditch attempt at damage and slides his weapon around to strike a shortened second blow at @{target|token_name}'s exposed leg! The hit lands. but with no force behind it! The damage (if any) can't be much! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Aiming for a gap in @{target|token_name}'s armour around their thigh. @{selected|token_name}'s stab falls short and hits hard into the armour protecting their leg! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| As @{target|token_name} steps back @{selected|token_name}'s stab makes light contact with their stomach. failing to make much more than a scratch! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Taking a stab. @{selected|token_name} flings his weapon forward! @{target|token_name} steps back with the attack. and minimizes the impact to a scratch! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| Working past the defenses. @{selected|token_name}'s stabs @{target|token_name} in the upper arm. but their reinforced shoulderpads prevent any real damage. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{selected|token_name} attempts to impale the neck of @{target|token_name}. but only manages to nick them in the side of the neck. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| Aiming directly for the eyes @{target|token_name} reacts quickly. leaning back with the same momentum as @{selected|token_name}'s weapon. Only a nick that barely bleeds is left on their forehead. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| @{selected|token_name} stabs straight down at @{target|token_name}'s foot where it penetrates. sinks into the ground below. and pins them to the spot for a moment! You both watch as the blood pours forth for the fresh hole! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Moving with the attack. @{selected|token_name} puts some momentum behind his stab and @{selected|token_name}'s jab finds its way through the armour guarding @{target|token_name}'s thigh. They yelp out in pain and take a step back. grasping the wound! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| Noticing a gap @{target|token_name}'s defenses @{selected|token_name} dashes forward. delivering a blow to their gut. and sinking his hand down to the wrist! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Moving with a quick lunge. @{selected|token_name} pushes through the armor and skin of @{target|token_name}'s chest and connect with their rib cage! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| With a sidestep @{selected|token_name} takes his opportunity and lunges at the upper arm of @{target|token_name}. pushing through the armour and into the flesh below it! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| Drawing blood. @{selected|token_name} thrusts his weapon towards @{target|token_name}'s neck. It misses the most vital areas. however. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| With a sharp and unexpected jab @{selected|token_name} take advantage of @{target|token_name}'s armor's short-comings. he skewers their eye on the tip of his weapon. almost taking the thing with him on his return! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Seeing an opportunity. @{selected|token_name} lunges out at a neglectfully placed knee and skewers it through on his weapon. Nearly collapsing in pain. @{target|token_name} grasps the excruciating wound and tries to staunch the flow of blood reflexively! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Attacking with both precision and speed. @{selected|token_name} makes a raid lunge directly into one of @{target|token_name}'s legs. with a cry of pain! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| Not missing an opportunity. @{selected|token_name} knock @{target|token_name} off guard and with a plunge. run their stomach through with his vicious stab. pulling out some of their innards on the way out! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Aiming for the heart. @{selected|token_name} grips his weapon tight. plunging accurately into @{target|token_name}'s chest! There is little to no resistance as it passes through the rib cage and exits through the back! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| With a carefully placed. powerful lunge. @{selected|token_name} forces his attack through the gap in the armour at @{target|token_name}'s elbow. nearly separating the lower arm from the body. --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| @{selected|token_name} pierces the neck of @{target|token_name}'s completely. causing blood to blast into the air like a geyser as they choke on their own hemoglobin. --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| @{selected|token_name}'s flies out straight at @{target|token_name}'s head and pierces their skull! The terrible wound somehow doesn't destroy their brain. but it does do a great deal of damage! }} RANGED ATTACK !power {{ --name|Orc Longbow --bgcolor|Yellow --txcolor|black --leftsub|Action --rightsub|Range 150/600 --tokenid|@{selected|token_id} --Longbow Attack|[[ [$Atk1] d20+5 ]] vs @{target|token_name}'s [[@{target|ac}]] AC --?? $Atk1.base == 1 OR $Atk1.total &lt; [[@{target|ac}]] ?? Under AC|You deal no damage --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 ?? Over AC|Deal [[ d8+5 ]] slashing damage --?? $Atk1.base == 20 ?? Critical hit|Deal [[ 2d8+5 ]] slashing damage --Flavor *1|[[ [$FLAVOR1] d100 ]] --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Bouncing off the armor covering @{target|token_name}'s lower legs. it's pretty difficult to see if any real damage was dealt by @{selected|token_name}'s missile! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Firing hopefully towards @{target|token_name}. @{selected|token_name}'s missile grazes against their thigh. drawing only a little blood! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name}'s missile flies hard into @{target|token_name}'s stomach. but the armor proves a slight too tough. and the missile falls to the ground after impact! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Aiming carefully. @{selected|token_name}'s aims at @{target|token_name}'s chest. Fingers slipping. the missile loses momentum and though connecting. barely brings about a response! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| Gliding past @{target|token_name}'s arm. @{selected|token_name}'s missile barely makes contact! --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| As @{selected|token_name} lets his missile fly. he loses concentration and misses @{target|token_name} widely. --?? $Atk1.base == 1 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| A poor quality missile or perhaps a fault in the weapon? @{selected|token_name}'s missile travels with little to no momentum and bounces off the forehead of @{target|token_name}. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Bouncing off the armor covering @{target|token_name}'s lower legs. it's pretty difficult to see if any real damage was dealt by @{selected|token_name}'s missile! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Firing hopefully towards @{target|token_name}. @{selected|token_name}'s missile grazes against their thigh. drawing only a little blood! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name}'s missile flies hard into @{target|token_name}'s stomach. but the armor proves a slight too tough. and the missile falls to the ground after impact! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Aiming carefully. @{selected|token_name}'s aims at @{target|token_name}'s chest. Fingers slipping. the missile loses momentum and though connecting. barely brings about a response! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| Gliding past @{target|token_name}'s arm. @{selected|token_name}'s missile barely makes contact! --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| As @{selected|token_name} lets his missile fly. he loses concentration and misses @{target|token_name} widely. --?? $Atk1.base &gt; 1 AND $Atk1.total &lt; [[@{target|ac}]] AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| A poor quality missile or perhaps a fault in the weapon? @{selected|token_name}'s missile travels with little to no momentum and bounces off the forehead of @{target|token_name}. --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Wedging in tightly. @{selected|token_name}'s missile sticks into @{target|token_name}'s shin! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| Aiming to throw @{target|token_name} off guard.@{selected|token_name} shoots at their lazily placed leg. puncturing their thigh! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| @{selected|token_name}'s missile connects with good force into @{target|token_name}'s stomach. where only the last quarter of it is left visible! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Taking aim. @{selected|token_name} fires towards @{target|token_name}. Before they can even acknowledge the projectile. it lands itself comfortably in their chest! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| Finding it's way between the folds of @{target|token_name}'s armour, @{selected|token_name}'s missile finds itself planted painfully inside their elbow! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| Aiming for the throat.@{selected|token_name} over calculates and the missile plants itself firmly in the chin of @{target|token_name}! --?? $Atk1.total &gt;= [[@{target|ac}]] AND $Atk1.base &lt;&gt; 1 AND $Atk1.base &lt;&gt; 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| @{selected|token_name}'s missile grazes the forehead of @{target|token_name}'s and causes blood to drip into their eyes! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 0 AND $FLAVOR1.base &lt; 11 ?? emote| Aiming for the head. something goes largely amiss and @{selected|token_name}'s shot ends up connecting with @{target|token_name}'s shin - and does so with enough force to exit cleanly from the other side! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 10 AND $FLAVOR1.base &lt; 26 ?? emote| The missile leaves @{selected|token_name}'s weapon swiftly and flies accurately towards @{target|token_name}. Falling short of their chest. it rips through their thigh and exits at the other side! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 25 AND $FLAVOR1.base &lt; 46 ?? emote| With skill. calculation. and a good deal of luck. @{selected|token_name}'s missile weaves it's way between @{target|token_name}'s defenses and passes directly into their stomach. --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 45 AND $FLAVOR1.base &lt; 61 ?? emote| Calculating carefully. @{selected|token_name} raises his weapon and takes the shot. The missile glides gracefully through the air. between @{target|token_name}'s defenses and straight into their chest - an inch from connecting with their heart. Blood still dribbles from their mouth as they reel from the wound! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 60 AND $FLAVOR1.base &lt; 81 ?? emote| @{selected|token_name}'s missile connects just as @{target|token_name}'s leans into their attack. The missile forces its way into the out stretched arm at the fist. and through some gruesome miracle exits at the shoulder! --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 80 AND $FLAVOR1.base &lt; 91 ?? emote| As soon as the feathers touches @{selected|token_name}'s lips. he lets the missile fly straight towards the small opening between @{target|token_name}'s armor beneath the jaw. The result is magnificent. as the victim chokes on their own blood. --?? $Atk1.base == 20 AND $FLAVOR1.base &gt; 90 AND $FLAVOR1.base &lt; 101 ?? emote| The missile impacts inside the eye socket, but adjacent to @{target|token_name}'s eye. For a long moment they wail in pain while they try to dislodge the thing from their head! }}
You could probably turn most of the flavor text into a rollable table. That's what I do with my critical misses. I haven't tried it on emotes yet, but considering some other things I've done (like whispering a GM when anything but a 6 is rolled on a d6), it'll probably work and take up less real estate.
1465610258

Edited 1465610711
Ash
Sheet Author
Hey guys, my power cards are no longer working. I tested a basic macro (which works), but all of my powercard macros - many of which I know to work - simply don't produce a roll. They give no error message, although those that require tokens to be selected will give the usual no tokens selected error if none are selected. This started happening last night, when I was experimenting with a long and inefficient macro (which I completely revamped and wanted to test). I have restarted the computer, roll20, reinstalled the powercards API script a couple of times with the latest edition (my macros were working with the latest prior to this). When I check on my API script to see if there are error messages, there are, but the error changes each time (despite having the same script), and currently says: "There was an error communicating with the QuantumRoll server. undefined" An example of the script that currently works: /w gm [[d20]] An example of the powercards script that has worked but no longer does: !power {{ --format|daily --name|Claw --title|@{selected|name} --leftsub|Standard Action --rightsub|Melee --Attack:|[[ [$Atk] d20+@{selected|attackbonus2}]] --Damage:|15+@{selected|damagebonus2} --?? $Atk.base == 20 or $Atk.base == 19 ?? Critical Hit:| Add 3 damage --?? $Atk.base == 1 ?? Critical Failure:| Miss! }} I assume the system is irrelevant, but we're playing using True20, which is a d20 system similar to d&d3.5, but with a different damage system. EDIT: I tested a couple more of my macros and it appears some (at least, this one) work - I have no idea why: !power {{ --whisper|GM --format|atwill --name|Sleeping --title|@{selected|name} --Variables:|D:[[ [NH] [$D] 1d300]] R:[[ [NH] [$R] 3d6]] A:[[ [NH] [$A] 7d6]] --?? $D == 1 ?? | PC dreamed about being chased. [...more of the same...] --?? $D == 150 ?? | PC had a nightmare about drowning while someone watched. --?? $R &lt;= 5 ?? Rest:| They barely got any sleep. --?? $R == 6 ?? Rest:| They got little sleep. [...more of the same...] --?? $R == 14 ?? Rest:| They feel well rested. --?? $R &gt;= 15 ?? Rest:| They wake up perfectly refreshed. --?? $A == 8 ?? And:| They wet the bed. --?? $A == 10 ?? And:| They suffered from sleep paralysis in the night.&nbsp; [...more of the same...] --?? $A == 21 ?? And:| They tossed and turned throughout the night. --?? $A == 29 ?? And:| They lay completely still the whole night. [...more of the same] --?? $A == 37 ?? And:| They woke up in a sweat. }}
Looks like it's a problem with the api and quantum server. Nothing to do with powercards.
1465610783
Ash
Sheet Author
Is there anything I can do about this? The macro that worked stopped, it seems to be very sporadic.
Wait for the devs to kick the servers.
1465613020
Silvyre
Forum Champion
Abe said: When I check on my API script to see if there are error messages, there are, but the error changes each time (despite having the same script), and currently says: "There was an error communicating with the QuantumRoll server. undefined" Is this still occurring?
1465614119
Ash
Sheet Author
Thanks SkyCaptain. Silvyre said: Abe said: When I check on my API script to see if there are error messages, there are, but the error changes each time (despite having the same script), and currently says: "There was an error communicating with the QuantumRoll server. undefined" Is this still occurring? Yes, it is.
Is there a way to link to the in-game compendiums already set up (like Aaron's Handout edit) or would that need to be custom coded?
SeanOG said: Is there a way to link to the in-game compendiums already set up (like Aaron's Handout edit) or would that need to be custom coded? Huh? What do you mean?
Well, if you enable a compendium, like the 5e Compendium from Roll20, it creates a new tab in the chat area for the compendium. Inside it, you can click on an entry in there, and it opens a Handout-like window with the compendium page in it. While I can link to the compendium page itself with the @@ tag, it opens a new browser window, rather than a journal-esque Roll20 window. I just wasn't sure if there was a way to do it like that yet, or not.
Oh, to the best of my knowledge no... the api cannot access that information.
Blast. Well, it was worth a shot.
Good day, &nbsp;sory for being new to this, &nbsp;but when I try to use the icon code all i get is just Dazed: Blank space then Hi i've got&nbsp; a handout called PowerCard Status List has &nbsp;blinded|bleeding-eye|You grant combat advantage. You can’t see any target (your targets have total concealment). You take a −10 penalty to Perception checks. You can’t flank an enemy. dazed|half-haze|You grant combat advantage. You can take either a standard action, a move action, or a minor action on your turn (you can also take free actions). You can't take immediate actions or opportunity actions. You can't flank an enemy. deafened|rolling-bomb|You can't hear anything. You take a -10 penalty to Perception checks. using 3 line macro code !power {{ --named|Condition Info --Dazed:|[+half-haze] hi }} for settings. var ALLOW_URLS = true; // Allows players to include full urls in powercards var ALLOW_HIDDEN_URLS = true; // Allows players to hide urls as a link instead var CUSTOM_EMOTES = true; // Set to true to use custom emotes instead of Roll20 emotes var SHOW_AVATAR = true; // Set to false to hide character sheet avatar in custom emotes var USE_DEFAULT_FORMAT = false; // Set to true if you want powercards to default formatting var USE_PLAYER_COLOR = false; // Set to true to override all color formatting var USE_TIMESTAMPS = false; // Set to false to turn off time stamps in chat what am I missing?
Use [+dazed] instead of [+half-haze].
1465872278

Edited 1465872328
SkyCaptainXIII said: Use [+dazed] instead of [+half-haze]. using +dazed I get error: TypeError: Cannot read property 'icon' of undefined TypeError: Cannot read property 'icon' of undefined at statusSymbol (apiscript.js:1069:50) at String.replace (native) at formatter (apiscript.js:1122:18) at doInlineFormatting (apiscript.js:1144:11) at apiscript.js:724:23 at Array.forEach (native) at apiscript.js:722:14 at checkFinishedOps (eval at (/home/node/d20-api-server/api.js:109:36), :758:7) at eval (eval at (/home/node/d20-api-server/api.js:109:36), :838:8) at null._onTimeout (/home/node/d20-api-server/node_modules/underscore/underscore.js:768:19)
Is your handout formatted so that each icon definition is on a separate line?
1465873542

Edited 1465873738
it looked like it was but I just retyped it all in and working, &nbsp;your the boss :) thank you tho can you use the red / blue colors seems they son't show up&nbsp; Edit: &nbsp;well never mind, &nbsp;seems you can't lable it the same thing... &nbsp;IE: &nbsp;red|red|test info, &nbsp;needs to be something different for it to show up red1|red|test info &nbsp;= icon thank you once more HB
You should be able to use red|Test info. I think.
Abe said: Thanks SkyCaptain. Silvyre said: Abe said: When I check on my API script to see if there are error messages, there are, but the error changes each time (despite having the same script), and currently says: "There was an error communicating with the QuantumRoll server. undefined" Is this still occurring? Yes, it is. looks like i have now the same issue...
As before, that error is something more to do with Roll20 and not specifically the PowerCards script.
1466535671

Edited 1466535862
Hello All, First i wanted to say this thread has been very informative and helpful to me as someone new to the API. I based my first custom power card off of one in this thread and am SOOOOOOO close. &nbsp;I am hoping one of you experts can give me some guidance on fixing a couple hopefully small issues. Below you will find my macro. It seems to work exactly as i would expect except for 2 things. First the Leftsub and the rightsub always show "Power Attack & Smite" and "Undead" respectively no matter what options i select. they should switch based off of the selection to show the correct combination. Second the very first line under the subtitles looks to be showing the results of&nbsp; ?{Undead?|No,0|Yes,1}, typically ?? 0 == 1 ?? or ?? 1 == 1 ??. Everything after that point seems to work exactly as i would expect so hopefully someone can spot my mistake! I appreciate it in advance! !power {{ --tokenid|@{selected|token_id} --emote|@{selected|character_name} swings his trusty sword --format|attack --name|@{repeating_weapon_$0_name} --title| --Target:|**@{target|token_name}** --hroll| ?{Modifier?| Power Attack,@{selected|PA}[PA]| Smite Evil,@{selected|SE}[SE]| Power Attack & Smite Evil,@{selected|PS}[PS] } ?{Undead?|No,0|Yes,1} --?? ?{Modifier?} == @{selected|PA}[PA] ??--leftsub| POWER ATTACK --?? ?{Modifier?} == @{selected|SE}[SE] ??--leftsub| SMITE EVIL --?? ?{Modifier?} == @{selected|PS}[PS] ??--leftsub|POWER ATTACK & SMITE EVIL --?? ?{Undead?} == 1 ??--rightsub|UNDEAD --?? ?{Modifier?} == @{selected|PA}[PA] ??Attack:|[[ 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] ]]vs AC --?? ?{Modifier?} == @{selected|SE}[SE] ??Attack:|[[ 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] + @{selected|CHA-mod} [SmiteEvil] ]]vs AC --?? ?{Modifier?} == @{selected|PS}[PS] ??Attack:|[[ 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] +@{selected|CHA-mod} [SmiteEvil] ]]vs AC --?? ?{Modifier?} == @{selected|PA}[PA] ?? Primary Damage:|[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +3 [PowerAttack]]] --?? ?{Modifier?} == @{selected|SE}[SE] ?? Primary Damage:|[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +@{selected|level} [Smite Evil]]] --?? ?{Modifier?} == @{selected|PS}[PS] ?? Primary Damage:|[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +3 [PowerAttack] +@{selected|level} [Smite Evil]]] --?? ?{Undead?} == 0 ?? Secondary Damage:|[[1d4]] Sonic --?? ?{Undead?} == 1 ?? Secondary Damage:|[[2d4]] Sonic --?? ?{Modifier?} == @{selected|PA}[PA] ?? **Crit Confirm:|[[ 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] ]]vs AC --?? ?{Modifier?} == @{selected|SE}[SE] ?? **Crit Confirm:|[[ 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] + @{selected|CHA-mod} [SmiteEvil] ]]vs AC --?? ?{Modifier?} == @{selected|PS}[PS] ?? **Crit Confirm:|[[ 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] +@{selected|CHA-mod} [SmiteEvil] ]]vs AC --?? ?{Modifier?} == @{selected|PA}[PA] ?? **Primary Crit Damage:|[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] +[[(3 *(@{crit-multiplier} - 1))]] ]] --?? ?{Modifier?} == @{selected|SE}[SE] ?? **Primary Crit Damage:|[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] + [[(@{selected|level}*(@{crit-multiplier} - 1))]] ]] --?? ?{Modifier?} == @{selected|PS}[PS] ?? **Primary Crit Damage:|[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] + [[(3 *(@{crit-multiplier} - 1))]] + [[(@{selected|level}*(@{crit-multiplier} - 1))]]]] --?? ?{Undead?} == 0 ?? **Secondary Crit Damage:|[[1d4 * (@{crit-multiplier} - 1)]] Sonic --?? ?{Undead?} == 1 ?? **Secondary Crit Damage:|[[2d4 * (@{crit-multiplier} - 1)]] Sonic }}
1466545649

Edited 1466546052
Silvyre
Forum Champion
Matt M. said: First the Leftsub and the rightsub always show "Power Attack & Smite" and "Undead" respectively no matter what options i select. they should switch based off of the selection to show the correct combination. PowerCards conditionals don't work with "reserved tags" like --leftsub (yet). Nonethless, you could instead nest the reserved tags within your 'Modifier?' Roll Query. Doing so is a bit complicated (requires Advanced Usage for Roll Queries ), so I'll show you what I mean: !power {{ --charid|@{character_id} --emote|@{character_name} swings his trusty sword --format|attack --name|@{repeating_weapon_$0_name} --title| --Target:|**@{target|token_name}** ?{Modifier?| Power Attack, --leftsub&amp;#124; POWER ATTACK --Attack:&amp;#124;[[ [$Attack] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] ]]vs AC --?? $Attack.base &gt;= @{crit-target} ?? **Crit Confirm:&amp;#124;[[ [$Confirm] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] ]]vs AC --Primary Damage:&amp;#124;[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +3 [PowerAttack]]] --?? $Confirm.base &gt;= @{crit-target} ?? **Primary Crit Damage:&amp;#124;[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] +[[(3 *(@{crit-multiplier} - 1))]] ]] | Smite Evil, --leftsub&amp;#124; SMITE EVIL --Attack:&amp;#124;[[ [$Attack] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] + @{CHA-mod} [SmiteEvil] ]]vs AC --?? $Attack.base &gt;= @{crit-target} ?? **Crit Confirm:&amp;#124;[[ [$Confirm] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] + @{CHA-mod} [SmiteEvil] ]]vs AC --Primary Damage:&amp;#124;[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +@{level} [Smite Evil]]] --?? $Confirm.base &gt;= @{crit-target} ?? **Primary Crit Damage:&amp;#124;[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] + [[(@{level}*(@{crit-multiplier} - 1))]] ]] | Power Attack &amp; Smite Evil, --leftsub&amp;#124; POWER ATTACK &amp; SMITE EVIL --Attack:&amp;#124;[[ [$Attack] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] +@{CHA-mod} [SmiteEvil] ]]vs AC --?? $Attack.base &gt;= @{crit-target} ?? **Crit Confirm:&amp;#124;[[ [$Confirm] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] +@{CHA-mod} [SmiteEvil] ]]vs AC --Primary Damage:&amp;#124;[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +3 [PowerAttack] +@{selected|level} [Smite Evil]]] --?? $Confirm.base &gt;= @{crit-target} ?? **Primary Crit Damage:&amp;#124;[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] + [[(3 *(@{crit-multiplier} - 1))]] + [[(@{level}*(@{crit-multiplier} - 1))]]]] } ?{Undead?| No, --Secondary Damage:&amp;#124;[[1d4]] Sonic --?? $Confirm.base &gt;= @{crit-target} ?? Secondary Crit Damage:&amp;#124;[[1d4 * (@{crit-multiplier} - 1)]] Sonic | Yes, --rightsub&amp;#124;UNDEAD --Secondary Damage:&amp;#124;[[2d4]] Sonic --?? $Confirm.base &gt;= @{crit-target} ?? **Secondary Crit Damage:&amp;#124;[[2d4 * (@{crit-multiplier} - 1)]] Sonic } }} I also took a few other liberties with your macro; I'll be happy to answer any questions about the above.
1466598888

Edited 1466613908
Silvyre said: Matt M. said: First the Leftsub and the rightsub always show "Power Attack & Smite" and "Undead" respectively no matter what options i select. they should switch based off of the selection to show the correct combination. PowerCards conditionals don't work with "reserved tags" like --leftsub (yet). Nonethless, you could instead nest the reserved tags within your 'Modifier?' Roll Query. Doing so is a bit complicated (requires Advanced Usage for Roll Queries ), so I'll show you what I mean: Thanks, i truely appreciate your assistenace with this! It makes more sense on why it was giving me trouble if it isnt supported yet. maybe someday it will be :). I will test this out and read up on the advanced roll queries as i had several other powercards in mind with this type of reserved tag switching (such as lay on hands changing the cast time in a sub based on if it was on myself or others etc). If i have questions i will let you know. Once again thank you for this! Update: SSSSOOOOOO excited. I played with the redone script you gave me and found i was calculating crits wrong. I was also getting the critical damage showing up even if the attack role wasn't a crit on occasion. I was able to get it modified so that it now correctly shows the damage only when the the critical is confirmed (from target AC!) and the correct critical calculation is used for pathfinder. Also updated the target to be red and moved the die rolls to the far right so that it looks nicer.&nbsp; I know they are probably small things but still learning so very exciting for me. incase anyone is looking for something similar code is below! !power {{ --charid|@{character_id} --emote|@{character_name} swings his trusty sword --format|attack --name|@{repeating_weapon_$0_name} --title| --Target:|$$#C00|**@{target|token_name}**$$ ?{Modifier?| Power Attack, --leftsub| POWER ATTACK --Attack:|~R[[ [$Attack] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] ]]~R --?? $Attack.base &gt;= @{crit-target} ?? **Crit Confirm:|~R[[ [$Confirm] 1d20 + [[ @{total-attack} ]] -1 [PowerAttack] ]]~R --Primary Damage:|~R[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +3 [PowerAttack]]]~R --?? $Attack.base &gt;= @{crit-target} AND $Confirm &gt;= @{target|AC} ?? **Primary Crit Damage:|~R[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] +[[(3 *(@{crit-multiplier} - 1))]] ]]~R | Smite Evil, --leftsub| SMITE EVIL --Attack:|~R[[ [$Attack] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] + @{CHA-mod} [SmiteEvil] ]]~R --?? $Attack.base &gt;= @{crit-target} ?? **Crit Confirm:|~R[[ [$Confirm] 1d20 + [[ @{total-attack} ]] + @{CHA-mod} [SmiteEvil] ]]~R --Primary Damage:|~R[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +@{level} [Smite Evil]]]~R --?? $Attack.base &gt;= @{crit-target} AND $Confirm &gt;= @{target|AC} ?? **Primary Crit Damage:|~R[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] + [[(@{level}*(@{crit-multiplier} - 1))]] ]]~R | Power Attack & Smite Evil, --leftsub| POWER ATTACK & SMITE EVIL --Attack:|~R[[ [$Attack] 1d20cs&gt;[[ @{crit-target} ]] + [[ @{total-attack} ]] -1 [PowerAttack] +@{CHA-mod} [SmiteEvil] ]]~R --?? $Attack.base &gt;= @{crit-target} ?? **Crit Confirm:|~R[[ [$Confirm] 1d20 + [[ @{total-attack} ]] -1 [PowerAttack] +@{CHA-mod} [SmiteEvil] ]]~R --Primary Damage:|~R[[@{damage-dice-num}d@{damage-die} + [[ @{total-damage} ]] [1.5xSTR] +3 [PowerAttack] +@{level} [Smite Evil]]]~R --?? $Attack.base &gt;= @{crit-target} AND $Confirm &gt;= @{target|AC} ?? **Primary Crit Damage:|~R[[ [[ (@{damage-dice-num} * (@{crit-multiplier} - 1)) ]]d@{damage-die} + [[ (@{total-damage} * (@{crit-multiplier} - 1)) ]] + [[(3 *(@{crit-multiplier} - 1))]] + [[(@{level}*(@{crit-multiplier} - 1))]]]]~R } ?{Undead?| No, --Secondary Damage:|~R[[1d4]]~R --?? $Attack.base &gt;= @{crit-target} AND $Confirm &gt;= @{target|AC} ?? **Secondary Crit Damage:|~R[[1d4 * (@{crit-multiplier} - 1)]]~R | Yes, --rightsub|UNDEAD --Secondary Damage:|~R[[2d4]]~R --?? $Attack.base &gt;= @{crit-target} AND $Confirm &gt;= @{target|AC} ?? **Secondary Crit Damage:|~R[[2d4 * (@{crit-multiplier} - 1)]]~R } }}
Just fyi.... the scripts are easier to read if you highlight them and then put them into a code block by clicking the little paragraph symbol at the top of the post reply box. As for powercards, I just haven't had the motivation to do anything with it lately between picking up lots of overtime at work and working on my face to face D&D campaign. Sorry. One of these days I'll get back to it.
1466784399

Edited 1466784421
Can anyone tell me how to do this. Is it possible to preform addition on $Roll ID's? I have the following macro for use in a Runequest homebrew. !power {{ --name|Skill Check - @{selected|Name} --rightsub|?{DifficultyTest|Normal,1 [Normal]|Trivial,1.6 [Trivial]|Easy,1.4 [Easy]|Slight,1.2 [Slight]|Difficult,.80 [Difficult]|Hard,.60 [Hard]|Extreme,.40 [Extreme]} --leftsub|Difficulty Modifier --Roll| [[ [$Roll|NH] round(3d100/3)]] VS Skill: ?{Skill Name|Fishing} = [[ [$Val|NH] 1d0 + ?{Value|50} * ?{DifficultyTest} ]] --CritRoll| [[ [$Crit] 1d20]] --?? $Roll.total &lt;= $Val.total AND $Crit.total == 20 ?? **Critical Success (3)**| --?? $Roll.total &lt;= $Val.total AND $Crit.total &lt; 20 AND $Crit.total &gt; 1 ?? **Success, Normal (2)**| --?? $Roll.total &lt;= $Val.total AND $Crit.total == 1 ?? **Failure, Circumstantial (1)**| --?? $Roll.total &gt; $Val.total AND $Crit.total == 20 ?? **Success, Circumstantial (2)**| --?? $Roll.total &gt; $Val.total AND $Crit.total &lt; 20 AND $Crit.total &gt; 1 ?? **Failure, Normal (1)**| --?? $Roll.total &gt; $Val.total AND $Crit.total == 1 ?? **Critical Failure (0)**| }} On the line before the CritRoll or perhaps even on the same line I would Like a Total inline roll to be shown which is the sum of $Roll.total + Val.total I have been able to do a line where the whole Total is shown but not at the same time that the individual values are shown. Ideally the Roll Vs Modified Value line will show above, (this determines success or failure of the skill check) then on the crit line the critroll will be shown (I use a separate roll because since I am using the average of three rolls, the statistical chance of the area under the curve varies with distance from center and I just need a simple 1 in 20 to determine Level of Success) which determines whether a crit, fail or normal roll occurred. Finally if the skill check is opposed and the level of success is the same then the total is compared to the other rolls total. I have tried something like --Total| [[$Roll.total + $Val.total]] but the macro doesn't roll at all when I do that, no error message, no script failure just nothing. Thank you in advance for any help.
1466791096
Silvyre
Forum Champion
It's not [yet] possible to do math with $RollIDs. We can, however, work around this to a degree, like so: !power {{ --Roll:|[^A] + [^B] = [[ [$C] [$A] 1d6 + [$B] 1d6 ]] --Or, with fake inline roll boxes:| ^^ [! [^A] !] + [! [^B] !] = [! [^C] !] }}
What do the ^A and ^B above mean? this is what I substituted in: --Roll:| [floor(1d0 + ?{Value|50} * ?{DifficultyTest})] + [round(3d100/3)] = [[ [$Sum] [$Val|NH] floor(1d0 + ?{Value|50} * ?{DifficultyTest}) + [$Roll|NH] round(3d100/3) ]] or is it like --Roll:| [[^$Val.base]] + [[^$Roll.total]] = [[ [$Sum] [$Val|NH] floor(1d0 + ?{Value|50} * ?{DifficultyTest}) + [$Roll|NH] round(3d100/3) ]]
1466799115
Silvyre
Forum Champion
[^RollID] can be used to call [$RollID] outside of a conditional (however, no math can be done with it). Check out the February 13th, 2016 and November 22nd, 2015 updates within the original post for the documentation.
1467055242

Edited 1467056255
Ok I made the changes to the above and it prints the Roll (^Roll), Modified Value (^Val) and the Total of them on various lines then does the Critcheck roll. However adding the ^ items seems to have turned off the conditional checking. I replaced the critcheck so it would always be 20 and thus trigger, but now whether the roll is smaller then value (which should return the Critical success line) or larger (which should return the Circumstantial Success Line) it always seems to think the roll is smaller. Can anyone help me figure out what I did wrong? Here is the mouseover of that roll !power {{ --name| ?{Skill Name|Fishing} Skill Check - @{selected|Name} --rightsub|?{DifficultyTest|Normal,1 [Normal]|Trivial,1.6 [Trivial]|Easy,1.4 [Easy]|Slight,1.2 [Slight]|Difficult,.80 [Difficult]|Hard,.60 [Hard]|Extreme,.40 [Extreme]} --leftsub|Difficulty Modifier --Roll| [! [^Roll] !] --Modified Skill Value| [! [^Val] !] --Total| [[ [$C] [$Roll] {round(3d100/3)} + [$Val] {1d0 + round(?{Value|50} * ?{DifficultyTest})} ]] --CritCheck| [[ [$Crit] 1d0 +20]] --?? $Roll.total &lt;= $Val.total AND $Crit.total == 20 ?? **Critical Success (3)**| --?? $Roll.total &lt;= $Val.total AND $Crit.total &lt; 20 AND $Crit.total &gt; 1 ?? **Success, Normal (2)**| --?? $Roll.total &lt;= $Val.total AND $Crit.total == 1 ?? **Failure, Circumstantial (1)**| --?? $Roll.total &gt; $Val.total AND $Crit.total == 20 ?? **Success, Circumstantial (2)**| --?? $Roll.total &gt; $Val.total AND $Crit.total &lt; 20 AND $Crit.total &gt; 1 ?? **Failure, Normal (1)**| --?? $Roll.total &gt; $Val.total AND $Crit.total == 1 ?? **Critical Failure (0)**| }}
1467056719

Edited 1467056821
Silvyre
Forum Champion
There's definitely something weird going on there. Test case: !power {{ --!| [[ [$A] {round(?{A|1} + 0d0)} + [$B] {round(?{B|2} + 0d0)} ]] -- ?? $A == $B ?? !!|[^A] equals [^B]. }}
Hello i have somes little question about this script. I want to know if there are a way to hide the card for the players but not for the GM (for monster roll and something like that). And i also want to know if i can add other script in the card like the !ammo or !conditions without some errors. Thanks
Nocturne said: Hello i have somes little question about this script. I want to know if there are a way to hide the card for the players but not for the GM (for monster roll and something like that). And i also want to know if i can add other script in the card like the !ammo or !conditions without some errors. Thanks To hide from players you can add the tag --whisper|gm. As for other scripts, that's a no, you can use them outside of the script though like the !ammo by adding it in your macro after the PowerCard code. PowerCards does enable you to use conditions in the code, check around pages 13 and 14 of this post for more info.
1467072833
Silvyre
Forum Champion
To add to Arthur B. 's advice, you could have one macro outptu two PowerCards; one that's whispered (to yourself and the GM), and one that's not. e.g. !power --!|I'm making a Perception check! !power --whisper|self, gm --!|I rolled a [[ 1d20 + 2 ]] In the same vein, you could have one macro output a PowerCard and also run a command for another script, maybe joining the two using Roll Queries. e.g. !power {{ --!|I fire ?{Bolts fired|1} crossbow bolt(s), and have [[ @{bolts} - ?{Bolts fired} ]] crossbow bolts remaining! }} !ammo @{character_id} bolts -?{Bolts fired}
Thanks for the answers guy i didin't know i can wisp a card directly to the gm it's exactly what i need, i will try tomorow for the !ammo it's time for me to go sleeping good night guys
Ok, got a question. &nbsp;I'm trying to create a random book generator, but I can't find a way to increase the multiplier on a table. &nbsp;Is this doable? &nbsp;As in [[ [$RandGen] 1t[Randomness] ]] I would like to have like [[ [$RandGen] d20t[Randomness] ]] . &nbsp;Can this be done? &nbsp;Every time I try it or any other way of modifying the 1 on the fly, I either only get 1 result, or if I use a reference to another value, such as [[ [$RandGen] $OtherRandomNumber*1t[Randomness] ]] I get an "SyntaxError: Expected "(", ".", "[", "abs(", "ceil(", "d", "floor(", "round(", "t", "{", [ |\t], [+|\-] or [0-9] but end of input found."&nbsp; Full code is below. &nbsp;Any ideas? !power {{ --whisper|GM --name|Random Book [[ [$Magical] d20 ]] --Binding Color|[[ [$Color] 1t[Colors] ]] --Number of Pages|[[ [$Pages] 1t[Number of Pages] ]] --Book Contents|[[ [$Contents] 1t[Book Contents] ]] --?? $Contents.base &gt;= 10 ?? Mage Type|[[ [$Mage] 1t[Mage type] ]] --?? $Contents.base &gt;= 10 ?? Number of spells|[[ [$SpellNum] d20 ]] --?? $Contents.base &gt;= 10 ?? Spell List|[[ [$SpellList] [d20]t[Wizard Spells] ]] --?? $Magical.base &gt;= 1 AND $Magical.base &lt;= 16 ?? Magical Effect|None --?? $Magical.base &gt;= 17 AND $Magical.base &lt;= 20 ?? Magical Effect|[[ [$MagicEffect] 1t[Random Magic] ]] }}
1468523179
Silvyre
Forum Champion
Patrick said: [[ [$RandGen] d20t[Randomness] ]] Try [[ [$RandGen] [[d20]]t[Randomness] ]]