When I send a chat message on the dev server using the noarchive option, the event handler appears to receive the resulting event using the previous event's chat content instead of the new event's chat content. When I add this script to a dev server game: var call_count = 0; on("chat:message", function(msg) { if (msg.type !== "api") { return; } if (msg.content !== "!bugtest") { return; } log("Got call " + call_count); if (call_count < 3) { sendChat("bugtest", "Got call count " + call_count, null, {noarchive: true}); } else { sendChat("bugtest", "Got call count " + call_count + ", and stopping"); } call_count += 1; }) and run it using "!bugtest", I get these chat messages, a second or two apart: Got call count 0 Got call count 1 Got call count 2 Got call count 3, and stopping Does not appear to repro on prod. Best guess would be that the message not going into the history causes the event system to fail to see its content, and it picks the last content in the archive to populate the new event with. Similar issues have been reported in the past: <a href="https://app.roll20.net/forum/post/2235521" rel="nofollow">https://app.roll20.net/forum/post/2235521</a> <a href="https://app.roll20.net/forum/post/3003982" rel="nofollow">https://app.roll20.net/forum/post/3003982</a>