I apologize if I come across as a newb here, but there is a reason for that... :P I am making some Macros, but they are extensively long and arduous in form, primarily because there seems to be a lack of variables? I'm hoping someone can tutor me just slightly on how to more efficiently write out some of these Macros. The primary culprit is the Automatic Bonus Progression rule that we use, which adds +1 Enhancement to weapons at levels 4, 9, 14, 15 and 17... That's not so hard to write, but I have to copy/paste it repeatedly, everywhere. For example, my Great Cleave Macro (using [[ { 1, [[ {0,floor(level/4)}kh1 ]] }kl1 ]] as a base for Max(level/4,1) code, which already seems over-whelming): /me swings widely, hoping to take out as many foes as possible with a single powerful swing. Target 1 -> Hit: [[1d20 + @{Thesslar|level} + @{Thesslar|strength_mod} + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] - 3]] Damage: [[ 4d6 + floor(@{Thesslar|strength_mod} * 1.5) + ((1+floor(@{Thesslar|level} /4))*3)*1.5 + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] ]] Target 2 -> Hit: [[1d20 + @{Thesslar|level} + @{Thesslar|strength_mod} + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] - 3]] Damage: [[ 4d6 + floor(@{Thesslar|strength_mod} * 1.5) + ((1+floor(@{Thesslar|level} /4))*3)*1.5 + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] ]] Target 3 -> Hit: [[1d20 + @{Thesslar|level} + @{Thesslar|strength_mod} + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] - 3]] Damage: [[ 4d6 + floor(@{Thesslar|strength_mod} * 1.5) + ((1+floor(@{Thesslar|level} /4))*3)*1.5 + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] ]] Target 4 -> Hit: [[1d20 + @{Thesslar|level} + @{Thesslar|strength_mod} + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] - 3]] Damage: [[ 4d6 + floor(@{Thesslar|strength_mod} * 1.5) + ((1+floor(@{Thesslar|level} /4))*3)*1.5 + [[ {1,[[{floor(@{Thesslar|level}/4),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/9),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/14),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/15),0}kh1]]}kl1 ]] + [[ {1,[[{floor(@{Thesslar|level}/17),0}kh1]]}kl1 ]] ]] /w Thesslar This is a Standard Action and you are at -2 AC until your next turn. What I'd hope for is a way to put the Enhancement calculation into a variable so I could do: Target 4 -> Hit: [[1d20 + @{Thesslar|level} + @{Thesslar|strength_mod} + @{Thesslar|enh_bonus} - 3]] Damage: [[ 4d6 + floor(@{Thesslar|strength_mod} * 1.5) + ((1+floor(@{Thesslar|level} /4))*3)*1.5 + @{Thesslar|enh_bonus} ]] I realize I could just manually change a variable to use, everytime I reach an appropriate level, but manually editing variables seems wrong (and requires me to remember to make that change... at the right time). Is there a way to set a variable and do this in a cleaner fashion as indicated? Much thanks for any time spent answering this query, Z