If you use Fetch to get the attribute, though, you wouldn't have to change it. Fetch can work right in the ChatSetAttr line, and it offers a way to get the name of the particular sub-attribute of a repeating list entry via criteria you supply. For instance, on a 5E character sheet, if an entry in the attack list is named "Spear", then the sub-attribute atkname contains the text "Spear". The entire entry for the "Spear" attack occupies a particular place in the list ($0, $1, etc.), so if you want to know the dmgbase sub-attribute where the atkname sub-attribute is "Spear" and occupies position $1, then you want the dmgbase sub-attribute for row $1. The problem is, as you note, you can't always count on the row number being what it was last time. The order can be changed. Fetch gets around that by going through the reference from the criteria you supply... so instead of having to know the number (and having to update the number if the row order ever changes), you can instead as for the dmgbase sub-attribute where the atkname sub-attribute is Spear: *(Character Name.attack.[atkname = Spear].dmgbase) That would get you the value in the sub-attribute. But what you want is some version of the name, but that's OK, because this Fetch construction offers a few data points you can pull: FETCH CONSTRUCTION | EXAMPLE RETURN
===========================================================|================================================= *(Character Name.attack.[atkname = Spear].dmgbase) | 1d6 *(Character Name.attack.[atkname = Spear].dmgbase.name) | repeating_attack_-NZd9mlhGN68MUMxQSMZ_dmgbase *(Character Name.attack.[atkname = Spear].dmgbase.name$) | repeating_attack_$4_dmgbase *(Character Name.attack.[atkname = Spear].dmgbase.row$) | $4
You could use either the name or the name$ version in the ChatSetAttr line in place of hard-coding the name, and then you would no longer have to update the command line if the order of entries in the repeating list were to change at some point. You can give it a try: code up the command line using an agnostic Fetch construction and run the command line to show that it works; then reorder your list entries and run the command line again... it should continue to work. REQUIRED SCRIPTS Fetch is a metascript available in the 1-click installer, though I suggest getting the MetaScriptToolbox (also in the installer) as that gets you all of the metascript toys that help with things like this.