Here is an attempt to automate the damage against Standard Characters for Fantasy Craft (2nd printing), by Crafty Games. This is an enhancement and nearly complete re-write of my previous script. The Damage Save portion has been separated into a function so it can be called not only from the on(change:token) portion, but also from the !DoDamage portion, and any future new functionality. I have employed some assumptions in order to make this work. It is completely stand-alone and self-contained - other than Roll20 itself, of course. ASSUMPTIONS ---------------------- Whether the attack hits or not is not determined by this script Damage amount to apply is not taken care of by this script (i.e. Damage Reduction, Resistance, Extra Stress Damage, etc) Default colors for the bars/circles (this isn't required for script operation, just for my documentation) You don't use the CHOSEN_STATUS for anything other meaning (yellow, by default) You don't use the three circles/bars for anything else on Standard Characters A character sheet or journal is not required for this functionality, nor are any attributes, abilities, or other macros SETUP ---------- Use the CHOSEN_STATUS variable to choose the status that will be used to designate token as a Standard Character. Use the Green circle (bar1) as the Damage Save modifier. Use the Blue circle (bar2) as the tough NPC Quality grade. ( leave blank for regular, set to "1" for tough I, "2" for tough II, etc. ) IN-PLAY ------------ Use the Red circle (bar3) to manually track accumulated damage, if desired. CHAT COMMANDS ----------------------------- ! DoDamage x Applies x damage to all selected Standard Character tokens. Only tokens with the CHOSEN_STATUS are effected. Any selected tokens without the CHOSEN_STATUS are skipped. ! ResetStd [ x ] [ y ] [ force ] Sets the Accumulated Damage to zero for all selected Standard Character tokens. Sets the Damage Save Bonus to x or zero if omitted for all selected Standard Character tokens. Sets the Tough Grade to y or zero if omitted for all selected Standard Character tokens. By default, only effects Standard Character tokens. If the force option is used (it must be the last argument), this turns on the CHOSEN_STATUS for any selected token that does not already have it - effectively making it a Standard Character token. PSEUDOCODE ----------------------- Listen for changes to a token Check to see if the token is a Standard Character Get the current and previous Accumulated Damage values If the current damage is greater than previous, it took damage (ignore changes to other values, heals, etc) Determine the Damage Save DC based on current damage Roll save against DC using Damage Save Bonus If save is successful, do nothing (SuperGoblin!) If save is failed, either decrement a non-zero tough grade and reset damage, or make it dead. <a href="https://gist.github.com/lifer4700/7509041" rel="nofollow">https://gist.github.com/lifer4700/7509041</a>