Joshua Stream Pre
Page 1 of 2 12 Last
  1. #1

    Extension: Player’s Option crits, weapon vs armor to-hit automation, and more!

    I've created an extension for the 2E ruleset that adds the critical hits from Player's Option: Combat & Tactics, adds some additional automation for basic 2E rules (such as to-hit modifiers for weapon type vs armor), and also adds some house rules that are similar to rules seen in Hackmaster. Everything in this mod is toggleable... you can pick and choose which options you wish to use.

    The code is all freely available at Github, and there is a readme file there which goes into much more detail than I can on these forum due to a character limit:
    If you plan to use this extension, taking a look at that readme is well worth it.

    A brief overview of what's currently implemented:

    Again, as a reminder, you can pick and choose what you want to use from this extension by toggling any option to "off".

    Player's Option Rules

    Critical Hits

    Implements the critical hit rules from Player's Option: Combat and Tactics. Can be set to use the RAW of critting on a nat 18+ and hitting by 5, or can be toggled to critting on a nat 20 and hitting by 5, or can be toggled to any nat 20 (regardless of if it hit, or by what).
    See the linked ReadMe above for details on how it figures out all the information for how to calculate the crit (such as attacker size, defender size, weapon size, weapon type, creature type, etc). The critical hit effects are primarily just displayed as text... the only effect which is actually automated is that either 2x or 3x damage dice will be automatically rolled when rolling damage for the critical hit. It does roll the saving throw vs death for you to save you a step, but it doesn't actually do anything with that success or failure.

    Additional Automation

    Automate Weapon Vs Armor Mods

    This option automates the optional 2E rule that gives attack bonuses and penalties depending on the damage type of the weapon vs the armor type worn. These are the "Weapon Type vs Armor Modifiers" seen on Table 52 of the Revised 2E PHB. The 2E ruleset currently implements these as modifiers that you can select before you roll an attack. Toggling this option removes the need to do that manually as it will attempt to automate it by looking at the attacker's weapon and the target's armor. This option doesn't work if it can't determine those things (such as a generic NPC "orc" that might have an AC of 5 but doesn't actually have any worn armor in its inventory), or in the case where a weapon type can't be determined. If you actually equip armor on an NPC, it will use these modifiers, even though the actual creature's AC won't change due to the armor you equipped to it.

    If an attacker's weapon does more than one damage type (such as a morningstar), it will assume the damage type most favorable to the attacker is hitting. If the defender is for some reason wearing more than one suit of armor, it will assume that the most favorable set of armor is being worn.

    Stricter Resistance Rules
    In the current implementation of the 2E ruleset, if a creature (such as a skeleton) resists slashing and piercing damage, they'll take half damage from any slashing or piercing attack... even if other damage types are involved. So, for instance, if a cleric bashes the skeleton with a morningstar, which is a bludgeoning/piercing weapon, the skeleton will only take half damage. I believe the intent in AD&D was that the most favorable damage type to the attacker was used when multiple damage types are involved. Enabling this option would require the target to resist all damage types of the attack to take half damage, not just one of them. A side effect of this that you may or may not like is that if you made a magical flaming longsword that does "slashing, fire" damage, the skeleton wouldn't resist any because while it resists slashing, it doesn't resist fire. You might disagree with me that it should work this way, and that's cool! That's why all these options are toggleable!

    Generate Hit Locations

    Toggling this option on simply adds some text in the chat window during a hit to indicate where the attacker hit. It has no real effect other than adding some additional flavor to combat. It determines the hit location using the same rules as critical hit location from the Player's Option: Combat & Tactics book. Note that this option being off doesn't effect critical hits; those are required for the Player's Option critical hits to work and generate a hit location even if this option is diabled.

    Hackmaster-style House Rules

    HP Kickers

    All NPCs of size Small or larger receive a 20 hit point "kicker". Creatures that are Tiny receive a 10 hit point kicker. Creatures with 0 HD, regardless of size, receive no kicker. This only applies to creatures that need to roll hit points, and will apply upon them being added to the combat tracker. If their hit points are set to a fixed value, the kicker will not be added.

    Note: This is only implemented for NPCs. If you want the PCs to get a kicker, you'll have to edit their hit point total manually.

    Penetration Dice

    Hackmaster had a concept of penetration dice, where if you roll the maximum on a damage or healing roll, you'd roll again, add the result, and subtract 1. If that die was maximum, you'd roll it again, subtract 1 again, and so on. This option pairs well with the "HP Kickers" house rule. It's pretty lethal without that house rule.

    Dice that penetrate will show up in the chat window roll as blue, and the extra dice rolled will show up as red (unless they too penetrate, and then they'll show up as blue). When the extra dice appear in the chat window, they'll already have had 1 subtracted from their roll (so it will be showing their modified value, not their "rolled" value). You really shouldn't need to worry about, as the total will be right, but I've noticed a lot of people questioning whether or not the -1 was actually occurring correctly when penetration dice are involved in VTTs.

    You can manually roll penetrate die by typing /pen or /diep, followed by the dice you want to roll. For example, "/pen 4d8"

    Armor Damage

    A toggleable option for Hackmaster-style armor damage. As armor accumulates damage, its effective AC level drops. Under these rules, armor also soaks 1 or more points of damage for each die rolled. Defaults for armor match Hackmaster rules, but can be configured via the item's properties. In the armor's properties, you specify how many points of damage it soaks per damage die by putting "DR: n" in there where n is the amount you want soaked. You can also specify how many HP each "level" of armor has via "HP:[n1,n2,n3,n4,etc]" where each number specifies how much damage the armor can take before it drops one effective AC level. So, for example, if you want Full Plate (AC1) to soak 2 points of damage per damage die for the player, and want to set up it's damage levels, you might put this in the "Properties" text field on the item: "DR: 2, HP:[36,24,12,10,8,6,4,2,1]". This would mean it can take 36 damage before dropping to AC 2, 24 more before dropping to AC 3, 12 more before dropping to AC 4, and so on.

    Shield Hits & Damage

    A toggleable option Hackmaster-style shield hits and damage. Detects when a miss is only a miss because the target was using a shield and reports it. Then, when you roll damage, damage is first applied to the shield, with any leftover (if enough damage is done that the shield breaks) flowing over and applying to the character. Uses some default HP totals (for instance, 12 hp total for a medium shield), but works best if you create some shields that match what's in Hackmaster (for instance, in HM a medium shield gives +3 AC and degrades after 5, 4, and then 3 hp of damage). HP can be specified the same was as for armor above.

    Threshold of Pain

    A toggleable option for Hackmaster-style Threshold of Pain check. A character's Threshold of Pain is equal to half of their maximum hit points. If they take a single hit that equals that threshold or higher, they save vs death (with a wisdom adjustment), and if they fail, they're unconscious for a number of rounds equal to however much they failed by. This is all automated, though you'll probably need to manually remove the "unconscious" effect in cases where it doesn't make sense, like when fighting zombies. Future plan is to check for creatures immune to threshold of pain and add support for different threshold amounts. For instance, in Hackmaster their are traits and flaws that can change it from 1/2 to 1/3 or 2/3.

    Hackmaster Stat Adjustments

    A toggleable option to switch to Hackmaster-style stat adjustments. Basically, it's using that ruleset's to-hit modifiers, damage modifiers, reaction adjustment, etc, instead of 2e's. Can toggle back and forth at any time and it updates appropriately.

    Use Reaction Adjustment on Initiative Rolls

    A toggleable option to apply a character's reaction adjustment from dexterity to initiative.

    Future plans:
    • Initiative system from Player's Option: Combat & Tactics
    • Additional automation of critical hits (create effects, detection of "uncrittable" creatures)
    • Fatigue system from Player's Option: Combat & Tactics
    • Spell crits from Player's Option: Spells & Magic.

    I will post major updates to the extension to this thread, but the latest code is always available at if you want to just grab it and zip it into an extension yourself.

    UPDATE: This post got too long, so additional features that came in after the original post are listed later in this thread.
    Attached Files Attached Files
    Last edited by Sterno; Today at 03:31. Reason: updated with new options

  2. #2
    Got this error when scoring a critical hit.
    Script Error: [string "scripts/utility_po.lua"]:10: attempt to get length of local 'set' (a nil value)
    Fantasy Grounds License: Ultimate
    Games I Run: AD&D 2nd Ed
    Currently Running: AD&D 2E (Forgotten Realms)
    Games I play: Any~
    Converted Modules: Faiths & Avatars (2e), Demihuman Deities (2e), Tome of Magic (2e)
    Current Projects: Dragon Mountain
    Created Content: AD&D 2E NPC generator Module

  3. #3
    Darn it, I did a lot of testing but apparently something go through. Looks like in this case it's treating something like a set which isn't, in some particular case. Can you tell me what kind of attacker, defender, and weapon you had so I can try to reproduce?

  4. #4
    The attacker is a PC with a long sword attacking an orc with no additions to the NPC.
    Fantasy Grounds License: Ultimate
    Games I Run: AD&D 2nd Ed
    Currently Running: AD&D 2E (Forgotten Realms)
    Games I play: Any~
    Converted Modules: Faiths & Avatars (2e), Demihuman Deities (2e), Tome of Magic (2e)
    Current Projects: Dragon Mountain
    Created Content: AD&D 2E NPC generator Module

  5. #5
    I'm rolling from the Attack box within the combat tracker. NVM tried from the character sheet. same error.
    Last edited by Frankison; July 4th, 2020 at 19:05.
    Fantasy Grounds License: Ultimate
    Games I Run: AD&D 2nd Ed
    Currently Running: AD&D 2E (Forgotten Realms)
    Games I play: Any~
    Converted Modules: Faiths & Avatars (2e), Demihuman Deities (2e), Tome of Magic (2e)
    Current Projects: Dragon Mountain
    Created Content: AD&D 2E NPC generator Module

  6. #6
    The Combat & Tactics Critical Hits also disables the ability to increase the critical threat range effect. CRIT:16 for high mastery for instance.
    I included a screen shot, in the chat log there is a 19 rolled with the Nat 20, hit by 5 you can see the effect is showing on the attack but it did not trigger the crit.
    I then turned it off and tried again, without the rule in play the crit activates fine.
    Last edited by Frankison; July 4th, 2020 at 19:17.
    Fantasy Grounds License: Ultimate
    Games I Run: AD&D 2nd Ed
    Currently Running: AD&D 2E (Forgotten Realms)
    Games I play: Any~
    Converted Modules: Faiths & Avatars (2e), Demihuman Deities (2e), Tome of Magic (2e)
    Current Projects: Dragon Mountain
    Created Content: AD&D 2E NPC generator Module

  7. #7

    Just tried the same and it's working for me. Do you have any other extensions installed? The attack action code in the 2E Ruleset isn't really built for injecting code without massive code replacement so I had to replace a huge chunk of it... other extensions that do the same might be conflicting. Otherwise I'll probably have to add some debug logging to catch what's going on. This failure is probably related to it trying to determine the damage type of the weapon, and for some reason getting bad data back. If we're both using stock PHB and MM data, though, I'm not sure what could be happening.

    As far as the crit range thing, yeah. I'm not sure what the best way to handle that would be since the crit range with RAW is already 18+. I could implement something there but I'm not sure what the right answer would be. The best choice might be having the nat 20 options use the specified threat range, but the 18+ version from Combat & Tactics ignore it. I guess some other options would be to extend by the same amount... a threat range of 19-20 with the 18+ system would be be 17-20 (essentially 1 better). Or yet another option is to only use the improved threat range if it's <18 and 18+ is selected.

    Edit: Huh. Nevermind. This error is occuring when you manually roll a 20 rather than forcing a 20 to be rolled (which is what I did in all my testing because otherwise it would take forever). I should be able to track this down and fix it in a few.
    Last edited by Sterno; July 4th, 2020 at 19:26.

  8. #8
    when I force the roll like you just did it works. Try attacking normally without using the force roll feature till you roll a crit.
    The only other extension I had was a Decal extension.
    Just tested it without the extension, same error.
    Fantasy Grounds License: Ultimate
    Games I Run: AD&D 2nd Ed
    Currently Running: AD&D 2E (Forgotten Realms)
    Games I play: Any~
    Converted Modules: Faiths & Avatars (2e), Demihuman Deities (2e), Tome of Magic (2e)
    Current Projects: Dragon Mountain
    Created Content: AD&D 2E NPC generator Module

  9. #9
    Version 0.2: Fixed glaring oversight where crits weren't working when rolled/dragged rather than forced via control-click.

    Thanks for the feedback, Frankison. I've replace the extension in the OP with a fixed version.
    It does not address your issue with manually set crit ranges on weapons. I'm open to whatever suggestions you have about how that should work.
    Last edited by Sterno; July 5th, 2020 at 01:04.

  10. #10
    JohnD's Avatar
    Join Date
    Mar 2012
    Winnipeg Canada
    Blog Entries
    Nice work!
    DMing since February 1979. FGC & FGU Ultimate License holder.

    Currently GMing:
    * Yggsburgh and Castle Zagyg - Castles and Crusades Greyhawk (Monday | Friday)
    * ToEE - Castles and Crusades Greyhawk (Thursday)
    * AD&D Bandit Kingdoms (Friday)
    * AD&D (Saturday)

    Thanks for 8+ years of gaming via FG my friends (AD&D 2e / 3.5e / Rolemaster Classic / Castles & Crusades / Pathfinder / Savage Worlds / 5e).

    There/Their/They're are all different words and do not mean the same thing.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
FG Spreadshirt Swag

Log in

Log in