The comparing the attack vs AC is certainly doable, the automatically deducting from the target token is something I'm not sure of how to do. Token-mod is the usual method for that, but since we can't pass the results of previous rolls, the only way to use it would be as a separate macro that you would activate after seeing the results of your attack. For the Pathfinder sheet attacks, here is what they are by default: @{PC-whisper} &{template:pf_attack} @{toggle_attack_accessible} @{toggle_rounded_flag} {{color=@{rolltemplate_color}}} {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{subtitle}} {{name=@{name}}} {{attack=[[ 1d20cs>[[ @{crit-target} ]] + @{attack_macro} ]]}} {{damage=[[@{damage-dice-num}d@{damage-die} + @{damage_macro}]]}} {{crit_confirm=[[ 1d20 + @{attack_macro} + [[ @{crit_conf_mod} ]] ]]}} {{crit_damage=[[ [[ @{damage-dice-num} * (@{crit-multiplier} - 1) ]]d@{damage-die} + ((@{damage_macro}) * [[ @{crit-multiplier} - 1 ]]) ]]}} {{type=@{type}}} {{weapon_notes=@{notes}}} @{iterative_attacks} @{macro_options} {{vs=@{vs}}} {{vs@{vs}=@{vs}}} {{precision_dmg1=@{precision_dmg_macro}}} {{precision_dmg1_type=@{precision_dmg_type}}} {{precision_dmg2=@{global_precision_dmg_macro}}} {{precision_dmg2_type=@{global_precision_dmg_type}}} {{critical_dmg1=@{critical_dmg_macro}}} {{critical_dmg1_type=@{critical_dmg_type}}} {{critical_dmg2=@{global_critical_dmg_macro}}} {{critical_dmg2_type=@{global_critical_dmg_type}}} You'll want to change the attack and crit_confirm for any attacks you make as part of this macro to be the following: {{attack=[[ { 1d20cs>[[ @{crit-target} ]] + @{attack_macro} }>@{target|bar1} ]]}} {{damage=[[@{damage-dice-num}d@{damage-die} + @{damage_macro}]]}} {{crit_confirm=[[ { 1d20 + @{attack_macro} + [[ @{crit_conf_mod} ]] }>@{target|bar1} ]]}} Make sure to do this in any iterative attacks that you have activated for this weapon as well. You would then also make a macro, I'll name it "apply damage" in this example: !token-mod --ids @{target|target1|token_id} --set bar1_value|[[@{target|target1|bar1|max}-?{Damage Done}]] This is of course assuming that your bar 1 is your AC. Hope that helps, Scott