A few questions here! :) My hypothesis is that nothing would 'break' a repeating fieldset except modifying attribute names inside it (and its own attribute name). Is that true? You are correct. The repeating section you define in the sheet is essentially a template of instructions, that roll20 uses to build the sheet when a user views it. The attribute values are not stored in the sheet, but in abackend database. So you can delete and remove attributes from the section, and any already created attributes will still exist in the backend database - there's just no where to display them on the sheet. If you later recreated inputs with the same attribute name, those values would reappear. So yes, as long as you dont change the data type (like your example of text to number), the stored data is safe and you can add new contents to a repeating section safely. (also, would it be possible to have an action button outside the fieldssets that essentially dispay:none's the new inputs, to allow choice between old style and new style, since the latter is just adding stuff in the repeating section?) Yes, this kind of thing is done through CSS - there are examples on the roll20 wiki, in the CSS Wizardry page. How could I create a new row to implement inputs that are currently outside the fieldset: The sheet I'm working on has four repeating sections, and just above each one, there are rows with the same inputs as the fieldsets' row (just with slightly different attribute names), so it's a permanent row, outside the repeating section. I would like to copy the values of these permanent rows, create a sectionRow in the repeating section to paste the values into, and delete the permanent rows. This is where things get tricky. If you are modifying a sheet that is already in use (making changes to a sheet on roll20's github), you'll need to look into sheet versioning. The basic principle is simple: just add a hidden input containing a sheet version attribute, with a default value of 0. Then pick a version number you want to update the sheet to, say 1. Now, in your sheet's script block, add a sheet worker that runs on the sheet:opened event, checks the sheet's version number and if it is below the 1 (which all sheets will be, initially), run a version function to update the sheet. And at the end of the function, set the sheet's version attribute to a value of 1. With that set up, the first time anyone opens their sheet, the version updating function will run and make whatever changes you want. The second time, and all subsequent times, the sheet is opened, that version checker will run, see the sheet is now at version 1, and so will skip the updating function. With this method, you guarantee that a version update runs only once, and updates any sheets that have been in use prior to the changes. To the other part of your question: yes, you can get attribute values off a sheet and add a new row to the repeating section to add them. Theres a function to create new row ids: <a href="https://wiki.roll20.net/Sheet_Worker_Scripts#generateRowID.28.29" rel="nofollow">https://wiki.roll20.net/Sheet_Worker_Scripts#generateRowID.28.29</a> You'd have a worker that generates a row id, then uses that to create attribute names in the repeating section for your old stats, and stores the values with them using the setAttrs function. Hope this helps!