Skip to content

Instantly share code, notes, and snippets.

@AndruC
Last active July 9, 2024 20:08
Show Gist options
  • Save AndruC/454c3242917050a0dadd44956dade699 to your computer and use it in GitHub Desktop.
Save AndruC/454c3242917050a0dadd44956dade699 to your computer and use it in GitHub Desktop.
Macros that I use to improve my D&D games

Macro Must-Haves

These are my must-have macros for running games online. I make full use of the compendium, which gives these macros access to common actions and rolls, saving me time.

Remember to add /w gm or @{selected|wtype} to hide sensitive info from your players. WTYPE is an attribute used in the 5th Edition OGL character sheet, a prerequisite for most of these.

Here's what my bar looks like.

Macro Quickbar

Reference

Quick Reference. You can link to any entry in the Journal. Each of these are clickable. Internal links link to another Roll20 document.

&{template:default} {{name=Quick Lookup}} {{Internal=[Handbook 📗](http://journal.roll20.net/handout/-KoL8P4tMobLWQalET-F)}} {{External=[Conditions  🌀](http://open5e.com/gameplay-mechanics/conditions.html)
[Spells  📓](http://open5e.com/spellcasting/by-class/index.html) 
[Magic Items  🔮](http://open5e.com/equipment/magic-items/index.html)}}

Example

Reference


Status Report. Fill out PC names manually, replacing PC1 with their Character name, as written in Journal.

&{template:default} {{name=Health Check}} {{PC 1= AC @{PC1|ac} - HP @{PC1|hp} / @{PC1|hp|max}}} ...

Example

Status Report

Token Macros

These macros require a token to be selected. They are intended to work with either PC or NPC tokens.

Roll Initiative (target). Check "Show as Token Action" and share with your players to get the most out of this one.

%{selected|npc_init}

Roll Ability Check (prompt)

@{selected|wtype}&{template:default} {{name=Ability Score for @{selected|character_name}}} {{?{Ability Score
  | Strength, Strength +@{selected|strength_mod}@{selected|jack_bonus}=[[@{selected|d20}+@{selected|strength_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|strength_mod}@{selected|jack_bonus}]]
  | Dexterity, Dexterity +@{selected|dexterity_mod}@{selected|jack_bonus}=[[@{selected|d20}+@{selected|dexterity_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|dexterity_mod}@{selected|jack_bonus}]]
  | Constitution, Constitution +@{selected|constitution_mod}@{selected|jack_bonus}=[[@{selected|d20}+@{selected|constitution_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|constitution_mod}@{selected|jack_bonus}]]
  | Intelligence, Intelligence +@{selected|intelligence_mod}@{selected|jack_bonus}=[[@{selected|d20}+@{selected|intelligence_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|intelligence_mod}@{selected|jack_bonus}]]
  | Wisdom, Wisdom +@{selected|wisdom_mod}@{selected|jack_bonus}=[[@{selected|d20}+@{selected|wisdom_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|wisdom_mod}@{selected|jack_bonus}]]
  | Charisma, Charisma +@{selected|charisma_mod}@{selected|jack_bonus}=[[@{selected|d20}+@{selected|charisma_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|charisma_mod}@{selected|jack_bonus}]]
}}}

Roll Ability Check (all)

&{template:default} {{name=Ability Checks}} {{Strength = [[@{selected|d20}+@{selected|strength_mod}@{selected|jack_bonus}]] -  [[@{selected|d20}+@{selected|strength_mod}@{selected|jack_bonus}]]}} {{Dexterity= [[@{selected|d20}+@{selected|dexterity_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|dexterity_mod}@{selected|jack_bonus}]]}} {{Constitution= [[@{selected|d20}+@{selected|constitution_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|constitution_mod}@{selected|jack_bonus}]]}} {{Intelligence= [[@{selected|d20}+@{selected|intelligence_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|intelligence_mod}@{selected|jack_bonus}]]}} {{Wisdom= [[@{selected|d20}+@{selected|wisdom_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|wisdom_mod}@{selected|jack_bonus}]]}} {{Charisma= [[@{selected|d20}+@{selected|charisma_mod}@{selected|jack_bonus}]] - [[@{selected|d20}+@{selected|charisma_mod}@{selected|jack_bonus}]]}}

Example

Ability Checks


Roll Skills (prompt for 1)

@{selected|wtype}&{template:default} {{name=Skill Check}} {{?{Skill
  | Acrobatics, Acrobatics =[[@{selected|d20}+[[(@{selected|acrobatics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_acrobatics}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|acrobatics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_acrobatics}*@{selected|npc})]]]]
  | Animal Handling, Animal Handling =[[@{selected|d20}+[[(@{selected|animal_handling_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_animal_handling}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|animal_handling_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_animal_handling}*@{selected|npc})]]]]
  | Arcana, Arcana=[[@{selected|d20}+[[(@{selected|arcana_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_arcana}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|arcana_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_arcana}*@{selected|npc})]]]]
  | Athletics, Athletics=[[@{selected|d20}+[[(@{selected|athletics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_athletics}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|athletics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_athletics}*@{selected|npc})]]]]
  | Decpetion, Decpetion=[[@{selected|d20}+[[(@{selected|deception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_deception}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|deception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_deception}*@{selected|npc})]]]]
  | History, History=[[@{selected|d20}+[[(@{selected|history_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_history}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|history_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_history}*@{selected|npc})]]]]
  | Insight, Insight=[[@{selected|d20}+[[(@{selected|insight_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_insight}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|insight_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_insight}*@{selected|npc})]]]]
  | Intimidation, Intimidation=[[@{selected|d20}+[[(@{selected|intimidation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_intimidation}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|intimidation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_intimidation}*@{selected|npc})]]]]
  | Investigation, Investigation=[[@{selected|d20}+[[(@{selected|investigation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_investigation}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|investigation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_investigation}*@{selected|npc})]]]]
  | Medicine, Medicine=[[@{selected|d20}+[[(@{selected|medicine_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_medicine}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|medicine_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_medicine}*@{selected|npc})]]]]
  | Nature, Nature=[[@{selected|d20}+[[(@{selected|nature_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_nature}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|nature_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_nature}*@{selected|npc})]]]]
  | Perception, Perception=[[@{selected|d20}+[[(@{selected|perception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_perception}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|perception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_perception}*@{selected|npc})]]]]
  | Performance, Performance=[[@{selected|d20}+[[(@{selected|performance_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_performance}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|performance_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_performance}*@{selected|npc})]]]]
  | Persuasion, Persuasion=[[@{selected|d20}+[[(@{selected|persuasion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_persuasion}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|persuasion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_persuasion}*@{selected|npc})]]]]
  | Religion, Religion=[[@{selected|d20}+[[(@{selected|religion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_religion}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|religion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_religion}*@{selected|npc})]]]]
  | Sleight of Hand, Sleight of Hand=[[@{selected|d20}+[[(@{selected|sleight_of_hand_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_sleight_of_hand}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|sleight_of_hand_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_sleight_of_hand}*@{selected|npc})]]]]
  | Stealth, Stealth=[[@{selected|d20}+[[(@{selected|stealth_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_stealth}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|stealth_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_stealth}*@{selected|npc})]]]]
  | Survival, Survival=[[@{selected|d20}+[[(@{selected|survival_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_survival}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|survival_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_survival}*@{selected|npc})]]]]
}}}

