Brian, Sorry for the delay in follow up. Forgot to follow the thread when initially replying. So far as apologizing for being a noob, we all start somewhere (this is the blind leading the blind), plus this actually ended up being fairly involved. Hopefully we can get something that you'll find acceptable. 1. [[[[{{floor((@{bs} + ?{Modifier|0} - d100)/10+1),{0}}kh1,{4}}kl1]]@{weapondamage}]] floor((@{bs} + ?{Modifier|0} - d100)/10+1) - calculates the number of successes (rounding up any decimals down and then adding 1, as 0.1-0.9 equal 1 success, 1.0-1.9 equals 2 successes, etc.) (This results in it incorrectly rolling damage 1% of the time; when a net 0 is calculated.) {...{0}}kh1 - This forces any negative results to resolve to 0; can't roll a negative number of dice. {4} - the total number of maximum successes {....}kl1 - keeps the lowest result. If you get more than {4} successes, it defaults to {4} @{shipweapondamage} - this is a little fuzzy. I'm presuming ship damage is XdYY. If it is, you may need to change it to dYY or just YY, and put "d" before @{shipweaopondamage} in the macro; as in item 2. NB: This results in a single damage output. It will NOT show the number of successes. If you hover over the calculated damage, it will show the damage from each volley. 2. It would be something like this "/em does [[?{Degrees of succcess}d@{shipweapondamage}]] damage" (this requires the ship weapon damage to be a number equal to the number of sides of the dice that is rolled. 3. I should have called it a query. Sorry about that:) ?{Degrees of success|1, /em does [[(@{shipweapondamage})]] damage!|2, /em does [[(@{shipweapondamage})]], [[(@{shipweapondamage})]] damage!|3, /em does [[(@{shipweapondamage})]], [[(@{shipweapondamage})]], [[(@{shipweapondamage})]] damage!|.....} This would require html replacement but can get to that later if needed. EDIT: Added macro to item 1.