Difference between revisions of "Chat Menus"
From Roll20 Wiki
Andreas J. (Talk | contribs) m (Embed Macro) |
Andreas J. (Talk | contribs) m (→Roll) |
||
Line 48: | Line 48: | ||
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. | ||
− | == | + | ==Roll Command== |
− | You can embed a Roll Command(i.e <code>/r 3d6+5</code>) into the API button instead of a macro | + | You can embed a Roll Command(i.e <code>/r 3d6+5</code>) into the API button instead of a macro. Place a {{c|`}} at the start and you can write a normal chat command: |
− | + | <pre>[embedded roll](`/r d20+4)</pre> | |
− | '''Note''': Sometimes you might need to use [[HTML Entities]] to escape some characters so the commands will | + | 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 saved in macros as possible, so that if you use the same command in different places. That way you only have to edit the original if you later decide to make changes. |
− | <pre>[Name](!token-mod --set name#&#63;{Female Name&#63;})</pre> | + | |
+ | |||
+ | '''Note''': Sometimes you might need to use [[HTML Entities]] to escape some characters so the commands will read them properly: | ||
+ | <pre>[Name](!token-mod --set name#&#63;{Female Name&#63;})</pre> | ||
==Repeating Sections== | ==Repeating Sections== |
Revision as of 16:46, 28 March 2022
Page Updated: 2022-03-28 |
(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 with a single macro, displayed on the q Text Chat-tab.
Contents |
Creating Chat Menus
Macro Creation
- Complete Guide to Macros & Rolls
- q Text Chat
- Dice Reference
- Order of Operations
- Macros
- Token Reference
- Character Reference
- Roll Templates
- Roll Table
Advanced
- Formatting
- HTML Replacement
- Chat Menus
- Hidden Rolls
- Advanced Macro Tips
- API Commands
- Char Sheet Creation
- External tools
Misc.
Although implied by the wiki, and used by many API scripts, Chat Menus are very easy to make using API Command 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 a Macro Character Sheet 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.
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](! #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.
Roll Command
You can embed a Roll Command(i.e /r 3d6+5
) into the API button instead of a macro. Place a `
at the start and you can write a normal chat command:
[embedded roll](`/r d20+4)
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 saved in macros as possible, so that if you use the same command in different places. That way you only have to edit the original if you later decide to make changes.
Note: Sometimes you might need to use HTML Entities to escape some characters so the commands will read them properly:
[Name](!token-mod --set name#?{Female Name?})
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)
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(Forum) to style them for the D&D 5E by Roll20 template, or this tip(Forum) to style them for the default roll template:
Examples
Examples of Chat Menus. Please share yours here
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.
PF2E Character Roll Menu
A Chat menu that shows the attributes of a character, along with buttons to roll each, + initiative with the Pathfinder 2E 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.
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}= }}
Change Button Looks
trick by Ziechael
by adding a back-tick before the button value you can get an all text only display for the buttons:
/w gm &{template:default} {{name=Melee Attacks: @{selected|character_name}}} {{[PUNCH 1](`~selected|repeating_melee-strikes_$0_ATTACK-DAMAGE)=[KATANA 1](`~selected|repeating_melee-strikes_$1_ATTACK-DAMAGE)}}{{[PUNCH 2](`~selected|repeating_melee-strikes_$0_ATTACK-DAMAGE2)=[KATANA 2](`~selected|repeating_melee-strikes_$1_ATTACK-DAMAGE2)}} {{[PUNCH 3](`~selected|repeating_melee-strikes_$0_ATTACK-DAMAGE3)=[KATANA 3](`~selected|repeating_melee-strikes_$1_ATTACK-DAMAGE3)}}
Stargate Character Stats
Similar to the PF2E example, except it also displays the characters current & total HP. Using the Stargate char sheet.
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
For use with the 5E Shaped sheet and it's API.
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](! #{Macros|Doors}) [Ready Roofs](!RoofReady) [Summon Duplicates](~Summon) }}
Dynamic Lighting Token Menu
macro by keith
/w gm &{template:npcaction} {{rname=Vision and Light}}{{description=**Vision** [On](!token-mod --set has_bright_light_vision|on has_night_vision|on light_angle|360) | [Off](!token-mod --set has_bright_light_vision|off has_night_vision|off light_angle|360) | [GM](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|10 light_angle|360) [Touch](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|5 light_angle|360) | [Blindfighting](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|10 light_angle|360) [Darkvision](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|60 light_angle|360 night_vision_effect|nocturnal) | [DV90](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|90 light_angle|360 night_vision_effect|nocturnal) | [DV120](!token-mod --set has_bright_light_vision|on has_night_vision|on night_vision_distance|120 light_angle|360 night_vision_effect|nocturnal) | [DV off](!token-mod --set has_bright_light_vision|on has_night_vision|off night_vision_distance|0 light_angle|360) **Light** [Off](!token-mod --set emits_bright_light|off emits_low_light|off light_angle|360) | [On](!token-mod --set emits_bright_light|on emits_low_light|on light_angle|360) | [Spot](!token-mod --set emits_bright_light|on bright_light_distance|5 low_light_distance|0 light_angle|360) | [Candle](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|2 low_light_distance|5 light_angle|360) | [Lamp](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|15 low_light_distance|15 light_angle|360) | [Torch](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|20 low_light_distance|20 light_angle|360) [Hooded Lantern](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|30 low_light_distance|30 light_angle|360) | [Bullseye Lantern](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|60 low_light_distance|60 light_angle|90) [*Light*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|20 low_light_distance|20 light_angle|360) | [*Daylight*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|60 low_light_distance|60 light_angle|360) | [*Dancing*](!token-mod --set emits_bright_light|off emits_low_light|on bright_light_distance|0 low_light_distance|10 light_angle|360) | [*Faerie Fire*](!token-mod --set emits_bright_light|off emits_low_light|on bright_light_distance|0 low_light_distance|10 statusmarkers|purple light_angle|360) [*Gem of Brightness*](!token-mod --set emits_bright_light|on emits_low_light|on bright_light_distance|30 low_light_distance|30 light_angle|360)}}
Repeating Section
Link to a Repeating Section's roll button, of a character we are referencing by character ID.
[menutext](~-MUlgDDvkwuV3fp3DH2C|repeatingability-mwgsob0-zzdesbyljzy_roll)
Forum Examples
links examples on the forum
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)