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

GroupCheck for Mob Attacks?

As usual, I'm late to the party, and just found GroupCheck - really useful script!  Now, I'd like to be able to use the same method for Mob attacks - grab a handful of tokens, choose an attack, and hit a button to output their results to chat.  Does GroupCheck support this functionality as well, or can it be configured to do so?  If not, is there another script out there that could do this?  I'm using the 5e Shaped sheet.
I've figured out a workaround that rolls a Melee or Missile attack for me.  I added a new two new check commands (one for Melee, one for Missile) using the --import function.  Here's the code for them, if anyone's interested (these are for the 5e Shaped sheet, by the way): !group-check-config --add { "Melee" : { "name" : "Melee Attack", "formula" : "\[d20 + \at{strength_mod} + \at{pb} \]"} } !group-check-config --add { "Missile" : { "name" : "Missile Attack", "formula" : "\[d20 + \at{dexterity_mod} + \at{pb} \]"} } I can't think of how to do a Finesse weapon attack - so, for example, Goblins will have to roll a "Missile Attack" when they're actually attacking with scimitars, but it will work for my purposes for now.  If someone can figure out how to add a Finesse attack, I'd be glad to have the code for it. EDIT: By the way, when I say "I figured out," what I actually mean is "I read Jakob's excellent documentation for the script!"  Thanks,  Jakob !
1524471116

Edited 1524471438
Jakob
Sheet Author
API Scripter
Glad my documentation was helpful. perhaps also look into the --multi option for when you have a bunch of monsters all of which have Multiattack. Regarding Finesse, I think the shaped sheet actually has a finesse_mod attribute, which should take care of your finesse needs. I don't see a much better solution. You could make generic macros to use attack $0, attack $1, etc., but since you don't know what those are until you click even more buttons, that doesn't seem more helpful than a generic attack macro like the one you made. GroupCheck should have an option change the title dynamically though, so it's possible to have it say "Scimitar" instead of "Finesse Attack". I'll implement that at some point... If you want to do the same for damage: actually extracting the damage from the sheet seems to be impossible without modding the script due to the way the damage formula is set up. On the other hand, if you just want to mass roll damage for a die that you know somehow, that's easily set up: !group-check-config --add { "Strength Damage" : { "name" : "Damage", "formula" : "\[INPUT_0 + \at{strength_mod}\]"} } (similarly for the other two) and then have a macro that includes --input: !group-check --?{Attribute|Strength,Dexterity,Finesse} Damage --input ?{Damage dice}
Thanks!  Another thing I thought of was rolling with advantage or disadvantage. I haven't been able to figure out how to configure the roll settings. If like to use the option to follow the sheet settings, but I can't figure out the syntax of the configuration code. 
1524472924
Jakob
Sheet Author
API Scripter
Gozer the Gozerian said: Thanks!  Another thing I thought of was rolling with advantage or disadvantage. I haven't been able to figure out how to configure the roll settings. If like to use the option to follow the sheet settings, but I can't figure out the syntax of the configuration code.  What you're looking for is the option --ro rollsetting, or if you want to configure it as the default, !group-check-config --set ro rollsetting
Jakob said: If you want to do the same for damage: actually extracting the damage from the sheet seems to be impossible without modding the script due to the way the damage formula is set up. On the other hand, if you just want to mass roll damage for a die that you know somehow, that's easily set up: !group-check-config --add { "Strength Damage" : { "name" : "Damage", "formula" : "\[INPUT_0 + \at{strength_mod}\]"} } (similarly for the other two) and then have a macro that includes --input: !group-check --?{Attribute|Strength|Dexterity|Finesse} Damage --input ?{Damage dice} So, for the above damage rolling macro, would that make that same roll for the number of times each one hit?  Or just roll a total number of dice that I give it?  It seems like there'd need to be a DC involved (like with the Group Save macro) in order to roll only for successful hits.
1524500650
Jakob
Sheet Author
API Scripter
Yes, this just rolls damage for everyone. To do something like "only roll damage for those who hit", two things are needed. An --ids option for GroupCheck to target a specific list of tokens instead of all selected tokens (easy). A helper script that runs GroupCheck for precisely those tokens which manage to hit a certain threshold. Then the workflow would be: Call GroupCheck with --button or --send to get results to helper script. Helper script compares results to threshold. Helper scripts calls GroupCheck with --ids to perform damage rolls for tokens whose results meet the threshold.
Yeah, that's beyond me for sure.  I think I could manage getting it to display a "vs DC" number, since I'd just be copying that part of the code from your example GroupCheck macro, but the writing of a helper script is out of my jurisdiction.  :)
1524558973
Jakob
Sheet Author
API Scripter
Gozer the Gozerian said: Yeah, that's beyond me for sure.  I think I could manage getting it to display a "vs DC" number, since I'd just be copying that part of the code from your example GroupCheck macro, but the writing of a helper script is out of my jurisdiction.  :) I've added a --title and --ids option to GroupCheck 1.9, both were pretty much one-liners apart from the documentation (which is more work than the actual script!). Maybe if I find the time I'll write the helper script at some point, it should be simple enough.