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

How to roll multiple Exploding die, keep results separate?

September 03 (9 years ago)

Edited September 03 (9 years ago)
In Savage Worlds, it's common for the GM to roll exploding die for entire groups of mooks. All of the mooks have the same die value, but since they are obviously separate mooks you don't add all the dice together: MookA has a d4 that can explode, MookB has a d4 that can explode, etc. 

How do I write a macro that allows me to specify "roll a bunch of exploding die for a bunch of mooks" and keep all their results separate?

In other words, if I have 20 mooks that all have d4s, I want a macro that rolls a bunch of d4s that all can explode, and each mook's result is reported separately. As it stands now I have to copy paste [[d4!]] twenty times into the chat. 
September 03 (9 years ago)

Edited September 03 (9 years ago)
This is not elegant, but it may do what you'd like.
September 03 (9 years ago)
Hahhaa, yeah, definitely not elegant. Hopefully my poor old computer can handle this macro, otherwise I may just have to go back to copypasting [[1d4!]] twenty times. 

Let me see if I'm understanding this right...

&{template:default} {{name=Mooks (?{Roll|d4!})}} ?{How many mooks?|
1, {{Mook #1=[[?{Roll}]]}}|
2, {{Mook #1=[[?{Roll}]]}} {{Mook #2=[[?{Roll}]]}}
Would allow typing in a die roll (d4!, d6!, d8!, etc; can also include modifiers such as 1d4!+2) and then selecting for the number of mooks. Assuming I chose a value from 1-2 (or 1-25 on the github example), it will roll for said number of mooks. However, if I choose a number outside the template's range it will break.
September 03 (9 years ago)

Edited September 03 (9 years ago)

Toboe L. said:

Would allow typing in a die roll (d4!, d6!, d8!, etc; can also include modifiers such as 1d4!+2) and then selecting for the number of mooks.

That's the gist of it.

Toboe L. said:

However, if I choose a number outside the template's range it will break.

It's impossible to select a number that's not on the roll query's drop-down list. You could, of course, always input lines for more mooks into the query if desired.
September 03 (9 years ago)
It's entirely possible that there could a hundred mooks on the field (ship battles, for instance)...

Then again I can just do them in batches of 25. :P

Ah well, I was hoping there was some way of just using some nifty configuration dice commands out from the Dice Reference, but in the meantime I hope my old computer can handle this massive macro. Until Roll20 comes up with a more succinct way, then. Thanks, Silvyre!
September 03 (9 years ago)

Edited September 03 (9 years ago)
20d4!!
The !! operator acts like !, but treats each "explosion" as a single die roll.

Edit: You'll probably want to do "/r 20d4!!" rather than "[[20d4!!]]" so that the individual rolls all display in chat.
September 03 (9 years ago)
Sadly, the !! operator still adds all the dice up. I don't want to add all the dice together, just roll dice for separate mooks that happen to all have the same dice value. 

So ten mooks, all with a d4, should spit out results looking like: 3 1 2 4+1=5 2 2 1 4+4+2=10 3 1

Because of the way Raises work in Savage Worlds, I can't just use the Successes model because a 4 and a 10 are two different types of Success, so I need to know what the actual raw final number result is.

Either I hit a button on a character sheet ten times (which, with the way the 3D dice roller is default set up now, means I would have to do the click-and-drag thing ten times; normally I like the click-and-drag, but not in this particular case), or I type into the chat
[[1d4!]] [[1d4!]] [[1d4!]] [[1d4!]] [[1d4!]] [[1d4!]] [[1d4!]] [[1d4!]] [[1d4!]] [[1d4!]] 
September 04 (9 years ago)
This is what I came up with for you, it works but isn't perfect.

MOOKS

/em rolls for some mooks
Number of Mooks : ?{Number of Mooks|1}
Trait Die : d?{Trait Die|6}
TN : ?{Target Number|4}

/r {?{Number of Mooks|1}d?{Trait Die|6}!!}>?{Target Number|4}

___________________________________________

This will output the dice so you can see the individual results in chat with the !! letting you see it per mook.  It also calculates and tells you the number of mooks that succeed against the target number.

The issues, you have to look for raises yourself, also and more importantly the modifier to the roll has to be calculated into the target number.

For example if the mooks are trying an unskilled check (normally a d4-2) you would need to have them roll d4 each and increase the TN to 6 instead of using the default 4.

Same thing would go if they have a trait like d12+1, you enter a d12 as the trait die and would have to reduce the TN by 1 to a 3, or subtract 1 from the targets parry.

Now these issues will probably pop up rarely as most things don't try unskilled tasks, and most mooks don't have traits valued at higher than a d12.
September 04 (9 years ago)

Edited September 04 (9 years ago)
A suggested expansion:
/r (?{Number of Mooks|1})?{Trait Die|d4|d6|d8|d12}!!>?{Target Number|4}cs>?{Target Number}sd
September 04 (9 years ago)
My brain is to tired to work it out, Silvyre, but couldn't that be modified so the the fumble is set to anything lower than the tn, and the cs is anything 4 or more greater than the tn? So that misses, hits, and raises are all easy to see at a glance... Hope that makes sense. Gn guys.
September 04 (9 years ago)

Edited September 04 (9 years ago)

Dalton H. said:

My brain is to tired to work it out, Silvyre, but couldn't that be modified so the the fumble is set to anything lower than the tn, and the cs is anything 4 or more greater than the tn?

Sure. (I admittedly know next to nothing about the system in question.)
/r (?{Number of Mooks|1})?{Trait Die|d4|d6|d8|d12}!!>?{Target Number|4}cs>[[?{Target Number} + 4]]cf<[[?{Target Number} - 1]]sd
September 04 (9 years ago)

Edited September 04 (9 years ago)
Sorry Silvyre, both of those methods still adds up all the die values (so 20d4) which in this case is irrelevant information. 

In the case of Savage Worlds, a roll that matches or exceeds the Target Number is a success. If it is an increment of 4 or higher than the Target Number, it's a Success with a Raise, meaning you've done exceptionally well, with the potential of successive Raises with more increments of 4 over the Target Number. So against a Target Number of 4, a roll of 3, 5, 8, and 14 would mean a (3) failure, a (5) Success, a (8) Success with one Raise, and a (14) Success with two Raises. 

John R's method works a bit better for me since it'll tell me at least how many basic successes there are, and I can look for the Raises myself. Unfortunately it does mean I'll have to incorporate modifiers into the Target Number, so it'll depend on my mindset for the roll on whether I want to use the Silvyre's huge rollTemplate version or John R's version. To be honest I'm more used to the "roll the dice with modifiers, then compare with the Target Number" mindset than "roll the dice, modify the Target Number to account for modifiers" mindset. 
September 04 (9 years ago)

Edited September 04 (9 years ago)
With only Marcos as your tools, I don't think you are going to get what you want really. Doing something like this with a API call would be far easier. While there would be extra die rolls, you could create a macro that rolls say five rolls. Then if you have say 20 mooks, you just run that macro 4 times. If you had 13 mooks, you would run it 3 times and ignore the last 2 results. Not perfect but it has to be better than pasting 20 rolls into the chat window.

This is really one of the use cases where loops in Macros would be useful. A feature that Macros will not be getting due to the availability API. 
September 04 (9 years ago)
It doesn't seem like it should require API; after all, it's already rolling multiple dice. Somehow there should be a way to "macroify" [[1d4!]] a user-prompt-specified number of times. Well, other than Silvyre's huge rollTemplate method. 

And after browsing through the API wiki, assuming that I did try upgrading the account just to make this one function, well, there's no obvious "roll dice" function so it'd take me longer to figure out how to write an API script than it is to just type [[1d4!]] twenty times. :/
September 04 (9 years ago)
DK Heinrich
Marketplace Creator
Sheet Author
look at powercards script - I think you could use complex conditionals and roll query combined to do it. Maybe. 
September 04 (9 years ago)
!power --name|Mooks --Mook#?{How many mooks?|1}|[[?{Roll|d4!}]]
That's about it.
September 04 (9 years ago)
Ha! I knew there had to be a way! Too bad using PowerCards looks like super-overkill when all I want is only one of its abilities, but hey, at least it means I can use its other abilities to make things look prettier. Well, that and I'd have to upgrade to a Pro account...

*marks down another "PRO" in the "one day I will actually upgrade roll20 account" list