Part of my radio silence around here lately has been that I finally knuckled down and started taking evening programming classes. And I’ve gotten far enough to start making useful apps for gaming purposes.

I’ve been running a lot of Pathfinder over the past few years, and if you have too you might notice something that happens around the mid level and just gets worse and worse: the time overhead required in combat to add up the modifiers from a lot of small buffs and optional feats. This is particularly challenging for archers, power attackers, etc. It’s not uncommon for someone to have to figure out, say, the effects of Haste, Bless, Inspire Courage, Rapid Shot, Point Blank Shot, Deadly Aim, and Favored Enemy on each of his or her many attacks.

Some players just make jotted notes on blank paper. Some go the extra length to make flash cards. Both of those are better than trying to recalculate in your head each attack, but neither is particularly swift. A friend of mine was taking a programming class a few years ago and made himself a simple app to manage his attacks, and it proved extremely useful. It involved a lot of hard coding, though, so I’ve been badgering programmers at my table to make a more customizable version ever since. Now that I have just enough programming to be dangerous, it seemed like a fine time to go ahead and do it myself.

Combat Modifier Windows App

As noted in the link, this is currently only for Windows (Windows forms turn out to be remarkably easy to make). I’m hoping to get enough feedback on it from alpha testers to fix any problems before I start trying to figure out Visual Studios plugins to export to mobile (which would clearly be more useful). So if you’re willing to try it out and give feedback in the comments, I’d appreciate it very much. It is an .exe file, which I solemnly promise is not a virus, and its architecture seems simple enough that my copy of windows doesn’t even warn me about opening it (it’s only looking in its own directory, not trying to install anything).

What It Does

Enter your character’s base attack bonus and your persistent stats for armor class, attack bonus, and damage bonus (persistent in that they’re written on your character sheet and/or possibly include long-lasting buffs… basically, the totals that are easy for you to work out between combats and don’t expect to change much).

You can be on one of three tabs:

  • Single Attack takes an attack and damage bonus for a single weapon.
  • Two Weapons takes them for two weapons, and lets you set how good your two-weapon fighting feat is (basic, improved, or greater). This tab always assumes you’re making a full attack with both weapons, so if you need to make a single attack don’t forget to add back your +2. Using this tab includes all modifiers for two-weapon fighting (you don’t have to add a separate mod).
  • Flurry takes your unarmed attack and damage, your monk level, and your choice of a single attack or a flurry. Using this tab includes all modifiers for flurry of blows (you don’t have to add a separate mod).

You can add any modifier from the first combo box by selecting one and clicking Add. This adds it to the Frequent and Current Modifiers lists (subsequently, you can select it from the Frequent Mods combo box to find it more easily). You can select a mod you’ve added to Current and remove it by clicking the Remove button, or just click Clear All to empty the list of current modifiers (they’ll still be in the combo boxes).

The boxes at the bottom show you your iterative attack sequence, damage bonus, and AC as modified by the buffs (and the iterative sequence is automatically generated based on Base Attack and the rules for two-weapon fighting or flurry of blows).

Installing the App and Editing Modifiers

Extract the zip file into the directory of your choice. Run the .exe. It’s looking at CombatModifiers.txt in the same folder to get its list of combat modifiers.

If you want to add more combat modifiers or change their order, you can mess around in the text file (there’s also an option to add new mods from within the app). Be careful when doing so, as getting the syntax wrong can result in unpredictable errors (the app probably won’t crash, it’ll just have bad data for one or more modifiers):

  • The format for the file is: Modifier Name|Modifier Type|Attack Mod|Defense Mod|AC Mod
  • Modifier name is anything you want that makes it easy to remember what it is. It should be able to take any character other than a pipe, though quotation marks and backslashes may be risky given how C# handles strings.
  • Modifier type will be “Normal” for the vast majority of them. If you have something like Haste or Rapid Shot that grants an additional attack at your highest bonus, the type should be “BonusAttack”. If you have something like Power Attack or Combat Expertise that improves its bonus at every 4 points of Base Attack, the type should be “BaBScaling”. Let me know if you have any other ideas for types
  • Attack, Defense, and AC Mods should all be integers, with a – for negative and no + for positive. The app will probably sub in a 0 if it doesn’t understand what you want.
  • It should be safe to put spaces around the pipe separators if it makes it more readable.
  • You have to have a blank line at the end of the file (but only one), and can’t have any blank lines or comments/headings in the middle of the modifiers.

Known Limitations

I’m calling this known limitations rather than known issues, because issues implies that I hope to fix them. I’d seen apps available that did something similar, but usually as part of a much more vast set of options. I was trying to go for the minimum acceptable thing that did what I wanted, to make the UI and file format super easy to use (in addition to making the scope of the coding simpler). I quickly found out that 3.x is a huge and interlocking thing, where getting one rule working makes you want to get one more rule working to have the first rule be totally robust. For example:

  • The system doesn’t know anything about bonus type. It will happily let you add conflicting modifiers together (e.g., Bless and Heroism). You need to keep an eye on that yourself.
  • It doesn’t know your Strength or Dexterity, or how they affect anything. So you basically have to hand-tailor a modifier to your own scores if you want to include them. I worry about including Rage, since there are probably stat combinations where they’re not exactly correct (particularly for Greater Rage with a two-handed weapon). It’s probably often going to get strength-based damage modifiers wrong for off-hand attacks.
  • It doesn’t know how much of your AC is touch or flat-footed.
  • It doesn’t track size bonuses (or damage die type at all).
  • It doesn’t automatically sort any lists.
  • It doesn’t track how long buffs last.
  • It doesn’t know about caster levels or anything other than personal Base Attack that might make an effect scale, so you have to make separate normal modifiers for each variation of such things.
  • Two-Weapon Fighting doesn’t account for not using a light weapon in your off-hand (but you can probably fake that with an additional modifier).
  • Current Modifiers that scale don’t recalculate if you change your Base Attack after applying them (you have to remove them from current and add them again).
  • It’s mostly for Pathfinder right now (but probably works just as well for 3.5 if you ignore the flurry of blows tab and the modifiers that scale by BaB). You’d probably have to make your own modifier list, at a minimum, to use it for 4e or 5e.

Let me know if any of these limitations are a dealbreaker for you and why, and I’ll think about how to implement them. Also let me know any problems that I didn’t notice.

Finally, I’m not totally clear on whether this is at the point that it’s specific enough that I need to put the OGL disclaimer in the application anywhere. Does anyone with more experience making d20 stuff know?