I expended on this idea, the following script will only allow the person who's turn it is to end a turn. This also has alot more handling for possible errors. on("chat:message", function(msg) { if (msg.type == "api" && msg.content.indexOf("!eot") !== -1) { var c = Campaign(); var pre_turnorder = c.get('turnorder'); if (!pre_turnorder) { return; } var turn_order = JSON.parse(c.get('turnorder')); if (!turn_order.length) { return; }; var turn = turn_order.shift(); var stop = 0; // Since I will be checking the player inside of another function return; wont work. var obj = findObjs({ _id:turn.id }); _.each(obj, function(obj) { if (obj.get("name") != "") { if (obj.get("name") != msg.who){ sendChat("(Game)", "/w " + msg.who +" Please do not try to end someone elses turn. " + "Also, Remember to use this command as your character."); sendChat("(Script)", "/w gm " + msg.who + " tried to end the turn for " + obj.get("name") + "."); stop = 1; } }; }); if (stop == 1) { return; }; turn_order.push({ id: turn.id, pr: turn.pr, custom: "Turn Counter" }); Campaign().set("turnorder", JSON.stringify(turn_order)); turn_order = JSON.parse(c.get('turnorder')); turn = turn_order.shift(); sendChat(msg.who, "/em has ended their turn!"); var obj = findObjs({ _id:turn.id }); _.each(obj, function(obj) { if (obj.get("name") != "") { sendChat(" ", "/em " + obj.get("name") + " it is your turn!") }; if (obj.get("name") == "") { sendChat("(Game)", "Enemys Turn!") }; }); } }); Let me know what you think :)