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

Shadowrun 5E Compile Sprite Macro

I'm making some macros for Shadowrun 5E to go with my Technomancer character. Here is the basic Compile Sprite macro I've come up with: /me attempts to compile a Level ?{Level of sprite?|1} sprite with a dice pool of [[(?{Compiling skill?|1}+?{Resonance attribute?|1}+?{Bonus to pool?|0}-?{Penalty to pool?|0})]] and gets [[(?{Compiling skill?|1}+?{Resonance attribute?|1}+?{Bonus to pool?|0}-?{Penalty to pool?|0})d6>5kh?{Level of sprite?|1}sd-?{Level of sprite?|1}d6>5sd]] net hits! This works pretty well. Now I'm making a version for use with Edge (specifically the Push the Limit action) which removes the limit, adds the Edge attribute to the dice pool, and triggers exploding dice ("the rule of six"): /me attempts to compile a Level ?{Level of sprite?|1} sprite with a dice pool of [[(?{Compiling skill?|1}+?{Resonance attribute?|1}+?{Edge attribute?|1}+?{Bonus to pool?|0}-?{Penalty to pool?|0})]] and gets [[(?{Compiling skill?|1}+?{Resonance attribute?|1}+?{Edge attribute?|1}+?{Bonus to pool?|0}-?{Penalty to pool?|0})d6!>5sd-?{Level of sprite?|1}d6>5sd]] net hits! This macro only works if I take away the ! after the first d6, which adds the Edge attribute to the pool and removes the limit but does not trigger exploding dice. I need the ! to make the dice explode, but no matter what I try, adding it in makes the macro stop working. What am I doing wrong?
1450316277

Edited 1450316348
[...]d6 !>5 is telling the dice engine to explode on rolls of greater than or equal to five and then summing the rolls . The desired behaviour is, instead, exploding on 6 and then summing successes . To achieve the latter, the ! needs to be moved elsewhere (e.g. d6>5!sd or d6>5sd!).
1450317174

Edited 1450317265
If you'd like to amalgamate your standard and edge macros, here's a way to do so using an advanced Roll Query technique (I made a few other choice alterations, for your consideration). /me attempts to compile a Level ?{Level of sprite?|1} sprite with a dice pool of [[ ?{Compiling skill?|1} [Compiling skill] + ?{Resonance attribute?|1} [Resonance attribute] + [[?{Push the Limit?|No, 0|Yes, ?{Edge attribute?|1}} + ?{Modifiers?|0 - 0}]] [Modifiers] ]] and gets [[ (?{Compiling skill?} + ?{Resonance attribute?} + [[?{Push the Limit?} + ?{Modifiers?}]])d6>5kh?{Level of sprite?}sd![[ceil(?{Push the Limit?}/100) * 6]] - ?{Level of sprite?}d6>5sd ]] net hits! Macros—such as this one—which contain HTML entities risk becoming broken when not saved as Abilities.
Thanks for the assistance! I would love to combine the two macros like you suggest, but your version doesn't remove the limit on the number of hits when the user selects "Yes" when asked to Push the Limit. I tested it compiling a level 1 sprite with Compiling 6, Resonance 7, and Edge 4 and only got 1 net hit despite rolling several 6's and 5's.
Whoops; here you go! /me attempts to compile a Level ?{Level of sprite?|1} sprite with a dice pool of [[ ?{Compiling skill?|1} [Compiling skill] + ?{Resonance attribute?|1} [Resonance attribute] + [[?{Push the Limit?|No, 0|Yes, ?{Edge attribute?|1}} + ?{Modifiers?|0 - 0}]] [Modifiers] ]] and gets [[ (?{Compiling skill?} + ?{Resonance attribute?} + [[?{Push the Limit?} + ?{Modifiers?}]])d6>5kh[[?{Level of sprite?} + 100 * ?{Push the Limit?}]]sd![[ceil(?{Push the Limit?}/100) * 6]] - ?{Level of sprite?}d6>5sd ]] net hits!
Thank you very much! One final question: why does the macro need HTML entities? What would happen if they were replaced by the bar (I) and closing curly brace (})?
Since the ?{Edge attribute?} Roll Query is nested within the ?{Push the Limit?} Query, the parser would interpret the new vertical bar and closing brace as part of ?{Push the Limit?} and hence segment/close the Query, breaking both Queries.