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

D&D 3.5 All-In-One Attack Macro

Hello,  I am still fairly new to macros, but my players asked for a macro they could access from their respective tokens, that would give them a list of their weapons to choose from. I found one in Diana P's Roll20 Spell Macros collection, but I was a little confused on how exactly it worked, and I wanted to modify the question prompts a bit as well, so this is what I have at the moment. When I test roll it, rolls a d20 for the attack, and a d8 for the damage, but doesn't add in any of the other bonuses, like the +/- to attack, or +/- to damage, or the penalty for a called shot. I'm not quite sure where I have goofed up. Any help, or a working copy would be amazing! Thanks in advance, Nick ------------------------------------------------ &{template:DnD35Attack} {{pcflag=true}} {{fullattackflag=[[?{Full Attack?|No, 0d1|Yes, d1}]]}} {{name=@{character_name}}} ?{Flank|No, 0|Yes, 1} ?{+ / - to Attack|0} ?{+ / - to Damage|0} {{fumbleroll=**Fumble:[[d20]]**}} +?{Called Shot?|None,0 }}|Head (Tricky),-2 }}|Ear (Challenging),-10 }}|Eye (Challenging),-10 }}|Neck (Challenging),-10 }}|Chest (Easy),-2 }}|Heart (Challenging),-10 }}|Vitals (Tricky),-5 }}|Arm (Easy),-2 }}|Hand (Tricky),-5 }}|Leg (Easy),-2 }}} ?{Which weapon? |@{weapon1name}, {{subtags=swings a @{weapon1name} }} {{attack1=A1:[[@{selected|weapon1attackcalc|max} ]] }} {{critconfirm1=Crit?:[[@{selected|weapon1attackcalc|max} ]] }} {{damage1=D1:[[@{selected|weapon1damage|max} ]] }} {{critdmg1=+[[@{selected|weapon1damage|max} ]] }} {{attack2=A2:[[@{selected|weapon1attackcalc|max}-5 ]] }}  {{critconfirm2=Crit?:[[@{selected|weapon1attackcalc|max}-5 ]] }}  {{damage2=D2:[[@{selected|weapon1damage|max} ]] }} {{critdmg2=+[[@{selected|weapon1damage|max} ]] }}{{attack3=A3:[[@{selected|weapon1attackcalc|max}-10 ]] }} {{critconfirm3=Crit?:[[@{selected|weapon1attackcalc|max}-10 ]] }} {{damage3=D3:[[@{selected|weapon1damage|max} ]] }} {{critdmg3=+[[@{selected|weapon1damage|max} ]] }}{{attack4=A4:[[@{selected|weapon1attackcalc|max}-15 ]] }} {{critconfirm4=Crit?:[[@{selected|weapon1attackcalc|max}-15 ]] }} {{damage4=D4:[[@{selected|weapon1damage|max} ]] }} {{critdmg4=+[[@{selected|weapon1damage|max} ]] }} {{notes=Notes:}} |@{weapon2name}, {{subtags=swings a @{weapon2name} }} {{attack1=A1:[[@{selected|weapon2attackcalc|max} ]] }} {{critconfirm1=Crit?:[[@{selected|weapon2attackcalc|max} ]] }} {{damage1=D1:[[@{selected|weapon2damage|max} ]] }} {{critdmg1=+[[@{selected|weapon2damage|max} ]] }} {{attack2=A2:[[@{selected|weapon2attackcalc|max} ]] }} {{critconfirm2=Crit?:[[@{selected|weapon2attackcalc|max} ]] }} {{damage2=D2:[[@{selected|weapon2damage|max} ]] }} {{critdmg2=+[[@{selected|weapon2damage|max} ]] }} {{attack3=A3:[[@{selected|weapon2attackcalc|max} ]] }} {{critconfirm3=Crit?:[[@{selected|weapon2attackcalc|max} ]] }} {{damage3=D3:[[@{selected|weapon2damage|max} ]] }} {{critdmg3=+[[@{selected|weapon2damage|max} ]] }} {{attack4=A4:[[@{selected|weapon2attackcalc|max} ]] }} {{critconfirm4=Crit?:[[@{selected|weapon2attackcalc|max} ]] }} {{damage4=D4:[[@{selected|weapon2damage|max} ]] }} {{critdmg4=+[[@{selected|weapon2damage|max} ]] }} {{notes=Notes:}} |@{weapon3name}, {{subtags=swings a @{weapon3name} }} {{attack1=A1:[[@{selected|weapon3attackcalc|max} ]] }} {{critconfirm1=Crit?:[[@{selected|weapon3attackcalc|max} ]] }} {{damage1=D1:[[@{selected|weapon3damage|max} ]] }} {{critdmg1=+[[@{selected|weapon3damage|max} ]] }} {{attack2=A12:[[@{selected|weapon3attackcalc|max} ]] }} {{critconfirm2=Crit?:[[@{selected|weapon3attackcalc|max} ]] }} {{damage2=D2:[[@{selected|weapon3damage|max} ]] }} {{critdmg2=+[[@{selected|weapon3damage|max} ]] }} {{attack3=A3:[[@{selected|weapon3attackcalc|max} ]] }} {{critconfirm3=Crit?:[[@{selected|weapon3attackcalc|max} ]] }} {{damage3=D3:[[@{selected|weapon3damage|max} ]] }} {{critdmg3=+[[@{selected|weapon3damage|max} ]] }} {{attack4=A4:[[@{selected|weapon3attackcalc|max} ]] }} {{critconfirm4=Crit?:[[@{selected|weapon3attackcalc|max} ]] }} {{damage4=D4:[[@{selected|weapon3damage|max} ]] }} {{critdmg4=+[[@{selected|weapon3damage|max} ]] }} {{notes=Notes:}} |@{weapon4name}, {{subtags=swings a @{weapon4name} }} {{attack1=A1:[[@{selected|weapon4attackcalc|max} ]] }} {{critconfirm1=Crit?:[[@{selected|weapon4attackcalc|max} ]] }} {{damage1=D1:[[@{selected|weapon4damage|max} ]] }} {{critdmg1=+[[@{selected|weapon4damage|max} ]] }} {{attack2=A2:[[@{selected|weapon4attackcalc|max} ]] }} {{critconfirm2=Crit?:[[@{selected|weapon4attackcalc|max} ]] }} {{damage2=D2:[[@{selected|weapon4damage|max} ]] }} {{critdmg2=+[[@{selected|weapon4damage|max} ]] }} {{attack3=A3:[[@{selected|weapon4attackcalc|max} ]] }} {{critconfirm3=Crit?:[[@{selected|weapon4attackcalc|max} ]] }} {{damage3=D3:[[@{selected|weapon4damage|max} ]] }} {{critdmg3=+[[@{selected|weapon4damage|max} ]] }} {{attack4=A4:[[@{selected|weapon4attackcalc|max} ]] }} {{critconfirm4=Crit?:[[@{selected|weapon4attackcalc|max} ]] }} {{damage4=D4:[[@{selected|weapon4damage|max} ]] }} {{critdmg4=+[[@{selected|weapon4damage|max} ]] }} {{notes=Notes:}} } ------------------------------------------------ these are what I have in the max field for attack calc and damage weapon1attackcalc = 1d20cs>@{weapon1critmin}+@{bab}+@{weapon1stat}+@{weapon1enh}+@{weapon1focus}+@{size}} weapon1damage = 1d8+@{weapon1damagestat}+@{weapon1enh}+@{weapon1specialize}}
1589779787

