I have altered the Community Contributed 5e DND character sheet and created Macro's for their weapons attacks. The Templates and Attribute names are different but this is what I got to work as a Token Action... I programmed/made the adjustments in notepad++ then copy and pasted it into roll20 for sanity sake (notepad++ can keep track of things like opening and closing brackets, but I also utilized being able to create a new line and tabs for things I wanted to be sure would work ) &{template:5eDefault} {{character_name=@{selected|character_name}}} {{subheader=@{selected|character_name}}} {{weapon=1}} {{simple=1}} {{rollname=Attack}} {{title=?{Choose your weapon:
|@{selected|meleeweaponname1},@{selected|meleeweaponname1}}} {{subheaderright=Melee Attack}} {{roll1= [[ 1d20cs>@{selected|meleeweaponcritrange1} + [[@{selected|meleetohit1}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} {{ ?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange1} + [[@{selected|meleetohit1}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange1} + [[@{selected|meleetohit1}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} } {{weapondamage=[[ @{selected|meleedmg1} + [[@{selected|meleedmgbonus1}]] + @{selected|global_melee_damage_bonus}[Global M.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|meleedmgtype1} }} {{weaponcritdamage=Additional [[ @{selected|meleecritdmg1}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|meleeweaponname2}, @{selected|meleeweaponname2}}} {{subheaderright=Melee Attack}} {{roll1=[[ 1d20cs>@{selected|meleeweaponcritrange2} + [[@{selected|meleetohit2}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange2} + [[@{selected|meleetohit2}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange2} + [[@{selected|meleetohit2}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} } {{weapondamage=[[@{selected|meleedmg2} + [[@{selected|meleedmgbonus2}]] + @{selected|global_melee_damage_bonus}[Global M.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|meleedmgtype2} }} {{weaponcritdamage=Additional [[ @{selected|meleecritdmg2}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|meleeweaponname3},@{selected|meleeweaponname3} }} {{subheaderright=Melee Attack}} {{roll1=[[ 1d20cs>@{selected|meleeweaponcritrange3} + [[@{selected|meleetohit3}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]]}} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange3} + [[@{selected|meleetohit3}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange3} + [[@{selected|meleetohit3}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} } {{weapondamage=[[@{selected|meleedmg3} + [[@{selected|meleedmgbonus3}]] + @{selected|global_melee_damage_bonus}[Global M.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|meleedmgtype3} }} {{weaponcritdamage=Additional [[ @{selected|meleecritdmg3}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|meleeweaponname4},@{selected|meleeweaponname4} }} {{subheaderright=Melee Attack}} {{roll1=[[ 1d20cs>@{selected|meleeweaponcritrange4} + [[@{selected|meleetohit4}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange4} + [[@{selected|meleetohit4}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange4} + [[@{selected|meleetohit4}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} } {{weapondamage=[[@{selected|meleedmg4} + [[@{selected|meleedmgbonus4}]] + @{selected|global_melee_damage_bonus}[Global M.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|meleedmgtype4} }} {{weaponcritdamage=Additional [[ @{selected|meleecritdmg4}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|meleeweaponname5}, @{selected|meleeweaponname5}}} {{subheaderright=Melee Attack}} {{roll1=[[ 1d20cs>@{selected|meleeweaponcritrange5} + [[@{selected|meleetohit5}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange5} + [[@{selected|meleetohit5}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange5} + [[@{selected|meleetohit5}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} } {{weapondamage=[[@{selected|meleedmg5} + [[@{selected|meleedmgbonus5}]] + @{selected|global_melee_damage_bonus}[Global M.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|meleedmgtype5} }} {{weaponcritdamage=Additional [[ @{selected|meleecritdmg5}[Normal] + @{selected|extra_total_crit}[Other] ]] damage }}
|@{selected|meleeweaponname6}, @{selected|meleeweaponname6}}} {{subheaderright=Melee Attack}} {{roll1=[[ 1d20cs>@{selected|meleeweaponcritrange6} + [[@{selected|meleetohit6}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange6} + [[@{selected|meleetohit6}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|meleeweaponcritrange6} + [[@{selected|meleetohit6}]] + @{selected|global_melee_attack_bonus}[Global M.Atk] ]] }} } {{weapondamage=[[@{selected|meleedmg6} + [[@{selected|meleedmgbonus6}]] + @{selected|global_melee_damage_bonus}[Global M.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|meleedmgtype6} }} {{weaponcritdamage=Additional [[ @{selected|meleecritdmg6}[Normal] + @{selected|extra_total_crit}[Other] ]] damage }}
|@{selected|rangedweaponname1}, @{selected|rangedweaponname1}}} {{subheaderright=Ranged Attack}} {{roll1=[[ 1d20cs>@{selected|rangedweaponcritrange1} + [[@{selected|rangedtohit1}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange1} + [[@{selected|rangedtohit1}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange1} + [[@{selected|rangedtohit1}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} } {{weapondamage=[[@{selected|rangeddmg1} + [[@{selected|rangeddmgbonus1}]] + @{selected|global_ranged_damage_bonus}[Global R.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|rangeddmgtype1} }} {{weaponcritdamage=Additional [[ @{selected|rangedcritdmg1}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|rangedweaponname2}, @{selected|rangedweaponname2}}} {{subheaderright=Ranged Attack}} {{roll1=[[ 1d20cs>@{selected|rangedweaponcritrange2} + [[@{selected|rangedtohit2}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange2} + [[@{selected|rangedtohit2}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange2} + [[@{selected|rangedtohit2}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} } {{weapondamage=[[@{selected|rangeddmg2} + [[@{selected|rangeddmgbonus2}]] + @{selected|global_ranged_damage_bonus}[Global R.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|rangeddmgtype2} }} {{weaponcritdamage=Additional [[ @{selected|rangedcritdmg2}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|rangedweaponname3}, @{selected|rangedweaponname3}}} {{subheaderright=Ranged Attack}} {{roll1=[[ 1d20cs>@{selected|rangedweaponcritrange3} + [[@{selected|rangedtohit3}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange3} + [[@{selected|rangedtohit3}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange3} + [[@{selected|rangedtohit3}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} } {{weapondamage= [[@{selected|rangeddmg3} + [[@{selected|rangeddmgbonus3}]] + @{selected|global_ranged_damage_bonus}[Global R.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|rangeddmgtype3} }} {{weaponcritdamage=Additional [[ @{selected|rangedcritdmg3}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|rangedweaponname4}, @{selected|rangedweaponname4}}} {{subheaderright=Ranged Attack}} {{roll1=[[ 1d20cs>@{selected|rangedweaponcritrange4} + [[@{selected|rangedtohit4}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange4} + [[@{selected|rangedtohit4}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange4} + [[@{selected|rangedtohit4}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} } {{weapondamage=[[@{selected|rangeddmg4} + [[@{selected|rangeddmgbonus4}]] + @{selected|global_ranged_damage_bonus}[Global R.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|rangeddmgtype4} }} {{weaponcritdamage=Additional [[ @{selected|rangedcritdmg4}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|rangedweaponname5}, @{selected|rangedweaponname5}}} {{subheaderright=Ranged Attack}} {{roll1=[[ 1d20cs>@{selected|rangedweaponcritrange5} + [[@{selected|rangedtohit5}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange5} + [[@{selected|rangedtohit5}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange5} + [[@{selected|rangedtohit5}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} } {{weapondamage=[[@{selected|rangeddmg5} + [[@{selected|rangeddmgbonus5}]] + @{selected|global_ranged_damage_bonus}[Global R.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})]][Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|rangeddmgtype5} }} {{weaponcritdamage=Additional [[ @{selected|rangedcritdmg5}[Normal] + @{selected|extra_total_crit}[Other] ]] damage}}
|@{selected|rangedweaponname6}, @{selected|rangedweaponname6}}} {{subheaderright=Ranged Attack}} {{roll1=[[ 1d20cs>@{selected|rangedweaponcritrange6} + [[@{selected|rangedtohit6}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} {{?{Roll type?|Normal,noadvroll=1 }} |Advantage,rollhasadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange6} + [[@{selected|rangedtohit6}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} |Disadvantage,rollhasdisadv=1}} {{roll2=[[1d20cs>@{selected|rangedweaponcritrange6} + [[@{selected|rangedtohit6}]] + @{selected|global_ranged_attack_bonus}[Global R.Atk] ]] }} } {{weapondamage=[[@{selected|rangeddmg6} + [[@{selected|rangeddmgbonus6}]] + @{selected|global_ranged_damage_bonus}[Global R.Dmg] + (@{selected|hunters_mark_toggle}*@{selected|hunters_mark})[H.Mark] + (@{selected|sneak_attack_toggle}*@{selected|sneak_attack})[S.Attack] + (@{selected|hex_toggle}*@{selected|hex})[Hex] + (@{selected|rage_toggle}*@{selected|rage})[Rage] + (@{selected|weapon_placeholder_1_toggle}*@{selected|weapon_placeholder_1})[P.Holder_1] + (@{selected|weapon_placeholder_2_toggle}*@{selected|weapon_placeholder_2})[P.Holder_2] + (@{selected|weapon_placeholder_3_toggle}*@{selected|weapon_placeholder_3})[P.Holder_3] ]] @{selected|rangeddmgtype6} }} {{weaponcritdamage=Additional [[ @{selected|rangedcritdmg6}[Normal] + @{selected|extra_total_crit}[Other] ]] damage }} } I know that looks messy, but that creates a Pulldown list from a Token macro button of all 12 weapon slots available on my players character sheets and it works (not entire sure how you would handle the normal character sheet that utilizes repeatable fields, as you would have to know in advance the number of them... But maybe someone else can chime in/help with merging these two. If you have question about how to get Queries inside of Queries let me know. I usually code it the way you intuitive think about it first, (for example the first weapon. Then copy paste working code and change variable names slightly so didn't have to re-write everything..) This Macro asks what weapon attack you want to make, and then another prompt asks whether its Normal/Advantage/Disadvantage). It also works with the Dice roller (not run it extensively, so if you have weird formulas in your Attribute fields for dice roll I make no guarantees...) Many of those Attribute names I created/custom made my Character sheets to all have in case you were wondering. Again I know its not directly related, But this is an example of Token macro that creates a pulldown list for what weapon attack to use, then if that attack should be with Advantage/Normal/Disadvantage and then executes those fields... The Important things of note is how ending Curly Brackets, Commas and Vertical Pipes are handled for nested Queries within a Macro. It looks ugly but I was really proud of getting this to work... :) The Underlined portion in the 2nd line is the beginning and end of the nested Query and how I handled Those HTML replacement characters. Each Row is each weapon choice and that how I handled those HTML replacement values.... Edit: Also their was a slight bug in the code above (forgot to remove some roll dice brackets.... made it work for 3D dice...) anyway format wise still the same.