Customizable roll listener could achieve that. If you don't need it to do anything else, you could also write a pretty short and simple script to handle it yourself if you prefer... it would look something like this: on('ready', () => { on('chat:message', (msg) => { if (msg.template.match(/spellTemplateName/i) && msg.content.match(/spellName/i)) { sendChat('', `[img](<a href="http://www.imagehost.com/example.gif)`" rel="nofollow">www.imagehost.com/example.gif)`</a>); } }); }); If you're likely to add more events to it later, probably best to stick with CRL than reinventing the wheel, though.