That's not quite the way you would use it. libInline is going to process inline rolls as returned from the Roll20... try this... Your script has some function that answers the on('chat:message') event. It might look like this: on('chat:message', msg => { // do stuff }); Or it might look like: const handleInput = msg => { // do stuff }; And in that function you'll have a way to catch only the messages that are intended for your script... typically looking for your script handle. I'll pretend that's "conjure". if(msg.type !== 'api' || !/^!conjure/.test(msg.content)) return; So if the message isn't a bangsy message (intended for the Scirpt Moderator) or if the message doesn't match your handle, just get out of the function and do nothing. Next, assume that your command line is just your handle, a space, and then an inline roll. In practice this would be more complex (and would require a lot more sanitizing), but for the sake of example and since we'll just be reporting the value of the roll to the chat, this will work: !conjure [[1d10]] That's what gets sent. So we split on the space and assume everything after is our first argument, wherein we'd find our inline roll. let args = msg.content.split(/\s+/) The args array now has 2 elements... your handle and the roll. Now let's get the info from libInline... let parsed = libInline.getRollData(msg); And, finally, as we construct our outgoing message, we need to know *which* of the inline rolls we need to use. In other words, there might have been a simple roll like we used, or there could have been a more complex nested roll like [[[[1d20-[[{4,@{selected|ac}}kh1]]d6]]]]. Whatever was submitted in that position of the command line, what the Script Moderator sees is something like: !conjure $[[0]] ...where the index of the roll marker represents the final roll that your complex calculation resolved into. And that's what is in args[1] . So our next step is to extract that roll index so we can get the correct/matching index out of our parsed object: if (!/\$\[\[(\d+)]]/.test(args[1])) return; // you obviously might want to handle this situation differently let rollIndex = /\$\[\[(\d+)]]/.exec(args[1])[1]; Now rollIndex will have the index of the roll in your argument, so when you construct your outbound message, you can use this to get the matching roll out of the parsed object, and then drill down to the appropriate property you want: let m = `The roll was ${parsed[rollIndex].getRollTip()}.`; sendChat('Volcano Man', m); Give something like that a run and see if you have better luck.