If you send multiple lines chat messages in the API via sendChat (dividing them by \n), the array of messages passed to the callback function seems to consist only of copies of the last message. To reproduce, add this script on('chat:message', function(msg) { if (msg.type === 'api' && msg.content === '!findthebug') { var callback = function(msg) { sendChat('GM', JSON.stringify(msg[0])); sendChat('GM', JSON.stringify(msg[1])); }; sendChat('GM', 'roll1: [[d20]] \n roll2: [[d20]]', callback) } }); and enter !findthebug in chat. The respective message objects will be sent out to chat, notice that they are both equal to the one corresponding to the second  line of the message (roll2: [[d20]]).