Hi again, The great news is all the help I've gotten has done wonders. The bad news is I am stuck once more and unclear where the problem lies. V&V checks two stats (Intelligence and Agility) on two separate charts with unique bonuses and adds those total bonuses up to get the Damage Bonus. So Intelligence of 43 might earn you a +3 Dam. Bonus, while your Agility of 8 might earn you a -2 for a final Damage bonus of 1. These are my Functions and my call for them: function agMod(agility) { let dambonus1 = 0; if (agility >= 87) dambonus1 = 14; else if (agility >= 84) dambonus1 = Math.floor(agility/6) - 1; else if (agility >= 78) dambonus1 = Math.floor(agility/6) - 1; else if (agility >= 72) dambonus1 = Math.floor(agility/6) - 1; else if (agility >= 66) dambonus1 = 10; else if (agility >= 60) dambonus1 = 9; else if (agility >= 54) dambonus1 = 8; else if (agility >= 48) dambonus1 = 7; else if (agility >= 42) dambonus1 = 6; else if (agility >= 36) dambonus1 = 5; else if (agility >= 30) dambonus1 = 4; else if (agility >= 24) dambonus1 = 3; else if (agility >= 18) dambonus1 = 2; else if (agility >= 12) dambonus1 = 1; else if (agility >= 6) dambonus1 = 0; else if (agility >= 3) dambonus1 = -1; else if (agility >= 1) dambonus1 = -2; else dambonus1 = -3; return dambonus1; } function damMod(intelligence) { let dambonus2 = 0; if (agility >= 87) dambonus2 = 13; else if (agility >= 81) dambonus2 = 12; else if (agility >= 75) dambonus2 = 11; else if (agility >= 69) dambonus2 = 10; else if (agility >= 63) dambonus2 = 9; else if (agility >= 57) dambonus2 = 8; else if (agility >= 51) dambonus2 = 7; else if (agility >= 45) dambonus2 = 6; else if (agility >= 39) dambonus2 = 5; else if (agility >= 33) dambonus2 = 4; else if (agility >= 27) dambonus2 = 3; else if (agility >= 21) dambonus2 = 2; else if (agility >= 15) dambonus2 = 1; else if (agility >= 9) dambonus2 = 0; else if (agility >= 3) dambonus2 = 1; else if (agility >= 1) dambonus2 = -2; else dambonus2 = -2; return dambonus2; } on("change:agility sheet:opened", function() { getAttrs(["agility","intelligence","damagemod"], function(values) { let agility = parseFloat(values.agility,10)||0; let intelligence = parseFloat(values.intelligence,10)||0; let damagemod = (agMod(agility)||0) + (damMod(intelligence)||0); setAttrs({ damagemod: damagemod }); }); }); Let me know if anything looks glaringly wrong. Thanks again!