Hi @davidhoare, welcome! This is the classical mistake regarding the this scope in JavaScript, no worries, everyone's been there! Here's a related discussion in the forum. To preserve the this scope in JavaScript, you can either use this.botUpdate.bind(this), or create an arrow function. Examples: // using Function.prototype.bind this.clock.setTimeout(this.botUpdate.bind(this), 1000, {botID : data.botID}); // using arrow functions (block) this.clock.setTimeout(() => { this.botUpdate(); }, 1000, {botID : data.botID}); // using arrow functions (single line; shorthand) this.clock.setTimeout(() => this.botUpdate(), 1000, {botID : data.botID}); Hope this helps! Happy holidays!