I got this code from someone here (probably Jakob or The Aaron) and I am trying to adapt it to something else, but it is not working. const classids = ["01", "02", "03", "04"]; const skills = ["acrobatics", "appraise", "bluff", "climb", "craft1", "craft2", "craft3", "craft4", "craft5", "craft6", "disable_device", "disguise", "escape_artist", "gather_info", "handle_animal", "heal", "intimidate", "jump", "know_arcana", "know_arch", "know_dungeon", "know_geography", "know_history", "know_local", "know_nature", "know_nobility", "know_religion", "know_planes", "linguistics", "perception", "perform1", "perform2", "perform3", "perform4", "perform5", "perform6", "persuasion", "profession1", "profession2", "profession3", "profession4", "profession5", "profession6", "ride", "search", "sense_motive", "sleight_of_hand", "spellcraft", "stealth", "survival", "swim", "use_magic_device"]; const skillAttrs = _.flatten(_.map(classids,(c)=>_.map(skills, (s)=>`${s}_class${c}_points`))); const skillEvents = _.map(skillAttrs,(a)=>`change:${a}`); const pointsAttrs = _.map(classids,(c)=>`class${c}_skillpoints`); on(`change:skillpoints_class ${skillEvents.join(' ')}`, function() { getAttrs((skillAttrs,pointsAttrs), (value) =>{ let update = {}; _.each(classids, (c)=>{ update[`skillpoints${c}_unspent`]=(parseInt(value[`class${c}_skillpoints`])||0) - _.reduce( _.map(skills, (s) => parseInt(value[`${s}_class${c}_points`])||0 ), (m,p) => m+p, 0); }); setAttrs(update); }); }); I am pretty sure my error is in the bolded line. I have done logs and my constants all look like they should. I also can see that I get into the each loop when I should, but update does not seem to set. Any advice/assistance appreciated. Thanks!