Chat menus are a great way to select actions from a sheet without having to open the sheet itself, but manually made ones are a pain to keep up to date if you want to include references to repeating sections (ie a spell list chat menu), and not all sheets have this quality of life feature. About a week ago GiGs and I both had the same idea to address this through a script. GiGs' Pathfinder Actions Chat Menu Generator and the follow up Universal Chat Menus scripts are excellent solutions to the problem, but since I wanted to finish my attempt at a solution, here's: Menu Maker v0.02 Welcome to Menu Maker. This script helps create dynamic chat button menus for character sheets that don't have an integrated chat menu system. Below are the instructions for the two types of dynamic macros that the script can create and maintain. Chat Menus Create templates of the menus you want to create as abilities on the attributes & abilities tab of this character. Templates are created using the same syntax as normal Roll20 macros with the addition of some syntax to denote where repeating items should be added. An area that is supposed to dynamically update with repeating item calls is bracketed with the following: [section:"sectionName"...] ... [/section] Inside the starting section declaration, you can also give options to control which repeating items should be included. The options in the order they should be added are: section: This is required and tells the script which repeating section to pull row ids from. The section name is bracketed with quotation marks and a colon separates the section keyword from the section name. attrany: This acts as a boolean to tell the script whether all, or just some, of the attrFilters (see below) need to be found. attrFilters: A semicolon separated list of non repeating attribute names and regex to test them with. The attribute name and the regex are separated by a colon (:), and the regex is bracketed with forward slashed (/). repeatany: Functions like attrany, but controls the behavior of the repeatFilters matching. repeatFilters: Functions as attrFilters, but for repeating attributes. Only the attribute name should be used, not the row's ID or section. An example declaration using all of these is: [section:"attack" attrany attrFilters=spellcasting_ability:/_mod/ repeatany repeatFilters=atkrange:/^$/] This will look pull repeating items from the attack section, but only if the character's spellcasting_ability attribute contains the string _mod in it. It will also only inject ids for repeating items that have an empty atkrange attribute (repeating_attack_$X_atkrange). Additionally you can denote headers and footers that will be added to the beginning or end (respectively) of the section. These are denoted by bracketing the header or footer text with the following: [header] ... [/header] [footer] ... [/footer] Below is a complete template showing all of these features. The attribute names used are from the 5e by Roll20 character sheet. &{template:default} {{name=Attacks for @{character_name}}} [section:"attack" repeatFilters=atkrange:/^$/] [header]{{Melee}} {{[/header][@{repeating_attack_$X_atkname}](~@{character_name}|repeating_attack_$X_attack)[footer]}} [/footer] [/section][section:"attack" attrFilters=spellcasting_ability:/_mod/ repeatFilters=atkrange:/^$/] [header]{{Spells}} {{=[/header][@{repeating_attack_$X_atkname}](~@{character_name}|repeating_attack_$X_attack)[footer]}} [/footer] [/section] Custom Repeating Abilities The script can also create custom abilities for repeating sections. Simply name the template in the format SECTION _$X_ ROLLNAME . The ROLLNAME must be a unique name that is not used elsewhere on the sheet. Custom repeating abilities can only reference non repeating attributes or attributes in a single repeating item. Menu Maker will work with any character sheet, because you define what the menu should look like and what attributes should be called where. The script uses an interactive bio/info page of a character sheet that the script creates to handle configuring how the sheet runs and how templates should be applied. This looks like this: GIF link I was going to design some in depth template macros to show off what you can do with this script, but I was lucky enough to have a dedicated Alpha tester in Keith Curtis who has been kind enough to volunteer to share the templates he made to work with the 5e OGL sheet. You'll be able to find them in the first response . The script's code can be found in this gist .