Roll Skills (all)

&{template:default} {{name= @{selected|character_name} Skills}}  {{Acrobatics=[[@{selected|d20}+(@{selected|acrobatics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_acrobatics}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|acrobatics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_acrobatics}*@{selected|npc})]]}} {{Animal Handling=[[@{selected|d20}+(@{selected|animal_handling_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_animal_handling}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|animal_handling_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_animal_handling}*@{selected|npc})]]}} {{Arcana=[[@{selected|d20}+(@{selected|arcana_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_arcana}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|arcana_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_arcana}*@{selected|npc})]]}} {{Athletics=[[@{selected|d20}+(@{selected|athletics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_athletics}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|athletics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_athletics}*@{selected|npc})]]}} {{Deception=[[@{selected|d20}+(@{selected|deception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_deception}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|deception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_deception}*@{selected|npc})]]}} {{History=[[@{selected|d20}+(@{selected|history_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_history}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|history_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_history}*@{selected|npc})]]}} {{Insight=[[@{selected|d20}+(@{selected|insight_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_insight}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|insight_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_insight}*@{selected|npc})]]}} {{Intimidation=[[@{selected|d20}+(@{selected|intimidation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_intimidation}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|intimidation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_intimidation}*@{selected|npc})]]}} {{Investigation=[[@{selected|d20}+(@{selected|investigation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_investigation}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|investigation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_investigation}*@{selected|npc})]]}} {{Medicine=[[@{selected|d20}+(@{selected|medicine_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_medicine}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|medicine_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_medicine}*@{selected|npc})]]}} {{Nature=[[@{selected|d20}+(@{selected|nature_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_nature}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|nature_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_nature}*@{selected|npc})]]}} {{Perception=[[@{selected|d20}+(@{selected|perception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_perception}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|perception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_perception}*@{selected|npc})]]}} {{Performance=[[@{selected|d20}+(@{selected|performance_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_performance}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|performance_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_performance}*@{selected|npc})]]}} {{Persuasion=[[@{selected|d20}+(@{selected|persuasion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_persuasion}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|persuasion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_persuasion}*@{selected|npc})]]}} {{Religion=[[@{selected|d20}+(@{selected|religion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_religion}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|religion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_religion}*@{selected|npc})]]}} {{Sleight of Hand=[[@{selected|d20}+(@{selected|sleight_of_hand_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_sleight_of_hand}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|sleight_of_hand_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_sleight_of_hand}*@{selected|npc})]]}} {{Stealth=[[@{selected|d20}+(@{selected|stealth_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_stealth}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|stealth_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_stealth}*@{selected|npc})]]}} {{Survival=[[@{selected|d20}+(@{selected|survival_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_survival}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|survival_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_survival}*@{selected|npc})]]}}