Edited 1589780041
GiGs
Pro
Sheet Author
API Scripter
I wouldnt know where to start to debug that monstrosity, but I want to mention that in the first few lines I count the following queries: Full Attack, Flank, +/- o attack, Called Shot, +/- Damage, Called Shot, and Which Weapon. Thats 7 separate queries every time the user makes an attack. That will get old very fast. And I guarantee you, with so many things to click through, players will click the wrong entries several times a session. One mistake people make very often on roll20 is trying to automate too much. Roll20 is not a computer game, its meant to simulate the tabletop. When you try to automate too much, you end up making it more clunky than it needs to be. For instance, the called shot, flank, +/0 attack queries should be combined to just one hit modifier. Think about it: you are sitting around the table, the player will say, "I attack that opponent, a called shot at their face, and I'm flanking." To which the GM replies, "okay, he's also under partial cover, so your total modifier is -4" (or whatever). Then the player enters that single modifier. Or maybe dont bother with a modifier query at all: you see the number printed to chat, modify it and the GM tells you whether you hit or not. Likewise, the attack and damage rolls should be separate rolls, different button presses, so you dont need to ask for the damage modifier before you know if you have hit. You can do this by outputting a damage button with each attack that players click if they hit.  It sounds paradoxical, but if you want to streamline things, you need to make your macros do less work.
Thanks for the reply, I am still in the process of trying to streamline the overall macro. The original, I believe, only as 1 less query than mine, but I get that it is a lot for each attack. I see you have ?called shot twice though, unless i stuck it there twice and missed it. My players like that attack roll and damage all in one click, and I am fine with that. I could drop the ?full attack  which would cut this thing down to about a quater of the current size, and ? flanking could go and get tallied up in the ?+/- to attack. The called shots are based from Pathfinder and each have different values, and I have the memory of gnat and would rather not try and look that up during session if i can avoid it.  How would I make a button though? That sounds like it could be handy for an assortment of things
1589789943
GiGs
Pro
Sheet Author
API Scripter
You're right about the called shot, oops. Though 6 queries is still to many for me - i try to keep it down to one, two at most, for anything that is going to be used regularly. You can make buttons using one of these two methods (why they are separate in the wiki is beyond me): <a href="https://wiki.roll20.net/API:Chat#API_Command_Buttons" rel="nofollow">https://wiki.roll20.net/API:Chat#API_Command_Buttons</a> <a href="https://wiki.roll20.net/Macros#Ability_Command_Buttons" rel="nofollow">https://wiki.roll20.net/Macros#Ability_Command_Buttons</a> Though one of them includes the word API, its usable by free users. And you're right, they are useful for lots of things.
1589797986
Ziechael
Forum Champion
Sheet Author
API Scripter
You are likely not including references to the modifiers in the attack/damage/crit calculations. The 3.5e sheet has separate macros that govern the parts of the overall macro that the attack/full attack template uses (although I'm confused about why your example refers the max values of those calculations, I wasn't aware the sheet used max for anything to do with attacks?!). I talk about the various sections and give an example of how to reconfigure them for a more complicated output in this thread . That should give you a good start, if you still need help beyond that let me know and I'll do what I can to help you out... the 3.5e sheet is great but the system is hell on higher level players lol.
1589798088
Ziechael
Forum Champion
Sheet Author
API Scripter
While I generally agree that less is more, as long as you set up your default query values properly you can have an attack with multiple queries that you can just spam the return button for your 'standard' attack... as a 3.5e GM using Roll20 for a 4 year game I can tell you that simplicity is not 3.5e's middle name lol! GiGs said: You're right about the called shot, oops. Though 6 queries is still to many for me - i try to keep it down to one, two at most, for anything that is going to be used regularly.
Thanks for input and links. I will look them over and try again this evening after yard work and adulting is done for the day, lol.
This is the original macro that I was using as a reference. Weapon attacks (for first 4 slots; adjust for personalization of attack description ie: swings a. &nbsp;Also add notes about the attack/weapon in {{notes= &amp;#125;&amp;#125; section): &amp;{template:DnD35Attack} {{pcflag=true}} {{fullattackflag=[[?{Full Attack?|No, 0d1|Yes, d1}]]}} {{name=@{character_name}}} ?{Flank|No, 0|Yes, 1} ?{Other Attack Bonus|0} ?{Other Damage Bonus|0} {{fumbleroll=**Fumble:[[d20]]**}} ?{Which weapon? |@{weapon1name}, {{subtags=swings a @{weapon1name} &amp;#125;&amp;#125; {{attack1=A1:[[@{selected|weapon1attackcalc|max} ]] &amp;#125;&amp;#125; {{critconfirm1=Crit?:[[@{selected|weapon1attackcalc|max} ]] &amp;#125;&amp;#125; {{damage1=D1:[[@{selected|weapon1damage|max} ]] &amp;#125;&amp;#125; {{critdmg1=+[[@{selected|weapon1damage|max} ]] &amp;#125;&amp;#125; {{attack2=A2:[[@{selected|weapon1attackcalc|max}-5 ]] &amp;#125;&amp;#125; {{critconfirm2=Crit?:[[@{selected|weapon1attackcalc|max}-5 ]] &amp;#125;&amp;#125; {{damage2=D2:[[@{selected|weapon1damage|max} ]] &amp;#125;&amp;#125; {{critdmg2=+[[@{selected|weapon1damage|max} ]] &amp;#125;&amp;#125; {{notes= &amp;#125;&amp;#125; |@{weapon2name}, {{subtags=swings a @{weapon2name} &amp;#125;&amp;#125; {{attack1=A1:[[@{selected|weapon2attackcalc|max} ]] &amp;#125;&amp;#125; {{critconfirm1=Crit?:[[@{selected|weapon2attackcalc|max} ]] &amp;#125;&amp;#125; {{damage1=D1:[[@{selected|weapon2damage|max} ]] &amp;#125;&amp;#125; {{critdmg1=+[[@{selected|weapon2damage|max}]] &amp;#125;&amp;#125; {{attack2=A2:[[@{selected|weapon2attackcalc|max}-5]] &amp;#125;&amp;#125; {{critconfirm2=Crit?:[[@{selected|weapon2attackcalc|max}-5]] &amp;#125;&amp;#125; {{damage2=D2:[[@{selected|weapon2damage|max} ]] &amp;#125;&amp;#125; {{critdmg2=+[[@{selected|weapon1damage|max}]] &amp;#125;&amp;#125; {{notes= &amp;#125;&amp;#125; |@{weapon3name}, {{subtags=swings a @{weapon3name} &amp;#125;&amp;#125; {{attack1=A1:[[@{selected|weapon3attackcalc|max} ]] &amp;#125;&amp;#125; {{critconfirm1=Crit?:[[@{selected|weapon3attackcalc|max} ]] &amp;#125;&amp;#125; {{damage1=D1:[[@{selected|weapon3damage|max} ]] &amp;#125;&amp;#125; {{critdmg1=+[[@{selected|weapon3damage|max}]] &amp;#125;&amp;#125; {{attack2=A2:[[@{selected|weapon3attackcalc|max}-5 ]] &amp;#125;&amp;#125; {{critconfirm2=Crit?:[[@{selected|weapon3attackcalc|max}-5]] &amp;#125;&amp;#125; {{damage2=D2:[[@{selected|weapon3damage|max}]] &amp;#125;&amp;#125; {{critdmg2=+[[@{selected|weapon3damage|max}]] &amp;#125;&amp;#125; {{notes= &amp;#125;&amp;#125; |@{weapon4name}, {{subtags=swings a @{weapon4name} &amp;#125;&amp;#125; {{attack1=A1:[[@{selected|weapon4attackcalc|max}]] &amp;#125;&amp;#125; {{critconfirm1=Crit?:[[@{selected|weapon4attackcalc|max}]] &amp;#125;&amp;#125; {{damage1=D1:[[@{selected|weapon4damage|max}]] &amp;#125;&amp;#125; {{critdmg1=+[[@{selected|weapon4damage|max} ]] &amp;#125;&amp;#125; {{attack2=A2:[[@{selected|weapon4attackcalc|max}-5]] &amp;#125;&amp;#125; {{critconfirm2=Crit?:[[@{selected|weapon4attackcalc|max}-5]] &amp;#125;&amp;#125; {{damage2=D2:[[@{selected|weapon4damage|max}]] &amp;#125;&amp;#125; {{critdmg2=+[[@{selected|weapon4damage|max} ]] &amp;#125;&amp;#125; {{notes= &amp;#125;&amp;#125; } It ought to be added as a token action because it requires the token to be selected since it uses the max field for the weapon attack calculations and damage calculations. &nbsp;Copy the weapon attack and damage calculations (on the Attributes and Abilities tab) and edit them so that any closing braces of any queries are replaced by the html entity for it ie: 1d20cs&gt;@{weapon1critmin} +@{bab}[BAB] +[[@{weapon1stat}]][Ability] +@{size}[size] +@{weapon1enh}[Weapon1 Enh] +@{weapon1focus}[Weapon1 Focus] + ?{Flank|No, 0|Yes, 1}*2[Flank] +?{Other Attack Bonus?|0}[Other Attack Bonus] and 1d6cs&gt;7 +[[@{weapon1damagestat}]][Weapon1DamageStat] +@{weapon1enh}[Weapon1 Enh] +@{weapon1specialize}[Weapon1 Specialization] +?{Other Damage Bonus}[Other Damage Bonus] needs to be: 1d20cs&gt;@{weapon1critmin} +@{bab}[BAB] +[[@{weapon1stat}]][Ability] +@{size}[size] +@{weapon1enh}[Weapon1 Enh] +@{weapon1focus}[Weapon1 Focus] + ?{Flank&amp;#125;*2[Flank] +?{Other Attack Bonus&amp;#125;[Other Attack Bonus] and 1d6cs&gt;7 +[[@{weapon1damagestat}]][Weapon1DamageStat] +@{weapon1enh}[Weapon1 Enh] +@{weapon1specialize}[Weapon1 Specialization] +?{Other Damage Bonus?&amp;#125;[Other Damage Bonus] Note the &amp;#125; replacement for the closing brace on the Flank, Other Attack Bonus, and Other Damage Bonus queries &nbsp;(I've removed the queries for Power Attack in this version since the particular character this comes from does not use Power Attack, but it would be treated the same way). These adjusted attack and damage calculations need to be pasted into the max field for the appropriate attribute for this macro to function properly.
1589876450
Ziechael
Forum Champion
Sheet Author
API Scripter
So the sections I'm talking about are these ones: 1d20cs&gt;@{weapon1critmin} +@{bab}[BAB] +[[@{weapon1stat}]][Ability] +@{size}[size] +@{weapon1enh}[Weapon1 Enh] +@{weapon1focus}[Weapon1 Focus] + ?{Flank|No, 0|Yes, 1}*2[Flank] +?{Other Attack Bonus?|0}[Other Attack Bonus] and 1d6cs&gt;7 +[[@{weapon1damagestat}]][Weapon1DamageStat] +@{weapon1enh}[Weapon1 Enh] +@{weapon1specialize}[Weapon1 Specialization] +?{Other Damage Bonus}[Other Damage Bonus] needs to be: 1d20cs&gt;@{weapon1critmin} +@{bab}[BAB] +[[@{weapon1stat}]][Ability] +@{size}[size] +@{weapon1enh}[Weapon1 Enh] +@{weapon1focus}[Weapon1 Focus] + ?{Flank&amp;#125;*2[Flank] +?{Other Attack Bonus&amp;#125;[Other Attack Bonus] These are all separate fields in the 3.5e sheet that feed the overall macro you are creating. If their calculations don't reference the queries you are using in your main macro... and in the same way (ie.&nbsp; ?{Other Damage Bonus} vs&nbsp; ?{+ / - to Damage|0}) then the whole thing starts to break down. And in your example the queries set in: ?{Flank|No, 0|Yes, 1} ?{+ / - to Attack|0} ?{+ / - to Damage|0} {{fumbleroll=**Fumble:[[d20]]**}} + ?{Called Shot?|None,0 &amp;#125;&amp;#125;|Head (Tricky),-2 &amp;#125;&amp;#125;|Ear (Challenging),-10 &amp;#125;&amp;#125;|Eye (Challenging),-10 &amp;#125;&amp;#125;|Neck (Challenging),-10 &amp;#125;&amp;#125;|Chest (Easy),-2 &amp;#125;&amp;#125;|Heart (Challenging),-10 &amp;#125;&amp;#125;|Vitals (Tricky),-5 &amp;#125;&amp;#125;|Arm (Easy),-2 &amp;#125;&amp;#125;|Hand (Tricky),-5 &amp;#125;&amp;#125;|Leg (Easy),-2 &amp;#125;&amp;#125;} (I notice that there is a rogue 'fumble' roll in your non-templated queries section which will likely be causing problems or at least display issues). You also have some math operators floating around outside of the templated areas which will either do nothing or break the output. On top of that your query results seem to all end in the html for }}, possibly a result of an overly aggressive find/replace? For 'block' queries I usually advise putting them before the macro's desired output using an '!' to define them as API calls and therefore hiding them from the final output: ! ?{Flank|No, 0|Yes, 1} ?{+ / - to Attack|0} ?{+ / - to Damage|0} ?{Called Shot?|None,0|Head (Tricky),-2|Ear (Challenging),-10|Eye (Challenging),-10|Neck (Challenging),-10|Chest (Easy),-2|Heart (Challenging),-10|Vitals (Tricky),-5|Arm (Easy),-2|Hand (Tricky),-5|Leg (Easy),-2} &amp;{template:DnD35Attack} {{pcflag=true}} {{fullattackflag=[[?{Full Attack?|No, 0d1|Yes, d1}]]}} {{name=@{character_name}}}&nbsp; ?{Which weapon? |@{weapon1name}, {{subtags=swings a @{weapon1name} &amp;#125;&amp;#125; {{attack1=A1:[[@{selected|weapon1attackcalc|max} ]] &amp;#125;&amp;#125; {{critconfirm1=Crit?:[[@{selected|weapon1attackcalc|max} ]] &amp;#125;&amp;#125; {{fumbleroll=**Fumble:[[d20]]**&amp;#125;&amp;#125;&nbsp;{{damage1=D1:[[@{selected|weapon1damage|max} ]] ... etc etc Finally, I'm certain that you shouldn't be referencing the max of the attributes that make up the attack... in my tests that simply doesn't work... UNLESS the original one stores an alternative, html replaced, version of the standard macro there for ease of reference which would make sense in this instance. [edit] which I've just re-read and found out to be true lol: These adjusted attack and damage calculations need to be pasted into the max field for the appropriate attribute for this macro to function properly. Where is the original from?
1589904428

Edited 1589904782
Source of original:&nbsp; <a href="https://docs.google.com/document/d/1g8fUu5XTvAw8_PDQATIohaFaQEeQFt5J9EOrslfiqr0/edit#heading=h.k0qrr5uc9mr0" rel="nofollow">https://docs.google.com/document/d/1g8fUu5XTvAw8_PDQATIohaFaQEeQFt5J9EOrslfiqr0/edit#heading=h.k0qrr5uc9mr0</a> Will the API calls function if I am using a free account?
1589910921
Ziechael
Forum Champion
Sheet Author
API Scripter
Absolutely, they aren't API calls as such, just sent to the chat as &nbsp;an API call so the system knows not to print it.
As someone who's been pounding their head against this problem for the last year, I have to say Gigi is right, less is more when it comes to Roll20 Macros. Sure you could probably manage to fit it all into one macro, but should you? In my experience anything more than 2-3 queries and the macro slogs to a snails pace. For my games I've setup a Chat Macro that lists all of their weapons or spells as such using the following code placed in the Abilities and Attributes tab of the character sheet. /w @{selected|character_name} &amp;{template:DnD35StdRoll} {{ Attack List =&nbsp; }} {{ [@{weapon1name}](~selected|weapon1attack) = [@{weapon2name}](~selected|weapon2attack) }} {{ [@{weapon3name}](~selected|weapon3attack) = }} This will pull the weapon name and attack macro from the weapons list on the character sheet and roll the attack with any modifiers that I've included like so: 1d20cs&gt;@{weapon1critmin} +@{bab}[BAB] +@{epicattackbonus}[Epic AB] + @{weapon1stat}[Ability] +@{size}[size] +@{weapon1enh}[Weapon Enh] +@{weapon1focus}[Weapon Focus] +?{Charge|No,0|Yes,1}*2[Charge] + ?{Flank?|No, 0|Yes, 1}*2[Flank] +?{Additional Attack Bonus?|0}[Ad'l Atk Bon] This allows me to set queries specific to the attack itself instead of asking 20 questions that may not be relevant to the current attack, for example flanking and ranged attacks. Unfortunately this means that every weapon/attack needs its own entry into the Weapons tab, but it allows you to create more specific macro's and on the rare occasion that you do need 5-6 queries, you can splurge a bit without dragging the game down on every turn. The above weaponcalc is our Paladins basic Longsword attack, below I've included his Smite weaponcalc and damagecalc which is used far less frequently but allows him to still call the specifics that he needs. Smite (Longsword) WeaponCalc 1d20cs&gt;@{weapon3critmin} +@{bab}[BAB]&nbsp; + @{weapon3stat}[Ability] +@{size}[size] +@{weapon3enh}[Weapon Enh] +@{weapon3focus}[Weapon Focus] +?{Charge|No,0|Yes,1}*2[Charge] + ?{Flank?|No, 0|Yes, 1}*2[Flank] +@{cha-mod} [Charisma Mod] +?{Additional Attack Bonus?|0}[Ad'l Atk Bon] Smite (Longsword) DamageCalc 1d8 + @{weapon3damagestat}[Weapon Dmg Ability] +@{weapon3enh}[Weapon Enh] +@{weapon3specialize}[Weapon Spec] +@{level} [Paladin Level] +?{Charging Smite|No,0|Yes,@{level} }*2[Charging Smite] +?{Additional Damage Bonus?|0}[Ad'l Dmg Bon] Here's a ss of his ChatMacro
Ziechael, when I tried it with the API calls, it no longer asks for full attack or which weapon. I put them back with the other queries and they all worked again, so, not sure what is happening. I'm about to tell my players to just deal with the sheet, lol. Big, yeah, since the one posted above, I am trying to chip away until it has the bare minimum of things in it at this point, I want to figure out how to make it do what I want out of sheer stubbornness now, lol. I will try your method too though and see how it works out. I may have more questions though. :)