Restarts your API sandbox if it crashes. Leave open your Mod (API) Scripts page while you play and this will automatically restart it if there are errors.
// ==UserScript==
// @name Roll20 Sandbox Restarter
// @namespace Violentmonkey Scripts
// @match https://app.roll20.net/campaigns/scripts/*
// @grant none
// @version 1.0
// @author Lexaire
// @description Restarts your API sandbox if it crashes. Leave open your Mod (API) Scripts page while you play and this will automatically restart it if there are errors.
// @license MIT
// ==/UserScript==
function hasErrors() {
return $("#errorlock:visible").length !== 0;
}
function restartSandbox() {
$(".restartsandbox")[0].click();
}
function showStopWatch() {
$("#sandboxstopicon").show();
}
function hideStopWatch() {
$("#sandboxstopicon").hide();
}
function checkForErrors() {
showStopWatch();
console.log("Sandbox Restarter: Checking for errors");
if (hasErrors()) {
console.log("Restarting sandbox...");
restartSandbox();
setTimeout(checkForErrors, 5000);
} else {
setTimeout(checkForErrors, 2000);
}
setTimeout(hideStopWatch, 300);
}
$('.preview').after("<div style='color:red; font-weight:bold'>Sandbox Restarter is watching for errors.<span id='sandboxstopicon'>⏱️</div></div>");
checkForErrors();