The fact it's a repeating section shouldnt make a difference here, since you dont need to use any repeating section properties to get values, if the button is on the same row as the attributes. The option value syntax you are using there doesnt look valid for roll20. It looks like a JSON string, which is overcomplicated for what you're doing. A better way to do this in roll20, is have your select choose the attribute name, and a sheet worker set a hidden attribute's value to the relevant value. So you'd have something like < h4 > Agility: </ h4 > < input type = "number" name = "attr_agility" value = "0" > < h4 > Force: </ h4 > < input type = "number" name = "attr_force" value = "0" > < h4 > Mind: </ h4 > < input type = "number" name = "attr_mind" value = "0" > < fieldset class = "repeating_competence" > < select name = "attr_competence_name" > < option > Agility </ option > < option > Force </ option > < option > Mind </ option > </ select > < input type = "hidden" name = "attr_competence_value" value = "0" > < button type = "roll" value = "Name: @{competence_name}; Value: @{competence_value}" ></ button > </ fieldset > < script type = "text/worker" > const competence_section = 'repeating_competence'; const stats = ['agility', 'force', 'mind']; const changeStats = stats.reduce((str, stat) => ` ${str} change:${stat}`, 'sheet:opened'); on(`change:${competence_section}:competence_name ${changeStats}`, (event) => { getSectionIDs(competence_section, idarray => { const fieldnames = []; idarray.forEach(id => fieldnames.push( `${competence_section}_${id}_competence_name`, `${competence_section}_${id}_competence_value` )); getAttrs([...stats, ...fieldnames], values => { const output = {}; idarray.forEach(id => { const stat = values[`${competence_section}_${id}_competence_name`]; output[`${competence_section}_${id}_competence_value`] = values[stat.toLowerCase()]; }); setAttrs(output); }); }) }); To adapt to your needs you only have to edit two lines: const competence_section = 'repeating_competence'; const stats = ['agility', 'force', 'mind']; These
two lines - just enter the name of your repeating section here, and
enter your stat names here. You dont need to change any of the rest of
the sheet worker. To use this, see the post belowyou'll obviously need to search and replace every instance of repeating_compentence with your repeating section Also be careful about the case of attribute names. Use lower case for your attribute names, or the above wont work. use compenentce_name and competence_value, instead of CompetenceName and CompetenceValue.