I had a look at this <div class="rowflex"> <input type="checkbox" class="radio-path order1" name="attr_path-Academics"><span></span> <label class="text-button inline order2"><input type="radio" class="labelradio invisible" name="attr_rollSkill" value="Academics"><span data-il8n="Academics">Academics</span></label> <input type="text" class="input input-skill order3"> <div class="inline dotcontainer order4"> <input type="radio" class="radio-dots invisible" name="attr_Academics" value="0" checked="checked"><span></span> <input type="radio" class="radio-dots" name="attr_Academics" value="1"><span></span> <input type="radio" class="radio-dots" name="attr_Academics" value="2"><span></span> <input type="radio" class="radio-dots" name="attr_Academics" value="3"><span></span> <input type="radio" class="radio-dots" name="attr_Academics" value="4"><span></span> <input type="radio" class="radio-dots" name="attr_Academics" value="5"><span></span> </div> </div> So it looks like all your skills are a single radio button, rollSkill. So your highlighting the one that is currently selected. And each one also has a radio button showing its value. That said, the technique I described above should should work with no problem. You just need to create two hidden inputs: one for current attribute value, and one for current skill value. Lets say we call them active_attribute, and active_skill. Put these anywhere in your sheet. <input type="hidden" name="attr_activeattribute" value="0">
<input type="hidden" name="attr_activeskill" value="0"> And add these two sheet workers For skills: const skills = ['Academics', 'Athletics', /* rest of your skills here */]; on(`change:${skills.join(' change:')} change:rollskill sheet:opened`, function() { getAttrs([...skills, rollSkill],function(values) { const skill_name = values.rollSkill; const skill_value = values[skill_name]; setAttrs({ active_skill: skill_value }); }); }); For attributes const attributes = [/* all your attributes here */]; on(`change:${attributes.join(' change:')} change:rollattribute sheet:opened`, function() { getAttrs([...attributes, rollAttribute],function(values) { setAttrs({ active_attribute: values[values.rollAttribute] }); }); }); And if I'm understanding the code, that should do the trick.