I was running four scripts. I have numbered them below. Not all comments make sense, since I just copied and pasted these and changed the code as needed, but not the comments. Here are the scripts: 1. var CONFIG = [ {barId: 1, barRatio: .5, status: "redmarker", whenLow: true}, {barId: 1, barRatio: 0, status: "dead", whenLow: true}]; on("change:token", function(obj) { CONFIG.forEach(function(opts) { var maxValue = parseInt(obj.get("bar" + opts.barId + "_max")); var curValue = parseInt(obj.get("bar" + opts.barId + "_value")); log(opts.barId + ": " + curValue + "/" + maxValue); if (!isNaN(maxValue) && !isNaN(curValue)) { var markerName = "status_" + opts.status; if (curValue <= (maxValue * opts.barRatio)) { obj.set(markerName, opts.whenLow); } else { obj.set(markerName, !opts.whenLow); } } }); }); 2. on("ready", function() { //Wait until the ready event fires so we know the campaign is completely loaded. //Get a reference to our patrolling token. var patroltoken = findObjs({_type: "graphic", name: "Drake1"})[0]; //We know there is a token in the Campaign called "Orc Guard". var direction = -70; //Walk left 70 pixels. var stepstaken = 0; setInterval(function() { if(stepstaken > 9) { //Switch directions! direction = direction * -1; //will "flip" the direction we're walking if (direction > 1) { patroltoken.set("rotation", 360); } else { patroltoken.set("rotation", 180); } stepstaken = 0; //reset steps back to 0. } patroltoken.set("left", patroltoken.get("left") + direction); //walk! stepstaken++; }, 3000); //take an action every 5 seconds }); 3. on("ready", function() { //Wait until the ready event fires so we know the campaign is completely loaded. //Get a reference to our patrolling token. var patroltoken = findObjs({_type: "graphic", name: "Drake2"})[0]; //We know there is a token in the Campaign called "Orc Guard". var direction = 70; //Walk left 70 pixels. var stepstaken = 0; setInterval(function() { if(stepstaken > 4) { //Switch directions! direction = direction * -1; //will "flip" the direction we're walking if (direction > 1) { patroltoken.set("rotation", 360); } else { patroltoken.set("rotation", 180); } stepstaken = 0; //reset steps back to 0. } patroltoken.set("top", patroltoken.get("top") + direction); //walk! stepstaken++; }, 3000); //take an action every 5 seconds }); 4. on("ready", function() { //Wait until the ready event fires so we know the campaign is completely loaded. //Get a reference to our patrolling token. var patroltoken = findObjs({_type: "graphic", name: "Drake3"})[0]; //We know there is a token in the Campaign called "Orc Guard". var direction = 70; //Walk left 70 pixels. var stepstaken = 0; setInterval(function() { if(stepstaken > 4) { //Switch directions! direction = direction * -1; //will "flip" the direction we're walking if (direction > 1) { patroltoken.set("rotation", 360); } else { patroltoken.set("rotation", 180); } stepstaken = 0; //reset steps back to 0. } patroltoken.set("top", patroltoken.get("top") + direction); //walk! stepstaken++; }, 3000); //take an action every 5 seconds });