Tenacious Techhunter said: Nice thought, but no. I have a YX problem. People keep thinking I want to do X, but I want to do Y. Because they have no experience with why doing Y would be a good idea, they cannot fathom why I would be asking how to do Y, so they tell me how to do X, in spite of the fact that I'm asking, "How do I do Y, if it is at all possible, which it might not be?". At which point, it is far more helpful for people to simply say, "No, sorry, Roll20 fails to support doing Y just now.", than to tell me how to do X, or Z, or whatever. Why I want to do Y: There didn't used to be a "floor" function; now there is . That's what I want to do; add functions to my diceroller (and maybe even override some that the Roll20 devs screwed the pooch on). Why? Because everyone has access to the diceroller. Not everyone has access to the APIs; it's way better to give your players the system support they need to come up with their own solutions than it is to can all the ones you can manage yourself exclusively through the API, or from some well-intentioned character sheet effort, that may not be enough for a specific use case. So unless you've got a way to use the API to add to the list of functions available to the macro engine, it's just not what I was asking for, which I went to considerable effort to clearly specify from the very beginning. Thank you for your effort, though. In short, no it's not possible to what you're requesting, but the heart of your logic is still possible, but not in the format you intended. Within the API you can send a chat message which means the dice roller can 're-process' it after the API has already processed it. Think of it as a preprocessor where you scan in the !command (args) which appears as a standard roll: !rr /roll 1d4+reduce(lambda(pi+sine(randnum))) Here in this case the functions lambda, sine, reduce and the variables randnum and pi are all extended by the API which can parse it out for preprocessing. After preprocessing you'd end up with. /roll 1d4+<result> After subsituting the calculated result and trimming the command name. This can be sent back through chat using the player's own player id (whom sent the command) to appear as if they sent it normally, but clearly there's been work done internally. You could also pad the message with constructs if you wanted to display the nested results, But again this is not the same as plugging in a function in-line with other dice roller functions. As a side note to the little side arguement: it's still helpful to express what you're gunning at tech. For myself it still wasn't clear in the OP what you wanted or the behavior you wanted to see was possible, especially compared to other API questions.