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

For Our Druid Friends!

Hello! I've been playing with macros for my druid and came up with a clever way to run the stats for different wildshape forms that is flexible and dynamic. Here's the mess of a macro: /w gm &{template:default}{{name=**Wildshape Creature Name**}}{{HP=@{Creature Name|HP}}}{{AC=@{Creature Name|npc_ac} (@{Creature Name|npc_actype})}}{{Speed=@{Creature Name|npc_speed}}}{{STR=@{Creature Name|strength_base} (+@{Creature Name|strength_mod})}}{{DEX=@{Creature Name|dexterity_base} (+@{Creature Name|dexterity_mod})}}{{CON=@{Creature Name|constitution_base} (+@{Creature Name|constitution_mod})}}{{INT=@{Character Name|intelligence} (+@{Character Name|intelligence_mod}) (+@{Character Name|pb})}}{{WIS=@{Character Name|wisdom} (+@{Character Name|wisdom_mod}) (+@{Character Name|pb})}}{{CHA=@{Character Name|charisma} (+@{Character Name|charisma_mod})}}{{Senses=@{Creature Name|npc_senses}}}{{@{Creature Name|repeating_npctrait_$0_name}=@{Creature Name|repeating_npctrait_$0_description}}} Basically... It fetches the stats from the beast you enter in for <creature name> (you'll have to enter a min health within the attributes page of the creature... I haven't figured out how to point the macro at the max health column...) and also the applicable stats from the character you enter for <character name>. Pop this into a word document, find and replace all with what you need, and you're in business. If the creature has multiple traits, then copy/paste the last line and change the "$0" to "$1" etc.  I hope someone finds this useful!
Here's the output for a druid looking to wildshape into a brown bear:
1589397269
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
You could make this a little more automatic by replacing all instances of "Character Name" with "selected", and all instances of "Creature Name" with "target". If you became a bear, just have the GM pull a bear out of the compendium and put it on the VTT. Run the macro with your PC token selected and click on the bear when prompted. This way, you wouldn't need to edit at all.
That is definitely the truly automated solution. The reason I went with this is so I could nest different iterations of this (along with another one that pulls out attacks) and have it all attached to one sheet/token. That said, I know you're a guru. Do you have a way to target the max column for macros? Or, for HP, an I already going to have to fill in that first column?
1589408901

Edited 1589408911
GiGs
Pro
Sheet Author
API Scripter
Just add |max to the attribute reference, like @{Creature Name|HP|max}
Of course it's that easy!! Thank you!  I'm still new to macros and running games on roll20. There's so many tricks I've picked up that are super awesome and many many more for me to learn. 
This is really cool, I had a good time making a master Wild Shape macro that dropped command buttons into the chat to execute an individual macro for each of my player's druid shapes that I had already built a Rollable Token for.  I also changed {{HP=@{Creature Name|HP}}} to {{HP=@{Creature Name|HP|max}}}. Just in case anyone runs into the same issue I did with getting some of the animals to parse properly, make sure you've got at least one token for each animal in the game somewhere.  I was having a bugger of a time getting the stats to pull for Cat and Spider, until I figured that one out.  It seemed to work fine for some animals anyway, but it also wouldn't pull the trait descriptions for any of them until I had opened that animal's compendium entry at least once.  Presumably a caching issue.
Yup! That's totally a thing. Even if the creature is archived, it will still fetch the appropriate data as long as it is in your journal...somewhere. I have done a similar thing with a master list of wildshapes and wildshape attacks for this druid (I'm running it as an NPC so it's going to have a limited scope in combat, which is good lol). So, the statblocks get their own individual macros with a master macro to fetch them as a clickable table, then all of the attacks are just one big nested macro to click the appropriate attack. Should make running this character pretty simple overall. 
Actually... While I have the attention of a few people that are better at macros than me... I've got this macro as well for my druid: /w gm &{template:default}{{name=**Wildshape Attacks**}}{{Brown Bear=[Multiattack](~Brown Bear|repeating_npcaction_$0_npc_action) | [Bite](~Brown Bear|repeating_npcaction_$1_npc_action)[Claws](~Brown Bear|repeating_npcaction_$2_npc_action)}} I'm wondering... is there a way to make it so [Multiattack] and [Bite] etc. autofill? I'm assuming it ends up being similar to how I pulled the trait name with my original macro... but I haven't experimented with that...yet... Any help would be great!    
1589472752

Edited 1589472870
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
There sure is. Use an attribute call in the button name. Your macro would become: /w gm &{template:default}{{name=**Wildshape Attacks**}}{{Brown Bear=[@{Brown Bear|repeating_npcaction_$0_name}](~Brown Bear|repeating_npcaction_$0_npc_action) | [@{Brown Bear|repeating_npcaction_$1_name}](~Brown Bear|repeating_npcaction_$1_npc_action) | [@{Brown Bear|repeating_npcaction_$2_name}](~Brown Bear|repeating_npcaction_$2_npc_action)}} Actually, you could make it even more automatic, so long as the player has the wild shaped token selected.: /w gm &{template:default}{{name=**Wildshape Attacks**}}{{@{selected|character_name}=[@{selected|repeating_npcaction_$0_name}](~selected|repeating_npcaction_$0_npc_action) | [@{selected|repeating_npcaction_$1_name}](~selected|repeating_npcaction_$1_npc_action) | [@{selected|repeating_npcaction_$2_name}](~selected|repeating_npcaction_$2_npc_action)}} This could be dropped as written into any npc with three actions. You could create a master macro for each number of actions to drop in where needed. Or you could make one with (say) 6 actions, and add " &{noerror}" to the end of your macro (outside of the roll template code but on the same  line). You would get some garbage button names, but it would suppress any error warnings. For more info and a useful macro check out this: NPC Statblock Chat Menu for D&D 5e sheet — No API required!
1589473555

Edited 1589474239
I was just coming back to say I worked it out! Yeah, I'm definitely going to have to create a fully automatic version of this at some point. It's just so darn useful. For now, my simplified version for one npc is going to be sufficient. I will definitely be back to pilfer the above macro though! That said... this is going to change how I approach my npc template.This is going to be...so...much...easier.