Example

Roll Skills


Roll Saving Throws (prompt)

@{selected|wtype}&{template:default} {{name=Saving Throw for @{selected|character_name}}} {{?{Saving Throw
  | Strength, Strength= [[@{selected|d20}+[[(@{selected|strength_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_str_save}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|strength_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_str_save}*@{selected|npc})]]]]
  | Dexterity, Dexterity= [[@{selected|d20}+[[(@{selected|dexterity_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_dex_save}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|dexterity_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_dex_save}*@{selected|npc})]]]]
  | Constitution, Constitution= [[@{selected|d20}+[[(@{selected|constitution_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_con_save}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|constitution_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_con_save}*@{selected|npc})]]]]
  | Intelligence, Intelligence= [[@{selected|d20}+[[(@{selected|intelligence_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_int_save}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|intelligence_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_int_save}*@{selected|npc})]]]]
  | Wisdom, Wisdom= [[@{selected|d20}+[[(@{selected|wisdom_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_wis_save}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|wisdom_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_wis_save}*@{selected|npc})]]]]
  | Charisma, Charisma= [[@{selected|d20}+[[(@{selected|charisma_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_cha_save}*@{selected|npc})]]]] - [[@{selected|d20}+[[(@{selected|charisma_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_cha_save}*@{selected|npc})]]]]
}}}

Roll Saving Throws (all)

&{template:default} {{name= @{selected|character_name} Saving Throws}}  {{Str=[[@{selected|d20}+(@{selected|strength_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_str_save}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|strength_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_str_save}*@{selected|npc})]]}} {{Dex=[[@{selected|d20}+(@{selected|dexterity_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_dex_save}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|dexterity_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_dex_save}*@{selected|npc})]]}} {{Con=[[@{selected|d20}+(@{selected|constitution_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_con_save}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|constitution_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_con_save}*@{selected|npc})]]}} {{Int=[[@{selected|d20}+(@{selected|intelligence_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_int_save}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|intelligence_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_int_save}*@{selected|npc})]]}} {{Wis=[[@{selected|d20}+(@{selected|wisdom_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_wis_save}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|wisdom_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_wis_save}*@{selected|npc})]]}} {{Cha=[[@{selected|d20}+(@{selected|charisma_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_cha_save}*@{selected|npc})]] | [[@{selected|d20}+(@{selected|charisma_save_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.1)))+(@{selected|npc_cha_save}*@{selected|npc})]]}}    

