So I'm a macro-nerd and this is how I handle it, I use an attack menu first and foremost: /w @{character_name} &{template:atk} {{desc=**Attacks** **------------------------------------** **Melee** [@{repeating_attack_$0_atkname}](~@{character_name}|repeating_attack_$0_attack) [@{repeating_attack_$2_atkname}](~@{character_name}|repeating_attack_$2_attack) [@{repeating_attack_$4_atkname}](~@{character_name}|repeating_attack_$4_attack) [@{repeating_attack_$5_atkname}](~-LRn7aLSlHKyelJDpB4s|Rapier) [@{repeating_attack_$8_atkname}](~-LRn7aLSlHKyelJDpB4s|rapier2) **------------------------------------** **Ranged** [@{repeating_attack_$1_atkname}](~@{character_name}|repeating_attack_$1_attack) [@{repeating_attack_$2_atkname}](~@{character_name}|repeating_attack_$2_attack) **------------------------------------** **Magic** [@{repeating_attack_$3_atkname}](~@{character_name}|repeating_attack_$3_attack) [@{repeating_attack_$7_atkname}](~@{character_name}|repeating_attack_$7_attack) [@{repeating_attack_$6_atkname}](~@{character_name}|repeating_attack_$6_attack) }} In there you might be able to pick out that I've rerouted some of the repeating calls to specific character abilities (namely Rapier and rapier2), taking the Rapier example the button would result in a call to this ability: @{Kaloth 'Kal' Za'gur|wtype}&{template:atk} {{mod=+[[@{Kaloth 'Kal' Za'gur|pb}[PROF] + @{Kaloth 'Kal' Za'gur|dexterity_mod}[DEX] + 1[MAGIC] ]] }} {{rname=[Dragon Slayer Rapier](~-LRn7aLSlHKyelJDpB4s|rapierdamage)}} {{rnamec=[Dragon Slayer Rapier](~-LRn7aLSlHKyelJDpB4s|rapiercrit)}} {{r1=[[@{Kaloth 'Kal' Za'gur|d20}cs>20 + @{Kaloth 'Kal' Za'gur|dexterity_mod}[DEX] + @{Kaloth 'Kal' Za'gur|pb}[PROF] + 1[MAGIC]]]}} @{Kaloth 'Kal' Za'gur|rtype}cs>20 + @{Kaloth 'Kal' Za'gur|dexterity_mod}[DEX] + @{Kaloth 'Kal' Za'gur|pb}[PROF] + 1[MAGIC]]]}} {{range=}} {{desc=}} {{spelllevel=}} {{innate=}} {{globalattack=@{Kaloth 'Kal' Za'gur|global_attack_mod}}} ammo= @{Kaloth 'Kal' Za'gur|charname_output} That, in turn points to the rapierdamage or rapiercrit ability by the name as per the 5e OGL template output... getting towards my point, I promise! The damage output results in: &{template:dmg} {{damage=1}} {{dmg1flag=1}} {{dmg1=[[ 1d8 + @{Kaloth 'Kal' Za'gur|dexterity_mod}[DEX] + 1[MAGIC] ]] ?{Damage| Basic,}} {{dmg1type=Piercing}}| Sneak-Attack,}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[[[round((@{Kaloth 'Kal' Za'gur|level}-7)/2)]]d6]]}} {{dmg2type=Sneak| Greenflame Blade,}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)]]d8]]}} {{dmg2type=Fire}} {{desc=+[[@{Kaloth 'Kal' Za'gur|intelligence_mod} + [[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)]]d8]] Fire damage to an adjacent target| Booming Blade,}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)]]d8]]}} {{dmg2type=Thunder}} {{desc=+[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)]]d8]] thunder damage if the target willingly moves before my next turn| Sneak-Attack and Greenflame Blade,+ [[ [[ round((@{Kaloth 'Kal' Za'gur|level}-7)/2) ]]d6[SNEAK] ]]}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[ [[ floor((@{Kaloth 'Kal' Za'gur|level}+1)/6) ]]d8 ]]}} {{dmg2type=Fire}} {{desc=+[[ @{Kaloth 'Kal' Za'gur|intelligence_mod} + [[ floor((@{Kaloth 'Kal' Za'gur|level}+1)/6) ]]d8 ]] Fire damage to an adjacent target| Sneak-Attack and Booming Blade,+ [[ [[ round((@{Kaloth 'Kal' Za'gur|level}-7)/2) ]]d6[SNEAK] ]]}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[ [[ floor((@{Kaloth 'Kal' Za'gur|level}+1)/6) ]]d8 ]]}} {{dmg2type=Thunder}} {{desc=+[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)]]d8]] thunder damage if the target willingly moves before my next turn} }} As you can see, the whole context was needed to explain the end result which allows me to select the type of damage being done (based on my most common usecases); basic, sneak attack, greenflame blade, booming blade or sneak attack AND greenflame/booming. Here is rapiercrit to complete the set: &{template:dmg} {{damage=1}} {{dmg1flag=1}} {{dmg1=[[ 2d8 + @{Kaloth 'Kal' Za'gur|dexterity_mod}[DEX] + 1[MAGIC] ]] ?{Damage| Basic,}} {{dmg1type=Piercing}}| Sneak-Attack,}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[[[round((@{Kaloth 'Kal' Za'gur|level}-7)/2)*2]]d6]]}} {{dmg2type=Sneak| Greenflame Blade,}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8]]}} {{dmg2type=Fire}} {{desc=+[[@{Kaloth 'Kal' Za'gur|intelligence_mod} + [[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8]] Fire damage to an adjacent target| Booming Blade,}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8]]}} {{dmg2type=Thunder}} {{desc=+[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8]] thunder damage if the target willingly moves before my next turn| Sneak-Attack and Greenflame Blade,+ [[ [[ round((@{Kaloth 'Kal' Za'gur|level}-7)/2)*2]]d6[SNEAK] ]]}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[ [[ floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8 ]]}} {{dmg2type=Fire}} {{desc=+[[ @{Kaloth 'Kal' Za'gur|intelligence_mod} + [[ floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8 ]] Fire damage to an adjacent target| Sneak-Attack and Booming Blade,+ [[ [[ round((@{Kaloth 'Kal' Za'gur|level}-7)/2)*2]]d6[SNEAK] ]]}} {{dmg1type=Piercing}} {{dmg2flag=1}} {{dmg2=[[ [[ floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8 ]]}} {{dmg2type=Thunder}} {{desc=+[[[[floor((@{Kaloth 'Kal' Za'gur|level}+1)/6)*2]]d8]] thunder damage if the target willingly moves before my next turn} }} As you can see, it is a complicated setup but allows for a nicer output than the global damage fields.