Character Vault
Any Concept / Any System
Compendium
Your System Come To Life
Roll20 for Android
Streamlined for your Tablet
Roll20 for iPad
Streamlined for your Tablet

Personal tools

Difference between revisions of "Chat Menus"

From Roll20 Wiki

Jump to: navigation, search
m (add link to macro char sheet tip)
m (Stargate Character Stats)
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:Chat-menus-game-utils.png|right|thumbnail|200px|Example of a '''Chat Menus''' and it's buttons]]''(Credit for the guide goes to [[keith|KeithCurtis']] original {{forum|permalink/5927072/ forum post}})''
+
{{main|Complete Guide to Macros & Rolls‎}}
 +
 
 +
[[File:Chat-menus-example-sg.png|right|thumbnail|350px|Example of a '''Chat Menus''' and its buttons.]]''(Credit for the guide goes to [[keith|KeithCurtis']] original {{forum|permalink/5927072/ forum post}})''
  
  
Line 5: Line 7:
  
 
=Creating Chat Menus=
 
=Creating Chat Menus=
Although implied by the wiki, and used by many [[API|API scripts]], '''Chat Menus''' are very easy to make using [[Complete_Guide_to_Macros_%26_Rolls#API_Command_Buttons|API buttons]] (which do not actually use the API—anyone can make and use them).
+
{{NavMacroDocs}}Although implied by the wiki, and used by many [[API|API scripts]], '''Chat Menus''' are very easy to make using [[Complete_Guide_to_Macros_%26_Rolls#API_Command_Buttons|API buttons]] (anyone can make and use of API buttons).
  
 
If you have a bunch of commonly used macros, rather than clutter up your map area with buttons, make a button that calls a menu of buttons into the chat area. This way you can call up a huge array of options with only a single extra click. I have several of these, categorized by use. Some examples are posted below.
 
If you have a bunch of commonly used macros, rather than clutter up your map area with buttons, make a button that calls a menu of buttons into the chat area. This way you can call up a huge array of options with only a single extra click. I have several of these, categorized by use. Some examples are posted below.
  
To make a Chat Menu, use a [[Roll Template]]. Because the formatting of Roll Templates, the appearance of a Chat Menu can vary widely from game to game. In general, though, the code is remarkably similar:
+
To make a Chat Menu, it's smart to use a [[Roll Template]] to structure the Chat Menu. Because the formatting of Roll Templates, the appearance of a Chat Menu can vary widely from game to game. In general, though, the code is remarkably similar:
  
 
<pre style="overflow:auto;" data-language="javascript">
 
<pre style="overflow:auto;" data-language="javascript">
[command name](#macro to call)
+
[command name](~macro-name)
 
</pre>
 
</pre>
  
 
Default button syntax to reference a [[Macro]] in the {{collections}}-tab —You probably don't need to use this for a Chat Menu. Use one of the versions below.
 
Default button syntax to reference a [[Macro]] in the {{collections}}-tab —You probably don't need to use this for a Chat Menu. Use one of the versions below.
  
If you use the [https://app.roll20.net/forum/permalink/7605679/ macro character sheet tip], the format is:
+
==Roll Button/Character Ability==
 +
Normally. Roll Buttons & character abilities are referenced with <code>%{character-name|ability-name}</code>.
 +
 
 +
If you use the {{forum|permalink/7605679/ macro character sheet tip}} and save the Chat menus macro on the character sheet, the format as you can skip the part about referencing the character name or use <code>selected</code>/<code>target</code>:
  
 
<pre style="overflow:auto;">
 
<pre style="overflow:auto;">
[command name](~macro to call)
+
[command name](~ability-name)
 
</pre>
 
</pre>
  
Button syntax to reference an Ability on the same sheet
+
By keeping your macros on a sheet along with the Chat Menu macro itself, you not only gain the advantage of transportability to new campaigns, you also ensure that nothing breaks once you transport it. The macro it's calling comes right along with it.
... with "macro to call" being another ability on the same sheet. By keeping your macros on a sheet along with the Chat Menu macro itself, you not only gain the advantage of transportability to new campaigns, you also ensure that nothing breaks once you transport it. The macro it's calling comes right along with it.
+
  
  
If you want to reference a macro that is on a character sheet (an "Ability"), but you are not writing the macro on the same sheet, you can reference the ability with this format (Assuming that your referenced sheet is called "Macros"):
+
If you want to reference a macro that is on a character sheet (an "Ability"), but you are not writing the macro on the same sheet, you can reference the ability with this format (Assuming that your referenced a sheet named "Alice"). normally it would be referenced with <code>%{Alice|ability-name}</code>:
  
 
<pre style="overflow:auto;">
 
<pre style="overflow:auto;">
[command name](~Macros|macro to call)
+
[command name](~Alice|ability-name)
 
</pre>
 
</pre>
  
Button syntax to reference an Ability on another character sheet, such as a [https://app.roll20.net/forum/permalink/7605679/ Macro Character Sheet].
+
Button syntax to reference an Ability on another character sheet, such as a {{forum|permalink/7605679/ Macro Character Sheet}}.
  
If your macro is a loose, global macro, the code is a little more arcane, since you need to use [[Complete_Guide_to_Macros_%26_Rolls#HTML_replacement|HTML replacements]]:
+
==Global Macro==
 +
If your macro is a loose, global [[Macro]] saved in the {{collections}}-tab , the code is a little more arcane, since you need to use [[Complete_Guide_to_Macros_%26_Rolls#HTML_replacement|HTML replacements]]. Normally calling the macro would be <code>#macro-name</code>, but this is the button:
  
 
<pre style="overflow:auto;">
 
<pre style="overflow:auto;">
[command name](!&amp;#13;#macro to call)
+
[command name](!&amp;#13;#macro-name)
 
</pre>
 
</pre>
  
 
Button syntax to reference a Macro in the collections tab. Try to use only in Abilities, not Macros, since Macros will revert the [[Complete_Guide_to_Macros_%26_Rolls#HTML_replacement|HTML replacement]] if you need to edit.
 
Button syntax to reference a Macro in the collections tab. Try to use only in Abilities, not Macros, since Macros will revert the [[Complete_Guide_to_Macros_%26_Rolls#HTML_replacement|HTML replacement]] if you need to edit.
 +
 +
 +
==Repeating Sections==
 +
{{forum|permalink/8867823/ This post}} shows how to make buttons work for repeating sections.
 +
 +
==Other==
 +
the following code supposedly works in some places
 +
<pre style="overflow:auto;">
 +
[command name](#mightwork)
 +
</pre>
  
 
Note also, that you can embed a Roll Command(i.e <code>/r 3d6+5</code>) into the API button instead of a macro, if you simply have a bit of code you use over and over, but a better practice (at least I have found) is to keep as much code in macros as possible, so that if you use the same command in different places, you only have to edit the original if you later decide to change how something works. If it's just an API call (a script call, beginning with "!"), it's pretty safe to pop in as-is.
 
Note also, that you can embed a Roll Command(i.e <code>/r 3d6+5</code>) into the API button instead of a macro, if you simply have a bit of code you use over and over, but a better practice (at least I have found) is to keep as much code in macros as possible, so that if you use the same command in different places, you only have to edit the original if you later decide to change how something works. If it's just an API call (a script call, beginning with "!"), it's pretty safe to pop in as-is.
  
 
Here are some Screenshots. These use the [[Shaped]] Sheet, which formats buttons as in-line text links. If you prefer that to the default "Big Pink Buttons" used by most other sheets on Roll20, use [https://app.roll20.net/forum/permalink/7455586/ this tip] to style them for the [[D&D 5E by Roll20]] template, or [https://app.roll20.net/forum/post/7129900/css-makeover-for-default-template this tip] to style them for the [[Roll_Templates#Default|default template]]:
 
Here are some Screenshots. These use the [[Shaped]] Sheet, which formats buttons as in-line text links. If you prefer that to the default "Big Pink Buttons" used by most other sheets on Roll20, use [https://app.roll20.net/forum/permalink/7455586/ this tip] to style them for the [[D&D 5E by Roll20]] template, or [https://app.roll20.net/forum/post/7129900/css-makeover-for-default-template this tip] to style them for the [[Roll_Templates#Default|default template]]:
[[File:Chat-menus-game-utils.png|left|thumbnail|400px|]]
+
[[File:Chat-menus-game-utils.png|left|thumbnail|400px| the macro for this is down the page]]
 
[[File:Chat-menus-game-utils-2.png|right|thumbnail|400px|]]
 
[[File:Chat-menus-game-utils-2.png|right|thumbnail|400px|]]
 
<br><br><br><br><!-- extra linebreaks to place codeblock after the two images -->
 
<br><br><br><br><!-- extra linebreaks to place codeblock after the two images -->
Line 54: Line 69:
 
<br><br><br><br>
 
<br><br><br><br>
 
<br><br><br><br>
 
<br><br><br><br>
==Examples==
 
'''Sample code for the Utility Macro:'''
 
  
 +
=Examples=
 +
Examples of Chat Menus. Please share yours here
 +
 +
===Global Macro menu===
 +
A menu showing the GM buttons for various global macros they have saved on the {{collections}}-tab. Skipping the Chat menu could could roll <code>#pcstat</code> & <code>#pcpp</code> directly in the {{Text Chat}}.
 +
 +
<pre style="overflow:hidden;white-space:pre-wrap;">
 +
/w gm &{template:default} {{name=Macro Chat Menu }} {{[PC overview](!&amp;#13;#pcstat)= [Passive Pers.](!&amp;#13;#pcpp) }} {{ [Wild Magic](!&amp;#13;#wildmagictable)= [Passive Inv.](!&amp;#13;#investigation)}}
 +
</pre>
 +
 +
===PF2E Character Roll Menu===
 +
A Chat menu that shows the attributes of a character, along with buttons to roll each, + initiative with thw [[PF2E]] sheet. Also shows the name of the character in the title. Must select a token connected to a sheet to work. Otherwise replace <code>selected</code>-mentions with the character's name.
 +
<pre style="overflow:hidden;white-space:pre-wrap;">
 +
&{template:default} {{name=Chat Menu: @{selected|character_name} }} {{Rolls=[Initiative](~selected|INITIATIVE) }} {{[STR](~selected|STR) @{selected|strength}=  }} {{[DEX](~selected|DEX) @{selected|dexterity}= [Reflex](~selected|REF) }} {{[CON](~selected|CON) @{selected|constitution}= [Fortitude](~selected|FORT) }} {{[INT](~selected|INT) @{selected|intelligence}=  }} {{[WIS](~selected|WIS) @{selected|wisdom}= [Will](~selected|WILL) }} {{[CHA](~selected|CHA) @{selected|charisma}=  }}
 +
</pre>
 +
 +
Same macro, but in a readable form( remove linebreaks to make it work again):
 +
<pre style="overflow:auto;">
 +
&{template:default} {{name=Chat Menu: @{selected|character_name} }}
 +
{{Rolls=[Initiative](~selected|INITIATIVE) }}
 +
{{[STR](~selected|STR) @{selected|strength}=  }}
 +
{{[DEX](~selected|DEX) @{selected|dexterity}= [Reflex](~selected|REF) }}
 +
{{[CON](~selected|CON) @{selected|constitution}= [Fortitude](~selected|FORT) }}
 +
{{[INT](~selected|INT) @{selected|intelligence}=  }}
 +
{{[WIS](~selected|WIS) @{selected|wisdom}= [Will](~selected|WILL) }}
 +
{{[CHA](~selected|CHA) @{selected|charisma}=  }}
 +
</pre>
 +
 +
===Stargate Character Stats===
 +
[[File:Stargate-chat.menu2.gif|right|thumbnail|400px|Example of the [[Stargate]] chat menu in use]]
 +
Similar to the PF2E example, except it also displays the characters current & total HP. Using the [[Stargate]] char sheet.
 +
<pre style="overflow:hidden;white-space:pre-wrap;">
 +
&{template:stargate} {{title=@{selected|character_name} }} {{subtitle=Stat blocks}} {{ HP = @{selected|hp} / @{selected|hp|max} }}{{[Initiative](~selected|init)= [Moxie](~selected|moxie) }} {{@{selected|str} [STR](~selected|str) = [Save](~selected|str_save) }} {{@{selected|dex} [DEX](~selected|dex) = [Save](~selected|dex_save) }} {{@{selected|con} [CON](~selected|con) = [Save](~selected|con_save) }} {{@{selected|int} [INT](~selected|int) = [Save](~selected|int_save) }} {{@{selected|wis} [WIS](~selected|wis) = [Save](~selected|wis_save) }} {{@{selected|cha} [CHA](~selected|cha) = [Save](~selected|cha_save) }}
 +
</pre>
 +
<br>
 +
Same macro, but in a readable form( remove linebreaks to make it work again):
 +
<pre style="overflow:auto;">
 +
&{template:stargate} {{title=@{selected|character_name} }}
 +
{{subtitle=Stat blocks}}
 +
{{ HP = @{selected|hp} / @{selected|hp|max} }}
 +
{{[Initiative](~selected|init)= [Moxie](~selected|moxie) }}
 +
{{@{selected|str} [STR](~selected|str) = [Save](~selected|str_save) }}
 +
{{@{selected|dex} [DEX](~selected|dex) = [Save](~selected|dex_save) }}
 +
{{@{selected|con} [CON](~selected|con) = [Save](~selected|con_save) }}
 +
{{@{selected|int} [INT](~selected|int) = [Save](~selected|int_save) }}
 +
{{@{selected|wis} [WIS](~selected|wis) = [Save](~selected|wis_save) }}
 +
{{@{selected|cha} [CHA](~selected|cha) = [Save](~selected|cha_save) }}
 +
</pre>
 +
 +
===5E===
 +
Example for D&D 5E, often specifically for the [[D&D 5E by Roll20]]-char sheet.
 +
====NPC Statblock====
 +
{{forum|permalink/8349326/ NPC Statblock Chat Menu for D&D 5e sheet — No API required!}} by [[Keithcurtis]]
 +
 +
<pre style="overflow:auto;">
 +
/w gm &{template:npcaction}{{rname=@{selected|character_name}}}{{name=@{selected|npc_type}
 +
**HP: **@{selected|bar1} / @{selected|hp|max} | ** AC: ** @{selected|npc_ac} | **Spd: ** @{selected|npc_speed}
 +
**Languages: **@{selected|npc_languages}
 +
**Senses: **@{selected|npc_senses}
 +
**Resists:: **@{selected|npc_resistances}
 +
**Immune: **@{selected|npc_immunities}
 +
**Cond. Immune: **@{selected|npc_condition_immunities}}}{{description=**Abilities**
 +
[**Str @{selected|strength}** *(@{selected|strength_mod})*](~selected|npc_str) | [save](~selected|npc_str_save)
 +
[**Dex @{selected|dexterity}** *(@{selected|dexterity_mod})*](~selected|npc_dec) | [save](~selected|npc_dex_save)
 +
[**Con @{selected|constitution}** *(@{selected|constitution_mod})*](~selected|npc_con) | [save](~selected|npc_con_save)
 +
[**Int @{selected|intelligence}** *(@{selected|intelligence_mod})*](~selected|npc_int) | [save](~selected|npc_int_save)
 +
[**Wis @{selected|wisdom}** *(@{selected|wisdom_mod})*](~selected|npc_wis) | [save](~selected|npc_wis_save)
 +
[**Cha @{selected|charisma}** *(@{selected|charisma_mod})*](~selected|npc_cha) | [save](~selected|npc_cha_save)
 +
**Skills**
 +
[Acrobatics](~selected|npc_Acrobatics) | [Animal Handling](~selected|npc_Animal_Handling) | [Arcana](~selected|npc_Arcana) | [Athletics](~selected|npc_Athletics|Deception](~selected|npc_Deception) | [History](~selected|npc_History) | [Insight](~selected|npc_Insight) | [Intimidation](~selected|npc_Intimidation) | [Investigation](~selected|npc_Investigation) | [Medicine](~selected|npc_Medicine) | [Nature](~selected|npc_Nature) | [Perception](~selected|npc_Perception) | [Performance](~selected|npc_Performance) | [Persuasion](~selected|npc_Persuasion) | [Religion](~selected|npc_Religion) | [Sleight of Hand](~selected|npc_Sleight_of_Hand) | [Stealth](~selected|npc_stealth) | [Survival](~selected|npc_survival)
 +
**Actions**
 +
[@{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)
 +
[@{selected|repeating_npcaction_$3_name}](~selected|repeating_npcaction_$3_npc_action)
 +
[@{selected|repeating_npcaction_$4_name}](~selected|repeating_npcaction_$4_npc_action)
 +
}} &{noerror}
 +
</pre>
 +
 +
====Spellblock====
 +
{{forum|permalink/8685879/ thread}} by [[keithcurtis]]
 +
 +
<pre style="overflow:auto;">
 +
/w gm &{template:npcaction}{{rname=@{selected|character_name}}}{{name=@{selected|npc_type}}}{{description=**Caster Level: @{selected|caster_level}**
 +
**Spell Save DC: @{selected|spell_save_dc}**
 +
**Spellcasteing Ability Mod: [[@{selected|spellcasting_ability}@{selected|pb}]]**
 +
**Cantrips**
 +
[@{selected|repeating_spell-cantrip_$0_spellname}](~selected|repeating_spell-cantrip_$0_spell)
 +
[@{selected|repeating_spell-cantrip_$1_spellname}](~selected|repeating_spell-cantrip_$1_spell)
 +
[@{selected|repeating_spell-cantrip_$2_spellname}](~selected|repeating_spell-cantrip_$2_spell)
 +
[@{selected|repeating_spell-cantrip_$3_spellname}](~selected|repeating_spell-cantrip_$3_spell)
 +
[@{selected|repeating_spell-cantrip_$4_spellname}](~selected|repeating_spell-cantrip_$4_spell)
 +
**Level 1**
 +
[@{selected|repeating_spell-1_$0_spellname}](~selected|repeating_spell-1_$0_spell)
 +
[@{selected|repeating_spell-1_$1_spellname}](~selected|repeating_spell-1_$1_spell)
 +
[@{selected|repeating_spell-1_$2_spellname}](~selected|repeating_spell-1_$2_spell)
 +
[@{selected|repeating_spell-1_$3_spellname}](~selected|repeating_spell-1_$3_spell)
 +
[@{selected|repeating_spell-1_$4_spellname}](~selected|repeating_spell-1_$4_spell)
 +
**Level 2**
 +
[@{selected|repeating_spell-2_$0_spellname}](~selected|repeating_spell-2_$0_spell)
 +
[@{selected|repeating_spell-2_$1_spellname}](~selected|repeating_spell-2_$1_spell)
 +
[@{selected|repeating_spell-2_$2_spellname}](~selected|repeating_spell-2_$2_spell)
 +
[@{selected|repeating_spell-2_$3_spellname}](~selected|repeating_spell-2_$3_spell)
 +
[@{selected|repeating_spell-2_$4_spellname}](~selected|repeating_spell-2_$4_spell)
 +
**Level 3**
 +
[@{selected|repeating_spell-3_$0_spellname}](~selected|repeating_spell-3_$0_spell)
 +
[@{selected|repeating_spell-3_$1_spellname}](~selected|repeating_spell-3_$1_spell)
 +
[@{selected|repeating_spell-3_$2_spellname}](~selected|repeating_spell-3_$2_spell)
 +
[@{selected|repeating_spell-3_$3_spellname}](~selected|repeating_spell-3_$3_spell)
 +
**Level 4**
 +
[@{selected|repeating_spell-4_$0_spellname}](~selected|repeating_spell-4_$0_spell)
 +
[@{selected|repeating_spell-4_$1_spellname}](~selected|repeating_spell-4_$1_spell)
 +
[@{selected|repeating_spell-4_$2_spellname}](~selected|repeating_spell-4_$2_spell)
 +
**Level 5**
 +
[@{selected|repeating_spell-5_$0_spellname}](~selected|repeating_spell-5_$0_spell)
 +
[@{selected|repeating_spell-5_$1_spellname}](~selected|repeating_spell-5_$1_spell)
 +
[@{selected|repeating_spell-5_$2_spellname}](~selected|repeating_spell-5_$2_spell)
 +
**Level 6**
 +
[@{selected|repeating_spell-6_$0_spellname}](~selected|repeating_spell-6_$0_spell)
 +
[@{selected|repeating_spell-6_$1_spellname}](~selected|repeating_spell-6_$1_spell)
 +
**Level 7**
 +
[@{selected|repeating_spell-7_$0_spellname}](~selected|repeating_spell-7_$0_spell)
 +
[@{selected|repeating_spell-7_$1_spellname}](~selected|repeating_spell-7_$1_spell)
 +
**Level 8**
 +
[@{selected|repeating_spell-8_$0_spellname}](~selected|repeating_spell-8_$0_spell)
 +
[@{selected|repeating_spell-8_$1_spellname}](~selected|repeating_spell-8_$1_spell)
 +
**Level 9**
 +
[@{selected|repeating_spell-9_$0_spellname}](~selected|repeating_spell-9_$0_spell)
 +
[@{selected|repeating_spell-9_$1_spellname}](~selected|repeating_spell-9_$1_spell)
 +
}} &{noerror}
 +
</pre>
 +
 +
====API Menu====
 +
'''Sample code for the Utility Macro:'''
 
<pre style="overflow:auto;">
 
<pre style="overflow:auto;">
 
/w gm &{template:5e-shaped} {{title=Utility Menu}} {{text_big=[Configure Shaped Options](!shaped-config)
 
/w gm &{template:5e-shaped} {{title=Utility Menu}} {{text_big=[Configure Shaped Options](!shaped-config)
Line 86: Line 233:
 
}}
 
}}
 
</pre>
 
</pre>
 +
 +
===Repeating Section===
 +
 +
Link to a repeating section roll button, of a character we are referencing by character ID.
 +
<pre>
 +
[menutext](~-MUlgDDvkwuV3fp3DH2C|repeatingability-mwgsob0-zzdesbyljzy_roll)
 +
</pre>
 +
 +
===Forum Links===
 +
 +
* {{fpl|9944446/ - combine chat menu with dropdown query}}
  
 
=Related Pages=
 
=Related Pages=
Line 93: Line 251:
 
** [[Macros]]
 
** [[Macros]]
 
** [[Complete_Guide_to_Macros_%26_Rolls#Roll_Templates|Roll Templates]]
 
** [[Complete_Guide_to_Macros_%26_Rolls#Roll_Templates|Roll Templates]]
 +
* [[Macro Character Sheet]]
 +
* [[API:Chat#Entering_API_Buttons_In_Chat|Entering API Buttons In Chat]]
  
 
=See Also=
 
=See Also=
 
* {{forum|post/7478947/script-menu-maker Menu Maker}} by {{user profile|459831|Scott C.}} - API to generate Chat Menus
 
* {{forum|post/7478947/script-menu-maker Menu Maker}} by {{user profile|459831|Scott C.}} - API to generate Chat Menus
 
* {{forum|post/7474530/script-call-for-testers-universal-chat-menus Universal Chat Menus}} by [[GiGs]] - another API to generate Chat Menus
 
* {{forum|post/7474530/script-call-for-testers-universal-chat-menus Universal Chat Menus}} by [[GiGs]] - another API to generate Chat Menus
 +
* '''D&D 5E - Token Action Maker''' - This script creates token actions on selected tokens for the [[D&D 5E by Roll20]] sheet, very helpful for both NPCs and Players.
 +
** {{forum|permalink/8458497 forum thread}} (Created by Kevin, modified by keithcurtis, {{user profile|157788|GiGs}}, & Bretmckee)
 
<br>
 
<br>
 
<br>
 
<br>

Revision as of 14:50, 17 June 2021

Main Page: Complete Guide to Macros & Rolls‎

Example of a Chat Menus and its buttons.
(Credit for the guide goes to KeithCurtis' original forum post(Forum))


Chat Menus is a Clever trick for any Roll20 users, to create a Menu for yourself, where you have shortcuts to all the macros, API commands, and dice rolls you want, accessible from a single macro.

Contents

Creating Chat Menus

Although implied by the wiki, and used by many API scripts, Chat Menus are very easy to make using API buttons (anyone can make and use of API buttons).

If you have a bunch of commonly used macros, rather than clutter up your map area with buttons, make a button that calls a menu of buttons into the chat area. This way you can call up a huge array of options with only a single extra click. I have several of these, categorized by use. Some examples are posted below.

To make a Chat Menu, it's smart to use a Roll Template to structure the Chat Menu. Because the formatting of Roll Templates, the appearance of a Chat Menu can vary widely from game to game. In general, though, the code is remarkably similar:

[command name](~macro-name)

Default button syntax to reference a Macro in the l Collections-tab —You probably don't need to use this for a Chat Menu. Use one of the versions below.

Roll Button/Character Ability

Normally. Roll Buttons & character abilities are referenced with %{character-name|ability-name}.

If you use the macro character sheet tip(Forum) and save the Chat menus macro on the character sheet, the format as you can skip the part about referencing the character name or use selected/target:

[command name](~ability-name)  

By keeping your macros on a sheet along with the Chat Menu macro itself, you not only gain the advantage of transportability to new campaigns, you also ensure that nothing breaks once you transport it. The macro it's calling comes right along with it.


If you want to reference a macro that is on a character sheet (an "Ability"), but you are not writing the macro on the same sheet, you can reference the ability with this format (Assuming that your referenced a sheet named "Alice"). normally it would be referenced with %{Alice|ability-name}:

[command name](~Alice|ability-name)

Button syntax to reference an Ability on another character sheet, such as a Macro Character Sheet(Forum).

Global Macro

If your macro is a loose, global Macro saved in the l Collections-tab , the code is a little more arcane, since you need to use HTML replacements. Normally calling the macro would be #macro-name, but this is the button:

[command name](!&#13;#macro-name)

Button syntax to reference a Macro in the collections tab. Try to use only in Abilities, not Macros, since Macros will revert the HTML replacement if you need to edit.


Repeating Sections

This post(Forum) shows how to make buttons work for repeating sections.

Other

the following code supposedly works in some places

[command name](#mightwork)

Note also, that you can embed a Roll Command(i.e /r 3d6+5) into the API button instead of a macro, if you simply have a bit of code you use over and over, but a better practice (at least I have found) is to keep as much code in macros as possible, so that if you use the same command in different places, you only have to edit the original if you later decide to change how something works. If it's just an API call (a script call, beginning with "!"), it's pretty safe to pop in as-is.

Here are some Screenshots. These use the Shaped Sheet, which formats buttons as in-line text links. If you prefer that to the default "Big Pink Buttons" used by most other sheets on Roll20, use this tip to style them for the D&D 5E by Roll20 template, or this tip to style them for the default template:

the macro for this is down the page
Chat-menus-game-utils-2.png

























Examples

Examples of Chat Menus. Please share yours here

Global Macro menu

A menu showing the GM buttons for various global macros they have saved on the l Collections-tab. Skipping the Chat menu could could roll #pcstat & #pcpp directly in the q Text Chat.

/w gm &{template:default} {{name=Macro Chat Menu }} {{[PC overview](!&#13;#pcstat)= [Passive Pers.](!&#13;#pcpp) }} {{ [Wild Magic](!&#13;#wildmagictable)= [Passive Inv.](!&#13;#investigation)}}

PF2E Character Roll Menu

A Chat menu that shows the attributes of a character, along with buttons to roll each, + initiative with thw PF2E sheet. Also shows the name of the character in the title. Must select a token connected to a sheet to work. Otherwise replace selected-mentions with the character's name.

&{template:default} {{name=Chat Menu: @{selected|character_name} }} {{Rolls=[Initiative](~selected|INITIATIVE) }} {{[STR](~selected|STR) @{selected|strength}=  }} {{[DEX](~selected|DEX) @{selected|dexterity}= [Reflex](~selected|REF) }} {{[CON](~selected|CON) @{selected|constitution}= [Fortitude](~selected|FORT) }} {{[INT](~selected|INT) @{selected|intelligence}=  }} {{[WIS](~selected|WIS) @{selected|wisdom}= [Will](~selected|WILL) }} {{[CHA](~selected|CHA) @{selected|charisma}=  }}

Same macro, but in a readable form( remove linebreaks to make it work again):

&{template:default} {{name=Chat Menu: @{selected|character_name} }} 
{{Rolls=[Initiative](~selected|INITIATIVE) }} 
{{[STR](~selected|STR) @{selected|strength}=  }} 
{{[DEX](~selected|DEX) @{selected|dexterity}= [Reflex](~selected|REF) }} 
{{[CON](~selected|CON) @{selected|constitution}= [Fortitude](~selected|FORT) }} 
{{[INT](~selected|INT) @{selected|intelligence}=  }} 
{{[WIS](~selected|WIS) @{selected|wisdom}= [Will](~selected|WILL) }} 
{{[CHA](~selected|CHA) @{selected|charisma}=  }}

Stargate Character Stats

Example of the Stargate chat menu in use

Similar to the PF2E example, except it also displays the characters current & total HP. Using the Stargate char sheet.

&{template:stargate} {{title=@{selected|character_name} }} {{subtitle=Stat blocks}} {{ HP = @{selected|hp} / @{selected|hp|max} }}{{[Initiative](~selected|init)= [Moxie](~selected|moxie) }} {{@{selected|str} [STR](~selected|str) = [Save](~selected|str_save) }} {{@{selected|dex} [DEX](~selected|dex) = [Save](~selected|dex_save) }} {{@{selected|con} [CON](~selected|con) = [Save](~selected|con_save) }} {{@{selected|int} [INT](~selected|int) = [Save](~selected|int_save) }} {{@{selected|wis} [WIS](~selected|wis) = [Save](~selected|wis_save) }} {{@{selected|cha} [CHA](~selected|cha) = [Save](~selected|cha_save) }}


Same macro, but in a readable form( remove linebreaks to make it work again):

&{template:stargate} {{title=@{selected|character_name} }}
 {{subtitle=Stat blocks}}
 {{ HP = @{selected|hp} / @{selected|hp|max} }} 
{{[Initiative](~selected|init)= [Moxie](~selected|moxie) }} 
{{@{selected|str} [STR](~selected|str) = [Save](~selected|str_save) }} 
{{@{selected|dex} [DEX](~selected|dex) = [Save](~selected|dex_save) }} 
{{@{selected|con} [CON](~selected|con) = [Save](~selected|con_save) }} 
{{@{selected|int} [INT](~selected|int) = [Save](~selected|int_save) }} 
{{@{selected|wis} [WIS](~selected|wis) = [Save](~selected|wis_save) }} 
{{@{selected|cha} [CHA](~selected|cha) = [Save](~selected|cha_save) }}

5E

Example for D&D 5E, often specifically for the D&D 5E by Roll20-char sheet.

NPC Statblock

NPC Statblock Chat Menu for D&D 5e sheet — No API required!(Forum) by Keithcurtis

/w gm &{template:npcaction}{{rname=@{selected|character_name}}}{{name=@{selected|npc_type}
**HP: **@{selected|bar1} / @{selected|hp|max} | ** AC: ** @{selected|npc_ac} | **Spd: ** @{selected|npc_speed}
**Languages: **@{selected|npc_languages}
 **Senses: **@{selected|npc_senses}
 **Resists:: **@{selected|npc_resistances}
 **Immune: **@{selected|npc_immunities}
 **Cond. Immune: **@{selected|npc_condition_immunities}}}{{description=**Abilities**
[**Str @{selected|strength}** *(@{selected|strength_mod})*](~selected|npc_str) | [save](~selected|npc_str_save)
[**Dex @{selected|dexterity}** *(@{selected|dexterity_mod})*](~selected|npc_dec) | [save](~selected|npc_dex_save)
[**Con @{selected|constitution}** *(@{selected|constitution_mod})*](~selected|npc_con) | [save](~selected|npc_con_save)
[**Int @{selected|intelligence}** *(@{selected|intelligence_mod})*](~selected|npc_int) | [save](~selected|npc_int_save)
[**Wis @{selected|wisdom}** *(@{selected|wisdom_mod})*](~selected|npc_wis) | [save](~selected|npc_wis_save)
[**Cha @{selected|charisma}** *(@{selected|charisma_mod})*](~selected|npc_cha) | [save](~selected|npc_cha_save)
**Skills**
[Acrobatics](~selected|npc_Acrobatics) | [Animal Handling](~selected|npc_Animal_Handling) | [Arcana](~selected|npc_Arcana) | [Athletics](~selected|npc_Athletics|Deception](~selected|npc_Deception) | [History](~selected|npc_History) | [Insight](~selected|npc_Insight) | [Intimidation](~selected|npc_Intimidation) | [Investigation](~selected|npc_Investigation) | [Medicine](~selected|npc_Medicine) | [Nature](~selected|npc_Nature) | [Perception](~selected|npc_Perception) | [Performance](~selected|npc_Performance) | [Persuasion](~selected|npc_Persuasion) | [Religion](~selected|npc_Religion) | [Sleight of Hand](~selected|npc_Sleight_of_Hand) | [Stealth](~selected|npc_stealth) | [Survival](~selected|npc_survival)
**Actions**
[@{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)
[@{selected|repeating_npcaction_$3_name}](~selected|repeating_npcaction_$3_npc_action)
[@{selected|repeating_npcaction_$4_name}](~selected|repeating_npcaction_$4_npc_action)
}} &{noerror}

Spellblock

thread(Forum) by keithcurtis

/w gm &{template:npcaction}{{rname=@{selected|character_name}}}{{name=@{selected|npc_type}}}{{description=**Caster Level: @{selected|caster_level}**
**Spell Save DC: @{selected|spell_save_dc}**
**Spellcasteing Ability Mod: [[@{selected|spellcasting_ability}@{selected|pb}]]**
**Cantrips**
[@{selected|repeating_spell-cantrip_$0_spellname}](~selected|repeating_spell-cantrip_$0_spell)
[@{selected|repeating_spell-cantrip_$1_spellname}](~selected|repeating_spell-cantrip_$1_spell)
[@{selected|repeating_spell-cantrip_$2_spellname}](~selected|repeating_spell-cantrip_$2_spell)
[@{selected|repeating_spell-cantrip_$3_spellname}](~selected|repeating_spell-cantrip_$3_spell)
[@{selected|repeating_spell-cantrip_$4_spellname}](~selected|repeating_spell-cantrip_$4_spell)
**Level 1**
[@{selected|repeating_spell-1_$0_spellname}](~selected|repeating_spell-1_$0_spell)
[@{selected|repeating_spell-1_$1_spellname}](~selected|repeating_spell-1_$1_spell)
[@{selected|repeating_spell-1_$2_spellname}](~selected|repeating_spell-1_$2_spell)
[@{selected|repeating_spell-1_$3_spellname}](~selected|repeating_spell-1_$3_spell)
[@{selected|repeating_spell-1_$4_spellname}](~selected|repeating_spell-1_$4_spell)
**Level 2**
[@{selected|repeating_spell-2_$0_spellname}](~selected|repeating_spell-2_$0_spell)
[@{selected|repeating_spell-2_$1_spellname}](~selected|repeating_spell-2_$1_spell)
[@{selected|repeating_spell-2_$2_spellname}](~selected|repeating_spell-2_$2_spell)
[@{selected|repeating_spell-2_$3_spellname}](~selected|repeating_spell-2_$3_spell)
[@{selected|repeating_spell-2_$4_spellname}](~selected|repeating_spell-2_$4_spell)
**Level 3**
[@{selected|repeating_spell-3_$0_spellname}](~selected|repeating_spell-3_$0_spell)
[@{selected|repeating_spell-3_$1_spellname}](~selected|repeating_spell-3_$1_spell)
[@{selected|repeating_spell-3_$2_spellname}](~selected|repeating_spell-3_$2_spell)
[@{selected|repeating_spell-3_$3_spellname}](~selected|repeating_spell-3_$3_spell)
**Level 4**
[@{selected|repeating_spell-4_$0_spellname}](~selected|repeating_spell-4_$0_spell)
[@{selected|repeating_spell-4_$1_spellname}](~selected|repeating_spell-4_$1_spell)
[@{selected|repeating_spell-4_$2_spellname}](~selected|repeating_spell-4_$2_spell)
**Level 5**
[@{selected|repeating_spell-5_$0_spellname}](~selected|repeating_spell-5_$0_spell)
[@{selected|repeating_spell-5_$1_spellname}](~selected|repeating_spell-5_$1_spell)
[@{selected|repeating_spell-5_$2_spellname}](~selected|repeating_spell-5_$2_spell)
**Level 6**
[@{selected|repeating_spell-6_$0_spellname}](~selected|repeating_spell-6_$0_spell)
[@{selected|repeating_spell-6_$1_spellname}](~selected|repeating_spell-6_$1_spell)
**Level 7**
[@{selected|repeating_spell-7_$0_spellname}](~selected|repeating_spell-7_$0_spell)
[@{selected|repeating_spell-7_$1_spellname}](~selected|repeating_spell-7_$1_spell)
**Level 8**
[@{selected|repeating_spell-8_$0_spellname}](~selected|repeating_spell-8_$0_spell)
[@{selected|repeating_spell-8_$1_spellname}](~selected|repeating_spell-8_$1_spell)
**Level 9**
[@{selected|repeating_spell-9_$0_spellname}](~selected|repeating_spell-9_$0_spell)
[@{selected|repeating_spell-9_$1_spellname}](~selected|repeating_spell-9_$1_spell)
}} &{noerror}

API Menu

Sample code for the Utility Macro:

/w gm &{template:5e-shaped} {{title=Utility Menu}} {{text_big=[Configure Shaped Options](!shaped-config)
**Import Spells**
[Spells](!shaped-spells) | [Remove All Spells](!shaped-remove-spell --all)
[Expand Spells](!shaped-expand-spells)
**Import Monsters**
[Monster](!shaped-monsters) | [Replace and Overwrite Monster](!shaped-monsters --replace)
[From Statblock](!shaped-import-statblock) | [From Token Name](!shaped-import-by-token)
**Character Creation**
[Character Builder](~Character-Builder)
**Create Token Macro Buttons**
[Attacks](!shaped-abilities --attacks) | [Actions](!shaped-abilities --actions) | [Reactions](!shaped-abilities --reactions)
[Traits](!shaped-abilities --traits) | [Racial Traits](!shaped-abilities --racialTraits)
[Class Features](!shaped-abilities --classFeatures) | [Feats](!shaped-abilities --feats)
[Legendary Actions](!shaped-abilities --legendaryA) | [Lair Actions](!shaped-abilities --lairA)
**Setup**
[Set Token to Defaults](!shaped-apply-defaults)
[Set Default Token](!token-mod --set defaulttoken) 
[Update to Current Sheet](!shaped-update-character)
[Update All-Caution](!shaped-update-character --all)
**Rests and Resets**
[Short Rest](!shaped-rest --short) | [Long Rest](!shaped-rest --long) 
**Utility**
[Health Aura On](!setattr --sel --USECOLOR|YES !aura update) | [Health Aura Off](!setattr --sel --USECOLOR|NO !aura update)
[Door Commands](!&#13;#{Macros|Doors})
[Ready Roofs](!RoofReady)
[Summon Duplicates](~Summon)
}}

Repeating Section

Link to a repeating section roll button, of a character we are referencing by character ID.

[menutext](~-MUlgDDvkwuV3fp3DH2C|repeatingability-mwgsob0-zzdesbyljzy_roll)

Forum Links

Related Pages

See Also

  • Menu Maker(Forum) by Scott C. - API to generate Chat Menus
  • Universal Chat Menus(Forum) by GiGs - another API to generate Chat Menus
  • D&D 5E - Token Action Maker - This script creates token actions on selected tokens for the D&D 5E by Roll20 sheet, very helpful for both NPCs and Players.
    • forum thread(Forum) (Created by Kevin, modified by keithcurtis, GiGs, & Bretmckee)