Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
May your rolls be chill this holiday season!
Create a free account

seemingly new repeating section questions

OK, So I have made some very good use of repeating sections in my custom character sheet.  I'm at the point now where I've covered basically everything I need to and any further development is either at players requests, or for diminishing returns. So I have several repeating sections for things like custom spells, custom attacks, and custom effects.  Each one contains all the various details needed to make these custom items.  This works well, but once these custom items are created, the player doesn't really need all the various details for each of them.  She basically only needs the roll button for each custom item.  So I've been asked to create a separate tab that just contains these buttons. Lets take the custom defenses repeating section for example.  It seems to me that the only way this might be possible would be for me to create a second repeating section, but one which only contains the roll buttons for the custom defenses.  Then I'd have to tie the roll buttons only custom defenses repeating section to the complete custom defenses repeating section somehow.  That way, if you create a new item in the complete custom defenses repeating section , a roll button for it would also be created in the roll buttons only custom defenses repeating section . This seems plausible enough that I'm asking about it, but also implausible enough that I won't be surprised if I'm told it can't be done with the current API.  I would also ask however, whether this might be possible using some other strategy. Assuming this is possible, an additional question would be whether it would be possible to set the roll buttons only custom defenses repeating section up so that if you hover the mouse over a roll button in that section, that a text window would pop up that would include the entire name of that item, because I imagine the name would end up being truncated on the button itself. Here is the code for the complete custom defenses repeating section .  I'm leaving out the grid css, because it doesn't much matter: <fieldset class="repeating_defenses"> <div class="expandable-section paleRedGradient"> <input class="expand-control" type="hidden" name="attr_defense_checkbox_expand" value="1"/> <div class="defensesTitleGrid"> <div class="defbcb blueBackground section"> <div class="fieldLabelCenter white blueBackground section">Base</div> <input class="field derived24 section" name="attr_defense_basic_combat_bonus" value="@{defense_subtotal}" disabled="true"> </div> <div class="defmd1 blueBackground section"> <div class="fieldLabelCenter white blueBackground section">Modifier</div> <input class="field right manual24" name="attr_defense_modifier_1" type="number" value='0'> </div> <div class="defmd2 blueBackground section"> <div class="fieldLabelCenter white blueBackground section">Modifier</div> <input class="field right manual24" name="attr_defense_modifier_2" type="number" value='0'> </div> <div class="defshw section"> <input type="checkbox" name="attr_defense_checkbox_expand" value="1" class="expandEntry expand-state" title="@{defense_checkbox_expand}" /><span title="Expand"></span> </div> <div class="defnam blueBackground section"> <div class="fieldLabelCenter white section">Name</div> <input class="field manual24" name="attr_defense_name" type="text"> </div> <div class="defrol blueBackground section"> <button class="buttonStyle cast" name="roll_defense" type="roll" value='&{template:default}{{name=@{defense_name}}}{{Defense Roll=[[1d100cf0cs0+@{defense_total_defense_bonus}]]}}' style="float:right;">Roll</button> </div> <div class="defmd3 blueBackground section"> <div class="fieldLabelCenter white blueBackground section">Modifier</div> <input class="field right manual24" name="attr_defense_modifier_3" type="number" value='0'> </div> <div class="defmd4 blueBackground section"> <div class="fieldLabelCenter white blueBackground section">Modifier</div> <input class="field right manual24" name="attr_defense_modifier_4" type="number" value='0'> </div> <div class="deftot blueBackground section"> <div class="fieldLabelCenter white blueBackground section">Total</div> <input class="field derived24 section" name="attr_defense_total_defense_bonus" value="@{defense_basic_combat_bonus}+@{defense_modifier_1}+@{defense_modifier_2}+@{defense_modifier_3}+@{defense_modifier_4}" disabled="true"> </div> </div> <div class="collapsed-view"> <!--What you want shown when the section is collapsed goes here--> </div> <div class="expanded-view"> <div class="defensesBodyGrid"> <div class="defdtl section"> <div class="fieldLabelCenter white blueBackground section">Details</div> <textarea class="defensesTextarea baseTextarea transparentBackground bottomBorder section" name="attr_defense_details"></textarea> </div> </div> </div> </div> </fieldset> Here is the code for the roll button only custom defenses repeating section : <fieldset class="repeating_defenses"> <div class="defensesTitleGrid"> <div class="defrol blueBackground section"> <button class="buttonStyle cast" name="attr_defense_name" type="roll" value='&{template:default}{{name=@{defense_name}}}{{Defense Roll=[[1d100cf0cs0+@{defense_total_defense_bonus}]]}}' style="float:right;">Roll</button> </div> </div> </fieldset>
1599117231
GiGs
Pro
Sheet Author
API Scripter
You can create copies of a repeating section, just by creating a new one with the same fieldset class. These are both the same repeating section. So your second repeating_defences fieldset automatically includes all data the first one has, it just doesnt display it unless you add the html to display it. Two problems: you have defined your button with a name like this: name="attr_defence_name" it's a button, so its name should be in the form name="roll_defence_name" If you want the name to popup you need to look into the CSS for hovertext. It can be done. One possible complication: I cant remember if so, but you might need to define inputs for any attributes your button uses. Just make them type=hidden. So with your second repeating section, something like this: <fieldset class="repeating_defenses">         <input type="hidden" name="attr_defence_total_bonus" /> <div class="defensesTitleGrid"> <div class="defrol blueBackground section"> <button class="buttonStyle cast" name="roll_defense" type="roll" value='&{template:default}{{name=@{defense_name}}}{{Defense Roll=[[1d100cf0cs0+@{defense_total_defense_bonus}]]}}' style="float:right;">Roll</button> </div> </div> </fieldset> A completely different approach though would be to use just one repeating section, and hide most of the data inside an area hidden by CSS. So players click an "edit mode" checkbox to see all the data, and uncheck it to just see the parts they actually need to use.
1599125639
GiGs
Pro
Sheet Author
API Scripter
The CSS Wizardry page on the wiki has a section about multiple copies of the same repeating section, here: <a href="https://wiki.roll20.net/CSS_Wizardry#Duplicate_a_repeating_section_name_to_display_the_same_data_on_more_than_one_tab.or_present_a_summary_of_the_data_elsewhere" rel="nofollow">https://wiki.roll20.net/CSS_Wizardry#Duplicate_a_repeating_section_name_to_display_the_same_data_on_more_than_one_tab.or_present_a_summary_of_the_data_elsewhere</a> I remembered correctly about needing to include the inputs for any attributes that are used in each copy of a repeating section (though they can be hidden).
1599136202
Finderski
Plus
Sheet Author
Compendium Curator
GiGs said: The CSS Wizardry page on the wiki has a section about multiple copies of the same repeating section, here: <a href="https://wiki.roll20.net/CSS_Wizardry#Duplicate_a_repeating_section_name_to_display_the_same_data_on_more_than_one_tab.or_present_a_summary_of_the_data_elsewhere" rel="nofollow">https://wiki.roll20.net/CSS_Wizardry#Duplicate_a_repeating_section_name_to_display_the_same_data_on_more_than_one_tab.or_present_a_summary_of_the_data_elsewhere</a> I remembered correctly about needing to include the inputs for any attributes that are used in each copy of a repeating section (though they can be hidden). And they need the same default values (if any).
1600362466

