Hello, I have wrote a sheetworker to define the skills scores in terms of abilities score. T hieving skills are defines only if the choosed class is thief or assassin. For this I have wrote two arrays, one with the general skills and another with thieving skills . But I need to use getAttrs with function(setting) and function(values) for the thieving skills because I have to define if the choosed class is thief or assassin. How can I make this. For understand, here my actual code with the second part don't work : const dexSettings = { 3 : { reactAttAdj: - 3 , defAdj: 4 }, 4 : { reactAttAdj: - 2 , defAdj: 3 }, 5 : { reactAttAdj: - 1 , defAdj: 2 }, 6 : { reactAttAdj: 0 , defAdj: 1 }, 7 : { reactAttAdj: 0 , defAdj: 0 }, 8 : { reactAttAdj: 0 , defAdj: 0 }, 9 : { reactAttAdj: 0 , defAdj: 0 }, 10 : { reactAttAdj: 0 , defAdj: 0 }, 11 : { reactAttAdj: 0 , defAdj: 0 }, 12 : { reactAttAdj: 0 , defAdj: 0 }, 13 : { reactAttAdj: 0 , defAdj: 0 }, 14 : { reactAttAdj: 0 , defAdj: 0 }, 15 : { reactAttAdj: 0 , defAdj: - 1 }, 16 : { reactAttAdj: 1 , defAdj: - 2 }, 17 : { reactAttAdj: 2 , defAdj: - 3 }, 18 : { reactAttAdj: 3 , defAdj: - 4 } }; const thievingSkills = { 9 : { pickpocket: '-15 \% ' , locks: '-10 \% ' , traps: '-10 \% ' , silently: '-20 \% ' , hiding: '-10 \% ' }, 10 : { pickpocket: '-10 \% ' , locks: '-5 \% ' , traps: '-10 \% ' , silently: '-15 \% ' , hiding: '-5 \% ' }, 11 : { pickpocket: '-5 \% ' , locks: 0 , traps: '-5 \% ' , silently: '-10 \% ' , hiding: 0 }, 12 : { pickpocket: 0 , locks: 0 , traps: 0 , silently: 0 , hiding: 0 }, 13 : { pickpocket: 0 , locks: 0 , traps: 0 , silently: 0 , hiding: 0 }, 14 : { pickpocket: 0 , locks: 0 , traps: 0 , silently: 0 , hiding: 0 }, 15 : { pickpocket: 0 , locks: 0 , traps: 0 , silently: 0 , hiding: 0 }, 16 : { pickpocket: 0 , locks: '+5 \% ' , traps: 0 , silently: 0 , hiding: 0 }, 17 : { pickpocket: '+10 \% ' , locks: '+10 \% ' , traps: 0 , silently: '+5 \% ' , hiding: '+5 \% ' }, 18 : { pickpocket: '+5 \% ' , locks: '+15 \% ' , traps: '+5 \% ' , silently: '+10 \% ' , hiding: '+10 \% ' } }; on ( 'change:dexBase change:class1 change:class2 change:class3' , function () { getAttrs ([ 'dexBase' ], function ( setting ) { const dexObj = dexSettings [ setting . dexBase ]; const setdexObj = { reactionAdj:dexObj . reactAttAdj , missileAdj:dexObj . reactAttAdj , defensiveAdj:dexObj . defAdj }; setAttrs ( setdexObj ); }); getAttrs ([ 'dexBase' , 'class1' , 'class2' , 'class3' ], function ( values ) { const thiefObj = thievingSkills [ values . dexBase ]; var class1 = parseInt ( values . class1 ); var class2 = parseInt ( values . class2 ); var class3 = parseInt ( values . class3 ); if ( class1 === 10 || class2 === 10 || class3 === 10 || class1 === 11 || class2 === 11 || class3 === 11 ) { const setThiefObj = { pickPockets:thiefObj . pickpocket , openLocks:thiefObj . locks , removeFindTraps:thiefObj . traps , moveSilently:thiefObj . silently , hideInShadows:thiefObj . hiding }; } setAttrs ( setThiefObj ); }); });