Example

Saves


Show Miniblock. This will roll the HD in case you want to generate health for your creatures.

&{template:default} {{name=Stats}} {{Armor Class= @{selected|npc_AC} (@{selected|npc_actype})}} {{Hit Dice= @{selected|npc_hpformula} | [[@{selected|npc_hpformula}]]}} {{Speed= @{selected|npc_speed}}} {{Senses=@{selected|npc_senses}}}

Example

Statblock


Show Spellbook (extendible). These are clickable. Make sure you load up your token by dragging spells from the Compendium to their statblock or character sheet.

&{template:default}{{name=@{selected|character_name} Spellcasting
}}{{ Spell DC @{selected|spell_save_dc} = @{selected|spell_attack_bonus} to hit with spell attacks
}}{{ Cantrips = [@{selected|repeating_spell-cantrip_$0_spellname}](~selected|repeating_spell-cantrip_$0_spell)
}}{{ 1st (SLOTS) = [@{selected|repeating_spell-1_$0_spellname}](~selected|repeating_spell-1_$0_spell)
}}{{ 2nd (SLOTS) = [@{selected|repeating_spell-2_$0_spellname}](~selected|repeating_spell-2_$0_spell)
}}{{ 3rd (SLOTS) = [@{selected|repeating_spell-3_$0_spellname}](~selected|repeating_spell-3_$0_spell)
}}

Example

Spellbook


Compendium NPCs

It's recommended to use the following as Token Actions. You can increment the $0 variable to reference additional features. Remember that Multiattack is an action, not a trait.

NPC Action

%{selected|repeating_npcaction_$0_npc_action}

NPC Traits

@{selected|wtype}&{template:npcaction} {{name=@{selected|npc_name}}} {{rname=@{selected|repeating_npctrait_$0_name}}} {{description=@{selected|repeating_npctrait_$0_desc}}}

NPC Reaction

@{selected|wtype}&{template:npcaction} {{name=@{selected|npc_name}}} {{rname=@{selected|repeating_npcreaction_$0_name}}} {{description=@{selected|repeating_npcreaction_$0_desc} }}

Example

TokenMacros

Action


NPC Action Table. These are clickable and roll dice as shown above.

@{selected|wtype}&{template:default}{{name=@{selected|character_name} Actions}} {{ Actions
=[@{selected|repeating_npcaction_$0_name}](~selected|repeating_npcaction_$0_npc_action)
}}

Example

Actions

@{selected|wtype}&{template:npcaction} {{rname=@{selected|character_name}}} {{name=Actions}} {{description=[@{selected|repeating_npcaction_$0_name}](~selected|repeating_npcaction_$0_npc_action)}}

Example

Different Actions


NPC Perception

@{selected|wtype}&{template:npc} {{name=@{selected|npc_name}}} {{rname=Perception}} {{mod=@{selected|npc_perception}}} {{r1=[[@{selected|d20}+@{selected|npc_perception}]]}} @{selected|rtype}+@{selected|npc_perception}]]}}

Requires TokenMod.

Minionify (target). Sets up bars, hides the name, and shows a health bar for the DM only.

!token-mod {{
  --off showname showplayers_bar3
  --on showplayers_name
  --set bar2_value|@{selected|npc_ac} bar3_value|@{selected|hp|max} bar3_max|@{selected|hp|max} bar3_link|
  --set layers|objects
}}

Reveal NPC (target). Same as above but reveals the name to players.

!token-mod {{
  --on showname showplayers_name showplayers_bar3
  --set bar2_link|@{selected|npc_ac} bar2_link|
  --set bar3_value|@{selected|hp|max} bar3_max|@{selected|hp|max} bar3_link| 
  --set layers|objects
}}

