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

[5e OGL] Universal Monster Knowledge Checks Macro

1608786115

Edited 1608787885
Over on ThinkDM I really liked this method of doing Monster Knowledge checks  where a player uses one of the INT skills depending on the monster type to determine "What does my character know about this monster?". Helps bridge the meta-gap (esp. with fellow GMs as players, who have run many of the same monsters themselves) and makes INT a more useful stat. Table below: I really like this mechanic, but found it a bit clunky to actually use as it meant finding the handout with this table to look up the skill for each creature type. So, of course, I wrote a macro. Credit to this original post  for the starting point with @Craig's universal skill check macro and @Kyle G's HTML escaping. Macro code below. You can paste this in and hit "Save changes", but once you do you CANNOT EDIT IT in Roll20 or it'll break (due to HTML escaping issues).  /me wonders "What do I know about this monster?" @{selected|wtype}&{template:simple} {{normal=1}} {{r2=[[0d20 ?{Skill |Aberration,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA] ]] |Beast,]]}} {{rname=^{nature-u}}} {{mod=[[ [[@{selected|nature_bonus}]][NATU] ]]}} {{r1=[[@{selected|d20}+[[@{selected|nature_bonus}]][NATU] ]] |Celestial,]]}} {{rname=^{religion-u}}} {{mod=[[ [[@{selected|religion_bonus}]][RELI] ]]}} {{r1=[[@{selected|d20}+[[@{selected|religion_bonus}]][RELI] ]] |Construct,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[@{selected|d20}+[[@{selected|history_bonus}]][HIST] ]] |Dragon,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[@{selected|d20}+[[@{selected|history_bonus}]][HIST] ]] |Elemental,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA] ]] |Fey,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA] ]] |Fiend,]]}} {{rname=^{religion-u}}} {{mod=[[ [[@{selected|religion_bonus}]][RELI] ]]}} {{r1=[[@{selected|d20}+[[@{selected|religion_bonus}]][RELI] ]] |Giant,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[@{selected|d20}+[[@{selected|history_bonus}]][HIST] ]] |Humanoid,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[@{selected|d20}+[[@{selected|history_bonus}]][HIST] ]] |Monstrosity,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA] ]] |Ooze,]]}} {{rname=^{nature-u}}} {{mod=[[ [[@{selected|nature_bonus}]][NATU] ]]}} {{r1=[[@{selected|d20}+[[@{selected|nature_bonus}]][NATU] ]] |Plant,]]}} {{rname=^{nature-u}}} {{mod=[[ [[@{selected|nature_bonus}]][NATU] ]]}} {{r1=[[@{selected|d20}+[[@{selected|nature_bonus}]][NATU] ]] |Undead,]]}} {{rname=^{religion-u}}} {{mod=[[ [[@{selected|religion_bonus}]][RELI] ]]}} {{r1=[[@{selected|d20}+[[@{selected|religion_bonus}]][RELI] ]] }}} {{global=@{selected|global_skill_mod}}} @{selected|charname_output} This will prompt the player for the monster type and auto-roll the corresponding skill check for the selected character. Note that I removed NPC support to simplify the macro (didn't seem relevant to have NPCs run them), and I'm not inclined to grant a character advantage/disadvantage for this type of check  and think it's more likely to cause confusion via accidental adv/disadv rolls, so I also set the roll type to normal. If you'd prefer to use the character sheet setting, you can change the first line to: @{selected|wtype}&{template:simple} @{selected|rtype} ?{Skill
The above macro handles the general/"Easy Mode" and rolls regardless of proficiency. For the "Hard Mode", the below version of the macro will roll 0 for characters without the required proficiency, and behaves the same as above otherwise. /me wonders "What do I know about this monster?" @{selected|wtype}&{template:simple} {{normal=1}} {{r2=[[0d20 ?{Skill |Aberration,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA])*(@{selected|arcana_prof}/@{selected|pb}) ]] |Beast,]]}} {{rname=^{nature-u}}} {{mod=[[ [[@{selected|nature_bonus}]][NATU] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|nature_bonus}]][NATU])*(@{selected|nature_prof}/@{selected|pb}) ]] |Celestial,]]}} {{rname=^{religion-u}}} {{mod=[[ [[@{selected|religion_bonus}]][RELI] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|religion_bonus}]][RELI])*(@{selected|religion_prof}/@{selected|pb}) ]] |Construct,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|history_bonus}]][HIST])*(@{selected|history_prof}/@{selected|pb}) ]] |Dragon,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|history_bonus}]][HIST])*(@{selected|history_prof}/@{selected|pb}) ]] |Elemental,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA])*(@{selected|arcana_prof}/@{selected|pb}) ]] |Fey,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA])*(@{selected|arcana_prof}/@{selected|pb}) ]] |Fiend,]]}} {{rname=^{religion-u}}} {{mod=[[ [[@{selected|religion_bonus}]][RELI] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|religion_bonus}]][RELI])*(@{selected|religion_prof}/@{selected|pb}) ]] |Giant,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|history_bonus}]][HIST])*(@{selected|history_prof}/@{selected|pb}) ]] |Humanoid,]]}} {{rname=^{history-u}}} {{mod=[[ [[@{selected|history_bonus}]][HIST] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|history_bonus}]][HIST])*(@{selected|history_prof}/@{selected|pb}) ]] |Monstrosity,]]}} {{rname=^{arcana-u}}} {{mod=[[ [[@{selected|arcana_bonus}]][ARCA] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|arcana_bonus}]][ARCA])*(@{selected|arcana_prof}/@{selected|pb}) ]] |Ooze,]]}} {{rname=^{nature-u}}} {{mod=[[ [[@{selected|nature_bonus}]][NATU] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|nature_bonus}]][NATU])*(@{selected|nature_prof}/@{selected|pb}) ]] |Plant,]]}} {{rname=^{nature-u}}} {{mod=[[ [[@{selected|nature_bonus}]][NATU] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|nature_bonus}]][NATU])*(@{selected|nature_prof}/@{selected|pb}) ]] |Undead,]]}} {{rname=^{religion-u}}} {{mod=[[ [[@{selected|religion_bonus}]][RELI] ]]}} {{r1=[[(@{selected|d20}+[[@{selected|religion_bonus}]][RELI])*(@{selected|religion_prof}/@{selected|pb}) ]] }}} {{global=@{selected|global_skill_mod}}} @{selected|charname_output}
1608792020
Oosh
Sheet Author
API Scripter
Ooooh, I like this. I'm getting one of those horrible idea things... I'll be back!
1608799034

