Goal Create a modification system that makes it easy for users to implement sheet-wide changes with no limit to the number of attributes affected in any one change and provide accurate user feedback to ensure that settings are changed appropriately. Setup Repeating Section "Modifications": This repeating section contains entries that directly alter attributes, such as increasing strength by 5, or doubling maximum hit points, or setting your darkvision distance. Each of these entries has a user-assigned "key" that is not necessarily unique. It also contains a toggle for turning the bonus on or off. Repeating Section "Modification Groups": This repeating section contains a toggle, name, and a key from the Modifications section. When toggled, all modifications that share the key specified are toggled to match the same state. For example, turning off your Werewolf form would mean setting every Modification to false. Repeating Section "Modification Validations": This repeating section allows users to set "Linked", "Required", or "Exclusive" settings for multiple modification groups. When modification group settings violate these constraints, this rule and the offending modification groups are highlighted in red. Example Workflow A user (User) gains a Ring of Strength +4, and already has a Ring of Darkvision and a Ring of Regeneration. User enters a new Modification in the Modification Repeating Section: { 'key': 'ring-of-strength', 'name': 'Ring of Strength: Strength Bonus', 'attribute': 'strength', 'value': 4, 'operation': 'modify' } The sheet worker creates a new "Modification Group" record because this is a new key value in the Modification Section. { 'key': 'ring-of-strength', 'name': 'Ring of Strength', 'enabled': 0 } The user copies the key 'ring-of-strength' and adds it to his or her existing '2 Ring Maximum' validation rule: { 'keys': 'ring-of-regeneration|ring-of-darkvision|ring-of-strength', 'name':'2 Ring Maximum', 'rule': 'exclusive', 'value': 2 } When they turn on their "Ring of Strength" modification group, it should then turn red, as should the "Ring of Regeneration" and "Ring of Darkvision" modification groups and the "2 Ring Maximum" validation rule. When they turn off at least one of the other rings, everything should return to normal. The user also creates a "Linked" validation rule, provides the 'equipment-rings' repeating section name, the 'left-hand-equipped' and 'right-hand-equipped' attributes, the 'ring-of-strength' key, and gives it the rowId of the row where he added the Ring of Strength item to his character sheet. When the user equips or unequips the ring of strength from the rings section of his character sheet, the modification is automatically toggled on and off. When the ring of strength row is removed, the "Linked" validation record is also removed, but everything else entered remains. Questions Can anyone think of a decent way to handle the variety of mathematical operations, dice rolls, and attribute references that would be easy and intuitive for a non-technical user to understand? My current implementation is for them to be able to mouse-over a field and get a tooltip that says "@{attribute-name}" to reference the attribute in the Modifications section formulas. For example, if you drink a potion that gives you an extra 2 hit points per hit dice, you would simply put in "@{hit-dice}*2" and set the operation value to 'modify'. However, this presents the risk of typos and could also be too complicated for users who struggle with these concepts. From a UX standpoint, what can be done to simplify the user's clicks to completion for this workflow? Gaining an item can require them to make changes to at least one repeating section, but as many as 3. It also requires a new row for each attribute changed. I was thinking about pre-building a number of validation rules that can be added when the sheet is created that I might expect most users to need. Are there any Roll20 limitations I have failed to consider in this implementation?