Edited 1600362537
So, I've been using the suggestion above, but I'm encountering an error and I'm not sure whether it is fixable.&nbsp; When I use the "roll_melee_attack" button from '&lt;fieldset class="repeating_meleeattacks filtershortlist"&gt;', seen below, I get this error: SyntaxError: Expected "(", ".", "[", "abs(", "ceil(", "d", "floor(", "round(", "t", "{", [ |\t], [+|\-] or [0-9] but end of input found. That is I get that error until I check or uncheck "attr_melee_checkbox_expand" from '&lt;fieldset class="repeating_meleeattacks"&gt;'.&nbsp; After I've done that, I no longer see the error.&nbsp; It appears there are values used in "roll_melee_attack" that aren't populated into their hidden value holders until some handling of '&lt;fieldset class="repeating_meleeattacks"&gt;' has been triggered. It has been said that: "Not all items must be present or displayed in all lists. However each item must be present in every list in which it is used. For example, if you have an auto-calc field, or a button that uses a field, All the fields used in the autocalc, or passed by the button, must be present in the same instance of the repeating section, it will not go looking for it in other instances of the repeating section. The referenced field may be hidden, but must be present." And there are some values stored in '&lt;fieldset class="repeating_meleeattacks filtershortlist"&gt;', which are not stored in '&lt;fieldset class="repeating_meleeattacks"&gt;', but adding them there does not fix the problem. My suspicion is that this " trick is not recommended by the developers" because the API wasn't designed to handle it.&nbsp; However, I thought I'd ask in case there is a way to automatically trigger whatever gets triggered when I&nbsp; check or uncheck "attr_melee_checkbox_expand". I should mention that attr_melee_attack_action_points and attr_melee_attack_reach" are autopopulated by a sheetworker, which I'll include below. This is '&lt;fieldset class="repeating_meleeattacks filtershortlist"&gt;' &lt;div class="fieldLabelOverviewRepeating sticky blueBorder1"&gt;Melee Attacks&lt;/div&gt; &lt;fieldset class="repeating_meleeattacks filtershortlist"&gt; &lt;div class="expandable-section paleRedGradient"&gt; &lt;div class="overviewMeleeAttacksGrid"&gt; &lt;div class="mlerch whiteBackground blueBorder1 section"&gt; &lt;input name="attr_melee_attack_reach_clean" type="hidden"&gt; &lt;input name="attr_melee_attack_reach" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_type_1" type="hidden"&gt; &lt;span class="borderlessField derivedOverviewAttacksTop section" name="attr_melee_attack_reach"&gt;&lt;/span&gt; &lt;span class="borderlessField derivedOverviewAttacksBottom section" name="attr_melee_attack_damage_type_1"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div class="mlelde blueBackground blueBorderTop1 section"&gt; &lt;input name="attr_melee_attack_action_points" type="hidden"&gt; &lt;input name="attr_melee_attack_action_points_clean" type="hidden"&gt; &lt;button class="buttonStyleTop load" name="act_loadmeleeattack" type="action" style="float:right;"&gt; &lt;span name="attr_melee_attack_action_points"&gt;&lt;/span&gt; &lt;/button&gt; &lt;/div&gt; &lt;div class="mlerol blueBackground section"&gt; &lt;input name="attr_melee_attack_properties" type="hidden"&gt; &lt;input name="attr_melee_attack_name" type="hidden"&gt; &lt;button class="buttonStyleBottom roll" name="roll_melee_attack" type="roll" value='&amp;{template:default}{{name=@{melee_attack_name}}}{{Attack Roll=[[1d100cf5cs0+@{melee_attack_total_attack_bonus}]]}}{{Properties=@{melee_attack_properties}}}{{Resistance Penalty=[[@{melee_attack_resistance_penalty}]]}}{{@{melee_attack_damage_type_1} =[[@{melee_attack_number_of_damage_dice_1}d@{melee_attack_damage_dice_facet_number_1}cf0cs0+@{melee_attack_attribute_damage_bonus}+@{melee_attack_weapon_quality_damage_bonus}+@{melee_attack_weapon_skill_damage_bonus}+@{melee_attack_damage_bonus_1}]]}}{{@{melee_attack_damage_type_2} =[[@{melee_attack_number_of_damage_dice_2}d@{melee_attack_damage_dice_facet_number_2}cf0cs0+@{melee_attack_damage_bonus_2}]]}}{{@{melee_attack_damage_type_3} =[[@{melee_attack_number_of_damage_dice_3}d@{melee_attack_damage_dice_facet_number_3}cf0cs0+@{melee_attack_damage_bonus_3}]]}}' style="float:right;"&gt; &lt;span name="attr_melee_attack_name"&gt;&lt;/span&gt; &lt;/button&gt; &lt;/div&gt; &lt;input name="attr_melee_attack_hands" type="hidden"&gt; &lt;input name="attr_melee_checkbox_expand" type="hidden"&gt; &lt;input name="attr_melee_attack_basic_combat_bonus" type="hidden"&gt; &lt;input name="attr_melee_attack_weapon_skill_attack_bonus" type="hidden"&gt; &lt;input name="attr_melee_attack_miscellaneous_modifier" type="hidden"&gt; &lt;input name="attr_melee_attack_total_attack_bonus" type="hidden"&gt; &lt;input name="attr_melee_attack_number_of_damage_dice_1" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_dice_facet_number_1" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_bonus_1" type="hidden"&gt; &lt;input name="attr_melee_attack_details" type="hidden"&gt; &lt;input name="attr_melee_attack_attribute_damage_bonus" type="hidden"&gt; &lt;input name="attr_melee_attack_resistance_penalty" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_type_2" type="hidden"&gt; &lt;input name="attr_melee_attack_number_of_damage_dice_2" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_dice_facet_number_2" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_bonus_2" type="hidden"&gt; &lt;input name="attr_melee_attack_weapon_quality_damage_bonus" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_type_3" type="hidden"&gt; &lt;input name="attr_melee_attack_number_of_damage_dice_3" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_dice_facet_number_3" type="hidden"&gt; &lt;input name="attr_melee_attack_damage_bonus_3" type="hidden"&gt; &lt;input name="attr_melee_attack_weapon_skill_damage_bonus" type="hidden"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/fieldset&gt; This is&nbsp;&lt;fieldset class="repeating_meleeattacks"&gt;: &lt;div class="blueGradientBackground sectionLabelCenter white sticky repeatingLabel"&gt;Melee Attacks&lt;/div&gt; &lt;fieldset class="repeating_meleeattacks"&gt; &lt;div class="expandable-section paleRedGradient"&gt; &lt;input class="expand-control" type="hidden" name="attr_melee_checkbox_expand" value="0"/&gt; &lt;div class="meleeAttacksTitleGrid"&gt; &lt;div class="mlerch blueBackground section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Reach&lt;/div&gt; &lt;input name="attr_melee_attack_reach" type="hidden"&gt; &lt;input class="field right manual24" name="attr_melee_attack_reach_clean" type="number" min='5'&gt; &lt;/div&gt; &lt;div class="mleapc blueBackground section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;AP&lt;/div&gt; &lt;input name="attr_melee_attack_action_points" type="hidden"&gt; &lt;input class="field right manual24" name="attr_melee_attack_action_points_clean" type="number" min='2'&gt; &lt;/div&gt; &lt;div class="mlehnd blueBackground section"&gt; &lt;div class="fieldLabelCenter white section"&gt;Hands&lt;/div&gt; &lt;select name="attr_melee_attack_hands" class="dropDown manual20"&gt; &lt;option value=""&gt;&lt;/option&gt; &lt;option value="Primary" &gt;Primary&lt;/option&gt; &lt;option value="Secondary" &gt;Secondary&lt;/option&gt; &lt;option value="Both" &gt;Both&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="mleshw section"&gt; &lt;input type="checkbox" name="attr_melee_checkbox_expand" value="1" class="expandEntry expand-state" title="@{melee_checkbox_expand}" /&gt; &lt;/div&gt; &lt;div class="mlenam blueBackground section"&gt; &lt;div class="fieldLabelCenter white section"&gt;Name&lt;/div&gt; &lt;input class="field manual24" name="attr_melee_attack_name" type="text" value="New Melee Attack"&gt; &lt;/div&gt; &lt;div class="mlelde blueBackground blueBorderTop1 section"&gt; &lt;button class="buttonStyleTop load" name="act_loadmeleeattack" type="action" style="float:right;"&gt;Load&lt;/button&gt; &lt;/div&gt; &lt;div class="mlerol blueBackground section"&gt; &lt;button class="buttonStyleBottom roll" name="roll_melee_attack" type="roll" value='&amp;{template:default}{{name=@{melee_attack_name}}}{{Attack Roll=[[1d100cf5cs0+@{melee_attack_total_attack_bonus}]]}}{{Properties=@{melee_attack_properties}}}{{Resistance Penalty=[[@{melee_attack_resistance_penalty}]]}}{{@{melee_attack_damage_type_1} =[[@{melee_attack_number_of_damage_dice_1}d@{melee_attack_damage_dice_facet_number_1}cf0cs0+@{melee_attack_attribute_damage_bonus}+@{melee_attack_weapon_quality_damage_bonus}+@{melee_attack_weapon_skill_damage_bonus}+@{melee_attack_damage_bonus_1}]]}}{{@{melee_attack_damage_type_2} =[[@{melee_attack_number_of_damage_dice_2}d@{melee_attack_damage_dice_facet_number_2}cf0cs0+@{melee_attack_damage_bonus_2}]]}}{{@{melee_attack_damage_type_3} =[[@{melee_attack_number_of_damage_dice_3}d@{melee_attack_damage_dice_facet_number_3}cf0cs0+@{melee_attack_damage_bonus_3}]]}}' style="float:right;"&gt;Attack&lt;/button&gt; &lt;/div&gt; &lt;div class="mlebcb blueBackground section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Base&lt;/div&gt; &lt;input class="field derived24 section" name="attr_melee_attack_basic_combat_bonus" value="@{melee_subtotal}" disabled="true"&gt; &lt;/div&gt; &lt;div class="mleskl blueBackground section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Wpn Skl&lt;/div&gt; &lt;input class="field right manual24" name="attr_melee_attack_weapon_skill_attack_bonus" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;div class="mlemsc blueBackground section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Misc.&lt;/div&gt; &lt;input class="field right manual24" name="attr_melee_attack_miscellaneous_modifier" type="number" value='0'&gt; &lt;/div&gt; &lt;div class="mletot blueBackground section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Total&lt;/div&gt; &lt;input class="field derived24 section" name="attr_melee_attack_total_attack_bonus" value="@{melee_attack_basic_combat_bonus}+@{melee_attack_weapon_skill_attack_bonus}+@{melee_attack_miscellaneous_modifier}" disabled="true"&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="collapsed-view"&gt; &lt;!--What you want shown when the section is collapsed goes here--&gt; &lt;/div&gt; &lt;div class="expanded-view"&gt; &lt;div class="meleeAttacksBodyGrid"&gt; &lt;div class="mledt1 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Damage Type&lt;/div&gt; &lt;select name="attr_melee_attack_damage_type_1" class="dropDown transparentBackground manual20"&gt; &lt;option value="" &gt;&lt;/option&gt; &lt;option value="Air" &gt;Air&lt;/option&gt; &lt;option value="Earth" &gt;Earth&lt;/option&gt; &lt;option value="Fire" &gt;Fire&lt;/option&gt; &lt;option value="Water" &gt;Water&lt;/option&gt; &lt;option value="Animus" &gt;Animus&lt;/option&gt; &lt;option value="Entropy" &gt;Entropy&lt;/option&gt; &lt;option value="Bludgeoning" &gt;Bludgeoning&lt;/option&gt; &lt;option value="Slashing" &gt;Slashing&lt;/option&gt; &lt;option value="Piercing" &gt;Piercing&lt;/option&gt; &lt;option value="Biological" &gt;Biological&lt;/option&gt; &lt;option value="Mental" &gt;Mental&lt;/option&gt; &lt;option value="Divine" &gt;Divine&lt;/option&gt; &lt;option value="Infernal" &gt;Infernal&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="mledi1 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Dice #&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_number_of_damage_dice_1" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;div class="mlefc1 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Facet #&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_damage_dice_facet_number_1" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;div class="mledb1 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Bonus&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_damage_bonus_1" type="number" value='0'&gt; &lt;/div&gt; &lt;div class="mledtl section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Details&lt;/div&gt; &lt;textarea class="attacksTextarea baseTextarea blueBorder1 transparentBackground section" name="attr_melee_attack_details"&gt;&lt;/textarea&gt; &lt;/div&gt; &lt;div class="mleadb section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Attr Dmg&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_attribute_damage_bonus" type="number" value='0'&gt; &lt;/div&gt; &lt;div class="mlerpn section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Res Pen&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_resistance_penalty" type="number" value='0' max='0'&gt; &lt;/div&gt; &lt;div class="mledt2 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Damage Type&lt;/div&gt; &lt;select name="attr_melee_attack_damage_type_2" class="dropDown transparentBackground manual20"&gt; &lt;option value="" &gt;&lt;/option&gt; &lt;option value="Air" &gt;Air&lt;/option&gt; &lt;option value="Earth" &gt;Earth&lt;/option&gt; &lt;option value="Fire" &gt;Fire&lt;/option&gt; &lt;option value="Water" &gt;Water&lt;/option&gt; &lt;option value="Animus" &gt;Animus&lt;/option&gt; &lt;option value="Entropy" &gt;Entropy&lt;/option&gt; &lt;option value="Bludgeoning" &gt;Bludgeoning&lt;/option&gt; &lt;option value="Slashing" &gt;Slashing&lt;/option&gt; &lt;option value="Piercing" &gt;Piercing&lt;/option&gt; &lt;option value="Biological" &gt;Biological&lt;/option&gt; &lt;option value="Mental" &gt;Mental&lt;/option&gt; &lt;option value="Divine" &gt;Divine&lt;/option&gt; &lt;option value="Infernal" &gt;Infernal&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="mledi2 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Dice #&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_number_of_damage_dice_2" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;div class="mlefc2 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Facet #&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_damage_dice_facet_number_2" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;div class="mledb2 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Bonus&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_damage_bonus_2" type="number" value='0'&gt; &lt;/div&gt; &lt;div class="mleqdb section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Quality Damage&lt;/div&gt; &lt;input class="field transparentBackground manual24" name="attr_melee_attack_weapon_quality_damage_bonus" type="number" value='0'&gt; &lt;/div&gt; &lt;div class="mledt3 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Damage Type&lt;/div&gt; &lt;select name="attr_melee_attack_damage_type_3" class="dropDown transparentBackground manual20"&gt; &lt;option value="" &gt;&lt;/option&gt; &lt;option value="Air" &gt;Air&lt;/option&gt; &lt;option value="Earth" &gt;Earth&lt;/option&gt; &lt;option value="Fire" &gt;Fire&lt;/option&gt; &lt;option value="Water" &gt;Water&lt;/option&gt; &lt;option value="Animus" &gt;Animus&lt;/option&gt; &lt;option value="Entropy" &gt;Entropy&lt;/option&gt; &lt;option value="Bludgeoning" &gt;Bludgeoning&lt;/option&gt; &lt;option value="Slashing" &gt;Slashing&lt;/option&gt; &lt;option value="Piercing" &gt;Piercing&lt;/option&gt; &lt;option value="Biological" &gt;Biological&lt;/option&gt; &lt;option value="Mental" &gt;Mental&lt;/option&gt; &lt;option value="Divine" &gt;Divine&lt;/option&gt; &lt;option value="Infernal" &gt;Infernal&lt;/option&gt; &lt;/select&gt; &lt;/div&gt; &lt;div class="mledi3 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Dice #&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_number_of_damage_dice_3" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;div class="mlefc3 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Facet #&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_damage_dice_facet_number_3" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;div class="mledb3 section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Bonus&lt;/div&gt; &lt;input class="field right transparentBackground manual24" name="attr_melee_attack_damage_bonus_3" type="number" value='0'&gt; &lt;/div&gt; &lt;div class="mlekdb section"&gt; &lt;div class="fieldLabelCenter white blueBackground section"&gt;Wpn Skill Damage&lt;/div&gt; &lt;input class="field transparentBackground manual24" name="attr_melee_attack_weapon_skill_damage_bonus" type="number" value='0' min='0'&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="meleeAttacksPropertiesGrid blueBackground"&gt; &lt;input name="attr_melee_attack_properties" type="hidden"&gt; &lt;div class="mlepr1 section"&gt; &lt;input type="checkbox" name="attr_melee_attack_checkbox_cold_iron_weapon" value="1" class="property" title="@{melee_attack_checkbox_cold_iron_weapon}"/&gt; &lt;span title="Cold Iron"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div class="mlepr2 section"&gt; &lt;input type="checkbox" name="attr_melee_attack_checkbox_silver_weapon" value="1" class="property" title="@{melee_attack_checkbox_silver_weapon}"/&gt; &lt;span title="Silver"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div class="mlepr3 section"&gt; &lt;input type="checkbox" name="attr_melee_attack_checkbox_blessed_weapon" value="1" class="property" title="@{melee_attack_checkbox_blessed_weapon}"/&gt; &lt;span title="Blessed"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div class="mlepr4 section"&gt; &lt;input type="checkbox" name="attr_melee_attack_checkbox_enchanted_weapon" value="1" class="property" title="@{melee_attack_checkbox_enchanted_weapon}"/&gt; &lt;span title="Enchanted"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div class="mlepr5 section"&gt; &lt;input type="checkbox" name="attr_melee_attack_checkbox_magic_weapon" value="1" class="property" title="@{melee_attack_checkbox_magic_weapon}"/&gt; &lt;span title="Magic"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div class="mlepr6 section"&gt; &lt;input type="checkbox" name="attr_melee_attack_checkbox_spectral_weapon" value="1" class="property" title="@{melee_attack_checkbox_spectral_weapon}"/&gt; &lt;span title="Spectral"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div class="mledm1 section"&gt;&lt;/div&gt; &lt;div class="mledm2 section"&gt;&lt;/div&gt; &lt;div class="mledm3 section"&gt;&lt;/div&gt; &lt;div class="mledm4 section"&gt;&lt;/div&gt; &lt;div class="mledm5 section"&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/fieldset&gt; The sheetworker that autopopulates attr_melee_attack_action_points and attr_melee_attack_reach: // load melee attack properties &amp; AP on('change:repeating_meleeattacks:melee_attack_properties change:repeating_meleeattacks:melee_attack_checkbox_cold_iron_weapon change:repeating_meleeattacks:melee_attack_checkbox_silver_weapon change:repeating_meleeattacks:melee_attack_checkbox_blessed_weapon change:repeating_meleeattacks:melee_attack_checkbox_enchanted_weapon change:repeating_meleeattacks:melee_attack_checkbox_magic_weapon change:repeating_meleeattacks:melee_attack_checkbox_spectral_weapon change:repeating_meleeattacks:melee_attack_action_points_clean change:repeating_meleeattacks:melee_attack_reach_clean', () =&gt; { getAttrs(['repeating_meleeattacks_melee_attack_properties', 'repeating_meleeattacks_melee_attack_checkbox_cold_iron_weapon', 'repeating_meleeattacks_melee_attack_checkbox_silver_weapon', 'repeating_meleeattacks_melee_attack_checkbox_blessed_weapon', 'repeating_meleeattacks_melee_attack_checkbox_enchanted_weapon', 'repeating_meleeattacks_melee_attack_checkbox_magic_weapon', 'repeating_meleeattacks_melee_attack_checkbox_spectral_weapon', 'repeating_meleeattacks_melee_attack_action_points_clean', 'repeating_meleeattacks_melee_attack_reach_clean'], values =&gt; { const propsSelected = [ [int(values.repeating_meleeattacks_melee_attack_checkbox_cold_iron_weapon), "cold iron, "], [int(values.repeating_meleeattacks_melee_attack_checkbox_silver_weapon), "silver, "], [int(values.repeating_meleeattacks_melee_attack_checkbox_blessed_weapon), "blessed, "], [int(values.repeating_meleeattacks_melee_attack_checkbox_enchanted_weapon), "enchanted, "], [int(values.repeating_meleeattacks_melee_attack_checkbox_magic_weapon), "magic, "], [int(values.repeating_meleeattacks_melee_attack_checkbox_spectral_weapon), "spectral, "] ]; const act_pnts = "AP:" + int(values.repeating_meleeattacks_melee_attack_action_points_clean); const reach = "Reach:" +int(values.repeating_meleeattacks_melee_attack_reach_clean); var props = ""; var i = 0; while (i &lt; propsSelected.length) { if (propsSelected[i][0] &gt; 0) props += propsSelected[i][1]; i++; } props = props.slice(0, props.length - 2); console.log( 'load melee attack properties &amp; AP' + '\n', 'melee_attack_properties: ' + props + '\n', 'melee_attack_action_points: ' + act_pnts + '\n', 'melee_attack_reach: ' + reach ); setAttrs({ repeating_meleeattacks_melee_attack_properties: props, repeating_meleeattacks_melee_attack_action_points: act_pnts, repeating_meleeattacks_melee_attack_reach: reach }); }); });
1600363142

