So, I've been fighting this most of the day and decided to throw the towel in... Here's my code: on("change:repeating_armor:armortypeweight change:repeating_armor:armorcarried", function(eventInfo) { let weightDiff = 0; getAttrs(["repeating_armor_ArmorTypeWeight","repeating_armor_ArmorCarried","armortotalweightcarried", function(value) { if (eventInfo.sourceAttribute.slice(-15) === "armortypeweight") { console.log("Made it to Armor Type Weight Change"); //Armor Weight changed let newWeight = parseFloat(eventInfo.newValue) || 0; let oldWeight = parseFloat(eventInfo.previousValue) || 0; if (value.repeating_armor_ArmorCarried === "0") { //Armor wasn't Carried weightDiff = 0; } else { //Armor was Carried weightDiff = newWeight - oldWeight; } } else { //Armor Carried checkbox changed console.log("Armor Carried Checkbox Changed"); let armorWeight = value.repeating_armor_ArmorTypeWeight; if (eventInfo.newValue === "0") { //Armor was carried, but isn't any longer, need to remove the weight from Total weightDiff = armorWeight * -1; } else { //Need to add the weight to the Total weightDiff = armorWeight; } } let newTotalWeight = value.armortotalweightcarried + weightDiff; setAttrs({armortotalweightcarried: newTotalWeight}); }]); }); And for some reason, I get this error when I change one of those values... Really updating character sheet values app.js?1542653514:352 Setting up repeating sections took until 16ms app.js?1542653514:352 Finding list of dirty attributes took until 18ms sheetsandboxworker.js?1543701703092:683 DOMException: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': function(value) { if (eventInfo.sourceAttribute.slice(-15) === "armortypeweight") { con...<omitted>... } could not be cloned. at self.getAttrs (<a href="https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:158:3" rel="nofollow">https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:158:3</a>) at Array.eval (eval at messageHandler (<a href="https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:651:6" rel="nofollow">https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:651:6</a>), <anonymous>:412:6) at self.trigger (<a href="https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:110:37" rel="nofollow">https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:110:37</a>) at messageHandler (<a href="https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:655:6" rel="nofollow">https://app.roll20.net/js/d20/sheetsandboxworker.js?1543701703092:655:6</a>) app.js?1542653514:352 Querytest took until 19ms app.js?1542653514:352 Attribute cache compliation took until 20ms sheetsandboxworker.js?1543701703092:684 E rror: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': function(value) { if (eventInfo.sourceAttribute.slice(-15) === "armortypeweight") { con...<omitted>... } could not be cloned. at self.getAttrs (sheetsandboxworker.js?1543701703092:158) at Array.eval (eval at messageHandler (sheetsandboxworker.js?1543701703092:651), <anonymous>:412:6) at self.trigger (sheetsandboxworker.js?1543701703092:110) at messageHandler (sheetsandboxworker.js?1543701703092:655) app.js?1542653514:352 Set values (including auto-calcuating variables) took until 25ms app.js?1542653514:352 Took 26ms So, what have I done wrong here?