Hello all, For reasons I will detail further in the post, I want to make a setAttrs after a certain time delay. See below (setAttrsLog is a passthrough of setAttrs with logging the values if we want to. setTimeout( function() { if(APIflag_local == APIflag_stored){ log("sendAPIflag sending flag " + APIflag_local); setAttrsLog({"APIflag" : APIflag_local}); APIflag_local=""; } else { log("sendAPIflag interrupted by other thread " + APIflag_stored); return;} }, 1000); I had forgotten I had already tried something like this in the past and couldn't make it work due to the following message: Character Sheet Error: Trying to do setAttrs when no character is active in sandbox. Looks like if you nest a setAttrs in a setTimeOut, it somehow "forgets" who is the character. Has anyone already found a solution to make such delayed setAttrs More details on why I want to do this: We have a Character Sheet that works, with a companion API. Because there are some functions that only the API can do, we have made a communication channel between the sheetworker and the API, with an Attribute called "APIflag", where the Sheetworker can write commands to be executed by the API. This works well, as long as there is one command at a time, but we have now cases where the sheetworker fires various threads that all want to write APIflag, and because of this, the API is missing some of the commands. In the past, when the different sheetworkers were called recursively, I could just have the value travel back to the root of the recursive tree, and have one single setAttrs, but I am now in a case where too many are firing from different places, that such strategy becomes difficult to implement. So I was thinking to make it differently were instead the flag would be buffered on a local var, and a routine would wait 1000 ms were the local buffer would be unmodified before actually writing it to the Firebase attribute... Nice idea on paper... Just on paper...