Edited 1600363186
GiGs
Pro
Sheet Author
API Scripter
I wonder if the problem is you have two copies of that checkbox in the same section, and they have different values. Yes, one is a checkbox and the other is hidden, so what "value" means isn't the same for each, but that's the attribute that is giving you a problem, so it's worth testing. &lt;input class="expand-control" type="hidden" name="attr_melee_checkbox_expand" value="0"/&gt; &lt;div class="meleeAttacksTitleGrid"&gt; &lt;!-- snip a bunch --&gt; &lt;div class="mleshw section"&gt; &lt;input type="checkbox" name="attr_melee_checkbox_expand" value="1" class="expandEntry expand-state" title="@{melee_checkbox_expand}" /&gt; I'd remove value="0" from the first one - dont have anything setting the value. It will automatically have a value of 0 with the second one being a checkbox that isnt checked. Then test it on a completely new character, the previously set values of any exiting sheets don't interfere with the test.
I'm not sure why attr_melee_checkbox_expand would be called.&nbsp; It's not used in the roll. I tried setting the default value of attr_melee_checkbox_expand&nbsp;to 1 everywhere.&nbsp; That didn't work.&nbsp; Now I've removed the default setting of attr_melee_checkbox_expand in this line: &lt;input class="expand-control" type="hidden" name="attr_melee_checkbox_expand"/&gt; It still throws the error though.&nbsp; How do you know that the issue is attr_melee_checkbox_expand? Since it is&nbsp;attr_melee_checkbox_expand that is causing the error, this CSS might be relevant: .charsheet button[type=roll]::before {display: none;} .sheet-expand-control[value="0"] ~ .sheet-expanded-view, .sheet-expand-control:not([value="0"]) ~ .sheet-collapsed-view{display:none;} .sheet-expand-control:not([value="0"]) ~ .sheet-expanded-view{} .sheet-expandable-section:not(:hover) &gt; .sheet-expand-button{opacity:0;} .sheet-expandable-section &gt; :not(.sheet-expand-button){grid-column:1 / -1;} .sheet-expandable-section &gt; .sheet-expand-button &gt; .sheet-expand-state{grid-area:button;} .sheet-expand-button &gt; span{font-family:pictos;} .sheet-expand-button &gt; input:checked ~ .sheet-expand-state{transform:rotate(90deg);} fieldset.sheet-filtershortlist~.repcontrol {display: none;} .sheet-expandable-section &gt; .sheet-expand-button{ display:grid; grid-template-columns:auto; grid-template-rows:auto; grid-template-areas:"button"; place-items:center; width:auto; height:auto; } .sheet-expandable-section &gt; input[type=checkbox]{ opacity:0; z-index:10; width:100%; height:100%; grid-area:button; } .sheet-expand-button &gt; input[type=checkbox]{ opacity:0; z-index:10; grid-area:button; } .sheet-collapsed-view{ display:grid; clip-path:var(--spanPolygon); }
1600372819
GiGs
Pro
Sheet Author
API Scripter
Tim Z said: It still throws the error though.&nbsp; How do you know that the issue is attr_melee_checkbox_expand? I don't, I just looked for the quickest thing to test since the error was being cleared up by that checkbox. There's too much code there for me to look at it and know instantly what the issue is. It'll require some work to find, and i dont have the time for that. But I can try to give you pointers. The error your getting suggests an error in one of the attributes in your roll button. Are any of those attributes affected by anything that happens when you click that checkbox? Here are two things I would test: First, make sure that all attributes in the first sheet worker have default values that match the default values in the second sheet worker, and vice-versa. Then test it and see if you still have the issue. If the issue still occurs, look at the div class= expanded-view in the second fieldset, and make a list of every attribute in that section. Check you have a copy of all of them, with the same defaults, in the first sheet worker. If that fixes the error, you can work through the added attributes and delete them in batches, to find out which ones you need to make things work. If neither of those work, we can continue investigating.
Thanks GiG's.&nbsp; That was it. I took all of&nbsp; &lt;fieldset class="repeating_meleeattacks"&gt; and removed everything that wasn't a name, value, or title.&nbsp; Then I converted all of them to hidden inputs and placed them back in&nbsp; &lt;fieldset class="repeating_meleeattacks filtershortlist"&gt;.&nbsp; This solved the problem.&nbsp; I thought I'd already done that, but I must have left some omissions.
1600386091
GiGs
Pro
Sheet Author
API Scripter
great!