Skip to content

Instantly share code, notes, and snippets.

@Atlante45
Created January 30, 2019 23:17
Show Gist options
  • Save Atlante45/37bb31f0877ae49a873d0244c5400f30 to your computer and use it in GitHub Desktop.
Save Atlante45/37bb31f0877ae49a873d0244c5400f30 to your computer and use it in GitHub Desktop.
Tracks down and reloads failing entity server scripts.
var entitiesWithServerScripts = 0
function callbackClosure(i, callback) {
return function() {
return callback(i);
}
}
var interval = Script.setInterval(function() {
console.log("Checks pending:", entitiesWithServerScripts)
var entities = Entities.findEntities(Vec3.ZERO, 100000);
for (var i in entities) {
var entity = entities[i];
var props = Entities.getEntityProperties(entity, ["serverScripts"]);
if (props.serverScripts != "") {
Entities.getServerScriptStatus(entity, (function() {
var entityID = entity;
var serverScripts = props.serverScripts;
return function(success, isRunning, status, errorInfo) {
if (!success || !isRunning) {
console.log("Script not running:", entityID, success, isRunning, status, errorInfo, JSON.stringify(serverScripts));
Entities.reloadServerScripts(entityID);
}
entitiesWithServerScripts--
}
})());
entitiesWithServerScripts++
}
}
console.log("Num entities to check:", entitiesWithServerScripts)
}, 5000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment