This might be doable with some trick math. Now, [[ floor(1d20/20) ]] will return a one on a natural 20, or zero otherwise. So, [[ 1d6+6*floor(1d20/20) ]] gets a bonus +6 only when the d20 critted. Thus, [[{[[1d6]],[[6*[[ floor(1d20/20)]]]]}kh1]] works as necessary, outputting either 1d6 or a solid 6. You can test this by replacling the d20 to d4, and making the bonus be 66: [[{[[1d6]],[[66*[[floor(1d4/4)]]]]}kh1]] now you will only have to spam it a couple of times in the chat box to see that it works as intended. Now make it: CharacterName deals [[1d6+ [[{[[1d6]],[[6*[[ floor(1d20/20)]]]]}kh1]] ]] damage. Only problem is the d20 roll is buried inside and cant be reused elsewhere, nor even properly displayed. To do that you would have to use the hack of storing the d20 roll in the turn tracker. It is in fact possible to store one variable per token, by exploiting the turn tracker.