Set PC token. This ensures all players can see name and health, and gives everyone a quick reference to Level, AC, and HP. HP is displayed on bar because bar 3 stays inside the token's square.

!token-mod {{
  --on showname showplayers_name  showplayers_bar1 showplayers_bar2 showplayers_bar3
  --on showplayers_aura1 showplayers_aura2
  --set bar1_link|level bar2_link|ac bar3_link|hp
}}

Show/Hide Name

!token-mod --flip showname

Reset Token

!token-mod {{
  --set bar1_link| bar2_link| bar3_link|
  --set bar1_value| bar2_value| bar3_value|
  --set bar1_max| bar2_max| bar3_max|
  --set tint_color|transparent layer|objects
  --on showname showplayers_name showplayers_aura1 showplayers_aura2
  --off light_otherplayers light_hassight
  --set statusmarkers|=blue|-blue
}}

Save as default. Once you set up token macros and run the minionify macro on a creature token, you can prevent the need from setting it up again by saving a token as the default for that character.

!token-mod --set defaulttoken

Conditions

With the exception of Dead, these are all toggles. They can be run from chat by typing #<macro_name> with a token selected, or set up into a prompt or table of macros (see Action Table) instead.

Concentration

!token-mod --set statusmarkers|!overdrive

Prone

!token-mod --set statusmarkers|!back-pain

Grappled

!token-mod --set statusmarkers|!fist

Restrained

!token-mod --set statusmarkers|!fishing-net

Dying

!token-mod --set statusmarkers|!stopwatch

Dead. Removes all other status markers.

!token-mod --set statusmarkers|=dead
@Hafficci
Copy link

Thank you so much for your sharing, AndruC!!
Playing is now easier for us!!

Any chance to get the "Show Spellbook" Macro elegible for "only to GM"?? If I add @{selected|wtype} at the beginning, I am asked if I want to whisper or not. If I choose "no", it works properly, but if choose "yes" something is wrong, and I get the next:
"Unable to find a player or character with name: gm{{name=xxxx"

Can you guys help me??

Thank you in advance!!

@Hafficci
Copy link

Good afternoon!!
Problem solved used typing "/w gm" instead of "@{selected|wtype}" ;)
It is better for me indeed, because the information contained in an NPC Spellbook is never intended for PCs.

Cheers!!

@Dragonwolf25
Copy link

Dragonwolf25 commented Aug 13, 2021

I have been researching and reading as many Macros as I could for my current campaign, and here is what I have found...

