I have it the similar way like you: constructionSite = Game.getObjectById(this.memory.target); if (!constructionSite){ // either structure was finished or construction site has been destroyed Afaik, there is no other option at the moment to determine what happened with the construction site. It's the same thing with creating a construction site - you need to check the position for construction site instead of just getting the ID returned from the command. That has something to do with the tick based architecture and will hopefully be improved with the event stack hopefully introduced rather sooner than later.