Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

Free Account - Breaking Apart Macros or Attack Rolls

1707278067

Edited 1707278934
I am working with a homebrew weapon property called Automatic where you can choose to make two attacks instead of one but the second is made with disadvantage. In addition, I have a homebrew item I am trying to make on free account: You have a +2 bonus to attack and damage rolls made with this magic weapon, which is fitted with dozens of absurd and unnecessary modifications. When you attack with this weapon automatically, you can make up to six attacks with it, but each attack made after the second rolls a cumulative additional d20 and takes the lowest result. For example, the weapon fires twice with disadvantage, makes a third attack by rolling three d20s and taking the lowest, makes a fourth attack by rolling four d20s and taking the lowest, and so on. So I figured out how to code the disadvantage for multiple attacks as follows: ?{Number of Attacks|1|2|3|4|5|6}d20dh[[?{Number of Attacks}-1]] With the +2 weapon, for coding purposes I grabbed a +2 Longbow, dropped it onto my character sheet and rolled from the sheet and copied the code from chat to try and break it apart and figure out how to insert this code in for the d20 attack rolls but still keep the regular functionality. This is what I have so far... Regular Code r1 = Embedded Code @{Selected|wtype}&{template:atk} {{mod=+ 6 }} {{rname=[Longbow +2](~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_dmg)}} {{rnamec=[Longbow +2](~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_crit)}} {{r1=[[ @{Selected|d20}cs>20 + 2[DEX] + 2[PROF] + 2[MAGIC]]]}} @{Selected|rtype}cs>20 + 2[DEX] + 2[PROF] + 2[MAGIC]]]}} {{range=150/600}} {{desc=}} {{spelllevel=}} {{innate=}} {{globalattack=@{Selected|global_attack_mod}}} ammo= @{Selected|charname_output} @{Selected|wtype}&{template:atk} {{mod=+ [[@{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]] }} {{rname=[Longbow +2](~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_dmg)}} {{rnamec=[Longbow +2](~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_crit)}} {{r1= [[ ?{Number of Attacks|1|2|3|4|5|6}d20dh[[?{Number of Attacks}-1]] + @{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]]}} @{Selected|rtype}cs>20 + @{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]]}} {{range=150/600}} {{desc=}} {{spelllevel=}} {{innate=}} {{globalattack=@{Selected|global_attack_mod}}} ammo= @{Selected|charname_output} So I figured out that the code inside the parenthesis represents that code that when you click on the purple name of the weapon, it will roll the damage dice and check to see if the attacks rolled where critical successes or not to determine if it will roll extra dice. But I am not completely clear how it works. @{Selected|wtype}&{template:atk} {{mod=+[[@{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]] }} {{rname=[Longbow +2] (~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_dmg) }} {{rnamec=[Longbow +2] (~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_crit) }} {{r1= [[?{Number of Attacks|1|2|3|4|5|6}d20dh[[?{Number of Attacks}-1]] + @{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]]}} @{Selected|rtype}cs>20 + @{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]]}} {{range=150/600}} {{desc=}} {{spelllevel=}} {{innate=}} {{globalattack=@{Selected|global_attack_mod}}} ammo= @{Selected|charname_output} With the normal formatting for the Attack Template, there is r1 and r2 but this doesn't have a r2... and when I replace the second half of the code that looks like it would be the r2 field with my code for rolling with disadvantage when doing multiple attacks, it breaks the output entirely. @{Selected|wtype}&{template:atk} {{mod=+[[@{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]] }} {{rname=[Longbow +2](~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_dmg)}} {{rnamec=[Longbow +2](~-Npd-Nrw439evc0VPAlT|repeating_attack_-NpzllmvAPgpx3eDRsji_attack_crit)}} {{r1= [[?{Number of Attacks|1|2|3|4|5|6}d20dh[[?{Number of Attacks}-1]] + @{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]]}}  ?{Number of Attacks|1|2|3|4|5|6}d20dh[[?{Number of Attacks}-1]]  + @{Selected|pb}[PROF] + @{Selected|dexterity_mod}[DEX] +2[MAGIC] ]]}} {{range=150/600}} {{desc=}} {{spelllevel=}} {{innate=}} {{globalattack=@{Selected|global_attack_mod}}} ammo= @{Selected|charname_output} The two portions of code I replaced so far were: @{Selected|d20}cs>20 \ This code was the part that was directly after the r1 = code @{Selected|rtype}cs>20 \ This code was the second one I tried to replace that was where I expected the r2 = to be located but wasn't there I know that the part of the code that reads ">20" is checking for the critical rolls but I was unsuccessful in attempting to embed the code as a Macro into this attack roll to see if that would bypass any of the issues so I feel like I am hitting the end of my ability to figure out how to replace regular d20 rolls with my code for the disadvantage on multiple multiple attacks. The other thing I don't understand is where the corresponding two curly open brackets are for the two close brackets right before the code for the range. I am sure there are ways around this with Pro or Plus...  Any suggestions on how to figure out how to make this weapon work with a free account? Or should I just ignore using the 5E "atk template" from the character sheet but use the basic atkdmg template instead?
1707279758

Edited 1707279910
Gauss
Forum Champion
So initially, I would fix your d20 roll. Instead of ?{Number of Attacks|1|2|3|4|5|6}d20dh[[?{Number of Attacks}-1]] I would use: ?{Number of Attacks|1|2|3|4|5|6}d20kl1cs>20 Keep Low (kl1) just simplifies matters.  Next, your rtype, when you are setting up a macro like this make sure your advantage setting on your character sheet is set to Never Roll Advantage or to Always Roll Advantage when you grab the code for the attack.  That will change the rtype value to something that you can use.  Always will give you: {{always=1}} {{r2=[[@{d20} Never will give you: {{normal=1}} {{r2=[[0d20 From there you can convert always to:  Always: {{always=1}} {{r2=[[?{Number of Attacks|1|2|3|4|5|6}d20kl1cs>20 Or if you don't want advantage rolled, you can do use Never and do nothing with it.  And that also answers your question about the opening brackets.  Remember, every instance of an attribute needs to be examined.  Regarding >20, the full code there is "cs>20" (without quotes) as ">20" (without quotes) means to check for success or failure, not critical success.