&{template:default}  {{name=Healing Potion}} {{
 ?{Potion|
 Regular, **Healing Potion Used:** [[2d4+2]]
HP recovered[image](https://i.ibb.co/DfRMpdP/healing-potion.png)|
 Greater, **Greater Healing Potion Used:** [[4d4+4]]
HP recovered[image](https://i.ibb.co/4NH9qQj/greater-healing.png)|
 Superior, **Superior Healing Potion Used:** [[8d4+8]]
HP recovered
[image](https://i.ibb.co/DpTStzq/superior-healing.png)|
 Supreme, **Supreme Healing Potion Used:** [[10d4+20]]
HP recovered[image](https://i.ibb.co/47csqM2/supreme-healing.png)
} 
}}
/fx bubbling-holy @{target|token_id}

Initiative
%{selected|Initiative}

Long-Rest

/w @{selected|character_name} &{template:default} {{name=**Upon Long Rest Completion**
**(8 Hours) **}} {{Current HP:=**[[@{selected|hp|max}]] / [[@{selected|hp|max}]]**}} {{Hit Dice:=**[[{[[@{selected|hit_dice}+{[[floor(@{selected|hit_dice|max} /2)]],1}kh1]],[[@{selected|hit_dice|max}]]}kl1]] / [[@{selected|hit_dice|max}]]**}}

Short-Rest

&{template:default} {{name=Short Rest}} {{HP Restored=[[?{Spend up to @{selected|hit_dice} HD|0}d@{selected|hitdietype}+@{selected|constitution_mod}]]}} {{Activity=?{Activity|none}}}

Skill-Check

@{selected|wtype}&{template:simple} @{selected|rtype}?{Skill |Acrobatics,+[[(@{selected|acrobatics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_acrobatics}*@{selected|npc})]][ACRO] ]]}} {{rname=^{acrobatics-u}}} {{mod=[[ [[(@{selected|acrobatics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_acrobatics}*@{selected|npc})]][ACRO] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|acrobatics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_acrobatics}*@{selected|npc})]][ACRO] ]] |Animal Handling,+[[(@{selected|animal_handling_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_animal_handling}*@{selected|npc})]][ANIM] ]]}} {{rname=^{animal_handling-u}}} {{mod=[[ [[(@{selected|animal_handling_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_animal_handling}*@{selected|npc})]][ANIM] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|animal_handling_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_animal_handling}*@{selected|npc})]][ANIM] ]] |Arcana,+[[(@{selected|arcana_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_arcana}*@{selected|npc})]][ARC] ]]}} {{rname=^{arcana-u}}} {{mod=[[ [[(@{selected|arcana_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_arcana}*@{selected|npc})]][ARCA] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|arcana_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_arcana}*@{selected|npc})]][ARCA] ]] |Athletics,+[[(@{selected|athletics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_athletics}*@{selected|npc})]][ARC] ]]}} {{rname=^{athletics-u}}} {{mod=[[ [[(@{selected|athletics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_athletics}*@{selected|npc})]][ATHL] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|athletics_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_athletics}*@{selected|npc})]][ATHL] ]] |Deception,+[[(@{selected|deception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_deception}*@{selected|npc})]][ARC] ]]}} {{rname=^{deception-u}}} {{mod=[[ [[(@{selected|deception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_deception}*@{selected|npc})]][DECE] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|deception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_deception}*@{selected|npc})]][DECE] ]] |History,+[[(@{selected|history_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_history}*@{selected|npc})]][ARC] ]]}} {{rname=^{history-u}}} {{mod=[[ [[(@{selected|history_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_history}*@{selected|npc})]][HIST] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|history_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_history}*@{selected|npc})]][HIST] ]] |Insight,+[[(@{selected|insight_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_insight}*@{selected|npc})]][ARC] ]]}} {{rname=^{insight-u}}} {{mod=[[ [[(@{selected|insight_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_insight}*@{selected|npc})]][INSI] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|insight_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_insight}*@{selected|npc})]][INSI] ]] |Intimidation,+[[(@{selected|intimidation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_intimidation}*@{selected|npc})]][ARC] ]]}} {{rname=^{intimidation-u}}} {{mod=[[ [[(@{selected|intimidation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_intimidation}*@{selected|npc})]][INTI] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|intimidation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_intimidation}*@{selected|npc})]][INTI] ]] |Investigation,+[[(@{selected|investigation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_investigation}*@{selected|npc})]][ARC] ]]}} {{rname=^{investigation-u}}} {{mod=[[ [[(@{selected|investigation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_investigation}*@{selected|npc})]][INVE] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|investigation_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_investigation}*@{selected|npc})]][INVE] ]] |Medicine,+[[(@{selected|medicine_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_medicine}*@{selected|npc})]][ARC] ]]}} {{rname=^{medicine-u}}} {{mod=[[ [[(@{selected|medicine_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_medicine}*@{selected|npc})]][MEDI] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|medicine_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_medicine}*@{selected|npc})]][MEDI] ]] |Nature,+[[(@{selected|nature_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_nature}*@{selected|npc})]][ARC] ]]}} {{rname=^{nature-u}}} {{mod=[[ [[(@{selected|nature_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_nature}*@{selected|npc})]][NATU] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|nature_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_nature}*@{selected|npc})]][NATU] ]] |Perception,+[[(@{selected|perception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_perception}*@{selected|npc})]][ARC] ]]}} {{rname=^{perception-u}}} {{mod=[[ [[(@{selected|perception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_perception}*@{selected|npc})]][PERC] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|perception_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_perception}*@{selected|npc})]][PERC] ]] |Performance,+[[(@{selected|performance_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_performance}*@{selected|npc})]][ARC] ]]}} {{rname=^{performance-u}}} {{mod=[[ [[(@{selected|performance_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_performance}*@{selected|npc})]][PERF] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|performance_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_performance}*@{selected|npc})]][PERF] ]] |Persuasion,+[[(@{selected|persuasion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_persuasion}*@{selected|npc})]][ARC] ]]}} {{rname=^{persuasion-u}}} {{mod=[[ [[(@{selected|persuasion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_persuasion}*@{selected|npc})]][PERS] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|persuasion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_persuasion}*@{selected|npc})]][PERS] ]] |Religion,+[[(@{selected|religion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_religion}*@{selected|npc})]][ARC] ]]}} {{rname=^{religion-u}}} {{mod=[[ [[(@{selected|religion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_religion}*@{selected|npc})]][RELI] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|religion_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_religion}*@{selected|npc})]][RELI] ]] |Sleight of Hand,+[[(@{selected|sleight_of_hand_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_sleight_of_hand}*@{selected|npc})]][ARC] ]]}} {{rname=^{sleight_of_hand-u}}} {{mod=[[ [[(@{selected|sleight_of_hand_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_sleight_of_hand}*@{selected|npc})]][SLEI] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|sleight_of_hand_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_sleight_of_hand}*@{selected|npc})]][SLEI] ]] |Stealth,+[[(@{selected|stealth_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_stealth}*@{selected|npc})]][ARC] ]]}} {{rname=^{stealth-u}}} {{mod=[[ [[(@{selected|stealth_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_stealth}*@{selected|npc})]][STEA] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|stealth_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_stealth}*@{selected|npc})]][STEA] ]] |Survival,+[[(@{selected|survival_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_survival}*@{selected|npc})]][ARC] ]]}} {{rname=^{survival-u}}} {{mod=[[ [[(@{selected|survival_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_survival}*@{selected|npc})]][SURV] ]]}} {{r1=[[@{selected|d20}+[[(@{selected|survival_bonus}@{selected|pbd_safe}*(1-ceil((@{selected|npc})*0.00001)))+(@{selected|npc_survival}*@{selected|npc})]][SURV] ]] }}} @{selected|global_skill_mod} @{selected|charname_output}

