Evening all, Back again with yet more misunderstandings i'm sure. In my custom character sheet I have a repeating section called "repeating_attacks", inside of which is an action button named "act_attackcheck" for triggering a custom roll. I've succesfully got a Custom Roll Parsing button and sheetworker setup on some static (read. non repeating) buttons but i'm falling down on the buttons inside a repeating section. When I click my buttons roll20 throws an error to the chat: "No ability was found for %{Test|repeating_attacks_attackcheck}" I can surmise that my issue is something to do with my naming of my repeating button but I can't quite spot what. Any assitance appreciated. (Code below cut down to just the relevant sections) html: < fieldset class = "repeating_attacks f-col" > < div class = "f-col" > < h4 > Roll </ h4 > < button type = "roll" name = "roll_attack" class = "text-btn" value = "@{attackcheckattrib}" ></ button > <!-- Hidden attribute & buttons for attack action buttons--> < input type = "hidden" name = "attr_attackcheckattrib" value = "%{Name|repeating_attacks_rowid_attackcheck}" > < button type = "action" name = "act_attackcheck" class = "hidden" ></ button > <!-- Hidden attribute & buttons for attack action buttons--> </ div > </ fieldset > sheetworkers: //When character name changes or sheet opens, update attack roll buttons with new name. on ( "change:character_name sheet:opened" , function () { //Get id's for each existant attack getSectionIDs ( "attacks" , function ( ids ) { for ( var i = 0 ; i < ids . length ; i ++) { let rowid = ids [ i ]; let attackcheckname = "repeating_attacks_" + rowid + "_attackcheck" ; let attackcheckattrib = "repeating_attacks_" + rowid + "_attackcheckattrib" ; getAttrs ([ "character_name" ], function ( charname ) { let revision_attack_value = "%{" + charname . character_name + "|" + attackcheckname + "}" ; setAttrs ({ [attackcheckattrib]: revision_attack_value }); }); } }); }); on ( "clicked:repeating_attacks:attackcheck" , function () { getAttrs ([ "attackname" , "attackdamage" , "attackspeed" , "attacktype" , "attackrange" , "attackap" , "attacktags" ], function ( attackdetails ) { console . log ( attackdetails ) }); });