Yep, it's me again. I have a question as to which one is more appropriate for what I'm trying to do. I have 2 arrays of skills that I am combining that came from table rolls by converting them to strings and then splitting them to form a final array. So: ["Insight 4,Perception 4,Technology 4"] and ["Expertise 4,Perception 4,Vehicles 4"] becomes rollArray = [Insight 4,Perception 4,Technology 4,Expertise 4,Perception 4,Vehicles 4] As I'm setting these skills into the character sheet, since Perception appears twice, I want to end up with Perception 8 total. Here is what I have so far: for (i = 0; i < rollArray.length; i++) { skillEntry = skillArrayEntry.split(" ") skillName = skillEntry[0].toLowerCase() + "_rank" skillRank = skillEntry[1] var existingSkillRank = getAttrByName(character.id, skillName); if (existingSkillRank != 0) { createAttribute(skillName, skillRank) } else { skillRank = parseInt(existingSkillRank) + parseInt(skillRank) skill = findObjs({ type: 'attribute', characterid: character.id, name: skillName })[0]; skill.set('current', skillRank) } }; However, it doesn't seem to be seeing the first skill creation by the time the second one comes up. The API throws an error that says that it cannot .set an undefined property. And I've tried to use setAttrs, but I don't think I'm using it correctly } else { skillRank = parseInt(existingSkillRank) + parseInt(skillRank) setAttrs(character.id, { skillName: skillRank }) } Any advice would be appreciated.