Skill-Save

&{template:simple} ?{Save|STR, {{rname=Strength}} {{mod=@{selected|strength_save_bonus}}} {{r1=[[1d20+@{selected|strength_save_bonus}]]}} {{r2=[[1d20+@{selected|strength_save_bonus}]]}}{{always=1}}|DEX, {{rname=Dexterity}} {{mod=@{selected|dexterity_save_bonus}}} {{r1=[[1d20+@{selected|dexterity_save_bonus}]]}} {{r2=[[1d20+@{selected|dexterity_save_bonus}]]}} {{always=1}}|CON, {{rname=Constitution}} {{mod=@{selected|constitution_save_bonus}}} {{r1=[[1d20+@{selected|constitution_save_bonus}]]}} {{r2=[[1d20+@{selected|constitution_save_bonus}]]}}{{always=1}}|INT, {{rname=Intelligence}} {{mod=@{selected|intelligence_save_bonus}}} {{r1=[[1d20+@{selected|intelligence_save_bonus}]]}} {{r2=[[1d20+@{selected|intelligence_save_bonus}]]}} {{always=1}}|WIS, {{rname=Wisdom}} {{mod=@{selected|wisdom_save_bonus}}} {{r1=[[1d20+@{selected|wisdom_save_bonus}]]}} {{r2=[[1d20+@{selected|wisdom_save_bonus}]]}} {{always=1}}|CHA, {{rname=Charisma}} {{mod=@{selected|charisma_save_bonus}}} {{r1=[[1d20+@{selected|charisma_save_bonus}]]}} {{r2=[[1d20+@{selected|charisma_save_bonus}]]}}{{always=1}}} {{charname=@{selected|token_name}}}

Whisper
/w @{target| Whisper to whom? |character_name} ***?{"What"|You notice...}***

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment