sheet workers go in the html sheet. At the bottom of your html, add the following  <script type="text/worker">
 </script>  That is a script block. All sheet workers you create, like Scott's above, go in that script block: between those two script statements.     The approach I'd use is below. This single worker will work for all your skills, if they are named appropriately.  const skills = ['blacksmithing','fencing','alertness','etc']; skills.forEach(skill => {  	 on(`change:${skill}`, function(){  		 getAttrs(['skill'], values => {  			 const levelUp = [0,200,500,700,1000,1500,2000,3500];  			 const value = values[skill]*1||0;  			 const level = levelUp[Math.min(value, levelUp.length -1)];  			 setAttrs({  				 [`${skill}_xp`]: level  			 },{silent:true});  		 });  	 }); });  In this version, you need make three changes.   First, edit the following lines:  const skills = ['blacksmithing', 'fencing', 'alertness'];  Add an extra entry for each skill, after a comma and enclosed in quotes like above. So if you also had carpentry and jeweller skills, you'd change that to  const skills = ['blacksmithing', 'fencing', 'alertness', 'carpentry', 'jeweller'];  You can list the skills in any order.  Also you'd ned to change this:  const levelUp = [0,200,500,700,1000,1500,2000,3500];  to whatever your Level -> XP sequence is.   And finally in this section  [`${skill}_xp`]: levelUp[level]  I've assumed your skill levels are named like, "blacksmithing" and the XP box is named "blacksmithing_xp". If so just change the '_xp' in the above to whatever you use.  If you use a different naming sequence, you might need to make tweaks. If for instance, your names are 'blacksmithing_level' and 'blackmsmith_xp' its a touch trickier, but not much. Let us know what naming scheme you use.