Friday, January 27, 2023

Campaign Manager: A Better Combat Evaluator

Last month I mentioned populating standard damage attacks, special damage attacks, and healing for all 240 player/NPC character types (level 1 through 20 of fighter, druid, paladin, wizard, etc.). This past month, the same data (and more) has been populated to every monster type in the SRD 5.1 document.


All of which was necessary for the new Combat Evaluator. The Combat Evaluator tool aids game masters in balancing combat their players may encounter. Players and character assets are added to each Team and the results of the engagement calculated.


The victorious team is color coded - green for the winning team and red for the losing team. The colors will show gradients depending on how overpowered one team is versus the other. The advantage shows how much more additional attack and healing one team would require to win. In the above screenshot, Team B wins with a 12% advantage - meaning Team A must roll 12% higher than average on all of its healing and attack rolls to succeed.

The lower section shows an evaluated combat with no advantage given to either player. It includes how much power is left for the winning team at the very bottom.


The evaluation doesn’t take into account players that execute surprise attacks using meticulous plans, expert tactical decisions during a turn, or unbelievably lucky rolls. Instead, it computes using average rolls and typical attack patterns. If a combat is reported near-even, and the players perform very well - they should win. If the combat is reported near-even, and the players perform very poorly - they should lose.

Also of note - no random numbers are used in the combat evaluation. The evaluator will return the exact same results given the same input every time. For example, if an attacker’s chance to hit is +10 and the defender’s chance to defend is 20, half damage is always applied to the average attack roll - as that is the damage that would be dealt averaged across hundreds of turns with random valued attacks.


The combat evaluator takes into account a character's "Initiative" (or "DEX Mod" if no "Initiative" available), "Hit Points", "Armor Class", "Eval Standard Damage", "Eval Standard To Hit", "Eval Special Damage", "Eval Special Count", "Eval Healing Amount", "Eval Healing Count", "Eval Regeneration Amount", and “Eval Reactive Damage”.

"Eval Special Damage" can include "*#" to denote damage may be applied to multiple characters.

"Eval Special Damage" can include "/#" to denote damage may be divided to multiple characters.

"Eval Healing Amount" can include "*#" to denote damage may be applied to multiple characters.

"Eval Healing Amount" can include "/#" to denote damage may be divided to multiple characters.

"Eval Special Count" can include "*" to denote bonus action.

"Eval Special Count" can include "!" to denote the number represents turns between special damage becomes available again.

"Eval Healing Count" can include "*" to denote bonus action.

"Eval Reactive Damage" can include "*" to denote damage dealt when killed.

If something is denoted as a bonus action, then it is used simultaneously with the standard attack or healing. Healings are performed when a fellow teammate is down or if multiple healings are available and a teammate is low. In the above Adult Red Dragon asset, the Fire Breath damage from a special attack is applied to 3 characters each time it is used, and it is available every 3 rounds of combat.

The Combat Evaluator is also accessible from Encounters that have engagements defined. The configured players are automatically added as Team A and the Engagement creatures as Team B.


In the above example, there are players “Luther” and “Aleena” which are set to use Fighter Level 2 and Druid Level 2 in their player configurations respectively. There is an encounter with an Engagement against 2 hobgoblins and 2 goblins. When “Evaluate” is selected on the engagement, a Combat Evaluator is opened putting the players against the engagement participants.


You can download Campaign Manager from:

https://kamoly.itch.io/campaign-manager