We run our character sheets on D&D Beyond, and I often run monsters from Roll20 because I own sourcebooks on that platform. So our macros have to be useful but can't be too integrated: there are lots of stats I can't count on accessing from enemies or PCs. But   Magic Missile   doesn't roll very nicely from DnDBeyond: it rolls missiles individually, which wastes game time tallying the damage.  So I decided to build a set of abilities which would concentrate on quick rolling of damage, and allow for combined damage (a single target) or damage divided among multiple targets. Notes: • This system uses the popular "roll multiple d4s" method, though it could easily be adapted to the canonical "roll 1d4 and multiply" method. • It doesn't explicitly enforce the rules — though it does report to chat what level and what number of missiles were fired. • It doesn't check off spell slots, since we use DnDBeyond sheets. • I also created an ability for each roll, rather than combining them all. I find this easier to maintain, though it's more work to enter. Here's W hat it Looks Like: You get a menu with total damage (1 target) OR groups of missiles (multiple targets) Clicking on a button gives you a total and damage from each die: All those numbers make you feel like you're really getting it done! Here's What I Did: I created a character sheet named "Magic Missile." This makes the macros more easily transportable to other campaigns, and creates a nice container for my several ability codes.  Under  "Attributes & Abilities" on the character sheet, I made an ability named "Cast-Magic-Missile" on the sheet. It creates a Chat Menu with buttons for the 9 levels at which this spell can be cast, and 9 quantities of missiles which can be selected to lob at a given target. (Code below) I created nine abilities named "MM-Level-1," "MM-Level-2," through "MM-Level-9." These will roll damage for the Magic Missile spell at a single target (all damage added together) for the given level. (Code below) I created ten abilities named "1-MM," "2-MM," through "10-MM." These will roll damage for groups of missiles aimed at more than one target. (Code below) When I want to add this to a character's sheet, I add an ability to their list called "MM" and call the ability from the "Magic Missile" Sheet. %{Magic Missile|Cast-Magic-Missile} The Code Below is the code for all the abilities. A couple of notes: these abilities use the " Reusing Rolls " trick to display all the individual rolls which make up the total. This trick only works up to 10 rolls (referenced $0 through $9). A level 9 Magic Missile cast rolls 11d4. So for the very highest level casting, two rolls must be combined into one. "MM-Level-9" has a note to this effect, and outputs it to chat in case your players are counting rolls. Also, there is some formatting using %NEWLINE% and the narrow non-breaking space (HTML & # 8239;) — none of these are necessary for function if you want to reformat the output. Cast-Magic-Missile &{template:npcaction} {{rname=@{selected|Token_name} Casts *Magic Missile!*}} {{description=At Level (total damage): %NEWLINE% [1](~Magic Missile|MM-Level-1)[2](~Magic Missile|MM-Level-2)[3](~Magic Missile|MM-Level-3)[4](~Magic Missile|MM-Level-4)[5](~Magic Missile|MM-Level-5)[6](~Magic Missile|MM-Level-6)[7](~Magic Missile|MM-Level-7)[8](~Magic Missile|MM-Level-8)[9](~Magic Missile|MM-Level-9) %NEWLINE% *(OR)* %NEWLINE% Missiles per target: %NEWLINE% [  1 ](~Magic Missile|1-MM)[ 2 ](~Magic Missile|2-MM)[ 3 ](~Magic Missile|3-MM)[ 4 ](~Magic Missile|4-MM)[ 5 ](~Magic Missile|5-MM) %NEWLINE%[ 6 ](~Magic Missile|6-MM)[ 7 ](~Magic Missile|7-MM)[ 8 ](~Magic Missile|8-MM)[ 9 ](~Magic Missile|9-MM)[10](~Magic Missile|10-MM) }} MM-Level-1 %NEWLINE% **1st Level** (3 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] MM-Level-2 %NEWLINE% **2nd Level** (4 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] MM-Level-3 %NEWLINE% **3rd Level** (5 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] MM-Level-4 %NEWLINE% **4th Level** (6 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] MM-Level-5 %NEWLINE% **5th Level** (7 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] MM-Level-6 %NEWLINE% **6th Level** (8 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] $[[7]] MM-Level-7 %NEWLINE% **7th Level** (9 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] =%NEWLINE% %NEWLINE%$[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] $[[7]] $[[8]] MM-Level-8 %NEWLINE% **8th Level** (10 missiles) [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = %NEWLINE% %NEWLINE% $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] $[[7]] $[[8]] $[[9]] MM-Level-9 %NEWLINE% **9th Level** (11 missiles) [[ [[2d4+2]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = %NEWLINE% %NEWLINE% $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] $[[7]] $[[8]] $[[9]] %NEWLINE% *Note: first roll is two missiles* 1-MM %NEWLINE% **1 missile** [[1d4+1]] 2-MM %NEWLINE% **2 missiles** [[ [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] 3-MM %NEWLINE% **3 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] 4-MM %NEWLINE% **4 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] 5-MM %NEWLINE% **5 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] 6-MM %NEWLINE% **6 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] 7-MM %NEWLINE% **7 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] 8-MM %NEWLINE% **8 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] $[[7]] 9-MM %NEWLINE%**9 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = %NEWLINE% %NEWLINE% $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] $[[7]] $[[8]] 10-MM %NEWLINE%**10 missiles** [[ [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] + [[1d4+1]] ]] = %NEWLINE% %NEWLINE% $[[0]] $[[1]] $[[2]] $[[3]] $[[4]] $[[5]] $[[6]] $[[7]] $[[8]] $[[9]]