Hello. I've been working on this sheet all weekend, and I'm basically teaching myself html and javascript from scratch (I had a little CSS experience from work before I started.) One of the common complaints about this sheet (the L5R sheet) is that it allows you to have a 0 insight rank, which the game doesn't allow for. The problem is that the original designer set it up as a simple equation and first insight rank is larger than the others, making the math difficult without if/then statements. So it seems like a good opportunity to teach myself sheet workers. I started with this. <table> <tr> <td><label style=display:inline><span data-i18n="rank-u">Rank</span></label></td> <input type="hidden" name="attr_foo_rank" value="1" /> <td><input type="number" disabled="true" name="attr_Rank" value="@foo_rank" /></td> <script type="text/worker"> on("change:Insight", function() { getAttrs(["Insight"], function(values) { setAttrs({ foo_rank: Math.min(1, (((Insight - 112) / 25))) }); }); }); </script> Where insight is a huge equation autocalculated from the rest of the sheet. When I try that, it tells me: Uncaught Error: Firebase.update failed: First argument contains NaN in property 'campaign-2255347-jUnJlr1INiKphJdb3_qUCA.char-attribs.char.-Kk3mcF88SdpiHEggG0P.-KknGvtMPZRCleFixvpi.current'. Thinking that the insight was coming in as a non-integer, I tried this: <table> <tr> <td><label style=display:inline><span data-i18n="rank-u">Rank</span></label></td> <input type="hidden" name="attr_foo_rank" value="1" /> <td><input type="number" disabled="true" name="attr_Rank" value="@foo_rank" /></td> <script type="text/worker"> on("change:Insight", function() { getAttrs(["Insight"], function(values) { var tempinsight = parseInt(values.Insight); setAttrs({ foo_rank: Math.min(1, (((tempinsight - 112) / 25))) }); }); }); </script> Same thing, although if I take out the setAttrs line, there are no errors, so assuming I'm allowed to using the parseInt line in a sheetworker, it's not throwing the NaN error. It's just the setAttrs. The equation for insight, btw is: <td><input type="number" disabled="true" name="attr_Insight" value="(((@{Air} + @{Water} + @{Fire} + @{Earth} + @{Void}) * 10 ) + (@{rank_acting} + @{rank_artisan} + @{rank_calligraphy} + @{rank_courtier} + @{rank_divination} + @{rank_etiquette} + @{rank_games} + @{rank_investigation} + @{rank_lore} + @{rank_Lore2} + @{rank_Lore3} + @{rank_Medicine} + @{rank_Meditation} + @{rank_Perform} + @{rank_Sincerity} + @{rank_Spellcraft} + @{rank_Tea_Ceremony} + @{rank_rhigh} + @{rank_Athletics} + @{rank_Battle} + @{rank_Defense} + @{rank_Horsemanship} + @{rank_Hunting} + @{rank_Iaijutsu} + @{rank_Jiujutsu} + @{rank_Chain_Weapons} + @{rank_Heavy_Weapons} + @{rank_Kenjutsu} + @{rank_Knives} + @{rank_Kyujutsu} + @{rank_Ninjutsu} + @{rank_Polearms} + @{rank_Spears} + @{rank_Staves} + @{rank_WarFan} + @{rank_AnimalHandling} + @{rank_Commerce} + @{rank_Craft} + @{rank_Engineering} + @{rank_Sailing} + @{rank_Forgery} + @{rank_Intimidation} + @{rank_SleightofHand} + @{rank_Stealth} + @{rank_Temptation} + @{BCourtier} + @{BEtiquette} + @{AddInsight}))">addl SPs></td> I inherited a lot of this, of course. So I'm guessing I just have a basic misunderstnading here and I need someone to set me straight on some fundamentals. Thanks in advance.