Very simple script to disable/enable rotation. Only the GM can enable or disable. The rotation still happens since we have no way to interrupt the event, but it gets immediately reversed once the rotation handle is unclicked. This can be useful so that players can't rotate tokens, but even so the GM can't rotate them by accident. At the moment we have no way to know who triggered an event other than a chat message event. If that ability gets added then we could add an option to lock rotation for players only. Enable rotation (default) !r on Disable rotation !r off var rotateGlobal = { rotationEnable : true }; function processRotateScript(argv, who) { if (who.indexOf("(GM)") > -1) { var rotateCommand = argv.shift(); switch(rotateCommand) { case 'on': rotateGlobal.rotationEnable = true; break; case 'off': rotateGlobal.rotationEnable = false; break; } } } // on() events // process scripts on("change:graphic:rotation", function(obj, prev) { if (rotateGlobal.rotationEnable === false) { obj.set("rotation",prev.rotation); return; } }); var processScriptTabs = function(argv, who) { // this will run the various other scripts depending upon the chat // window command. Just add another Case statement to add a new command. var script = argv.shift(); switch(script) { case "!r": processRotateScript(argv, who); break; default: } }; on("chat:message", function(msg) { // returns the chat window command entered, all in lowercase. var chatCommand = msg.content; chatCommand = chatCommand.toLowerCase(); //make all characters lowercase var argv = chatCommand.split(' '); if (msg.type !== 'api') { return; } return processScriptTabs(argv, msg.who); });