Probably the best way is using Resusing Rolls and a RollTemplate, like so: &{template:default} {{name=?{Sisters Primal|3} Sisters Primal Attack!}} [[ [[{?{Sisters Primal}d20+4}>?{AC|16} ]] * [[2d4+2]] ]] {{hit=$[[0]] of them manage to hit}} {{total damage=$[[2]]}} However, the damage roll is rolled only once - not once per attack. For that, you'd need a much complicated roll and would have to estimate the maximum range of Sisters Primal, and build a query that accounts for every possible number. This, if there could be 5 at most, you would have: ?{Sisters Primal| 1, -- full macro for a single attack --| 2, -- full macro for two attacks --| 3, -- full macro for three attacks --| 4, -- full macro for four attacks --| 5, -- full macro for five attacks --} This is because roll20 cant repeat something X number of times, where X is unknown. PS: your queies were using ( ) brackets, but they need to be { } brackets.