The Aaron said: It would be great if we could just get a pseudo attribute with the row id in it. Short of that, I've got two thoughts: Add a hidden field to hold the row_id and populate it when the row is initially created (which might mean you keep having to check if it's set). Note, the names of fields must be unique across all repeating groups, so the name couldn't simply be row_id, it would need to be something like weapon_row_id, or inventory_row_id, etc. In the API, inject the id into the commands themselves. My (years old) UsePower script does this. On change of ability, it checks to see if there is a !use-power command in it and updates or adds the ability's id. You'd need to validate this on API restart (can't be sure things weren't added when the API was stopped) and on attribute changes. My discovery of the brokenness of getSectionIDs notwithstanding, I thought I'd post something I said to Kryx elsewhere on my thoughts of the relative merits of the two approaches: I do think it's worth considering the wider question of how you can design the sheet for API extensibility. When we build dynamic HTML pages, we start with a good base of semantic markup with little or no direct reference to the JS embedded within it, and then apply the JS afterwards to add extended behaviours for user agents that support it. That keeps the markup and the JS loosely coupled. In the same way, it strikes me as more elegant to have character sheets that output the core information as "semantic markup" in the form of roll template fields (with the roll template itself acting as the CSS, effectively), and then have scripts (if present) selectively process the information that is output to provide extended behaviours. The alternative is to fill up the semantic space of the character attributes with api calls shoe-horned into freeform text fields, which seems much "hackier" to me than including a hidden row id in the output. When you start to think of the roll output as not just a display format, but also a messaging interface to any API scripts that might want to act on the information, I think the inclusion of what is essentially a primary key onto a relevant data table, seems a lot more reasonable. Obviously I have less visibility than probably either you or he do of possible future developments at Roll20, so maybe this is moot, but it does seem to me to be a discussion worth having. Character sheets are a basic feature of Roll20, available to all, so they obviously can't depend on API features. On the other hand, I think that it would be unfortunate if those who want to use the power of the API end up having to basically throw away much of the value of the character sheets and start again - as tends to happen with things like PowerCards, for example (great though that script is). Coming up with some best practice on how to make character sheets extensible by the API would seem like a good idea for everyone. I have no doubt that better minds than mine have chewed all this over before, but I'm not aware of whatever conclusions they may have come to, and would certainly be interested in hearing if there are already some good ideas bubbling away somewhere... Edit: Also: <a href="https://app.roll20.net/forum/post/3051585/provide-a-pseudo-attribute-at-%7Brow-id%7D-for-repeating-sections/" rel="nofollow">https://app.roll20.net/forum/post/3051585/provide-a-pseudo-attribute-at-%7Brow-id%7D-for-repeating-sections/</a>