Edited 1608799125
Oosh
Sheet Author
API Scripter
edit - this requires a template from the Roll20 5e sheet So here's a couple of macros the GM could use to provide the player with the results of their inspection. They're both @{select} macros, so GM needs an NPC selected when it's run. The first one is used after the player rolls one of the above macros, and the GM inputs the player and their roll: /w "?{Player|Alice|Bob}" &{template:mancerroll} {{title=Lore Check - @{selected|character_name}}} {{c1=[[{ceil(?{Player Roll|0}/5),7}kl1]]}} {{r1=?{Player Roll}}}{{option1=You know nothing}} {{option2=**Hit Dice:** @{selected|npc_hpformula}}} {{option3=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses}}} {{option4=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max})}} {{option5=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max}) **Resistances:** @{selected|npc_resistances}}} {{option6=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max}) **Resistances:** @{selected|npc_resistances} **Vulnerabilites:** @{selected|npc_vulnerabilities}}} {{option7=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max}) **Resistances:** @{selected|npc_resistances} **Vulnerabilites:** @{selected|npc_vulnerabilities} **All other info:** @{selected|character_name} is allergic to peanuts and cat hair.}} The second one is all GM, select an NPC then target click the player who wants to make the roll. This rolls for them, so may not be ideal. Also, any global modifiers switched on will cause the $[[0]] roll index to move: /emas @{target|player|character_name} wonders "What do I know about this monster?" /w "@{target|player|character_name}" &{template:mancerroll} {{title=Lore Check - @{selected|character_name}}} {{c1=[[{ceil([[?{Advantage?| Normal,@{target|player|d20}| Advantage,{@{target|player|d20},@{target|player|d20}}k1| Disadvantage,{@{target|player|d20},@{target|player|d20}}kl1} + (0@{target|player|global_skill_mod}) + ?{Skill| Aberration,@{target|player|arcana_bonus}[ARCA]| Beast,@{target|player|nature_bonus}[NATU]| Celestial,@{target|player|religion_bonus}[RELI]| Construct,@{target|player|history_bonus}[HIST]| |Dragon,@{target|player|history_bonus}[HIST]| Elemental,@{target|player|arcana_bonus}[ARCA]| Fey,@{target|player|arcana_bonus}[ARCA]| Fiend,@{target|player|religion_bonus}[RELI]| Giant,@{target|player|history_bonus}[HIST]| Humanoid,@{target|player|history_bonus}[HIST]| Monstrosity,@{target|player|arcana_bonus}[ARCA]| Ooze,@{target|player|nature_bonus}[NATU]| Plant,@{target|player|nature_bonus}]][NATU]| Undead,@{target|player|religion_bonus}[RELI]}}]]/5),7}kl1]]}} {{r1=$[[0]]}} {{option1=You know nothing}} {{option2=**Hit Dice:** @{selected|npc_hpformula}}} {{option3=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses}}} {{option4=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max})}} {{option5=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max}) **Resistances:** @{selected|npc_resistances}}} {{option6=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max}) **Resistances:** @{selected|npc_resistances} **Vulnerabilites:** @{selected|npc_vulnerabilities}}} {{option7=**Hit Dice:** @{selected|npc_hpformula} **Senses:** @{selected|npc_senses} **Attacks:** [@{selected|repeating_npcaction_$0_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$0_name|max}) [@{selected|repeating_npcaction_$1_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$1_name|max}) [@{selected|repeating_npcaction_$2_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$2_name|max}) [@{selected|repeating_npcaction_$3_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$3_name|max}) [@{selected|repeating_npcaction_$4_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$4_name|max}) [@{selected|repeating_npcaction_$5_name} ](#" style="display:none;display:inline@{selected|repeating_npcaction_$5_name|max}) **Resistances:** @{selected|npc_resistances} **Vulnerabilites:** @{selected|npc_vulnerabilities} **All other info:** @{selected|character_name} is allergic to peanuts and cat hair.}} I'm liking this idea - nice one, Ryan.