I see a few things that are bad. First, when you have two tags in a roll, you can't have them in two separate tags. This: [$AtkAdv] [nh] {2d20}KH1 Must become this: [$AtkAdv|nh] {2d20}KH1 Otherwise, it's getting confused looking for something that isn't there. Next, you also have it checking $AtkStd.base <> 20, when it should be checking $AtkAdv.base <> 20. Turn it into something like this: !power {{
--charid|@{character_id}
--emote|//@{selected|token_name} attacks @{target|token_name} with his longsword.//
--format|baros
--name|Longsword
--leftsub|Melee Attack
--rightsub|Reach 5 ft.
--title|[[ [$AtkType] ?{Attack|Std,0|Dis,1|Adv,2} + 0d0 ]]
--?? $AtkType == 0 ?? Attack:|[[ [$AtkStd|nh] 1d20 + @{Strength_Mod} + @{PB} + ?{Misc. Attack Modifier|3} [Misc. Mod] ]] vs @{target|Bar2} AC
--?? $AtkType == 1 ?? Attack:|[[ [$AtkDis|nh] {2d20}KL1 + @{Strength_Mod} + @{PB} + ?{Misc. Attack Modifier|3} [Misc. Mod] ]] vs @{target|Bar2} AC
--?? $AtkType == 2 ?? Attack:|[[ [$AtkAdv|nh] {2d20}KH1 + @{Strength_Mod} + @{PB} + ?{Misc. Attack Modifier|3} [Misc. Mod] ]] vs @{target|Bar2} AC
--?? $AtkType == 0 AND $AtkStd.base == 20 ?? Critical Hit:|[[ [nh] 2d10 + @{Strength_Mod} ]] slashing damage
--?? $AtkType == 0 AND $AtkStd.base <> 1 AND $AtkStd.total >= @{target|Bar2} AND $AtkStd.base <> 20 ?? Hit:|[[ [nh] 1d10 + @{Strength_Mod} ]] slashing damage.
--?? $AtkType == 0 AND $AtkStd.base <> 1 AND $AtkStd.total < @{target|Bar2} ?? Miss:|Strength Through Discipline, Order Through Strength, Peace Through Order.
--?? $AtkType == 1 AND $AtkDis.base == 20 ?? Critical Hit:|[[ [nh] 2d10 + @{Strength_Mod} ]] slashing damage
--?? $AtkType == 1 AND $AtkDis.base <> 1 AND $AtkDis.total >= @{target|Bar2} AND $AtkDis.base <> 20 ?? Hit:|[[ [nh] 1d10 + @{Strength_Mod} ]] slashing damage
--?? $AtkType == 1 AND $AtkDis.base <> 1 AND $AtkDis.total < @{target|Bar2} ?? Miss:|By the Iron Codex, I will defeat thee!
--?? $AtkType == 2 AND $AtkAdv.base == 20 ?? Critical Hit:|[[ [nh] 2d10 + @{Strength_Mod} ]] slashing damage
--?? $AtkType == 2 AND $AtkAdv.base <> 1 AND $AtkAdv.total >= @{target|Bar2} AND $AtkAdv.base <> 20 ?? Hit:|[[ [nh] 1d10 + @{Strength_Mod} ]] slashing damage.
--?? $AtkType == 2 AND $AtkAdv.base <> 1 AND $AtkAdv.total < @{target|Bar2} ?? Miss:|**Bane's** black mailed fist!
}
Granted, I turned your popup window that asks about Advantage, etc., into a dropdown instead of a number value being entered, but this should work a lot better for you. To give you an idea of how powerful this setup can be... This is the macro I use for my Druid: !power {{
@{format}
--charid|@{character_id}
--emote|~L @{character_name} puts aside his healing and spell casting for a moment to bathe in the blood of his enemies.
--name|@{selected|meleeweaponname1} Attack
--leftsub|Attack Action
--rightsub|Melee
--hroll|[[ [$Adv] ?{Advantage?|No,0|Advantage,1|Disadvantage,2} +0d0 ]]
--?? $Adv == 1 ?? !Advantage|~C **$$#006600|Advantage$$** ~~~ ~C
--?? $Adv == 2 ?? !Disadvantage|~C **$$#990000|Disadvantage$$** ~~~ ~C
--Main Hand Attack:|@{selected|token_name} slices through the air with his //@{selected|meleeweaponname1}//.
--Target:|$$#ff0000|**@{target|Target 1|token_name}**$$
--?? $Adv == 0 ?? ^1Attack *1:|~R [[ [$AtkStd] 1d20+ [[@{selected|meleetohit1} [Melee Bonus] ]] ]] ~R
--?? $Adv == 0 AND $AtkStd.total < @{target|Target 1|bar3} AND $AtkStd.base == 1 ?? !Miss *1:|Like a dumbass, you missed horribly: ^^^^ $$#ff0000|**[[ 1t[Critical-Miss] [txt] ]]**$$
--?? $Adv == 0 AND $AtkStd.total < @{target|Target 1|bar3} AND $AtkStd.base <> 1 ?? !Miss *1:|~C $$#ff0000|**Missed.**$$ ~C
--?? $Adv == 0 AND $AtkStd.total >= @{target|Target 1|bar3} ?? ^1Damage *1:|~R[[@{selected|meleedmg1}+ [[@{meleedmgbonus1}]] ]]~R
--?? $Adv == 0 AND $AtkStd.total >= @{target|Target 1|bar3} ?? ^1Damage Type *1:|@{selected|meleedmgtype1}
--?? $Adv == 0 AND $AtkStd.base == 20 ?? ^2Crit *1:|~R[[@{selected|meleedmg1}]]~R
--?? $Adv == 1 ?? ^1Attack *1:|~R [[ [$AtkAdv] {2d20}KH1 + [[@{selected|meleetohit1} [Melee Bonus] ]] ]] ~R
--?? $Adv == 1 AND $AtkAdv.total < @{target|Target 1|bar3} AND $AtkAdv.base == 1 ?? !Miss *1:|Like a dumbass, you missed horribly: ^^^^ $$#ff0000|**[[ 1t[Critical-Miss] [txt] ]]**$$
--?? $Adv == 1 AND $AtkAdv.total < @{target|Target 1|bar3} AND $AtkAdv.base <> 1 ?? !Miss *1:|~C $$#ff0000|**Missed.**$$ ~C
--?? $Adv == 1 AND $AtkAdv.total >= @{target|Target 1|bar3} ?? ^1Damage *1:|~R[[@{selected|meleedmg1}+ [[@{meleedmgbonus1}]] ]]~R
--?? $Adv == 1 AND $AtkAdv.total >= @{target|Target 1|bar3} ?? ^1Damage Type *1:|@{selected|meleedmgtype1}
--?? $Adv == 1 AND $AtkAdv.base == 20 ?? ^2Crit *1:|~R[[@{selected|meleedmg1}]]~R
--?? $Adv == 2 ?? ^1Attack *1:|~R [[ [$AtkDis] {2d20}KL1 + [[@{selected|meleetohit1} [Melee Bonus] ]] ]] ~R
--?? $Adv == 2 AND $AtkDis.total < @{target|Target 1|bar3} $AtkDis.base == 1 ?? !Miss *1:|Like a dumbass, you missed horribly: ^^^^ $$#ff0000|**[[ 1t[Critical-Miss] [txt] ]]**$$
--?? $Adv == 2 AND $AtkDis.total < @{target|Target 1|bar3} AND $AtkDis.base <> 1 ?? !Miss *1:|~C $$#ff0000|**Missed.**$$ ~C
--?? $Adv == 2 AND $AtkDis.total >= @{target|Target 1|bar3} ?? ^1Damage *1:|~R[[@{selected|meleedmg1}+ [[@{meleedmgbonus1}]] ]]~R
--?? $Adv == 2 AND $AtkDis.total >= @{target|Target 1|bar3} ?? ^1Damage Type *1:|@{selected|meleedmgtype1}
--?? $Adv == 2 AND $AtkDis.base == 20 ?? ^2Crit *1:|~R[[@{selected|meleedmg1}]]~R
}} And with a bit more work, you can make some pretty long ones. I have one I made for my dad that is 182 lines long, and one for my mother that is 118 lines for her Paladin asking her about smites and such, and pulling data from other macros to insert into various places as necessary. Of course, I removed a return of the AC to keep monster AC's secret from the players...