PDA

View Full Version : Player's Option crits, additional automation, and Hackmaster-style house rules



Sterno
July 4th, 2020, 18:07
Update: With the creation of the Fantasy Ground Forge, I've moved distribution of this extension there. Click this link to get the latest version. The attachment in this thread is the version that was out at the time FGC stopped updating, so that FGC users can still use an older, compatible version of this extension, whereas the one on Forge might grow to the point where it no longer works on FGC.

Forge page: https://forge.fantasygrounds.com/shop/items/78/view

This post got too long, as the extension grew considerably since the original post. You'll have to look through the thread as various features were added or check out the ReadMe on Github (linked below, but slightly out of date). Until I update the readme, you sadly need to read through this whole thread to see how things work, since I described new features as they were added. I hang out in the #dnd_classic_2e channel on the FG Discord if you have questions.

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. Almost everything in this mod is toggleable.

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: https://github.com/drplote/FG-2e-PlayersOption
If you plan to use this extension, taking a look at that readme is well worth it (though it's slightly out of date and missing a few of the newer features).

A brief overview of what's currently implemented:

https://i.imgur.com/t1y5bXl.png

Note: There's actually quite a bit more than listed in this post (such as many new effect types). Checked the ReadMe on Github for all the features: https://github.com/drplote/FG-2e-PlayersOption

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

"Always On" features

Added a radial menu to the player's Action tab attack button, that allows for quickly added modifiers like rear attacks, called shots, cheater dice (always 1 or 20), etc.
Added a radial menu to the Delay button the player action tab that allows for specific delay of 1-10 segments.
Added "Act" and "Done" buttons to the top of the player Action tab that allows them to move their init to the next segment or signify that their turn is done.
Added a radial menu to the GM Combat Tracker NPC weapons that allow the same as above.
Added a radial menu to the GM Combat Tracker actor list (the part on the left) that allows you to change their initiative (set to 1 or 10, delay, etc) or add/remove common effects (stunned, prone, etc)
Added an "Items" section to the Encounter record so you can spawn specific items on a creature. Pairs well with the "Adjust NPC AC for Items and Abilities" option.
A bunch of new effects, most of which tie in to the option systems, but a few like DMGDX which are general purpose.
Added some radial menu options to the CT actor that allow you to quickly add effects for some common light source types and vision types, or remove all light sources.


Player's Option Rules

Combat & Tactics Critical Hits - Implements the critical hits system from the 2E Combat & Tactics book, complete with damage type vs creature type, and severities based on weapon size and creature size.
Combat & Tactics Initiative - Implements the phased initiative system from the 2E Combat & Tactics book.


Additional Automation

Adjust NPC AC for items and abilities - NPC armor class will be affected by worn armor, rings, dexterity, etc. If you're going to put armor on an orc, make sure you set it's base AC to 10 first!
Allow Player Cheater Dice - toggles if they have a button to force a roll of 1 or 20
Alternate Condition Modifiers - Changes how some effects like prone/restrained stack
Generate Hit Locations - Just for flavor, shows where a hit occurred
Ring Bell on Round Start - Rings the bell when it's a player's turn
Set Unrolled NPC Init to 99 - Set to 99 at start of round until they manually roll
Set Unrolled PC Init to 99 - Set to 99 at start of round until they manually roll
Stricter Resistance Rules - Changes how resistance works with multiple damage types (like a morningstar's bludgeoning/piercing vs a skeleton, which would be resisted in the base ruleset but not with this option enabled). Need work though since neither this nor the base ruleset really has it fully right yet in all cases, in my opinion.
Weapon vs Armor to-hit modifiers - Automates the weapon type vs armor tables from 2E (or whatever you set as custom values) like, for, example, +2 to-hit with bludgeoning vs chainmail


Hackmaster House Rules

Armor Damage - Armor soaks damage per hit and slowly degrades
Enable Comeliness - Adds stat to PC sheet
Enable Honor - Adds honor which can affect dice rolls (+1 or -1 to all dice)
Hackmaster 10-segment initiative - Uses the HM init system where all action occurs on segments 1-10, with 11+ rolling over to the next round.
Hackmaster critical hits - uses the crit charts from Hackmaster (including severity calculations and size differences)
Hackmaster fatigue rules - Not quite RAW, but pretty close, slowly gaining fatigue in combat which can affect str/dex
Hackmaster stat scaling - Use the Ability Score modifiers from Hackmaster rather than 2E (generally, they're higher)
Hit Point Kickers - Add bonus HP to every NPC when they spawn on the CT.
HM Called Shot Modifiers - Use the HM tables for called shot modifiers rather than the flat -4 of 2E
Monster Thac0 Based on HM Attack Matrix - Doesn't reproduce the attack matrix from hackmaster, but does set Thac0 according to those charts
Penetration Dice - Damage/heals explode upward if maximum is rolled
Reaction Adjustment Affects Init - Dex affects init
Threshold of Pain - Chance to be stunned if an actor takes 50% of max health in a round.
Use Fumble Tables - Spice things up on a natural 1
What can hurt magic armor (if using armor damage?) - Specifies how magic armor takes damage under the armor damage system



I will post major updates to the extension to this thread, but the latest code is always available at https://github.com/drplote/FG-2e-PlayersOption if you want to just grab it and zip it into an extension yourself. What I post to this thread is (hopefully) stable, but any given pull on Github might contain experimental code that's still in progress, as I've been too lazy to set up a Release branch (mainly because I don't think anyone actually looks there).

WARNING: This extension touches a lot of systems (combat, initiative, character sheet, combat tracker, etc) and overrides or in some cases reproduces a lot of the 2E ruleset code, so any time the 2E ruleset updates and has changes in those areas, there is a chance that this extension will break or cause undesired behavior until I get it updated. If you run into any bugs, before reporting them against the ruleset to Celestian, disable the extension first and see if it still occurs. Most of the extension file names end in "*_po.lua" so if you see a bug pop up in the console with a filename that ends like that, it's pretty safe to blame the extension. You can submit bug reports to me in this thread or find me in the #dnd_classic_2e channel on FG's Discord.

WARNING #2: I started out writing this while using FGC but switched to FGU around September 2020 and have no plans to go back. As far as I know, everything in this extension works in FGC, but I don't plan to maintain backwards compatibility if fixing some FGC-specific bug turns out to be particularly complex. Hopefully we won't run into anything like that, but just be aware that I don't test this extension in FGC at all anymore.

WARNING #3: Now that FGC has an end date where it will stop being updated, Warning #2 especially applies! I'll archive an older version of this extension for FGC at the time that the 2E ruleset locks it's FGC code as well, and it won't receive any further updates after that.

WARNING #4: As mentioned above, the .ext file attached to this thread is out of date and meant only for FGC users. If you are using FGU, you'll want to get this extension via the Forge link above instead.

Frankison
July 4th, 2020, 18:54
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)

Sterno
July 4th, 2020, 18:56
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?

Frankison
July 4th, 2020, 18:59
The attacker is a PC with a long sword attacking an orc with no additions to the NPC.

Frankison
July 4th, 2020, 19:03
I'm rolling from the Attack box within the combat tracker. NVM tried from the character sheet. same error.

Frankison
July 4th, 2020, 19:11
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.
37406

Sterno
July 4th, 2020, 19:15
https://i.imgur.com/hGeMqkQ.gif

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.

Frankison
July 4th, 2020, 19:24
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.

Sterno
July 4th, 2020, 20:34
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.

JohnD
July 4th, 2020, 23:54
Nice work!

Sterno
July 5th, 2020, 01:01
Version 0.3: Extension file updated in the OP.

Renamed the "Nat 20, hit by 5" and "Any nat 20" crit options to "As base, hit by 5" and "As base ruleset" to reflect that those two options now respect the threat ranges specified on a weapon. Did not implement this for the rules-as-written 18+ option, though, because that gets really weird.

Currently, except when set to "Off", this extension does not respect the bonus crit dice you can specify on a weapon in that same area that you can set the threshold.

Lastly, visually, you don't see the animation for the the extra crit dice you roll on a critical hit, but the dice do appear in the chat log. I hope to get the animated rolls working in the future.

Sterno
July 18th, 2020, 21:44
I've updated this to version 0.4 (updated attachment in the OP).


Fixed some bugs introduced during the previous bug fix with weapon type vs armor type to-hit modifiers not working.


Fixed a bug where the toggle for Penetration Dice being enabled was accidentally tied to the HP kicker option rather then the Penetration Dice option.


Added 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.


Added 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.


Modified the assumption about weapon size when it comes to Combat & Tactics critical hits with natural weapons. I'd been assuming creature size - 2 size categories. Found rules in Chapter 9 of the book that specified what various natural attacks' relative sizes should be and changed the code to match that.


Added 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.


Added 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.


Added a toggleable option to apply a character's reaction adjustment from dexterity to initiative. This seems a little fiddly at the time you toggle it... it's possible the character sheet needs to be open when the toggle is flipped for the init value to immediately update. I'll look into improving that.


Added an automated saving throw vs death when a critical hit occurs (if using the Combat & Tactics crit option). Still doesn't actually apply any effects of the crit though... it just saves you the trouble of rolling manually.

Frankison
August 12th, 2020, 04:36
Really love this extension, Great job Sterno.
Found this little guy, when players forget to target a creature and you attempt to drag the result to the target it throws this error.

Script Error: [string "scripts/manager_action_attack_po.lua"]:386: attempt to index local 'rSource' (a nil value)

Sterno
August 12th, 2020, 13:30
Thanks for the report, I'll get that fixed (I think I may have already a few weeks ago and just haven't updated this thread yet, but I'll double-check). I actually need to push an update soon because I have a few new options (HM-style fatigue, HM Thac0 charts for monsters, some changes so things like poison and psychic damage can't hurt armor and armor can't soak that kind of damage, additional penetration options so certain weapons like crossbows can penetrate on max die and max -1, and an option to ring the bell at the start of a combat round), plus a few bug fixes and some cleanup around the way crits and other messages are displayed in chat. Been holding off though because it's taken 3 weeks to get fatigue working correctly. I'd keep thinking I had it fixed and then my weekly game would roll around and it would work for me but not my players. Node-permission issues!

The biggest bug fix is that in the currently published extension the automation for weapon type vs armor type is replacing any other to-hit modifier rather than modifying it. So if you attack at d20+15 but your target's plate armor gives a -2, you end up attacking at d20-2 instead of d20+13. I wasn't noticing during testing because it's usually just players wearing armor, and most monsters have +0 to hit, so it wasn't coming up. I'll get the update pushed today or tomorrow, though anyone concerned can always just grab the latest from Github.

daggertx
August 12th, 2020, 17:14
Thanks Sterno

Sterno
August 15th, 2020, 03:14
Just uploaded version 0.5 in the OP. Does not fix the bug Frankison reported with dragging dice from the chat window, because that proves to be a difficult thing to solve (but I'll try to at least make it not blow up in the next version).

New things in this version:


Fixed a bug where the weapon type vs armor type roll mods were replacing the roll's modifier rather than adding to or subtracting from it. For instance, if you were at +4 on your attack but attacked something in armor that should have given you a -2 mod, it was changing your attack to -2, rather than +2 (i.e., +4 - 2). My bad!

Added a Use Fumbles Tables option, which occur on a natural 1. They're entirely text-based and don't apply any effects of stat changes, so you have to decide exactly what their effects might be and apply them manually. There are two options. One uses the Hackmaster 4E fumble tables, straight from the GMG. The other, named "Sterno Fumbles", is something based loosely off the Player's Option concept of Battlefield Events, but kind of applied to be fumbles rather than general events. I imagine I'm going to change that table a lot but it's what I'm currently trying in my game. You probably don't want to use that one, and should use the 2E ruleset's built-in ability to hook in your own fumble tables instead. The HM4 ones were complicated enough that I wanted to handle it with an extension though. If you have fumbles enabled, typing /fumble in the chat window will generate a fumble for you.

Added the spell mishap tables from Hackmaster. You roll on the table by typing /mishap in the chat window. This option is the first thing I've added that's always enabled, but that's because it's not automated... you either type /mishap or don't! No automated effects here, just text.

Changed the display of critical hit effects so they appear on their own line in the chat window.

Added a Monster Thac0 Based on HM Attack Matrix option so that monster Thac0 is based on their HD per the Hackmaster GMG. Could potentially see adding another option here for the 1E matrix, but haven't done it yet. Note that it doesn't actually use the matrix perfectly, it just uses it to determine a Thac0. The main difference is that in Hackmaster (and I think 1e did it too), there are 5 ACs that a modifier 20 can hit. I went for the more simplified 2E method of just assuming every +1 on your roll is the equivalent to hitting one better AC.

After a whole lot of pain, I got a Hackmaster Fatigue Rules option working. It's based heavily on Hackmaster fatigue but a little simplified. I do plan to add the Player's Option version of fatigue in the future. Fatigue behavior is discussed in more detail below.

If you're using the Armor Damage rules, armor no longer soaks or is damaged by poison or psychic damage. Still trying to decide if other damage types belong in that category, but settled on these two for now.

If you're using the Penetration Dice, d3s can now penetrate. You can also add the word "penetrating" to the damage type on a weapon, and it will penetrate on max die roll and on max die roll -1. This was to support the fact that crossbows in Hackmaster behave that way. Could make for some cool magic weapon properties too.

Added a Ring Bell on Round Start option that just dings everyone at the start of a combat round.


Fatigue Overview

This is pretty much the Hackmaster fatigue system except I changed how you gain/lose fatigue to make it a little more automation friendly.

First off, every character has a Fatigue Factor. It's typically half their Constitution score. Then, a multiplier is applied based on their encumbrance level. Normal = 1.0, Light = .75, Moderate = .5, Heavy = .25, and Severe = 0. Hackmaster also has a few skills and talents that can modify someone's Fatigue Factor. On the character sheet "Main" tab, if you go to the Combat section and hit the gear icon, you can enter a Fatigue Factor multiplier which further modifies that Fatigue Factor. Most characters are just going to stay at 1 though.

Okay, so you got your fatigue factor, and for most unencumbered characters, it's equal to half their Constitution. This is how many points of fatigue you can gain before you start having penalties. So how do you gain fatigue? This is how it differs from Hackmaster a little (and to be fair, Hackmaster is a little vague on it). If you make any melee attack during the round, you gain a point of fatigue. If you make a ranged attack or cast a spell, you neither gain nor lose a point of fatigue. If you do none of the above, you lose a point of fatigue (down to 0).

If gaining a point of fatigue raises your current fatigue above your Fatigue Factor, the character makes a Fatigue Check to see if they gain a -1 STR/-1 DEX fatigue penalty. This check is a d20 roll that you want to have under the average of your Constitution + Wisdom. Fail the check, gain the penalty. Make the check, no penalty. Gain another point of fatigue next round, make another check! Keep failing checks, and the penalties keep stacking up! Note that the Strength loss can affect your encumbrance score, which in turn can lower your fatigue factor!

If you lose a point of fatigue and your current fatigue is less than or equal to your Fatigue Factor, and you have at least one fatigue penalty effect on your character, you make a Constitution check to try to remove the penalty. Success means you drop one fatigue effect (i.e., one -1 STR/-1 DEX effect). Failure means it stays there. However, if you ever get down to 0 fatigue, it clears all remaining fatigue effects without needing to make a check. Note also that a "Short Rest" or "Long Rest" also clears fatigue from all characters.

It should go without saying this is all automated, by the way, because who the hell would take the time to do this all manually?

Monsters are a little different. Because stats aren't as relevant for monsters are most just have 10 across the board in the Monstrous Manual records, the fatigue effect for monsters is -1 ATK and -1 AC instead of -1 STR and -1 DEX. This is different than Hackmaster, which says every time a monster would need a fatigue check, do a morale check instead to have them run away. I say, do both! Also note that monsters make their fatigue checks a little differently, as per HM rules. Instead of trying to roll under the average of Con + Wis, they try to roll under their morale score. If there is no morale score (or it's some gibberish I can't parse), it defaults to average of Con + Wis just like players, which is usually going to mean 9 or 10, since that's what most monsters have in their stats by default.

Also note that Fatigue Factor for a monsters is a little different. Player's used half their Con, modified by encumbrance. This wouldn't work for most monsters. Hackmaster had a supplemental book, the Hacklopedia Monster Matrix, which had fatigue factors for every single monster. I might eventually input all those, but for now, they just use 6. That's a tiny bit better than the average player, and eyeballing the values in the Monster Matrix, not bad as an overall average value. Obviously, though, a dragon might have more fatigue than a goblin. I'd like to eventually get something in there for this, but for now, if you really want a monster to be big and tough and not worry about fatigue, just give it a high morale and it'll never fail it's fatigue checks.


I need more testing in my own game, but I'm also considering having spells and ranged attacks given half a point of fatigue instead of no fatigue. Undecided. And I would like to give a means for the DM to manually apply a level of fatigue to someone for things that I can't really automate, like them doing a full run during their turn, trying to lift a heavy grate, etc. The only real way to do that right now is tell them to just smack a melee attack button that you'll ignore (but which will trigger the round-end automation for fatigue).

Frankison
August 15th, 2020, 07:18
I haven't had a chance to take a look at this but I ran a game with the extension tonight and when trying to use the THAC0 Button from the main tab of the character sheet as an attack option an error is thrown. I apologize that I don't have a copy of the error but I'm also not 100% sure if its even related to the extension.

Sterno
August 16th, 2020, 01:45
Haven’t looked yet but there’s a really high chance that’s my extension. Didn’t even really know that button existed and never used it. My guess is it acts differently than weapon actions and is blowing up because it can’t find weapon info. I should be able to make it behave like there’s no extension when you click it though.

What kids of things do you use that button for?

Frankison
August 19th, 2020, 04:35
I use it for any attack that is not something carried by the player. Punching, Throwing a rock, hitting someone with a chair, snatching a dagger from the air with the juggling proficiency, etc...

DM Wyvern
August 22nd, 2020, 07:04
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.

UPDATE: This post got too long, so additional features that came in after the original post are listed later in this thread.

This is absolutely epic, thank you Sterno!

daggertx
September 3rd, 2020, 20:26
I apologize if this has been mentioned but I get the below error in FGU (started testing this since Celestian has has put out an update for it).


https://imgur.com/LEF4FFP

Sterno
September 27th, 2020, 10:48
I've updated the file linked in the OP with version 0.6. It contains the following changes:


Fixes some FGU issues that weren't present in FGC due to the way DB node names were parsed.
If using armor damage rules, NPCs now benefit from worn armor. This adds to whatever AC you give them, so if you had a human fighter NPC with an AC in his NPC record of 3, and you put some Plate Armor in his inventory and equip it, he'd going to end up at AC -4 or something like that. For it to work correctly, set his AC to 10 (or whatever it might be with a dex bonus) and make sure his Plate Armor is equipped. This change was necessary to get the armor damage rules and decreasing AC with damage to work for NPCs. If you don't actually stick any armor in the NPC's inventory and equip it, there won't be any change to how it used to work. Considering pulling this into a separate option, though, because I find it useful even without using armor damage rules.
Fixed a bug reported by Franky where the Thac0 button didn't work.
You can now hold ALT while rolling damage to force damage to go to a shield against a PC or NPC.
Fixed the /pen commands, which apparently weren't working (and also completely unnecessary if you're on FGU, since that supports penetration dice natively).
Fixed a FGU bug that was also present in the 2E ruleset due to a difference in how dice arrays work between FGU and FGC that led to problems with armor damage and damage absorption abilities in general. (May revert this change in next release... it's either about to be fixed in the 2E ruleset or already has been... I haven't had time to check).

seanny
October 2nd, 2020, 10:46
Thanks for making this available.
I have been playing with the Weapon vs Armour and also the Penetration dice features.
They add a great new level to the game,makes it interesting to look at the chat box for the various armour effects on the dice roll and also whether dice damage explodes,this makes the lowly dagger with d4 damage a lot of fun.
Really like it,was feeling a bit jaded with the regular gameplay and this extension caught my eye in the forum list and it is great to play around with.

Sterno
October 2nd, 2020, 16:16
Glad you're enjoying it, Seanny! I would caution you against using penetration dice without some sort of bonus hit point rules or some other way to mitigate the increased damage, though. While on average, penetration only adds half a point of damage per die (regardless of die type), you can get some really big spikes that are hard to deal with using standard 2E hit points. For example, there's a 1 in 64 chance your typical longsword damage might penetrate twice, meaning your damage would land in the 15-22 range before even adding in other bonuses.

Hackmaster handles that by giving everyone +20 hp. This makes combats go longer, but also gives both sides more time to retreat when things start to go badly (and, IMO, makes morale rules more important so that every combat doesn't turn into a long slog).

Sterno
October 10th, 2020, 20:16
Verison 0.7


The big update was adding the initiative system from Player's Option: Combat & Tactics. More details below.
Fixed a bug (caused by the armor damage part of my mod) where Warding items like Bracers of Defense weren't granting an AC bonus, and other items like Rings of Protection were stacking with magical armor bonuses to AC when they shouldn't.
Added another option to the "Hit Point Kickers" option to allow for size-based kickers. Instead of a flat +20 hp for everything, it starts at +0 for Tiny creatures and adds +10 for every size category they go up.


Combat & Tactics Initiative

https://i.imgur.com/IRDVOTe.gif

Enabling this option switches from standard 2E initiative to the intiative system presented in the Player's Option: Combat & Tactics book (starting on page 17). Overall, this makes initiative for certain actions happen more consistently at the same time every round, rewarding quick characters and weapons and penalizing slow ones. To summarize it a bit, each round is broken into 5 phases: very fast, fast, average, slow, and very slow. Each round, each side rolls a d10 for initiative. The lowest roll wins. Ties are rerolled. Rolling a 1 means all combatants on that side will act one phase quicker that round, and rolling a 10 means all combatants on that side will act one phase slower.

The phase a given character or creature acts on is determined by a number of factors. First off, each character has a base initiative that's based on their size, speed, and encumbrance. Tiny and Small creatures are very fast, man-sized creatures are fast, large creatures are average, huge creatures are slow, and gargantuan creatures are very slow. This is adjusted one phase quicker for creatures with a movement rate of 18" or greater, and slower by one phase for creatures with a movement rate of 6" or less. Being moderately enumbered make initiative one phase slower, while being heavily encumbered is two phases slower and severely encumbered is three phases slower. For most unecumbered PCs, they'll usually end up with a base initiative phase of "fast".

If a character is just moving or acting in a way that doesn't involve a spell or weapon, they use their base initiative. If they're casting a spell, their initiative is based on the casting speed of the spell. Spells with a casting time of 3 or less are fast, 4-6 are average, 7-9 are slow, and full round cast times are "very slow".

If instead the character is using a weapon, they'll end up taking whichever initiative phase is worse... their base initiative phase or their weapon's initiative phase. The Player's Option book has a list of all weapons and what their speed phases are, but in lieu of coding that all in and making users of this mod maintain a new property on all the weapons, I instead based it on the weapon's "weapon speed" that already existed in 2E, and based it off what's in the Player's Option book. It led me to these ranges for weapno speed: Weapon speed <= 0 is very fast, 1-4 is fast, 5-7 is average, 8-13 is slow, and 14+ is very slow. If you are using the "Reaction Adjustment Affects Init" option of this mod, the way it works it to add or subtract your reaction adjustment to the weapon speed before determing the phase. It has no affect on spells or base initiative.

Some spells or other effects can give you an initiative bonus in 2e. These effects would like like "INIT: 4" and the like in Fantasy Grounds. The Player's Option book gives no guidance on how to deal with these, so I decided that every 3 full points of initiative bonus or penalty would change your initiative by one phase. Thus, a "INIT: 4" effect would amke you one phase slower, while a "INIT: -9" effect would make you 3 phases faster.

Finally, remember that a given side rolling a 1 or 10 affects the final determined initiative for the characters on that side by subtracting or adding one phase. When the round becomes, combat will start with the winning side's "very fast" characters, then move on to the losing side's "very fast" characters. Then it'll drop a phase to the winning side's "fast" characters, then the losing side's "fast" characters, and so on. Do to the different ways your initiative can be bumped up or down a few phases, I did create some extra phases. "Very Fast+" is one phase faster than "very fast", and should only be able to occur if a character has a beneficial initiative effect or was already "very fast" and rolled a 1 for initiative. "Very Slow-" is any initiative phase slower than "very slow", and really has no lower limit (see "How htis works behind the scenes in Fantasy Grounds" for more info).

Dropping one initiative phase
When hitting the "Next Actor" button (the down arrow near the bottom of the combat tracker), the DM can hold down alt, shift, or control while clicking it to drop the current actor's initiative by one phase and then moving on to the next actor (or staying on the current actor, if that would still make them next). This is needed because in the Player's Option initiative system, there are a number of cases where your initiative might drop by one phase mid-round. For example, if a character is moving, they begin moving on their normal initiative, can move up to half their movement, and then can finish their movement on the following initiative phase. Likewise, if they're going to move and attack, they'd move on their normal initiative phase and attack one phase later. Multiple attacks are meant to occur on subsequent phases, so a character with three attacks might get his first attack on "fast", his second on "average", and final attack on "slow".

This can also be useful if a character states they're delaying their action. Just delay them a phase, move on, and when you get to them again ask if they want to go yet.

How this works behind the scenes in Fantasy Grounds
Because I don't want to rewrite the entirety of the Fantasy Grounds initiative code, this kinds of grafts itself on top of the normal 2E initiative system by treating certain initiative numeric values as certain phases. We also technically can go faster than very fast (called very fast+) or slower than very slow (called very slow-). It works as follows:

Initiative 0: Winning side's "very fast+" initiative
Initiative 1: Losing side's "very fast+" initiative
Initiative 2: Winning side's "very fast" initiative
Initiative 3: Losing side's "very fast" initiative
Initiative 4: Winning side's "fast" initiative
Initiative 5: Losing side's "fast" initiative
Initiative 6: Winning side's "average" initiative
Initiative 7: Losing side's "average" initiative
Initiative 8: Winning side's "slow" initiative
Initiative 9: Losing side's "slow" initiative
Initiative 10: Winning side's "very slow" initiative
Initiative 11: Losing side's "very slow" initiative
Initiative 12: Winning side's "very slow-" initiative
Initiative 13: Losing side's "very slow-" initiative
Initiative 14+: Basically bonus "very slow-" phases

Right now, when a character "rolls" their initiative for a weapon or spell like they normally would in Fantasy Grounds 2E ruleset, they will see a die roll and a message will appear in that chat box, but this is really always producing a fixed result... you'll note that the message is about a d0 being rolled with certain modifiers added. This is simply to make sure the result comes out to the correct number (as shown above) that puts them in the right initiative phase and side. A lot of rework would be needed for me to clean this up and make it prettier, and it's also a very risky area of the code to change, so this is probably as good as it's going to get. You can basically ignore the roll though and just look at where you land in the combat tracker.

Player Characters who have not yet rolled initiative (such as when a new round starts) default to their "very slow-" phase. If your bothers can't be bothered to roll, they can just go last!

Lastly, since under the hood this is laying on top of the base ruleset's initiative system, it's easy to toggle back off. Whether toggling it on or off, though, you probably want to start a new round right afterwards so all the default initiatives for NPCs roll correctly for whichever system you're selected.

https://i.imgur.com/dKfIXGT.gif

Sterno
October 11th, 2020, 13:30
Version .71

Fixed a bug reported by daggertx where new monsters added to the CT were showing their HP even if that option was disabled.

galfaroth2000
October 11th, 2020, 16:39
Nice work Sterno... when a new version is available, is it automatically updated in FG, or must be download again manually?

daggertx
October 11th, 2020, 16:59
Thank you for fixing the bug

Bonkon
October 11th, 2020, 17:23
Good Day Galfaroth2000 :)
These types of add on extensions will need to be manually updated in your system. :)

Sterno
October 12th, 2020, 05:14
Version .72

Fixed a bug with the new init system where Reaction Adjustment from Dexterity (if you were using that option) was applying in the wrong direction.


Version .73

Now players (before, it was DM only) can hold alt, shift, or control when hitting the "End Turn" button on the combat tracker to drop their initiative to the next phase. In the future I'll probably add an entirely separate button for it.

Sterno
October 28th, 2020, 22:26
Version .74

Fixed a bug where if you delayed initiative and it took you to the same initiative as others, depending on if the default "tie" sorting from the 2E ruleset put you at the top of that list, you could be skipped.

Added an "End Turn" button in the top combat section of the Actions tab on the character sheet. You still need to hold alt, shift, or control to make it delay a turn rather than end it. Entirely separate button coming soon for delay, probably. Button appears regardless of whether or not you're using the new initiative system, but like the combat tracker button, only allows for "delay" if the new initiative system is enabled.

https://i.imgur.com/213RD71.png


Version .75

Fixed an issue where the "generic" init buttons (not tied to a weapon or spell) were rolling incorrectly.

Fixed a display issue that said the NPCs would go one phase slower when the PCs rolled a 10 for init.

Added a bunch of console debug lines to show what's happening during initiative rolls to help with any future bugs.

Sterno
October 29th, 2020, 06:16
Version .8 update

Renamed the "End Turn" button added in the previous version to "Done".

Added a "Delay" button that drops you one initiative phase. Unlike the "Done" button next to it that I added, "Delay Turn" is only visible if you have the Player's Option Initiative rules enabled. You can still hold control, alt, or shift while hitting the End Turn button (either on the action tab or the combat tracker) to delay instead, too, if you prefer.

https://i.imgur.com/WEobVYY.png

Added fatigue tracker and armor/shield damage trackers to the main tab of the character sheet. Allows players to adjust this manually if the need arises. These controls are not shown if their respective options are not enabled.

https://i.imgur.com/3ltsTed.png

Sterno
October 31st, 2020, 05:11
Version .81

Fixed a bug where dragging an untargeted attack from the chat window to an actor would cause an exception. This should now work without breaking, but note that options like weapon type vs armor to-hit modifiers, critical hits, etc won't process when doing this because it loses information about what the attacking weapon was.

Sterno
November 28th, 2020, 03:58
With the latest 2E ruleset update which added a Delay button, the Delay/Done buttons that I added in version .80 seem to be broken now. I'll try to get those fixed soon and integrate with the ruleset changes. Holding control, shift, or alt while clicking "End Turn" on the combat tracker still works to delay turn.

There's also a known issue with player's rolling init in the PO init system, where it assumes they always won the group init roll and ignores a 1 or a 10. Note that if a DM rolls it for a PC it works, but if the PC rolls it themselves it doesn't. This is due to a bug where I'm trying to track state of that group init roll, except it's only on the server side and not the client side so it fails to look it up properly when anyone but the GM does it. It'll be fixed in the next version as well.

JohnD
November 28th, 2020, 05:01
Noticed a couple things in my game tonight relating to armor damage.

1. PC is wearing Samnite armor and the extension is treating it as no armor worn. Samnite is AC 5. Screenshot of the armor on the PC follows. Samnite armor is I believe in the Fighter's Handbook. I entered the 2 into the HP Lost field to keep track manually (re: screenshot).

2. All PCs wearing armor except the Samnite have the extra fields on their Main tab except for a newly created PC. This PC is wearing standard leather armor and the extra fields do not show up on his Main tab. When hit, the armor absorbs damage and when I examine the details of the armor, the damage field correctly shows me the points absorbed. Other characters wearing leather armor have the extra fields.

Any ideas?

41485

Edit: I exited and launched the campaign again. Now the issue in item 2 shows properly. Issue 1 is still unchanged.

Edit 2: To fix one do I have to add armor data points to the Samnite so the extension knows how much can be soaked before loosing AC?

Edit 3: OK so I added to the Samnite armor properties HP:[8, 6, 4, 2, 1] and it seems to work now.

Disregard this whole post unless you want to impart some wisdom. :)

Morquendel
December 1st, 2020, 12:42
Thank you :)

Nimroth
December 1st, 2020, 16:31
Thank you so much!

Sterno
December 8th, 2020, 21:35
Version .85

Just updated the extension.


Removed the delay button I'd added previously and hooked into the Delay buttons that are now part of the 2E ruleset. The behavior of those buttons will now change depending upon which initiative system you're using.
When increasing fatigue manually via the control on a character's main tab, treats the character as "unrested" for the round so they no longer gain a fatigue point back when that round ends.
Fixed an issue where the group init rolls for PCs wasn't working correctly, resulting in them having a potentially incorrect initiative whenever a player rather than the GM rolled their init. Basically, players were unaffected by 1s and 10s on the group init roll, and always treated as being on the winning side of group init before this fix, if the player themself rolled. Oops.
Changed my dumb fumble tables that I'm still not happy with.
Fixed a minor bug where fatigue state (whether or not a player should gain fatigue when the round ends) wasn't clearing after the encounter ended, resulting in sometimes incorrect results on the first round of the next combat.
Changed the Threshold of Pain effect to be "Stunned" rather than "Unconscious".
Added a DMGDX effect. It is similar to the DMGX effect, which multiplies the damage result by a number, except that DMGDX multiplies damage dice by a number. For instance, backstab for a 5th level thief in the existing ruleset might have the DMGX:3 effect, multiplying their rolled damage by 3. If they roll a 2 on a 1d6, their backstab damage would be 6. Using DMGDX:3 would instead roll 3d6 for damage. Using DMGDX, only the dice are multiplied (and then rolled separately), and modifiers such as strength, specialization, etc are not multiplied. There's no option in preferences that enables this effect... you can simply add that effect to things or not, as you wish.
Discovered that the Player's Option Combat & Tactics book was misprinted, and the piercing and slashing critical hit charts were mislabeled. I'd been wondering why piercing crits could sever limbs but slashing crits couldn't! Found errata on that and switched those up in the extension so they're correct now.
Removed the "done" button I'd previously added to the action tab of the player sheet which would end the character's turn. For some reason it wasn't working anymore after the 2E ruleset change and I was feeling too lazy to fix it since it was just a "nice to have" anyway.

galfaroth2000
December 9th, 2020, 13:12
Great work, thank you!!

Sterno
January 12th, 2021, 21:04
Today's 2E Ruleset update had some big combat tracker changes that caused the extension to break while loading. I've just uploaded version .91 to fix that, though I need to do some more testing to see if everything still works with the combat tracker changes. Preliminary testing seemed okay. Since it might be a day or two before I can do that, I figured I should get the big fix out right away though.

Version .91
In this update:


Added an option to add the "Comeliness" stat for characters. Only appears on PCs, not NPCS, because I'm lazy and figured for 99% of NPCs you won't care, and if you do, you can just add a note in their "special defenses" or something
Added an "Honor" stat that can be enabled and follows the rules for Great Honor, Normal Honor, and Dishonor that are used in Hackmaster. The short version of this is that if the honor score of a character is in the proper range for their level, they are considered to be in Great Honor and will get a +1 to every die rolled (as far as automation go, this applies to attribute checks, skill checks, saves, heals, attacks, and damage). Dishonor does the same thing, but with -1 per die rolled. To be clear, this is a +1 per die, not per roll. If you're rolling 1d4, that's a +1. If it's 2d4, that's +2. If you're using the penetration option and your 1d4 penetrates 3 times, that's going to end up being +4 damage.
Lastly, as mentioned before, fixed a reference the extension had to some combat tracker elements that don't exist after today's ruleset update. Still testing for other problems, though.

JohnD
January 13th, 2021, 00:00
Thank you!

Sterno
January 23rd, 2021, 04:08
Discovered an issue where due to the 2E ruleset combat tracker changes, attacks rolled from the combat tracker are no longer properly determining the damage type of the weapon. This means attacks rolled from the combat tracker are not triggering the "weapon type vs armor" automation, nor are they properly determining critical hit effects (since the damage type is needed to know which crit table to look at). Looking into how to fix it but unsure when that'll be.

Attacks rolled from the character sheet still work as they used to.

Sterno
January 23rd, 2021, 04:47
Version 0.93

Fixed an issue where damage type wasn't able to be determined after the recent ruleset CT changes. Found where to hook in and set it and attacks rolled from the combat tracker should correctly work with critical hits and weapon type vs armor automation again.


Sure would be nice if FG had some auto-update options for mods and extensions!

Sterno
January 25th, 2021, 21:24
Version 0.94



Fixed an issue where messages in that chat window about armor damage, as well as the messages showing weapon type vs armor to-hit modifiers would show the full name of armor even if it was not ID'd, which means players might see "Banded Mail +1" when they should have only been seeing "Banded Mail" because they hadn't identified the item yet.

Fixed an issue where an exception would be thrown if crits were severity > 13.

If using the Player's Option critical hit rules, checks and skips generation of a critical hit result (including the bonus damage) if the target has the "IMMUNE: critical" effect on them. Useful if you want to make undead or oozes/jellies/etc immune to critical hits.

Added a "CRITSIZE: n" effect that is used with the Player's Option critical hit rules. Any actor with this effect on his weapon is treated as "n" size categories larger when generating critical hit severity if they have this effect. For instance, if you were using a Longsword (Size M) but had a CRITSIZE: 2 effect on you, the longsword would be treated as Size H for determining crit effects, which means it would likely be rolling bigger dice to determine crit severity (as per the Player's Option crit rules).

Added a "CRITSEVERITY: n" effect that is used with the Player's Option critical hit rules. Any actor with this effect has "n" added to the severity of any critical hits he rolls. For instance, if you normally were rolling 2d4 to generate crit severity because your weapon was the same size as the target, but you had a "CRITSEVERITY: 2" effect, your final severity would be 2d4+2.

galfaroth2000
January 27th, 2021, 11:58
Thank you for all the effort you put on this mod... I am always surprised by the new improvements.

Korytryn Di Morningstar
January 29th, 2021, 23:45
I was looking for something to make critical rolls of 18+ then i find what i dream for complete combat and tactics which is my most favorite option rulebook. The only thing for me missing now to edit critical rolls of 16+ with the high mastery skill option. Is this impossible to add? I would like to have 16+ crits with high mastery, 18+ crits with the profecient and only natural 20 crits with non-proficient. Is it impossible to edit weapon skills? we already have dmg and hit there.

Also is it possible to edit hit locations (for called shots and higher ground attacks 1d6+4)

Thank you so much for your great work. You are awesome.

Sterno
January 30th, 2021, 05:16
Critiicals of 18+ are doable even without this extension, and making them 16+ are doable as well (with or without the extension). At this time there is no way to do force a hit specific hit location, although adding that is on my list of things to do. In the meantime, one thing I did for my game was add all of the Player's Option tables to be "Tables" in Fantasy Grounds that I can manually roll on, and I currently use those for called shots (and I put them in for spell crits, too). I'm already kind of on the line in terms of sharing the crits as an extension though and I think I'd be crossing over the line if I shared a mod that had all the crit table text input, so I don't think I can share that one.

As for how you can semi-permanently change a character's crit range. You'd have to do this character by character, which isn't ideal if you want every character and monster to crit on 16+. But this should work fine for high mastery. See below where I change a character's melee crit range to be 16-20 (but leave the ranged crit range at 20). Note that it affects all melee weapons though.

https://i.imgur.com/wewnVBg.gif

If you're looking for a more temporary crit bonus, like "on the next attack" or something, and they'd just click it any time they're about to make an attack with their weapon they have mastery in, you could add a power to the character which has a "CRIT: 16" effect, set to expire "On Next Action". So they'd go to their Powers tab, hit that, then roll their attack. Another alternative is to add a "CRIT: 16" effect to their weapon, which is automatically applied whenever they have it equipped and automatically removed when it's unequipped (though it will affect all attacks while that weapon is equipped, not just attacks from that weapon). None of the solutions are perfect and it's hard to say what would fit you best.

As far as the higher ground thing, I will add an effect, "HITSIZE" which modifies the size it treats you as for crits, the same way I just recently added "CRITSIZE" to affect the weapon size. I'll put that in the next update (and possibly the called shot thing too... I started on it last weekend but ran into a few problems and didn't finish).

Sterno
February 3rd, 2021, 19:03
Version 0.95


Made undead immune to fatigue checks.
Added a "CRITCHANCE: n" effect which works when on the attacker. Positive numbers increase your threat range while negative numbers shrink it. For example, if you normally crit on 20 but have CRITCHANCE:3, you'll crit on 17, 18, 19, or 20. Stacks with the already existing "CRIT: n" effect, so that if you had "CRIT: 18" and "CRITCHANCE: 2" you'd end up critting on a 16 or better. Works regardless of whatever other extension options you have enabled.
Added a "HITSIZE: n" effect which works when on the attacker. Treats your hits as "n" size categories large (or smaller, with a negative number) when determining how to roll which location you hit (as per Player's Option rules). Could be used to simulate attacks from higher ground, or certain magic weapons, or I don't know, really tall but still medium sized creatures. Someone asked for it, so now you have it. Doesn't do anything if you aren't using the Hit Location or Player's Option crits options.
Added called shot buttons to the Modifiers screen. If you're not using the hit locations or crit options of the extension, there isn't much point in using these, but if you do. it'll make sure crits hit what a called shot was aiming for. For more detail, see below.
Added a new "HM Called Shots" option that when enabled, changes the to-hit penalty of various called shots, expands critical threat range for called shots, and in some cases changes severity. For more details, see below.


Called Shots

These are new buttons on the Modifiers screen.

If you're not using the Hit Locations or Player's Option Crits features of this extension, there isn't much point in hitting these buttons. All it'll do is apply a -4 to your attack rolls.
If you are using the Hit Locations feature (but not crits), it'll also change the text in the chat window when you hit to say that you hit what you were targeting with your called shot, instead of a random location.
If you're also using the Player's Option Crits feature of this extension, it'll make sure that if you are doing a called shot and score a critical hit, that you roll on the appropriate critical hit table for the location you were targeting. Eye and Neck roll on the Head crit table, hand rolls on the arm crit table, and groin is on the abdomen crit table.



Lastly, because I personally run a house-ruled version of Hackmaster, I added a "HM Called Shots" option you can enable that changes the effects called shots have. Without this option enabled, they are all simply a -4 to-hit penalty, as per Player's Option rules. Called shots in Hackmaster aren't all one flat penalty though, and also expand your crit range, so with this option enabled, you get the following effects:



+----------+-----------------+----------------+------------------+
| Location | To-hit modifier | Severity Bonus | Crit Range Bonus |
+----------+-----------------+----------------+------------------+
| Abdomen | -4 | 0 | 1 |
+----------+-----------------+----------------+------------------+
| Arm | -3 | 0 | 1 |
+----------+-----------------+----------------+------------------+
| Eye | -10 | 2 | 1 |
+----------+-----------------+----------------+------------------+
| Groin | -4 | 0 | 1 |
+----------+-----------------+----------------+------------------+
| Hand | -6 | 0 | 1 |
+----------+-----------------+----------------+------------------+
| Head | -6 | 0 | 1 |
+----------+-----------------+----------------+------------------+
| Leg | -6 | 0 | 1 |
+----------+-----------------+----------------+------------------+
| Neck | -8 | 1 | 1 |
+----------+-----------------+----------------+------------------+
| Tail | -6 | 0 | 1 |
+----------+-----------------+----------------+------------------+
| Torso | -2 | 0 | 1 |
+----------+-----------------+----------------+------------------+



I may eventually change these to something I like better. Right now the to-hit modifiers are based of the Hackmaster rules, but head and legs being just as difficult to hit (especially since legs are otherwise 40% of hits using Player's Option rules) seems weird. But it's what I'm doing for now. If you have any experience modifying extensions, you can look to the DataCommonPO and edit the aCalledShotModifiers array to set these values however you wish.

Random Bonus Update: Noticed I added this a few versions ago but apparently didn't report it. If you're using the Monster Thac0 Based on HM Attack Matrix option, which ignores the Thac0 input on NPCs and calculates it from their HD instead, you can now add "USETHACO" anywhere in the "Special Attacks" section of their record and it will use the Thac0 instead. Handy for when your NPC is a 4th level wizard and you don't want it hitting like a 4 HD monster, and the like.

Sterno
February 17th, 2021, 04:57
Today's big update to the ruleset broke this extension and it looks like it'll probably be a few days before I can get everything fixed up. Lots of changes. Anyone using it should disable it in the meantime.

Sterno
February 18th, 2021, 04:14
Version 0.97


Fixed some (but possibly not all... more testing needed) bugs introduced by Tuesday's underlying 2E ruleset and CoreRPG ruleset code changes.
If you're using the honor rules option, NPCs can be put in Great Honor (+1 to each die rolled) or Dishonor (-1 to each die rolled) by putting "GREATHONOR" or "DISHONOR" in the special attacks section of their NPC record.
Added a "CRITRESIST: n" effect, which lowers the severity of a crit a character with this effect receives by n (if using the Player's Option crit rules). For example, if a crit severity of 8 was generated but the defender has CRITRESIST: 3, the final crit severity would be 5.
If you're using the Weapon Type vs Armor to-hit modifiers option, you can now set those modifiers directly for each armor type via their properties. Previously, it was doing it through hardcoded values by matching the armor name... for example, if the name was "leather armor", it would apply the 2E PHB leather armor modifiers. Use "Bludgeoning: n", "Slashing: n", and "Piercing: n". For instance, in 2E, field plate would normally give a -3 to-hit for slashing weapons and -1 to-hit for piercing weapons. You would represent this by putting "Slashing:-3;Piercing:-1" in the properties section on the armor record. Note that as soon as it detects a value for any of these, it will no longer try to use the default values that it used to be doing by doing name matching.
If you're using the "Armor Damage" option, adding "IMMUNE: <damagetype>" to an armor record's properties means that the armor can not be damaged by that type of damage. For instance, if you had some magic item called "Molten Plate Mail" or something that is supposed to be made out of glowing molten steel, you might add "IMMUNE: fire" to the properties to make that armor immune to damage from fire. Note that this is only talking about the armor itself being immune to damage... it does not confer it's immunity to the person wearing it. If you want that to happen, you should still use the "IMMUNE: fire" effect.
If you're using the "Armor Damage" option, you can add "Potency: n" to the armor record's properties. This value adds or subtracts to the armor's magic bonus when determining whether or not the armor can be determined by a weapon. This is mainly only useful if you want to make some armor that provides a +1 AC bonus but want it to only take damage from +3 or better weapons (instead of +1 or better, as it would normally act), or something like that.
If you're using the "Threshold of Pain" rules from Hackmaster, I fixed a misunderstanding I had about how they should work. Threshold of Pain should trigger if you take half your hit points or more in damage in a single round now. It used to only happen if you took it in a single hit. So if you have 30 hp and take a 15 hp hit, you'll make a Threshold of Pain check (just like always). If you instead take a 10 hp hit and then a 5 hp hit in the same round, you'll also end up making a check after the 5 hp hit. Subsequent hits after you've crossed the threshold during that round will prompt additional checks, so if you took one more hp of damage after that 10 and 5 hp hit, you'd have to make yet another check.



As a general note, there were some big changes to the underlying 2E and CoreRPG code in Tuesday's update. I've fixed the immediate issues (like not being able to attack) and things seem okay to me right now, but given the scope of the changes it wouldn't surprise me if some other issues surface with broader testing. Please post if you run into any problems.

Sterno
February 22nd, 2021, 12:53
Tried to run my game with this last night. Still has issues, some of which are definitely the extension and some could be the extension or the underlying ruleset. Will be working on it throughout the week but I don’t expect to have another update ready until at least Wednesday. Recommend unloading it for now.

Sterno
March 1st, 2021, 05:29
Another update, didn't add to the version. Just fixes a few outstanding bugs from the ruleset patches. Tested it in my Sunday night game and the only issues I ran into seem unrelated to the extension and were things I believe I saw Celestian say in Discord would be fixed in next Tuesday's patch.

osarusan
March 2nd, 2021, 09:28
house rules that are similar to rules seen in Hackmaster.

You wonderful, wonderful person!

I have been looking for something to let me play Hackmaster in FG for the longest time. I haven't really been happy with attempting to use MoreCore for that, and I always thought the 2e ruleset would be a better starting place. Your additions sound amazing. I'm curious - are you actually playing HM with these, or are they just a handful of rules that you liked and happened to nab for your ruleset? Because I would pay for a ruleset or 2e extension that makes Hackmaster fully functional in FG.

Sterno
March 2nd, 2021, 15:27
I used to run a live version of Hackmaster (4th edition) 15 years ago, had kids, and never really had time to game again until recently when I decided to try VTT. I started out last year creating a ruleset for Hackmaster (using Celestian's 2E ruleset as a base and modifying it). That ruleset was closer to true Hackmaster than this extension is, because it had the full initiative system and crit system of Hackmaster. However, the downside to that approach (ruleset vs extension) is that I didn't get the updates that Celestian made to the 2E ruleset unless I manually merged them in every time his ruleset updated. Plus, I started to want to try out some other things, like the Player's Option critical hits and initiative system. So I eventuallly decided to rewrite it as an extension with toggleable options and could find the exact set of "features" that I wanted in my home game. That old ruleset hasn't been updated and likely doesn't work anymore after the big CoreRPG changes a few weeks ago, so I recently removed the link to it from my signature.

Personally, despite it being a lot of work to add, after a few weeks my player's decided they preferred 2E initiative to Player's Option initiative, so I don't even use that option now. I use just about everything else in the extension, though. I plan to eventually (soon) add two things to the extension that my HM ruleset had... the Hackmaster initiative system (weapon speeds were basically 5 less, spells went off on their casting time +1d4 if they had material components, missile weapons firing on fixed initiatives, and a round ended at segment 10 with any initiatives higher than that rolling into the next round), as well as the Hackmaster crits. The reason the version of this extension hasn't hit "1.0" yet is because those are the two features I feel like I need to add to really capture the full Hackmaster experience. Unsure whether or not I'll end up using them personally though... Hackmaster crits are pretty lethal. I might end up going with a hybrid where I use the Hackmaster crits, but have the Player's Option style of "You need to hit by at least 5 to crit, and the target can save vs death to avoid the extra effects" to lower their lethality. Otherwise, 5% of hits in Hackmaster have a really good chance of just flat out killing you or disabling you, if you play with rules as written.

So to directly answer the question, yes, I'm currently running a Hackmaster game using this except I'm using 2E initiative and Player's Option crits instead of HM rules for those right now.

I have no plans to make a paid extension. I created this because I enjoy the game and feel like if I'm doing all this work, hopefully someone else can get use out of it. If there are some rules from Hackmaster that you think the extension doesn't cover that you'd like to see, let me know and I'll see about adding them.

Also, I personally have a module that contains all the Hackmaster spells, races, and classes that I use in my own game, but I don't think it's shareable due to copyright issues (and because I pulled a lot of the common ones from the for-sale 2E modules), and I also think there's no chance to publish it even if the copied 2E content were removed, because I'm pretty sure Kenzer & Company can't even sell Hackmaster 4e stuff anymore. So unfortunately, people trying to run a HM game either need to create that themselves or use the 2E stuff, which to be fair, is close enough for most things unless you're getting into some of the specialist wizard classes, or pixie fairies, etc. I might look into putting out a module that has some of the races (half-orc, half-ogre, pixie fairy) and classes (barbarian, assassin, monk, dark knight, specialist wizards, etc) if I can figure out a way to do it legally (which, at a minimum, means not copy and pasting the class text).

All that said, here's what I think are the big changes between Hackmaster and 2E, and which of those I've implemented so far:

1) More races/classes - done personally as discussed, not sure how to legally share these, but people can create them on their own
2) Penetration dice for healing/damage - implemented
3) Comeliness score - implemented
4) Honor affecting dice rolls - implemented
5) 10 segment initiative system - Not implemented in extension yet (but code for it has been written/tested in the old ruleset code), but will be added soon
6) Critical hit charts with severity rolls and location rolls - Not implemented in extension yet (but code for it has been written/tested in the old ru), but will be added soon
7) Fatigue - Implemented with minor changes
8) 20 point kickers - Implemented for NPCs. Players have to add it manually when they create their character. Also added a house-ruled "size based kicker" option because I hate Tiny creatures getting +20 hp. Stirges and rats and such with +20 hp is dumb.
9) Hackmaster stat modifiers (different charts for strength, dex, etc) - Implemented
10) Dexterity reaction adjustment affects init - implemented
11) Armor damage and damage soak, and shield hits/damage - implemented
12) To-hit modifiers vs different armor types - implemented
13) Using attack matrices vs Thac0 - not implemented and don't plan to, but did implement the correct to-hit chance for monsters based on HD if you translate it to Thac0. So works out almost the same except a "20" doesn't hit 6 ACs like it would in Hackmaster or 1E.
14) Threshold of Pain checks - implemented
15) Secret Bonus feature: Want to roll quirks and flaws? Type /qf (or, /getf*cked, and you can guess which missing letter to fill in there) in the chat console and it'll do it for you (PHB quirks and flaws only).
16) Double Secret Bonus Feature: type /mishap to generate a spell mishap result. Since that can generate a quirk or flaw, that's why #15 even got implemented. Despite having spent hours coding these charts in, I've literally never used them in-game because spell mishaps don't usually come up. But hey, it's there if you want them!


To me, those are the big changes I think between 2E and Hackmaster, and as you can see, most are already implemented or soon will be. If you feel like something is missing that really makes for the real Hackmaster experience, let me know and I'll see how hard it would be to add.

osarusan
March 5th, 2021, 14:20
Wow, that's incredible. I have tried and run into a brick wall multiple times trying to make something to make Hackmaster playable in FG, and you've gone and done it!

You mentioned HM4e, which I am unfortunately not very familiar with. I started playing Hackmaster 5e, and I don't know precisely what has changed. Does 4e use an initiative count up system the way 5e does? Because to me that is the "one killer feature" of Hackmaster 5e that sets it above other D&D variants.

I've got this nagging feeling in the back of my head that the count up system could be worked into FG's default initiative system without too much of a Herculean effort. By treating the "New Round" button as a +1 second button, I've been able to simulate the initiative count. The trick after that would be to automatically add each weapon's speed to the character's initiative count after each swing, pushing them further up in initiative.

I suppose that probably doesn't make sense if you're not familiar with 5e's rules. I know 5e builds off of HM4e/AD&D2e, but I've heard there are a few significant changes that take it further away from that grouping and into its own family.

In any case, I'm excited to take a look at your extension and at least see how much of it applies to 5e as well. Thanks for all of your hard work!

Sterno
March 5th, 2021, 17:57
Hackmaster 4 and Hackmaster 5 have pretty significant differences. Hackmaster 4 is a lot like 1E and 2E AD&D, while Hackmaster 5 is kind of its own thing. This extension won't feel at all like Hackmaster 5th edition.

I think creating a Hackmaster 5 ruleset would certainly be possible, but it would probably work best as its own ruleset built directly off CoreRPG rather than trying to extend 2E. In addition to the vastly different initiative system, the way combat & defense bonuses are calculated is totally different, and there is the whole concept of opposed attack/defense rolls and various sizes of defense dice depending on conditions. You've also got spell points instead of memorization for wizards, tracking of individual wounds, and all sorts of other minor differences.

I know Jolly Blackburn (one of the HM creators) has run games in Roll20 for Hackmaster 5th edition. It might be worth reaching out to him to see what he does if 5th edition is what you're looking to run. I suspect they use almost no automation and just do it all manually and on paper, using Roll20 just for maps, dice rolls, and communication, but I could be wrong.

Sterno
March 8th, 2021, 16:22
Version 0.98

A general note: I added some new options around armor damage, critical hits, and hit locations that in some cases are mutually exclusive with other options you could have on. For instance, Hackmaster critical hits can't be turned on at the same time as Player's Option critical hits. Toggling on option one will automatically toggle the other off. Similarly, if you're using the "Generate Hit Locations" option to add some flavor to generic hits, you can't use Player's Option hit locations if you're using the HM crits, or vice versa. The extension will do its best when you toggle one option to toggle related options appropriately for you.


Added a Hackmaster Critical Hits option to the "Hackmaster House Rules" section. This option is mutually exclusive from the "Combat & Tactics Critical Hits" option. Enables the critical hit rules (including severity level, hit location, etc) from Hackmaster. Can be set as "As base ruleset", in which case any nat 20 is a critical hit, or "As base ruleset, hit by 5" where you also need to have hit the target by 5. Extra damage caused by the hit is automated and added to the die roll, but like with the Player's Option crits, any other effects are not automated and are just output to the chat window for you to implement manually. Even though it isn't part of Hackmaster crits rules as written, I left in the code that rolls a save vs death on critical hits like Player's Option does in case any GMs (like myself) want to reduce extra effects of crits by giving player's a chance to save to avoid them.
The "Generate Hit Locations" option used to just be "Off" or "On". Now it is "Off", "Hackmaster", or "Player's Option" depending on which system you want to use for generating a hit location. If you're using a crit system, the hit location system must match. If you're not using a crit system at all but want hit locations, I recommend the Hackmaster hit locations, because you'll get a ton more variety.
Added a "What can hurt magic armor (if using armor damage?)" option. Previously in this extension, if you had armor damage enabled, magic armor could only be hurt by special damage types like fire/electricity/acid or by weapons that had an equivalent or greater magical bonus. I've added an option closer to the Hackmaster rules as written where magic armor takes 1 point of damage for any original damage die that penetrates, or, in the case of shields, for however much damage penetrates, regardless of the damage source (meaning, normal weapons can hurt magical armor under this new option). Options values are "Off" (where magic armor can't be damaged by weapons), "Equivalent magic" where it checks if the bonus of the weapon is greater than or equal to the bonus of the armor, "Penetration" where it occurs on penetration as described above, or "Both" if you want both to occur.
There's a "Hackmaster 10-segment Initiative" option you'll see there, but it doesn't do anything yet. I was just too lazy to hide it. It'll probably get implemented in my next update. Depending on how things shake out, it might come with some options to allow people using standard 2E initiative to deal with multiple attacks in the combat tracker.
Changed how I was handling some dice colors. Extra damage dice granted from a critical hit will show up as green in the chat log. Extra damage dice caused by penetration will show up as red.

Sterno
March 19th, 2021, 23:49
https://i.imgur.com/MZZzQeH.png

Version .99


Added an "Items" section in the Encounters box so that you can spawn NPCs with items already-equipped.
Added an "Adjust NPC AC for items and abilities?" option.
Fixed a bug where armor class for NPCs wasn't updating properly after taking damage if you were using the Armor Damage option. Not sure when that stopped working, but it's probably been broken a few months.


Encounter "Items" Section
The new "Items" section in encounters is useful if you want to spawn something with a magic item equipped but don't want to have to create a separate NPC just to do that. Also, if you're using the Armor Damage rules, it's really useful for spawning enemies with different armor sets worn. For instance, you could have your NPC record for an Orc set to "AC 10" (rather than the usual AC 5) and spawn them with Chain Mail to have AC 5, or spawn some with Plate for AC 3, or just represent some orcs sleeping armorless in bed by not spawning them with any armor. Note that if you aren't using armor damage rules, though, it's probably easier to just use that "AC" box in the encounter sheet instead. Still could be useful to spawn an orc who happens to be wearing a Ring of Fire Resistance or something though. This also means NPCs will be affected by the "Weapon Type vs Armor Type" option, if you're using it.

A note on performance... Celestian had concerns that adding a bunch of items to NPCs could slow things down. And it does, a bit, when spawning an encounter. I found it took about 50% more time for FGU to spawn everything in the combat tracker from the time you click the "Generate Encounter" button if each NPC had 3 items (say, a weapon, armor, and shield). I tested spawning 20 orcs with no items and it took 2.15 seconds. Spawning 20 orcs with 3 items each took 3.19 seconds. Spawning 20 orcs with 20 items each took 6.3 seconds. So there is some minor slowdown, though I think it won't be noticeable in most cases since I'm betting most encounters are < 20 monsters and most items have <= 3 items you care about. On the long end of things, 100 orcs with no items already took a whopping 17 seconds to spawn, and adding 3 items to each of those pumped it up to 27 seconds. So use your judgment when deciding how complex you want a large encounter to be. My testing didn't show any noticeable performance hit once everything had spawned, though.

Adjust NPC AC for items and abilities? option
This option will automatically be flipped to true if you're using the Armor Damage rules, but can be used even if you aren't using armor damage. What this option does is modify an NPCs AC based on what armor, shield, or other items they have equipped, plus it factors in things like Defensive Bonus due to high dexterity. Basically, with this option on, NPC armor class gets treated the same way PC armor class would. However, what this means is that if you turn it on and stick some Chain Mail on a Bugbear that you copied straight out of the Monster Manual, it's going to end up with an AC of zero or so because it'll take the base AC from the monster manual (which I think is like AC 5 or so) and further modify it downward for the armor.

So if you use this rule, for humanoid monsters who probably have the AC they have due to armor, you'll probably want to create your own NPC records for these that have an AC of 10 instead. Or if you don't want to modify the NPC record, you could set it as "10" in the encounter box I guess and it would use that as the base AC before applying armor. I already kind of have my own Monstrous Manual module that I've copied/modified entries from the "real" one into, mainly so I could assign cooler tokens to everything, so in my case I just updated a bunch of humanoid ACs to 10 so I never have to worry about it again. This option pairs well with the new "Items" line in encounters mentioned above to give you full control over how every monster is kitted out. This works with all the standard modifiers that work on players, such as rear attacks denying dexterity/shield, or loss of dexterity/shield for being unconscious, etc.

JohnD
March 20th, 2021, 14:41
Very nice addition.

Sterno
March 22nd, 2021, 16:57
Version .991


Fixed a bug where Weapon Type vs Armor Type penalties weren't being applied for magic weapons.

Sterno
March 26th, 2021, 15:25
Version .992


Small change to the fatigue system where being attacked in melee will cause fatigue to increment the same way attacking in melee will.
Added an option to mechanically treat some conditions (Restrained/Stunned/Unconscious/Prone/Paralyzed) differently.
Added "Act" and "Done" buttons to the top of the combat section on the player character sheet.
Added a radial menu to the Init button at the top of the player sheet combat section that allows for automatically setting initiative to the start of the round or the end of the round.
Added a radial menu to "Delay" to delay for a certain number of segments.
Added a radial menu to the player attack button on a weapon to quickly allow for some modifiers on the attack as it is rolled (rear attack, cover, charge, etc)
Added a radial menu to the GM Combat Tracker actions (the lines of weapon info) that allow for the same modifiers mentioned for players above.
Added a radial menu to the GM Combat Tracker actors to allow for setting initiative as mentioned above for players or for add/removing common effects such as Blinded, Invisible, Stunned, Prone, etc.
Added an option to allow players to roll "cheater dice" that auto roll a 1 or 20. If enabled, adds is to the radial menu for their attacks. This option is always present in the GM's radial menu on the CT. For players, it will make it clear in the chat window that the roll was manual, so they can't just do it in without you knowing.


Alternate Conditional Effects

In the base ruleset, a defender being Prone, Unconscious, Restrained, Stunned, or Paralyzed loses their dexterity bonus to AC and their shield bonus. Restrained/Stunned grant a +4 to-hit (but don't stack with each other), Prone/Unconscious grant a +4 to-hit vs melee (but don't stack with each other, but do stack with restrained/stunned), and Paralyzed grants no bonus. This doesn't make sense to me... paralyzed seems equivalent (or worse) to restrained/stunned, and I don't see how being restrained and unconscious makes you easier to hit than simply being unconscious. If you enable this option, the following changes occur.

Prone, Unconscious, Restrained, Stunned, and Paralyzed won't stack. Whichever is the most detrimental is what will apply.
Paralyzed grants the same +4 to-hit that Restrained and Stunned gain.
Prone still allows for shield use.


Here's a table comparing the base ruleset modifiers to this options' modifiers. Base ruleset is on the left, extension option is on the right. Remember that the base ruleset allows some of these modifiers to stack and the extension option doesn't.




Dex Bonus?
Shield Bonus?
To-hit Bonus
<- Base Ruleset | Extension Option ->
Dex Bonus?
Shield Bonus?
To-hit Bonus


Paralyzed
no
no
+0

no
no
+4


Restrained
no
no
+4

no
no
+4


Stunned
no
no
+4

no
no
+4


Prone
no
no
+4 melee
+ 0 ranged

no
yes
+4 melee
+0 ranged


Unconscious
no
no
+4 melee
+0 ranged

no
no
+4 melee
+0 ranged





New Combat Section Buttons (Act and Done)

The "Act" button is used for a player to change their initiative to one later than whatever the current initiative is. In my games I found characters are sometimes delaying waiting for some particular thing to happen, and now they can hit this button when it does and get popped up to the next segment in the turn order.

The "Done" button is simply a way for the player to end their turn from their character sheet instead of the CT.

New Radial Menus

New radial menus were added, described below. They are all triggered by right-clicking on the appropriate controls (attack buttons, init buttons, etc). See the animated gifs below.

Player Init Radial Menus


https://i.imgur.com/aevWMJE.gif

Player Attack Radial Menu

https://i.imgur.com/Ah7TJPK.gif

An example of a Charge attack in action.

https://i.imgur.com/dZ0g5Mk.gif

GM Combat Tracker Action Radial Menu

https://i.imgur.com/Qghn83b.gif

GM Combat Tracker Actor Radial Menu

https://i.imgur.com/NiX2cQN.gif

Note: Unlike a lot of other things I've added to this extension, there's no option in the settings to turn the radial menus on (other than the cheater dice for players), since they basically are just Quality of Life improvements on base ruleset functionality. However, some of the initiative options will be hidden if you're using Player's Option Initiative (since segment delay makes no sense in that system), or will behave differently if you have the still-in-progress 10-Segment Hackmaster Initiative option enabled (for example, doing a full delay will put you after everyone else in the init order using the base ruleset initiative, but will just add +10 segments in the HM initiative system)

daggertx
March 26th, 2021, 16:16
This is pretty awesome

readymeal
March 27th, 2021, 03:25
Who can stop him? The 5E fanboys will have to cough up even more $ to try to catch with the mighty 2E ruleset + Player's option mod... :p

galfaroth2000
March 29th, 2021, 16:31
Who can stop him? The 5E fanboys will have to cough up even more $ to try to catch with the mighty 2E ruleset + Player's option mod... :p

Yes... 2E and Player's option make FG the only option of VTT for me

prometheus13
March 30th, 2021, 14:52
Awesome!

Sterno
March 30th, 2021, 15:12
Known Bug: Charge doesn't work right now when player's use it (but it does work for GM). Has to do with me forgetting that only the host can directly add/remove effects to combat tracker entries.

Probably won't have it fixed until the next big update, which is the addition of the Hackmaster 10-segment initiative system and the ability to roll/queue multiple initiatives (which is now coded, but I need more testing before I release it and there was very little combat in my game last week).

daggertx
April 2nd, 2021, 03:41
Thanks Sterno

Sterno
April 12th, 2021, 15:31
I've been noticing in my last two games that when Fatigue is enabled, once in a while a player won't be able to attack because of an exception that is being thrown and logged in the console. Looks like a permission issue with changing a DB node.

I'm not sure why I'm suddenly seeing this when I haven't changed that code in months, and I think I've now get a fix for it, but I was lazy and didn't branch my code and also have a ton of initiative code changes that I'm not quite ready to push to everyone yet (they work great using the HM initiative system, but I haven't tested them in standard 2E yet), so it might be a week or so before I push the fix.

I'd be kind of be surprised if anyone but me was using the Fatigue option anyway. But if you are, be warned that if players start seeing a console error in scripts/manager_state_po.lua which says something like "setValue: Unable to create node", you'll probably need to disable Fatigue as a workaround until my next update.

Baron28
May 11th, 2021, 20:55
After today's 2E update, I encountered these errors with this extension loaded

Script execution error: [string "scripts/manager_combat_po.lua"]:703: attempt to call field 'buildCombatantNodesCache' (a nil value)
Script execution error: [string "cta/scripts/cta_combatants_host.lua"]:372: attempt to call field 'buildCombatantNodesCache' (a nil value)

Sterno
May 11th, 2021, 21:52
Thanks for the bug report, Baron28. This should fix it.

Version 1.01

Full writeup to come later, but wanted to push this out to fix the bug that was just reported after the recent 2E ruleset update.


Fixed problem caused by reference to code that no longer exists after recent 2E ruleset update.
The "Charge" attack option via radial menu wasn't working. It still doesn't work how I want it to, but now it basically adds the modifiers needed for a charge when you click it (both your attack bonuses as well as the effect that gives you defensive penalties), but then you still need to click to roll an attack after you select it (as opposed to all those other radial menu options that set the modifiers and roll the attack too). It's because player's clients can't directly add effects, only the host, but if I try to have the host do it, I run into timing issues with when the attack is rolled. I'll get it working eventually but it hasn't been a priority.
Implemented the Hackmaster 10-segment Initiative option. Full writeup on what this means to come later.
Implemented the ability to queue up multiple attacks. There are a few ways to do it and I'll post a more detailed write up soon, but the most common might be for a player to right-click on the init action on their weapon to and select "Roll Additional Attack" after having already rolled one initiative. Another initiative will be rolled and queued, and after they end their turn for their first attack, they'll be repositioned in the CT order for when their next turn should come up.
Added a bunch of radial menu options to CT actors dealing with initiative.
Added a "Set NPC Initiative to 99" option that sets unrolled NPC initiatives to 99, the same way I have an option for PCs.
Added radial menu options to the CT actors to allow you to quickly add effects for some common vision types and light sources to them.
Added effect support to SAVE so you can save against a specific school of magic. For instance, an illusionist could have "SAVE: 1 illusion" now to get a +1 bonus to save versus illusions.
Added effect support to "ARCANE" and "DIVINE" so you can boost a caster's effective caster level for specific schools of magic. For instance, in the 2E ruleset you can have an "ARCANE: 1" effect to boost someone's effective Arcane caster level by 1, but now you can do "ARCANE: 1 illusion" to boost their caster level only with respect to spells from the illusion school.
Added a "SPELLPEN" effect that gives your targets a saving throw penalty against your spells. Can specify a school of magic to narrow down what they should get a save penalty for. For instance, "SPELLPEN: 1" on a character would give all that character's target's a -1 saving throw against their spells, while "SPELLPEN: 1 illusion" would give that character's target's a -1 penalty saving throw modifier against only their illusion spells.
Added a "SPELLRAZOR" effect (no parameters, just the word "SPELLRAZOR") that gives a character a +1 bonus to every damage die rolled for their spell damage. This was so I could implement the Hackmaster talent "Spell Razor".


This post will be edited in the next day or two with a more detailed description of these items.

Sterno
May 17th, 2021, 13:11
Version 1.02


Fixed a bug with creature size parsing (mainly used in the crit systems and HP kicker option) where it didn't always work correctly if the short-form size abbreviation was used (for example, "H (13' tall)") and you also had other text in there like "TOKEN_SIZE: 15".
Fixed a bug where the lighting/vision effects being added through the radial menu were being added with a 1 round duration rather than permanent.


I know I still owe you a write-up on the previous update. It's a beast. It'll come eventually. Some of it is already in the readme on github.

Sterno
July 20th, 2021, 21:39
Discussion for this extension will still continue here, but I'm now handling distribution of it via the Fantasy Ground Forge: https://forge.fantasygrounds.com/shop/items/78/view

Once you subscribe to it there, you should receive any updates I make the same way officially purchased Fantasy Grounds content is automatically updated.

I'm leaving a version of this extension as an attachment in the OP, but I will not update it. That version will be the one that is compatible with the now-locked Fantasy Grounds Classic. FGC users should use that attachment rather than subscribe via The Forge.

Sterno
July 21st, 2021, 00:56
Version 1.03

Reminder, get updates now by subscribing via The Forge page for this extension (https://forge.fantasygrounds.com/shop/items/78/view), as the attachment in this thread is locked at v1.02, the last version I'm officially supporting for Fantasy Ground Classic. If you download that attachment, you'll be downloading v1.02, not v1.03.


Fixed an issue with NPC initiatives when using Hackmaster initiative system where they were 5 higher than they should have been in some cases when wielding a weapon.
Added an option "Give magic shields more HP? (if using armor damage)" which changes how magic shield durability works. Now instead of following the same rules as armor where maybe a magic weapon is needed to hurt them, or they're only hurt on penetrating dice, instead they have their HP value at each stage multiplied their magic bonus. I was finding that magic shields were too durable before and given that they already give a bigger AC bonus in Hackmaster than AD&D (+3 for a medium shield vs +1in 2e), it was causing magic shields to last a really long time and keep people at exceptionally low ACs (considering that a +2 medium shield would effectively give you 5 points of AC). With this change, regardless of the damage type or penetration, shields always take damage when hit. Now magic shields just have more HP than non-magical ones. For instance, a normal medium shield has [5,4,3] HP, meaning after 5 damage it drops one AC level, after 4 more it drops another, and after 3 more it breaks. A magic +1 shield used to be [5, 5, 4, 3] but was difficult to actually damage. Now it's [10, 10, 8, 6]. A +2 shield would be [15, 15, 12, 9]. Etc. So now you still have a great AC with a +3 shield, but a giant beating on you with a giant club will whittle it down pretty quickly, whereas without this option they might not even hurt it when hitting you.
Added a "Show Debug messages?" option that you can toggle between "Off", "Chat", and "Console". This is mainly for MY use, and this is specific to Debug messages in my extension, not general FG debug messages or 2e ruleset messages (which still go the console). As I add more features or fix existing ones, I'll likely add more debug code so I can see things like "How exactly did it calculate that critical hit severity?" and make sure things are working as I expect. I recommend most of you leave this on the default option, which is "Off".
Added a "Use 1E coin weight (10 per lb)?" option which does pretty much what it says. In 2E, coins weigh .02 lbs. In 1e, they weigh .1 lbs. This lets you toggle between those. You'll need to equip/unequip an item on characters or do something else in inventory that forces a weight recalculation for it to correctly update for players after you change it, though.
Fixed some code that was causing console non-harmful warnings by trying to load a non-existent font.
Writing "NOFATIGUE" in a NPC Record's Special Defense section caused them to ignore fatigue (if you have that option turned on). That's been there for a while. Now you can just write "NOFAT" too, because I'm a lazy typist. And this didn't change, but I'll mention it anyway... you can also put "NOCRIT" in there so that they can't be crit, and "NOTOP" so that they ignore Threshold of Pain (if you're using those options).

TXCBoy36
July 22nd, 2021, 05:58
Would you recommend someone using this is they are not familiar with Hackmaster?

Sterno
July 22nd, 2021, 14:23
That's kind of a tricky question to answer. Yes, there are a lot of features in there useful to someone who isn't playing Hackmaster that I'd consider useful. However, if you're looking at the list of things in the extension and nothing jumps out as you as something you'd want to use, I'd skip this one. Most of the features need to be turned on once you install it anyway, so you'd still need a plan for "What do I actually want this thing to do for me?" If you're not already familiar with what the 2E ruleset can do and don't know yet what problem you're wanting to solve, I'd wait until you see something that you think would be a definite benefit.

The "Always On" features are mostly just some new radial menus that can help the DM or Players set some attack modifiers or effects more quickly, some new effects (that are only useful if the DM knows to try to use them!), and the "Items" section on encounters for spawning monsters with items equipped.

But yeah, you could leave every single Hackmaster option off and find the other stuff useful (in fact, I'm guessing that's what most people besides myself do). The reason it's all joined into one big extension with toggleable features is that so much of the underlying code changes are similar that it made sense to put them all together rather than try to maintain a bunch of different extensions that all modify the same area of code.

Sterno
September 16th, 2021, 22:40
Known Issues:


If you have the option enabled for Hackmaster-style armor damage, every time you unequip or equip items in your inventory, your armor class gets recalculated, and assumes a base AC of 10. This means if you're a class like a monk or something that has it's base AC decrease as it levels, you'll keep getting your AC reset to 10. I'll look into ways to fix this, but for now as a workaround, you can set a character's base AC with the "BASEAC: n" effect (where 'n' is their desired AC). It works correctly with base AC set via effects that way.


Upcoming changes (that I haven't pushed yet because I want to test them a bit more)


When clicking "delay" and using the Hackmaster-style initiative, you'll delay for 1 segment instead of 10.
Adding "Items" text entry to random encounters (just like I added for non-random encounters) so you can spawn items on creatures created via random encounters.
Fixing an issue where weapons spawned via the "Items" line on encounters (rather than the base 2E ruleset "weapons" line) weren't adding themselves to the character's actions list.
Adding an "/hmcrit" console command to generate specified crits. Usage: /hmcrit [damage type (s,p, or b)] [#severity (1-24)] [#location (1-10000)]. So for example, "/hmcrit p 20 2000" generates a severity 20 bludgeoning crit to whatever location "2000" is.
Changing Hackmaster (not Player's Option) crit messages to be seen by the GM only, since many of the effects are things like internal bleeding that the player might not be aware of.
Finally got around to disabling the saving throw that was getting rolled when receiving a Hackmaster crit (Player's Option crits are the only ones that should make that saving throw).
Changing the "Sterno's Fumbles" fumble option to be Hackmaster fumbles, except with a D&D 3E style "confirm" roll first. Basically if you roll a 1 and fumble, it rolls behind the scenes again to see if your second roll is also a miss. If so, it generates a Hackmaster fumble. If the second roll is not a miss, it displays a message saying that a fumble was averted. Will either rename this option in the future or change it to be severity-based fumbles (in the same way that Hackmaster has severity-based critical hits).



Will likely push these changes after my Sunday night game if I don't run into any bugs with them during that session.

Edit: Ran into some bugs. Will likely update on September 27th

Sterno
September 27th, 2021, 12:58
v1.05

A new build is now live on Forge. In addition to the changes mentioned in the previous post, it has:


Fixes issues where some buttons on top of the character sheet (Delay, Act, Done, etc) couldn't be clicked anymore because of a CoreRPG change that removed double-click functionality from those controls. They are now single-click buttons.

Sterno
September 30th, 2021, 00:32
v1.06


Fixes a bug introduced in the last build where creature size for crit purposes was always coming back as Medium.
Adds a new effect, "DEFENDSIZE: n", which treats your size when receiving crits as 'n' size categories larger (or smaller, if the number is negative). So for instance, a medium sized creatures with the "DEFENDSIZE: 1" effect would be treated as a large creature when receiving crits. This effect is the counterpart to the already-existing "HITSIZE: n" effect, which was what treated the attacker as a different size for crits.

Sterno
November 3rd, 2021, 04:48
v1.07


No new features. Just needed to fix some things to work with Celestian's recent ruleset changes.

Sterno
November 8th, 2021, 12:11
v1.08


Fixed a small bug where if you're using armor damage rules, Rings of Protection were counting as shields and thus notifying you of a "shield hit" when you missed the target by the amount of bonus the ring of protection was providing.

Sterno
December 1st, 2021, 16:20
v1.09


Fixed an issue where players were able to end other people's turns via their Combat Tracker end turn button.
Fixed an issue where the player Combat Tracker wasn't respecting the "Show Turn Order" toggleable option.
Added an option named "Should Radiant/Necrotic damage hurt armor (if using armor damage?)" for whether or not armor should take/soak damage from radiant/necrotic damage types. Defaults to no.
Added an option named "Hide Enemies From Player CT?" that hides all enemies from the player's Combat Tracker


Known Issues
Discovered an issue that's been present a long time, where if you are using armor damage and have multiple damage sources coming in at once, it isn't handled correctly. For instance, I discovered this because I had a player hit a monster with a warhammer for bludgeoning damage, but they also had an effect that added 2d6 radiant damage. The monster had armor on, and what was happening is that it was soaking 3 dice of damage twice. Basically it's looping over each damage type and applying the full armor, which is incorrect. Requires a fairly significant rewrite of that handling though so it won't be fixed until the next push.

Sterno
December 17th, 2021, 02:46
The latest update to CoreRPG broke this extension. Highly recommend you disable it until I get a fix up in the next couple days.

I've pushed an emergency fix that that was breaking all attacks rolls (the CoreRPG code for ModifierStack changed), but there are probably other issues that will require testing and investigation. In the meantime, please report any you see.

As a reminder, if you ever see a console message where it has "_po" in the file name, that's coming from my extension.

Edit: Due to improper planning ahead for this CoreRPG update on my part, my fix also pushed some incomplete Morale-checking code I was working on. So if you see an ugly button next to the "End Turn" button or some text strings up near the hit point display in the CT, that's why. It's a work in progress that I didn't meant to release yet.

Sterno
December 19th, 2021, 17:22
v1.12


Fixed a problem where attack rolls were broken after the CoreRPG update.
Fixed a problem where initiative rolls were broken (if using Hackmaster initiative) after the CoreRPG update
Added an option under the Additional Automation section called "Treat Death's Door Healing Same As Normal Healing?". In the base 2E ruleset, if you are below 0 HP and are healed, you are set to 1 HP, regardless of the amount healed. When this option is enabled, instead of that default behavior, you simply get a normal heal applied to your negative hit point value. If that is a small amount, maybe you'll still be in the negatives. If it's a huge amount, you can be healed above 1 HP.
Unfinished Morale Tracker - see below


Note: I still haven't been able to fully test the extension to see if anything else is broken after the CoreRPG updates a few days ago. There may still be other issues with this extension. Please report any issues you have.

Also, I was in the middle of working on a Morale Tracker when the CoreRPG updates hit, and I didn't plan ahead well enough to keep that work in a separate branch of code. Since it's critical to get some of the problems caused by the CoreRPG update fixed or the extension is unusuable, I'm pushing out this code that has a half-finished Morale Tracker with a terrible-looking UI. Unlike most features I release, right now I don't have a way to turn it off (though that will be coming), thought it doesn't really do anything that affects things other than clog up your Combat Tracker UI a bit.

Just to give an overview of what to expect with it in it's current state, you'll see an ugly icon of a hand holding a flag down near the "Next Turn" button on the GM Combat Tracker. Clicking this makes a morale check for all NPCs. For each NPC, it does the following:

1) Determine if the NPC needs to check morale. Currently, this is true if the NPC is <= 75% HP remaining, or if they're fatigued (if using Hackmaster fatigue rules). You can also force the check by holding ALT, SHIFT, or CONTROL (but not all 3 at once) while clicking the button to check morale.
2) If they need a check, it determines their morale rating. It reads this from their NPC record.
2a). If it can't find one (such as if the Morale line on their record is empty, or has something that can't be parsed as a number), it will say "Unknown" in the end results and not actually roll a check for them.
2b). If their morale was something with a range, like "Average (13-15)", it'll try to take the average of that range. In this case, 14.
3) Once it knows the monster needs a check and has a morale score, it rolls 2d10 and applies modifiers.
3a) If a creature is lawful, it gets a -1 bonus to it's morale check. If it is a chaotic, it gets a -1 penalty. This is per the 2E rules, but I will probably remove this modifier since it seems like this would already be factored in to their morale score on their NPC sheet. But right now, it's there.
3b) If they're <= 50% health remaining, they get a +4 penalty to the roll. If it's only <= 75%, it's a +2 penalty.
3c) If they're fatigued (if using Hackmaster fatigue rules), they get a +1 penalty for every level of fatigue they have (I might tweak this number in the future).
4) Now that we've rolled, we check the generate a result. This appears both in the chat window (to the GM only) and in the monster's CT entry to the right of where it shows their wounds. Also, note that currently, a morale check will never result in them getting "less scared". If they've failed a morale check, any subsequent checks will return a result at least as bad (basically, the worse of the two).

So here are the results they can have:

Unknown - Usually means we couldn't read a morale score for the monster and thus couldn't roll. Will show up as "Battle Ready!" on the CT for the monster.
Did not require check - They didn't meet the criteria in step 1 above to need a morale check. Will show up as "Battle Ready!" on the CT for the monster.
Success - The monster succeeded in its morale check.
Fighting Retreat - The monster failed its morale check by 1-3.
Disengage-Retreat - The monster failed its morale check by 4-6.
Flee in Panic - The monster failed its morale check by 7-9.
Surrender - The monster failed its morale check by 10+.

I say this is half finished because I'm working on a nicer UI interface for it that lets you set "global" morale modifiers, some automated, some not, like "50% of friends killed", "leader killed", "facing overwhelming odds", etc. Plus, it's ugly. Plus, I still need to play around with some of the individual modifiers, like for example probably removing the lawful/chaotic check.

Also, morale SHOULD reset when you "end encounter", but I haven't really tested that much. You can definitely reset every enemy's morale by holding ALT, SHIFT, and CONTROL at the same time while clicking the morale flag icon.

You can also use it from the chat command line.

Typing "/morale" has the same effect as clicking the morale flag button on the CT. It determines if a morale check is needed for an NPC and rolls it if so.
Typing "/morale force" has the same effect as holding ALT, SHIFT, or CONTROL while clicking on the morale CT button. It forces all NPCs to roll a check regardless of if it thinks they need one.
Typing "/morale reset" has the same effect as holding ALT, SHIFT, and CONTROL while clicking on the morale CT button. It resets all NPC morale back to "Battle Ready!"




Known issues:

- The "Battle Ready!" text shows up on the CT next to PCs.
- It's ugly.

Sterno
January 25th, 2022, 17:57
v1.12 part 2 (I forgot to update the version number before I sent it to Forge... otherwise this would be 1.13)


Removed the "Battle Ready!" text from PCs in the CT. Didn't really do anything else with morale yet. Didn't even hide it since it's unfinished. Sorry, been busy!
Added "Too Much Honor" to honor category display text (if using the Hackmaster honor option)
Made Threshold of Pain make you Prone and Stunned instead of just Stunned (if using the Hackmaster Threshold of Pain option)
Set default init to 99 instead of 0 when using "End Encounter" on the CT, but only if using the Hackmaster Initiative option.
Removed "flicker" from the torch effect lighting that you can add to CT actors via the radial menu. The flicker effect was causing a lot of performance issues for some players in my game. Might add it back in as an option if anyone here actually uses that and misses it.
Fixed a typo in the Hackmaster crit tables that would sometimes cause an exception for a very small number of critical hits.
Added radial menu multi-attack support (both for rate of fire and for sequenced natural attacks) for 6, 7, 8, 9, or 10 attacks. It previously only went to up 5. This is only an option if using Hackmaster initiative.
Added the ability, when deleting an actor from the CT via the "delete" radial menu option, to "Confirm and Add XP", which deletes the actor from the CT as usual, but also adds their XP value to the Encounters section of the party sheet. It behaves a little differently than the vanilla ruleset would if you drag the NPC directly to the party sheet, because it doesn't add their inventory items or add XP awards for those (because that is absolutely not the behavior I want in my own game). If someone really needs that, I can add a toggleable option for it. Just let me know.


https://i.imgur.com/lfSkjS3.gif

Sterno
January 27th, 2022, 03:16
Stuff I forgot to say I added

Apparently somewhere between 1.09 and the lastest version I added some chat commands that I forgot to post about. Here they are:


Added a "/detectmagic [#markItemsAsMagical (0 or 1)] [#dmonly (0 or 1)]" chat command which will scan the players' inventories as well as anything in the party sheet. How it behaves depends on the parameters you pass it. If you pass a 1 in for markItemsAsMagical, it will put the the text "[Magic]" before the item name (if the word magic didn't already appear somewhere in the name). If you pass a 1 in for the dmonly flag, the chat output will only be visible to the DM (but items marked with "[Magic]" will still be visible by anyone who has access to them. So, for example, "/detectmagic 1 0" would list every magical item in chat for players to see, as well as renaming the items to have "[Magic]" in front of their name... for instance, a "shortsword" that is magic would be renamed to "[Magic] shortsword".
Added a "/hmxp [#hd] [#special] [#exceptional] [#maxhp]" chat command. All it does is calculate the XP of a monster based on the Hackmaster charts for number of hit dice, number of special abilities, number of exceptional abilities, and hp value and spit that number out to text. I use this sometimes when trying to set the XP value of an NPC that I'm creating for a module..

data21
February 5th, 2022, 02:57
Hi, I am looking at Fantasy Grounds Unity for solo play. Was wondering if it is necessary to buy the Dungeon Master book, the Players Handbook etc from Steam since I already have them. Does it seem like the versions bought there are actually computer programs that add to Fantasy Grounds Unity to give the game all the rules or is it playable without them?

EOTB
February 5th, 2022, 04:33
The books are collections of game content. You could build every PC class yourself; every race; every spell; every magic item; but time is much more valuable

There are OSR mods with such content at no charge. If you want TSR AD&D content, Smiteworks makes it available at a reasonable price.

But as said, since you already have the books you can instead refer to them while manually building it all yourself - you’re not really buying the content, you’re buying the time it saves.

JohnD
February 5th, 2022, 16:03
Time is infinitely more valuable than money IMO. The DLC is usually well worth it, especially for items that give you core content (PHB, MM, DMG, etc...).

TheButterdragon
February 20th, 2022, 01:47
I'm having difficulty with the C&T initiative, for some reason, one of the party member's base speeds is "average" when they are medium size and the small party member's base speed is only "fast". I've also had one character go BEFORE NPCs when they've won initiative even though they both had "fast". The person who is set to Average (despite being medium and having a very fast weapon also has Initiative on the weapon fail to roll when they attack with it.

Sterno
February 21st, 2022, 14:27
That sounds like a lot of issues. Glancing at the code, I can't see why a medium creature would have a base speed of average rather than fast. Even if it weren't able to find the size (such as someone leaving it blank on their character sheet), it should default to Medium size, which should be a base init of Fast. I also haven't personally used this option in over a year and a half, so it is entirely possible a bug crept in at some point that wasn't noticed until now.

If you zip me up your campaign and either attach it here or send it to me in Discord (Sterno#8208), I'll take a look. If you do that, please give me the names of the characters you've described above so I can better debug it.

Another option if you don't want to zip up your campaign is that you can turn on the "Show Debug Messages?" option (either set to to "chat" or "console", depending on where you want to view it) and it should spit out some extra messages when determining initiative that might help us track the issue down. Might help us narrow down at least where something is going wrong.

TheButterdragon
February 22nd, 2022, 01:36
Not sure how to zip up the campaign and send it so copying out the debug log:

[2/22/2022 1:34:44 AM] s'Extension Debug:' | s'couldn't find size... using default'

[2/22/2022 1:34:44 AM] s'Extension Debug:' | #3 | s' found for size category'

[2/22/2022 1:34:44 AM] s'Extension Debug:' | s'Base Speed Phase' | #2 | s'Movement Rate Modifier' | #1 | s'Encumbrance Modifier' | #0

[2/22/2022 1:34:44 AM] s'Extension Debug:' | s'Weapon Speed Factor' | #0

[2/22/2022 1:34:44 AM] s'Extension Debug:' | s'Weapon Phase' | #1

[2/22/2022 1:34:45 AM] s'Extension Debug:' | s'msgOOB sent' | { s'type' = s'applyinit', s'sSourceNode' = s'charsheet.id-00005', s'sSourceType' = s'pc', s'sIsAdditionalAttack' = s'0', s'nTotal' = #7 }

[2/22/2022 1:34:45 AM] s'Extension Debug:' | s'msgOOB received' | { s'type' = s'applyinit', s'sSourceNode' = s'charsheet.id-00005', s'sSourceType' = s'pc', s'sIsAdditionalAttack' = s'0', s'nTotal' = s'7' }

[2/22/2022 1:34:45 AM] s'Extension Debug:' | s'bIsAdditionalAttack' | bFALSE


In chat it says their Base speed is Average (which is weird since I haven't made them *not* medium) and their Weapon Speed is Very Fast (its a speed 0 attack since its a natural weapon)

Sterno
February 22nd, 2022, 13:00
Let me break down what I'm seeing in that log.

1. It can't find the weapon size. I'm guessing the weapon has an uncommon name. You said it's a natural weapon so "fist" or "claw" or "bite" or whatever would make sense that it's not matching a PHB weapon. It looks like I'll need to add some code that lets you specify the weapon size in the item's properties for this kind of case. As a result of not finding the weapon size, it defaults to medium size. I don't think this affects initiative, but could affect crits.

2. It found "medium" for the size of the combatant.

3. It's using a base speed of "fast" for the combatant because of their medium size. However, it's adjusting their speed down by 1 phase because their movement speed is less than or equal to 6 (for instance, a medium-sized dwarf that is size medium is effectively a base speed of average rather than fast like a human would be, because they have a move speed of 6 instead of 12).

4. It's correctly detecting the weapon speed of 0 and considering that to be a very fast weapon.


So at the end of all that, it checks which is slower... the weapon phase (very fast) or the "character" phase (average). It ends up with Average.


So at this point the main thing I'd look at is what the creature's movement rate is. If it's something slow moving like a dwarf (and you're using size M for a dwarf instead of size S), things are probably working correctly. If it's not, maybe the code is messing up trying to read what the movement rate is. It looks like I don't even try to determine the speed of a NPC/monster (mainly because I didn't think a string like "12", sw 6, Fly 24 A" or whatever would really be parseable, and I (theoretically) just ignore modifying speed by movement rate for NPCs so that the size + movement speed calculation can be sidestepped when needed.

Based on all this that I'm seeing, I'm guessing we're looking at a low movement rate PC who is medium size? If so, things are actually working correctly, at least as far as that "average" initiative goes. Page 18 of the C&T book is where the rule is about movement speed affect initiative phase. What kind of character was this for?

It does look like I need to add the means to specify weapon size for crit purposes, though. Right now it just tries to determine it based on a list of weapons from the PHB, and given that you said this is a natural weapon, I'm guessing this doesn't match to anything and is going to end up being treated (rightly or wrongly) as a medium weapon for crit purposes (if you're even using the crit option).

Also looks like I could theoretically try to add some movement speed parsing for NPCs, or probably better yet, an attribute someone can add which explicitly specifies what their "base speed" should be.

TheButterdragon
February 22nd, 2022, 18:18
Ah, thats exactly it! It was movement speed! I'd homebrewed some races off of the standard ones and I'd use Dwarf as a basis for this one and left the speed as 6 when I'd intended they should be medium and move 12. I'd corrected the former but not the latter. It now works as intended!

How does one edit the weapon size though? It works in this case, but I guess I'm uncertain of how to apply it in future.

Sterno
February 22nd, 2022, 18:53
How does one edit the weapon size though? It works in this case, but I guess I'm uncertain of how to apply it in future.

Looked into it more, and it looks like I did have a way of allowing people to specify it. It looks for the string "size: x" anywhere in the properties window of the item or attack, where "x" is T, S, M, L, H, or G. Or you can spell the word out. So for instance, both "size: tiny" and "size: T" are valid.

Tenebris
March 3rd, 2022, 20:27
I am seeing a variety of errors popping up since I updated today, but I didn't see anything in the 03/01/2022 update that touched 2e?

Create or delete character: ActorManager.getActor - DEPRECATED - 2021-01-01 - Contact forge/extension author

Attack and Miss (Does not occur on a hit): ActorManager.getType - DEPRECATED - 2021-01-01 - Contact forge/extension author

Part of my Console Log is below. There were some errors that were popping up while I was trying to troubleshoot the source, but I haven't been able to replicate them. Mostly, I am trying to determine if these errors are just waiting on an update from you after the FGU update or if it is something on my end. The size bit seems related to the posts above. I tried to update the weapon size, but this did not resolve the text popping up.

[3/3/2022 1:01:48 PM] s'ActorManager.getType - DEPRECATED - 2021-01-01 - Use getRecordType/isPC'
[3/3/2022 1:01:48 PM] s'Extension Debug:' | s'nodeDefender' | databasenode = { combattracker.list.id-00003 }
[3/3/2022 1:01:56 PM] s'ActorManager.getType - DEPRECATED - 2021-01-01 - Use getRecordType/isPC'
[3/3/2022 1:01:56 PM] s'Extension Debug:' | s'nodeDefender' | databasenode = { combattracker.list.id-00003 }
[3/3/2022 1:02:02 PM] s'ActorManager.getType - DEPRECATED - 2021-01-01 - Use getRecordType/isPC'
[3/3/2022 1:02:02 PM] s'Extension Debug:' | s'nodeDefender' | databasenode = { combattracker.list.id-00003 }
[3/3/2022 1:02:02 PM] s'Extension Debug:' | s'couldn't find size... using default'
[3/3/2022 1:02:02 PM] s'Extension Debug:' | #3 | s' found for size category'
[3/3/2022 1:02:02 PM] s'Extension Debug:' | #3 | s' found for size category'
[3/3/2022 1:02:10 PM] [ERROR] Handler error: [string "scripts/manager_action_damage_po.lua"]:287: attempt to compare number with nil
[3/3/2022 1:02:21 PM] s'ActorManager.getType - DEPRECATED - 2021-01-01 - Use getRecordType/isPC'
[3/3/2022 1:02:21 PM] s'Extension Debug:' | s'nodeDefender' | databasenode = { combattracker.list.id-00003 }
[3/3/2022 1:02:21 PM] s'Extension Debug:' | s'couldn't find size... using default'
[3/3/2022 1:02:21 PM] s'Extension Debug:' | #3 | s' found for size category'
[3/3/2022 1:02:21 PM] s'Extension Debug:' | #3 | s' found for size category'
[3/3/2022 1:02:32 PM] [ERROR] Handler error: [string "scripts/manager_action_damage_po.lua"]:287: attempt to compare number with nil
[3/3/2022 1:03:19 PM] s'ActorManager.getType - DEPRECATED - 2021-01-01 - Use getRecordType/isPC'
[3/3/2022 1:03:19 PM] s'Extension Debug:' | s'nodeDefender' | databasenode = { combattracker.list.id-00003 }
[3/3/2022 1:03:19 PM] s'Extension Debug:' | s'couldn't find size... using default'
[3/3/2022 1:03:19 PM] s'Extension Debug:' | #3 | s' found for size category'
[3/3/2022 1:03:19 PM] s'Extension Debug:' | #3 | s' found for size category'
[3/3/2022 1:03:23 PM] [ERROR] Handler error: [string "scripts/manager_action_damage_po.lua"]:287: attempt to compare number with nil

Sterno
March 3rd, 2022, 22:09
Looks like the update broke something. Thanks for letting me know. I'll try to get a fix out tonight or tomorrow.

Just so you know, the size stuff is just debug messages and not actual errors. Looks like something about the way # of damage dice is determined got broken by the update, though.

Update: Actually, can you describe to me what you're doing when you actually see the ERROR message? I'm unable to reproduce that.

The "Deprecated" messages are annoying and I'll change the code so they go away (which is why they're annoying, I'm sure), but those aren't actually causing errors. They're just a spammy prompt to get us lazy devs to update our extensions to call some different methods instead. The error you are seeing though isn't happening for me when I test and I'm not sure it's actually caused by the update.

Tenebris
March 3rd, 2022, 23:35
What am I doing? Probably too much.

So, I will try to differentiate between the ERRORS and MESSAGES.

ERRORS: When I was getting Errors (console log popping up with red text) during my troubleshooting, I ended up disabling some other extensions and then clearing the log so that I could see what was actually popping up. After removing two other problem extensions I have not been able to recreate those errors. I don't think the errors had anything to do with this extension.

MESSAGES: only occur when I create or delete a character or attack a PC or NPC. But it sounds like they are mostly just making me paranoid.

Sterno
March 4th, 2022, 12:49
For what it's worth, the errors you saw were definitely related at least in some way to the extension, since it lists file names unique to my extension in the error. But it could be that the interaction with those other extensions is what caused the problem (for instance, one of the other extensions changing/overwriting some code that I expected to work a certain way when I call it).

The DEPRECATED messages are definitely something I'll fix soon, as not only is the spam annoying, but MoonWizard indicated those deprecated methods will be going away soon, which will turn those from annoying messages into complete failure.

Let me know if you see the errors pop up again. It could still be some corner case with the way a specific weapon is set up or something.

TheButterdragon
March 6th, 2022, 00:48
I'm getting the deprecated thing but I also can't memorise all my cleric spells, I'm not sure if its connected. Prior to the update, my mage/cleric could memorise all 3 of her cleric spells, now she can only memorise 2.

Sterno
March 6th, 2022, 23:01
I'm getting the deprecated thing but I also can't memorise all my cleric spells, I'm not sure if its connected. Prior to the update, my mage/cleric could memorise all 3 of her cleric spells, now she can only memorise 2.

I'm not sure my extension would have any effect on that, as I don't touch that area of the code at all. Sometimes those checkmarks get in a weird state though for whether or not it thinks you have things memorized. I have to fix it for my players a lot (though again, that's not related to the extension). I might actually add an extension option to disable those memorization limits so people can just handle it themselves without constraint.

I've got a fix for the deprecated warnings done locally and will be giving it a thorough test in my game tonight. If there are no problems, I'll get it pushed Monday morning.

TheButterdragon
March 7th, 2022, 02:35
Thank you, I suspect its an error with the character sheet so I'll try to rebuild the character to see if it works!

Sterno
March 8th, 2022, 01:24
v1.14


Changed calls to deprecated code.
Fixed some UI overlap in encounter records since the ruleset added in an "Items" section that I'd had there as well. Mine has been removed and I now use the base ruleset UI for that.

Sterno
March 14th, 2022, 13:39
Possible bug: During my game last night, the armor damage option was no longer working. Armor simply wasn't soaking any damage from hits (but shields still were).

I haven't had any recent changes in that area of code so I'll need some time to investigate why it suddenly stopped working. Will probably have it fixed in the next few days.

Sterno
March 17th, 2022, 03:13
Followup to previous post: Looks like it was only broken for me in my weekly campaign. Couldn't reproduce it in test campaigns. Couldn't figure out why it wasn't working in my main campaign. Removed everyone from the CT and the party sheet, and readded them to both, and it works again. So I'm going to stop looking for the cause.

If anyone else happens to run into this bug, I guess try that as a solution.

Sterno
April 6th, 2022, 03:52
v1.15



NEW: Made "construct" type monsters immune to threshold of pain and fatigue (if using those rules)

NEW: Added an alternate implementation for the DMGX effect (toggle between this and the base 2E ruleset implementation via the options) that works on the total value rolled on the dice instead of individually per die. This mostly affects how a value of <1 on DMGX works. For instance, under the base 2E ruleset implementation, if you rolled all 4s on 10d4 and had a DMGX modifier of .3 (meaning, 30% damage), you'd expect it to do 30% of 40, which is 12 damage. However, it would do 30% of each 4 rolled and round it down to 1, and you'd end up with 10 damage instead. This effect is more pronounced depending on how far it's rounded... for instance, if all 3s were rolled on 10d4 you'd expect 30% of 30 damage, or 9 damage, but you'd actually get 0 damage because it would round 30% of 3 on each die (which is 0.9) down to 0. Also changed minimum damage after the modifier to be 1.

FIX: Added a fix where armor damage wasn't working for any damage rolls that were a single die. This was caused by a change in the underlying CoreRPG code that changed the representation of a single die from something like "1d8" to "d8", causing code I had trying to parse out the number of dice rolled to fail, since there was no number in front of the "d" anymore.

NEW: Made the "delay" messages for NPCs visible only to the GM.

FIX: At some point in the past, in the base 2E ruleset code, CharManager.updateEnumbrance was moved to CharEncumbranceManager.updateEncumbrance, and I didn't notice, which meant my code to override it's behavior wasn't executing anymore. Fixed this so my override is called again, and now fatigue factor should update properly when encumbrance changes.

NEW: Added a "Magic armor encumbrance reduction?" option which can be set to "off", "half", or "full". Off continues to be behave how the base 2E ruleset code always has... magical armor receives no encumbrance reduction. Setting it to half uses the Hackmaster rule for magical armor, where magical armor (when worn, not carried) only counts half it's weight towards encumbrance. The "Full" option uses the rules from the 2E PHB which says magical armor (when worn, not when carried) should not count towards encumbrance at all.

Sterno
April 13th, 2022, 04:00
v1.16

Today the 2E ruleset released a change that treats magic armor as no weight towards encumbrance load (though it still shows up in total weight). This conflicts with my implementation of a very similar change last week, so I've updated my code to play nicely with it.


The "Magic armor encumbrance reduction?" option is now renamed to "Override Magic armor Encumbrance?" and the meaning of "Off", "Half", and "Full" has changed since last week.

Now "Off" means "Use the base 2E ruleset code, which will treat magic armor as zero encumbrance.". "Half" means treat it as half encumbrance. "Full" means treat it as full encumbrance (i.e., magic armor is exactly the same as non-magic armor when it comes to encumbrance).

Also, whereas with my implementation last week you'd see the lesser encumbrance reflected in the weight carried number, now I'll instead follow the ruleset's lead and show it only in the "Load" section (where it will say something like "Normal", "Moderate, "Severe", etc), but the weight carried won't change.

Sterno
April 27th, 2022, 02:59
v1.17

Hid the half-finished "morale tracker" button by default. There's now a "Enable Morale Tracker" button in the options if you want to see it again. I'll get around to finishing it eventually. Probably.
Fixed a bug (maybe introduced in 1.15? I don't know) where armor was soaking 1 too many points of damage if there were 2 or more damage dice.

geewaagh
April 30th, 2022, 19:03
Loaded extension from forge. 2e ruleset, no other mods. Have not selected any change in the settings menu. When I click on combat modifiers, I get error messages in the log window. Below is a sample, I did not paste them all.
Thoughts?

[4/30/2022 2:00:08 PM] EXTENSION: (LINK) Player's Option rules, Hackmaster house rules, and automation enhancements for 2E -- by Sterno (v1.18). Some radial menu icons taken from game-icons.net and used under CC by 3.0 license
[4/30/2022 2:00:08 PM] MEASURE: LOAD - PART 2 - 9.471935
[4/30/2022 2:00:10 PM] [ERROR] window: Control (label_calledshot) anchoring to an undefined control (buttonanchor) in windowclass (modifiers)
[4/30/2022 2:00:10 PM] [ERROR] window: Control (label_calledshot) anchoring to an undefined control (buttonanchor) in windowclass (modifiers)

Sterno
May 1st, 2022, 00:39
Thanks for the report. It looks like at some point the underlying UI of the modifiers window changed in the 2E or CoreRPG rulesets changed, so the code I wrote to add some extra modifiers in there for called shots is causing problems now.

It's annoying since it pops the log up, but theoretically shouldn't cause you any actual issues. I'll look at getting it fixed soon!

Sterno
May 30th, 2022, 14:11
v.1.18

Fixed the problem geewaagh reported with the Modifiers window throwing errors when opened.
Fixed an issue with the armor damage option throwing errors in some cases, caused by some Core RPG changes to how dice are represented.
If using Hackmaster initiative, there was a problem where Reaction Adjustment from dexterity could lower spell init to lower than it's casting time if the spell had material components (because it was making init 1d4 - reaction adjustment + casting time). It's hard to do this the right way given how and when dice are rolled to only let the reaction adjustment lower the "1d4" part of that and not the casting time part of that, so I changed it so that instead of rolling 1d4, you roll 1d[4 - reaction adjustment], where if it goes down to 1d0 or lower, you just don't roll. So for instance, a reaction adjustment of 2 would mean you roll 1d2+ casting time. A reaction adjustment of -3 would mean you roll 1d7 + casting time. This might see future iterations of improvement. In particular, I might just randomize it behind the scenes and not show the dice roll, which would allow me to make it work correctly.

GunbunnyFuFu
June 18th, 2022, 00:24
Excellent mod! I did note when I enabled Comliness that it showed Honor as well, although Honor was off in the options. Honor was blocking the Armor Class and other entries. When I turned off Comliness, the boxes didn't go away. I have a Oriental Adventures Monk in my group, so I will likely be using both.

53213

Sterno
June 20th, 2022, 05:50
Excellent mod! I did note when I enabled Comliness that it showed Honor as well, although Honor was off in the options. Honor was blocking the Armor Class and other entries. When I turned off Comliness, the boxes didn't go away. I have a Oriental Adventures Monk in my group, so I will likely be using both.

53213

Thanks, I'll get that fixed.

Sterno
June 20th, 2022, 15:16
Just to let everyone know, I don't expect to do any future feature work on this extension. I'll do my best to fix any reported bugs, but I'm no longer using it myself so won't be finding any bugs on my own or making general improvements.

If anyone with coding know-how wants to take this over, I'm happy to work with you on the best way to do that. And as has always been the case, I'm fine with people incorporating whatever parts of the code they want into their own extensions. It's all freely available at: https://github.com/drplote/FG-2e-PlayersOption

JohnD
June 21st, 2022, 01:32
Just to let everyone know, I don't expect to do any future feature work on this extension. I'll do my best to fix any reported bugs, but I'm no longer using it myself so won't be finding any bugs on my own or making general improvements.

Pretty sure I'm speaking for many other users when I say "thank you" for all the work you put into this extension, for adding stuff to it in response to requests, and for any bug fixes needed going forward. I consider your extension essential to how I run my games on FG.

amanwing
July 14th, 2022, 15:56
please delete this

Sterno
July 19th, 2022, 16:59
Excellent mod! I did note when I enabled Comliness that it showed Honor as well, although Honor was off in the options. Honor was blocking the Armor Class and other entries. When I turned off Comliness, the boxes didn't go away. I have a Oriental Adventures Monk in my group, so I will likely be using both.

53213

I finally got around to taking a look at this and am unable to reproduce. Are you still having the issue? Do you have any other mods installed? When testing, both the "Enable Comeliness" and "Enable Honor" options seem to work correctly independently of each other and do not overlap the AC area for me.

If you still have this problem, please let me know any other extensions you have installed and what your list of selected options are (as maybe there's some weird combo that produces this that I'm not stumbling upon while testing). Thanks!

Sterno
July 19th, 2022, 17:02
v1.20

Added a sanity check for strength scores in the code that calculates encumbrance, forcing the value to be between 1 and 25 when doing the calculation. Other values could cause errors.

Atru1n
August 28th, 2022, 14:42
Just a heads up, there's an issue where Ac on pc's is always 10 when an attack is rolled. not sure what's causing it. I've tried disabling all the options.

Sterno
August 29th, 2022, 14:20
I'll take a look and see if I can get it fixed. After some recent CoreRPG updates, it wouldn't surprise me if a few other things are broken as well, particularly around combat tracker modifications.

Thanks for the report. I no longer use FGU (and thus, don't use my own extension) so I won't be finding any bugs on my own anymore. I'll try to get it reproduce, and assuming I'm able, fixed up soon, but if anyone with coding knowledge wants to take over maintenance of this thing, I'd be happy to hand it off.

Sterno
September 3rd, 2022, 14:45
Just a heads up, there's an issue where Ac on pc's is always 10 when an attack is rolled. not sure what's causing it. I've tried disabling all the options.

I've been unable to reproduce this issue. Are you still seeing it? If so, I might need a copy of your campaign to debug the issue.

JohnD
September 4th, 2022, 20:23
I haven't seen it either, in testing or regular play.

Hjorimir
September 16th, 2022, 08:50
I finally got around to taking a look at this and am unable to reproduce. Are you still having the issue? Do you have any other mods installed? When testing, both the "Enable Comeliness" and "Enable Honor" options seem to work correctly independently of each other and do not overlap the AC area for me.

If you still have this problem, please let me know any other extensions you have installed and what your list of selected options are (as maybe there's some weird combo that produces this that I'm not stumbling upon while testing). Thanks!

It's the 'AD&D Options and House Rules' extension causing this error (based on my testing).
https://forge.fantasygrounds.com/shop/items/688/view

Hjorimir
September 21st, 2022, 14:21
I'm getting the following error whenever I roll a die into the chatbox with this extension enabled...

[9/21/2022 6:18:03 AM] [ERROR] Script execution error: [string "chat"]5; attempt to call field 'onDiceLanded'' (a nil value)

Hjorimir
September 24th, 2022, 14:17
Any chance to get this addressed?

JohnD
September 24th, 2022, 20:50
Are you sure this extension is the cause? I'm not seeing the error myself, tried just now.

Hjorimir
September 25th, 2022, 00:03
I know that when I enable the extension I get the error and when I disable the extension I don't.

Hjorimir
September 25th, 2022, 00:19
Okay, further testing it is when this extension is combined with the Player Agency extension (https://www.fantasygrounds.com/forums/showthread.php?54284-Player-Agency-Extension). If I disable either one, the error goes away. I'll cross post over to that thread in the hopes that a solution can be found.

JohnD
September 25th, 2022, 18:53
When using armor soaking a point of damage option, the armor soaks even say magic missile damage or fireball. Is there a way to stop this?

Sterno
September 26th, 2022, 05:03
Per the Hackmaster rules that the armor damage comes from, it should take damage from Fireballs.

It shouldn't take damage from magic missile, but I didn't have a good way to code that since it SHOULD take damage from most other types of Force damage.

There is an option in the settings for whether or not you want it to soak Necrotic and Radiant damages, but those are the only damage types that can be toggled off. It already automatically ignores psychic and poison damage.

I could potentially add an option that turns off armor soak for everything but bludgeoning/piercing/slashing.

Sterno
September 26th, 2022, 05:04
Okay, further testing it is when this extension is combined with the Player Agency extension (https://www.fantasygrounds.com/forums/showthread.php?54284-Player-Agency-Extension). If I disable either one, the error goes away. I'll cross post over to that thread in the hopes that a solution can be found.

We're probably both overwriting the same code, causing the conflict. Given that I'm not using Fantasy Grounds anymore, I'm unlikely to take the time to figure out how to solve the conflict with that extension. If anyone else wants to figure it out I'm happy to incorporate the change though.

Edit: I take it back, I've wrapped the code in something that I hope will keep the conflict from causing an error. A new build should be up soon. I just put out version 1.21 with that minor change. Let me know how it goes.

Hjorimir
September 26th, 2022, 11:04
We're probably both overwriting the same code, causing the conflict. Given that I'm not using Fantasy Grounds anymore, I'm unlikely to take the time to figure out how to solve the conflict with that extension. If anyone else wants to figure it out I'm happy to incorporate the change though.

Edit: I take it back, I've wrapped the code in something that I hope will keep the conflict from causing an error. A new build should be up soon. I just put out version 1.21 with that minor change. Let me know how it goes.

Your fix seems to have worked. Thank you *very* much, Sterno!

EOTB
September 26th, 2022, 22:08
FYI, players agency has known conflicts with the 2E ruleset overall. So while this issue might be fixed, it wouldn’t be surprising to continue to run into them over time.

JohnD
September 27th, 2022, 00:43
Per the Hackmaster rules that the armor damage comes from, it should take damage from Fireballs.

It shouldn't take damage from magic missile, but I didn't have a good way to code that since it SHOULD take damage from most other types of Force damage.

There is an option in the settings for whether or not you want it to soak Necrotic and Radiant damages, but those are the only damage types that can be toggled off. It already automatically ignores psychic and poison damage.

I could potentially add an option that turns off armor soak for everything but bludgeoning/piercing/slashing.

I can stomach armor taking damage from fireball, ice storm, lightning bolt etc... but for some reason magic missile is the one that I see the most and it conceptually doesn't fit like the rest do for me for some reason. Perhaps I am the only one with this OCD challenge; no worries Sterno but thank you for responding. :)

Hjorimir
September 27th, 2022, 15:37
FYI, players agency has known conflicts with the 2E ruleset overall. So while this issue might be fixed, it wouldn’t be surprising to continue to run into them over time.

Thanks for the heads-up!

Sterno
September 27th, 2022, 17:48
I can stomach armor taking damage from fireball, ice storm, lightning bolt etc... but for some reason magic missile is the one that I see the most and it conceptually doesn't fit like the rest do for me for some reason. Perhaps I am the only one with this OCD challenge; no worries Sterno but thank you for responding. :)

I originally had it ignoring "force" damage completely because of the Magic Missile issue but I ran into some other spells (maybe some of the Bigby's spells? I can't remember) where armor seemed like it should apply, so it became more about "armor shouldn't work for magic missile" rather than "armor shouldn't work for all force damage", and unfortunately, I can really only code it to a damage type rather than a specific spell.

I could add a toggle for Force damage the same way I have it for Radiant/Necrotic though.

Alternately, as a hack, change the type of damage on Magic Missile to "psychic" and it won't get soaked (and I'm guessing unlikely to trigger any player immunities either, since I don't think there are too many items out there that reduce or give immunity to psychic damage.)

JohnD
September 27th, 2022, 22:27
I originally had it ignoring "force" damage completely because of the Magic Missile issue but I ran into some other spells (maybe some of the Bigby's spells? I can't remember) where armor seemed like it should apply, so it became more about "armor shouldn't work for magic missile" rather than "armor shouldn't work for all force damage", and unfortunately, I can really only code it to a damage type rather than a specific spell.

I could add a toggle for Force damage the same way I have it for Radiant/Necrotic though.

Alternately, as a hack, change the type of damage on Magic Missile to "psychic" and it won't get soaked (and I'm guessing unlikely to trigger any player immunities either, since I don't think there are too many items out there that reduce or give immunity to psychic damage.)

Oh yes I think the "Psychic" change should work nicely... thanks for the suggestion.

Sterno
October 9th, 2022, 14:13
At some point, the underlying code in CoreRPG changed around how I determined if someone was an NPC or not, breaking AC for PCs unless the "Adjust NPC AC for items and abilities" was on. That has now been fixed and pushed.

I forgot to update the extension version # on the extension before I pushed it to Forge, so it'll still say version 1.21.

scoot138
October 20th, 2022, 07:10
Looks like a new series of bugs...

Running into the following errors without any other extensions loaded in a fresh campaign

[10/20/2022 12:25:57 AM] MEASURE: RULESETS LOAD - 9.1363114 - 2E
[10/20/2022 12:25:57 AM] [ERROR] template: Unrecognized merge attribute (replace) for template (button_charinitdelay), skipped. [2ePlayerOption] [campaign/template_po.xml]
[10/20/2022 12:25:57 AM] [ERROR] template: Unrecognized merge attribute (replace) for template (button_charinit), skipped. [2ePlayerOption] [campaign/template_char.xml]
[10/20/2022 12:25:57 AM] [ERROR] template: Unrecognized merge attribute (replace) for template (button_charinitdelay), skipped. [2ePlayerOption] [campaign/template_char.xml]
[10/20/2022 12:25:57 AM] [ERROR] template: Unrecognized merge attribute (replace) for template (number_actions_init), skipped. [2ePlayerOption] [campaign/template_char_adnd.xml]
[10/20/2022 12:25:57 AM] [ERROR] template: Unrecognized merge attribute (replace) for template (actions_attack), skipped. [2ePlayerOption] [campaign/template_char_adnd.xml]
[10/20/2022 12:25:57 AM] [ERROR] template: Unrecognized merge attribute (replace) for template (list_ctbox_client), skipped. [2ePlayerOption] [ct/template_ct.xml]


This is from a fresh campaign with no other extensions loaded.


Scoot

Sterno
October 20th, 2022, 15:03
From those error messages, it sounds like the underlying UI code in either the 2E ruleset or CoreRPG that I place some UI elements on top of changed significantly.

Thanks for the report. I'll take a look and see if I can get it fixed soon.

Sterno
October 20th, 2022, 15:50
Version 1.22

Fixed some syntax issues with template code that seems to have changed and caused them to start erroring.

scoot138
October 20th, 2022, 16:09
errors gone, that was FAST :)

Scott

scoot138
October 27th, 2022, 20:51
Looks like there is an issue for the client side when adding encounters to the combat tracker (server side)

[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)
[10/27/2022 11:07:12 AM] NETWORK SEND FILE REQUEST: tokens/Snake.png@AD&D 2E Monstrous Manual
[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)
[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)
[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)

Doesn't appear that it breaks anything but also haven't extensively tested either

Doomsword
October 29th, 2022, 00:33
I know Sterno is no longer using this mod, himself, but is still graciously providing fixes.

I also know that it won't work with the AD&D Options and House Rules extension, since both he and I override some of the same code.

Wanted to get thoughts from anyone who's using this on the best way to make everyone happy.

I can try to help maintain it or I can incorporate those parts of it that people use into my extension. I have no idea what people use out of this but some of the features are obviously useful in almost all cases.

For the people who use this mod:

What are your thoughts on continuing to use it vs migrating to another extension?
What parts of this do you most use?
Who's using this for Hackmaster?
Who's using the Player's Option Combat and Tactics crits and phased initiative?

Figured I'd start a dialog on how to move forward.

Free Sterno! :D

ssostac1
October 29th, 2022, 01:03
I am currently using this for Hackmaster. :)

JohnD
October 29th, 2022, 05:26
This extension is essential to my games. It would be frankly devastating to the style of game I run if the extension were to stop functioning properly.

Doomsword
October 29th, 2022, 09:15
Is everything essential, exactly the way it is, or are just certain options essential?

I wonder if everyone can be better served by some sort of consolidation and reduction of support burden.

I'm happy to assist with maintaining it, or to maintain it altogether, but the things I use would get the first fixes in the event of any major changes.

I have free time right now, so I figured I'd start a dialog on keeping the necessary functionality around in the interest of helping Classic out in any way that I can.

If you don't mind my asking, what do your option settings look like?

Happy to discuss in Discord, too, whenever.

Sterno
October 31st, 2022, 15:22
Looks like there is an issue for the client side when adding encounters to the combat tracker (server side)

[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)
[10/27/2022 11:07:12 AM] NETWORK SEND FILE REQUEST: tokens/Snake.png@AD&D 2E Monstrous Manual
[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)
[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)
[10/27/2022 11:07:12 AM] [ERROR] Handler error: [string "2ePlayerOption:ct/scripts/clientct_po.lua"]:30: attempt to index field 'target_summary' (a nil value)

Doesn't appear that it breaks anything but also haven't extensively tested either

Sorry, hadn't checked the forums in a few days. I'll take a look at this and see if I can get it fixed in the next couple days. It looks like an easy fix. (Probably not tonight though... gotta take the kids Trick or Treating!)

Tenebris
October 31st, 2022, 17:53
I've been working on creating armor that is immune to fire and confers fire resistance to the PC. In testing, I am using a 5d6 fireball with penetration that results in usually about 15-30 fire damage. The armor is soaking 15 fire damage (which is the expected outcome), but the amount of damage coming through on the other end is much lower than expected.

54939

In this example, the total damage is 40, soak is 15, so 40-15 should be 25 left over for the PC. The PC's RESIST should cut that in half for around 12. Instead, he is taking 5.

I am sure that there is something obvious I am missing, because that almost always happens.

I have no other extensions enabled on this campaign, because I use it to build, test, and then export to other games.

54940

Sterno
October 31st, 2022, 21:06
I've been working on creating armor that is immune to fire and confers fire resistance to the PC. In testing, I am using a 5d6 fireball with penetration that results in usually about 15-30 fire damage. The armor is soaking 15 fire damage (which is the expected outcome), but the amount of damage coming through on the other end is much lower than expected.

54939

In this example, the total damage is 40, soak is 15, so 40-15 should be 25 left over for the PC. The PC's RESIST should cut that in half for around 12. Instead, he is taking 5.

I am sure that there is something obvious I am missing, because that almost always happens.

I have no other extensions enabled on this campaign, because I use it to build, test, and then export to other games.

54940

I think it's applying the resistance before the armor soak. So with 40 damage and resist doing 50% by default, it's down to 20 damage. Then it soaks 15 of that, with 5 remaining. I'm not sure if there's a way around that for you.

scoot138
November 1st, 2022, 02:17
@Doomsword

In my campaigns, I use mainly the following:

Adjust NPC AC for items and abilities
Weapon vs Armor to-hit modifiers
Stricter resistance rules

Like to use:
Morale Tracker

All the Radial Wheels are very helpful

TBH, there are things in both extensions that I like to use, it would be awesome to have just one ring to rule them all...

anstett
November 2nd, 2022, 22:16
Morale Tracker is very useful to teach the Players that there are other outcomes than battle to the death.

I will see which individual options I have turned on or off for our next session.

Doomsword
November 4th, 2022, 07:07
Sorry, hadn't checked the forums in a few days. I'll take a look at this and see if I can get it fixed in the next couple days. It looks like an easy fix. (Probably not tonight though... gotta take the kids Trick or Treating!)

I looked at this for a good bit and spread out across a couple days. Not sure what's causing it. I couldn't make the extension not do it except by not calling the function and I couldn't make 2E do it. I seemingly couldn't even make 2E call the function that this seems to be based upon. I also saw nothing that's seemingly related having changed in 2E within the last several months. YMMV

Doomsword
November 4th, 2022, 07:18
@Doomsword

In my campaigns, I use mainly the following:

Adjust NPC AC for items and abilities
Weapon vs Armor to-hit modifiers
Stricter resistance rules

Like to use:
Morale Tracker

All the Radial Wheels are very helpful

TBH, there are things in both extensions that I like to use, it would be awesome to have just one ring to rule them all...

Thanks, and thanks to Anstett for responding.

I agree 100% on the usefulness of these options for everyone. The radials, alone, are genius. It was this extension, in fact, that got me started on modding FG because the radials were so cool and Sterno's code was so easy to follow. I have another extension lying around that adds OSRIC/1E-specific radials but I haven't decided what to do with it yet. As long as Sterno's cool with me stealing his idea and icon source and stuff, it'll probably end up in the House Rules extension, in which case it would only make sense to include 2E radials for people running 2E.

Morale Tracker and Adjust NPC AC and Weapon vs Armor Type are also hugely useful and spiritually-aligned with OSRIC and the extension, so I'd implement those for sure, as well.

Of course, Sterno would be co-credited anywhere his stuff/IP was used.

Of course, the other option is to code the house rules extension so that it works with this extension (and then try to help maintain this one), but that seems like a steeper hill to climb and not one that might best benefit everyone.

Sterno
November 4th, 2022, 12:31
Steal whatever you want. Don't worry about credit. :)

And I agree, trying to make the two extensions compatible would be a nightmare.

Sterno
November 4th, 2022, 12:51
I am unable to reproduce the issue with adding encounters to the Combat Tracker. I can add some safety net code to make sure the error doesn't appear, though.

I, however, am seeing this whenever I add an encounter to the combat tracker. Is anyone else getting it?

[11/4/2022 7:51:00 AM] [ERROR] Script execution error: [string "2E:scripts/manager_combat_record_adnd.lua"]:353: attempt to call global 'addSpellsFromList' (a nil value)
[11/4/2022 7:51:00 AM] [ERROR] Script execution error: [string "2E:scripts/manager_combat_record_adnd.lua"]:353: attempt to call global 'addSpellsFromList' (a nil value)

Looking at the code, it looks like a 2E ruleset bug, but I haven't seen anyone else report it so I might be misreading it.

Doomsword
November 4th, 2022, 17:04
I am unable to reproduce the issue with adding encounters to the Combat Tracker. I can add some safety net code to make sure the error doesn't appear, though.

I, however, am seeing this whenever I add an encounter to the combat tracker. Is anyone else getting it?

[11/4/2022 7:51:00 AM] [ERROR] Script execution error: [string "2E:scripts/manager_combat_record_adnd.lua"]:353: attempt to call global 'addSpellsFromList' (a nil value)
[11/4/2022 7:51:00 AM] [ERROR] Script execution error: [string "2E:scripts/manager_combat_record_adnd.lua"]:353: attempt to call global 'addSpellsFromList' (a nil value)

Looking at the code, it looks like a 2E ruleset bug, but I haven't seen anyone else report it so I might be misreading it.

To clarify, in case you didn't catch it, that reported error only occurs in the player CT which makes it a pain to troubleshoot. The "safety net" option is definitely the easiest way to deal with it.

scoot138
November 4th, 2022, 17:31
The error is really odd in that only the client/players get the error, server/DM side never sees it. I tested with a blank campaign with only the 2e player option extension and the modules monstrous manual, DMG and PHB and it drops 4 errors per entity added to combat tracker, this includes adding the players to the tracker. This was also with default settings in options across the board. Weird that only the clients see this error.

Sterno
November 4th, 2022, 17:34
To clarify, in case you didn't catch it, that reported error only occurs in the player CT which makes it a pain to troubleshoot. The "safety net" option is definitely the easiest way to deal with it.

Ah, I missed that. Thanks!

For now, put in some safety checks, though I wasn't able to test that they actually solve the issue. Pushed v1.23

scoot138
November 4th, 2022, 17:58
Got the update and it no longer is showing the errors on the client side.
This will definitely make my players happy :)

Thanks again for the great work!

Scoot

Rzach
November 19th, 2022, 18:58
Before I buy another FG ruleset.... I have to know, how close to Hackmaster 4e can I get with this extension? I have been wanting to run a HM4e game for quite a while but haven't found any good vtt options for it. I would like a 100% rules accurate environment but I am willing to settle for something closer like 90%.

Sterno
November 19th, 2022, 20:20
The 2E ruleset is free and my extension that sits on top of it for Hackmaster is free, so you don't need to buy anything to try it out, assuming you already own Fantasy Grounds.

This got pretty close for my purposes. It has the correct stat modifiers, hit point kickers, critical hits, initiative, threshold of pain, honor modifiers to dice rolls, armor damage, penetration dice, etc. Fatigue is close but not quite matching RAW.

Rzach
November 20th, 2022, 19:43
Thank you for the reply. I was under the impression it required the PHB at the minimum to use. Seeing that it doesn't I have taken a look. I want to say thank you for making this. Going to see about setting up my HM4e game sometime in the near future.

Sterno
November 21st, 2022, 15:26
Thank you for the reply. I was under the impression it required the PHB at the minimum to use. Seeing that it doesn't I have taken a look. I want to say thank you for making this. Going to see about setting up my HM4e game sometime in the near future.

It doesn't require the 2E PHB (which is pretty close to Hackmaster), but you'd have to add classes/spells/etc yourself without it. If you want true Hackmaster 4E data, you'll have to do what I did and create the classses/spells/weapons/etc yourself (or as I did, start with the 2E PHB and modify it as appropriate). Unfortunately, there's no true "Hackmaster 4E" PHB type book for Fantasy Grounds because there is no existing license under which that can be sold or even freely shared.

Another option though, is to use the free OSRIC content which will give you OSRIC classes/weapons/monsters, and then modify those as desired. I created a version of that here: https://forge.fantasygrounds.com/shop/items/79/view

However, there's also what I understand to be an even fuller "more 1e authentic" version of that data available here (also free): https://forge.fantasygrounds.com/crafter/145/view-profile
It's in a bunch of different modules and I haven't used it myself so someone else would have to chime in with which ones might be most salient to you.

Tenebris
November 22nd, 2022, 14:21
Hit Point Kickers don't seem to be working. I have tried both the 20 hit point kicker and the Size-based kickers, and no change occurs to hit points when adding these to the combat tracker.

* The test npcs all are using random hd (e.g. 4d8+1)
* I am using my clean testing campaign to prevent issues with other extensions.
* None of the npcs have a specific value in their hit point box (default 0).
* I reloaded the campaign after enabling the option just to make sure.
* I attempted with both the default sizes for 2e (e.g. M, L) and with the default 5e values (e.g. Medium, Large) and no changes occurred.
* I am not getting any error, I am just seeing no change in the expected HP values for npcs in the CT.

As per usual, this is probably an oversight on my end for an obvious solution, but I do try to be thorough before I bug anyone.

Edit: Unrelated question: Is it possible to change the damage soak to operate from the total damage rolled rather than per die?

Sterno
November 22nd, 2022, 19:44
They definitely used to work, and the steps you tried to make them work all sounds like things that should have been fine. I'll have to redownload Fantasy Grounds and see if any recent changes in underlying ruleset code caused the kicker code to not execute anymore.

Sterno
November 22nd, 2022, 20:09
Yup, thanks for the report. Looks like about a month ago the 2E "rollNPCHitPoints" method was moved from manager_combat_adnd.lua, where I was hooking into it, to manager_combat_record_adnd.lua.

As such, my override was no longer getting called. I should be able to fix it tonight.

Tenebris
November 22nd, 2022, 20:18
Yup, thanks for the report. Looks like about a month ago the 2E "rollNPCHitPoints" method was moved from manager_combat_adnd.lua, where I was hooking into it, to manager_combat_record_adnd.lua.

As such, my override was no longer getting called. I should be able to fix it tonight.

That would be amazing. I really appreciate the effort. Thank you.

Sterno
November 22nd, 2022, 22:30
That would be amazing. I really appreciate the effort. Thank you.

I started fixing it and it might take a little longer. I'm seeing half a dozen other methods in CombatManagerADND that were renamed or moved (likely causing a host of other problems in the extension), so I need to sit down and go through the code and figure out what still exists and what doesn't. Some sections seem entirely rewritten too, so just injecting my code won't work. Most of the other problems appear to be around adding NPCs to the combat tracker.

Tenebris
November 22nd, 2022, 23:34
I started fixing it and it might take a little longer. I'm seeing half a dozen other methods in CombatManagerADND that were renamed or moved (likely causing a host of other problems in the extension), so I need to sit down and go through the code and figure out what still exists and what doesn't. Some sections seem entirely rewritten too, so just injecting my code won't work. Most of the other problems appear to be around adding NPCs to the combat tracker.

I am just relieved there is a reason and I am not crazy. Please don't feel rushed on my account.

Sterno
November 24th, 2022, 14:26
v1.24


- Fixed some instances of the extension trying to override code that had been moved/refactored in the 2E ruleset, causing it not to work correctly. Affected whether or not HP kickers worked, among other things. Honestly had potentially some pretty far reaching effects and there could still be seemingly-random issues related to this.

Tenebris
November 27th, 2022, 02:32
v1.24


- Fixed some instances of the extension trying to override code that had been moved/refactored in the 2E ruleset, causing it not to work correctly. Affected whether or not HP kickers worked, among other things. Honestly had potentially some pretty far reaching effects and there could still be seemingly-random issues related to this.

Appreciate the update.

HP Kickers do seem to be working for size-based and the general one. However, the kickers apply regardless of whether HP is random or not (e.g. Hit Points field is set to 5, but medium creature has 25 hp when added to the CT).

Not game breaking for me at this point, because I can work around it, but I thought you might take a look the next time you get around to making updates.

Edit: So if the Hit Points field in the Encounter is modified, the HP Kicker is not applied.

Maldev
December 1st, 2022, 10:50
G'day all. I don't know whether this is the best place to ask, but here goes.
I use the C&T initiative system and have found after playtesting that the NPC's never get accelerated/slowed Initiative phases.
Also I can't see how the PCs (since they roll individually) can get accelerated/slowed Initiative phases either.
I know I can do it manually, but wanted to check:
A/ If automation for the accelerated/slowed Initiative phases is a thing
B/ I had missed something to enable it?
Cheers
Amazing extension by the way :)

Sterno
December 2nd, 2022, 12:12
G'day all. I don't know whether this is the best place to ask, but here goes.
I use the C&T initiative system and have found after playtesting that the NPC's never get accelerated/slowed Initiative phases.
Also I can't see how the PCs (since they roll individually) can get accelerated/slowed Initiative phases either.
I know I can do it manually, but wanted to check:
A/ If automation for the accelerated/slowed Initiative phases is a thing
B/ I had missed something to enable it?
Cheers
Amazing extension by the way :)

Well, I know it had been working a year and a half ago when I was using it. Honestly it wouldn't surprise me if something was broken with it due to underlying changes at this point, though. I can't test ATM because I've currently got the tool uninstalled.

That said, it was pretty common for players to go on the same initiative phase every round for a given weapon, because the only way it would change is if the group initiative was a 1 (in which case they all go one phase slower) or a 10 (in which case they all go one phase faster).

The individual initiative "rolls" aren't really rolls... they're basically just informing the system what spell you're casting or weapon type you're using so it can figure out your speed. The only "real" roll that happens under the phased system is a group roll. One way to test if it's working at all is to equip a character with a two-handed sword and a dagger. See if the phases are different if they use one weapon vs the other (assuming your weapons properly have weapon speed set up). The two-handed sword should land in a later phase unless you happen to roll a 10 for initiative that round.

Read this for more details: https://github.com/drplote/FG-2e-PlayersOption#combat--tactics-initiative

If you still think it's broken after reading that, then sadly, it probably is. I can try to take a look in the near future.

Maldev
December 6th, 2022, 07:01
Thanks for the reply :)
I had read the link you shared, which indicates that it used to roll a d10 for each side for ties and phase adjustments on a 1 or 10
I'm just not sure how parts of it are working....
As I understand the C&T rules
A/ Both sides roll initiative: Determining who goes first in each phase and whether either side gets a phase boost/penalty.
I don't see a d10 result for either side
- So I don't know whether either side has a phase penalty or bonus, nor can I tell who goes first on a tie for each phase.
That's how it is working at the moment anyway.
I don't see a way of doing this anywhere.
Regards.
As i said above, the extension was/is great, until as you pointed out updates etc may have upset it .
Unless of course I have missed something, which is entirely possible.

Maldev
December 7th, 2022, 09:28
Thanks for the reply :)
I had read the link you shared, which indicates that it used to roll a d10 for each side for ties and phase adjustments on a 1 or 10
I'm just not sure how parts of it are working....
As I understand the C&T rules
A/ Both sides roll initiative: Determining who goes first in each phase and whether either side gets a phase boost/penalty.
I don't see a d10 result for either side
- So I don't know whether either side has a phase penalty or bonus, nor can I tell who goes first on a tie for each phase.
That's how it is working at the moment anyway.
I don't see a way of doing this anywhere.
Regards.
As i said above, the extension was/is great, until as you pointed out updates etc may have upset it .
Unless of course I have missed something, which is entirely possible.

After some extensive playing around in game and testing, I use normal 2E initiative, with delaying/changing initiative manually. Works fine.
The other automation/options are terrific!
Thanks again for all your work.

Maldev
December 7th, 2022, 09:36
Does anyone use the Morale option?
I have played around with it and couldn't get any morale checks made by monsters.
It always comes up with

Morale Check Results:
--------------------
did not require check: '','',''
--------------------

anstett
December 7th, 2022, 23:50
It worked for our game the last time I used it. It has been a few sessions though, more storytelling lately.

Will try to create a situation that needs it this week. ;)

Maldev
December 7th, 2022, 23:54
It worked for our game the last time I used it. It has been a few sessions though, more storytelling lately.

Will try to create a situation that needs it this week. ;)

Cheers :)

JohnD
December 8th, 2022, 19:33
Does anyone use the Morale option?
I have played around with it and couldn't get any morale checks made by monsters.
It always comes up with

Morale Check Results:
--------------------
did not require check: '','',''
--------------------

I believe the Morale function was not actually fully completed as originally envisioned. That said, it does work in an informational sense.

Maldev
December 8th, 2022, 23:36
I believe the Morale function was not actually fully completed as originally envisioned. That said, it does work in an informational sense.

OK. Thanks for that. It can be good as a reminder..
Cheers

Sterno
December 11th, 2022, 16:42
Does anyone use the Morale option?
I have played around with it and couldn't get any morale checks made by monsters.
It always comes up with

Morale Check Results:
--------------------
did not require check: '','',''
--------------------

Currently, as coded, the only time it thinks someone needs a morale check is if you tell it manually to force a morale check or if their health remaining is <= 75%.

You force a morale check for all NPCs by holding Shift, Alt, or Control while clicking the morale button on the CT, or, if triggering it from the chat window, typing "/morale force".

Not sure why it's showing ","," though. Looks like, for whatever reason, it's failing to read combatant names. That basically uses CoreRPG's ActorManagear.getDisplayName code, so if the way that works changed, that would explain it.

Maldev
December 13th, 2022, 03:54
Currently, as coded, the only time it thinks someone needs a morale check is if you tell it manually to force a morale check or if their health remaining is <= 75%.

You force a morale check for all NPCs by holding Shift, Alt, or Control while clicking the morale button on the CT, or, if triggering it from the chat window, typing "/morale force".

Not sure why it's showing ","," though. Looks like, for whatever reason, it's failing to read combatant names. That basically uses CoreRPG's ActorManagear.getDisplayName code, so if the way that works changed, that would explain it.

Thanks again for responding.
Played around a bit - [No other extensions loaded]
I had an orc with 1 HP left and used the methods you specified.
Comes up with unknown "," (See the following screenshot )
55444

At least I know now why, thanks for the explanation.
Cheers :)

JohnD
December 13th, 2022, 16:20
That's changed since the last time I used the morale check then.

Sterno
December 27th, 2022, 02:44
v1.25

Thanks to ssostac1 for debugging an issue (the 2E Ruleset's CombatManagerADND.getNodeFromCT method I'd been calling disappeared), fatigue for NPCs works again, as does the Morale Tracker.

TheButterdragon
February 3rd, 2023, 04:37
Recently tried using attack bonuses by right clicking on a characters attacks on their character sheet. Once I make an attack against a target without their dexterity bonus, however, all attacks become attacks that ignore dexterity, regardless of attack option, clicking on the button to attack as normal or using a different character. Is there a way to "clear" attack option?

Sterno
February 4th, 2023, 13:18
I am unable to reproduce this error.

I'll add a chat command clear the modifiers though so that you can get unstuck from this.

EDIT: I started looking at a command to clear all modifiers and ran into problems. But then I realized you can probably fix this by just going to the Modifiers window and unclicking "No-Dexterity". If you've got the sidebar turned off, you get to the "Modifiers" window under the "Menus" option. If you've got the sidebar on, I think it's a +/- button up in the top right.

If this keeps happening and you keep getting stuck, though, something weird is going on and I'll need some more details to figure out how to reproduce it.

Atru1n
May 16th, 2023, 18:34
So ive been getting issues with a PC stuck at 10 ac ( in attack rolls made on the character) regardless of items or changes to bonuses. if i adjust the base ac then it will adjust the attack roll ac to the base number. ive been playing around in the settings and if i adjust "adjust npc ac for items and abilities" to whatever it currently isn't on, and then roll an attack against the pc, i get, "00s'Extension Debug (GM):' | s'nodeDefender' | databasenode = { charsheet.id-00002 }" but the attack wil be against the fully adjusted ac.

any ideas?

Sterno
May 18th, 2023, 17:32
So ive been getting issues with a PC stuck at 10 ac ( in attack rolls made on the character) regardless of items or changes to bonuses. if i adjust the base ac then it will adjust the attack roll ac to the base number. ive been playing around in the settings and if i adjust "adjust npc ac for items and abilities" to whatever it currently isn't on, and then roll an attack against the pc, i get, "00s'Extension Debug (GM):' | s'nodeDefender' | databasenode = { charsheet.id-00002 }" but the attack wil be against the fully adjusted ac.

any ideas?

Do you have other extensions installed too? That looks like just a debug message, but I don't think I use the format "Extension Debug (GM)" in any of my code.

spencerg
May 31st, 2023, 18:24
Hi Sterno!,

Wonderful extension - absolutely essential in my 2e game. Bravo.

I found one runtime.

Disabled all extensions except yours and cohorts and companions.

Created NPC with new power - effect DMGO of type piercing.

All this effect to enemy target.

It kicks in every round like its supposed too, but throws a runtime - resulting in no damage being applied to target.

attempt to index local 'vDie' (a number value) -- image attached.


57507

ssostac1
May 31st, 2023, 22:58
I was able to reproduce this error, and found you need to remove the semi-colon between the damage dice and the damage type for it to work properly.

spencerg
June 1st, 2023, 00:22
good lord = thank you ssotact1

Atru1n
June 2nd, 2023, 05:26
So I stripped it down to just player options and it's still showing the debug. if I disable show debug messages in chat it goes away. i do not have anything but the 2e options extension active.

ssostac1
June 2nd, 2023, 05:41
Hi Atru1n,

I did a search for "Extension Debug (GM)" in both the 2e ruleset folders and the 2e Options folders, and nothing came up. The error has to be coming from some other source. Unfortunately I've never seen that error before.

Atru1n
June 2nd, 2023, 05:51
I created a new campaign, loaded only the 2e options extension, and loaded only the phb dmg and monster manual. and enabled the show debug messages "chat"
and
and I'm still getting it. Could it be corruption in FGU itself? Should i back up my campaign and other important files, uninstall and deleted all data, and reinstall?

Sterno
June 6th, 2023, 01:04
Did some more looking at that message is coming from my extension. I was thrown off by the (GM) bit, but that's because your username is "GM".

There are plenty of debug messages that get logged (if you turn on the logging) that don't necessarily mean there's an error. I'm unclear if you're seeing a problem with how things are working, or are just annoyed by the debug messages. If it's just the latter, then disable the messages.

Atru1n
June 6th, 2023, 05:08
Did some more looking at that message is coming from my extension. I was thrown off by the (GM) bit, but that's because your username is "GM".

There are plenty of debug messages that get logged (if you turn on the logging) that don't necessarily mean there's an error. I'm unclear if you're seeing a problem with how things are working, or are just annoyed by the debug messages. If it's just the latter, then disable the messages.

So originally this debug message was in relations to an issue with AC. when "adjust npc ac for items and abilities" is on the ac of the PC is calculated at the proper amount. when its off its calculated at 10 regardless of what pc it is or what their actual AC is.

57626

First attack is with "adjust npc ac for items and abilities" On
Second two are with it off against two different PCs

JohnD
June 27th, 2023, 20:49
Is there any chance the attack output could be changed to comply with what would automatically call the appropriate Sound Set for hits and misses in combat?

amanwing
July 18th, 2023, 16:57
When I enable this extension, it seems that enemies always hit PC on a 10 (AC). I disabled all other extensions and still have this problem. Is it only me? What can I do to fix it please?

TheButterdragon
August 9th, 2023, 07:01
I've recently tried out the Hearth Theme which is darker and applied the Light Font from Chat Aesthetics and, whilst it mostly seems to be fine, the speeds of characters are marked in black text regardless.

https://media.discordapp.net/attachments/1124097816827003111/1138711242505191454/image.png

Is there any way I can edit this to adjust it?

Sterno
January 11th, 2024, 17:09
Just wanted to let everyone know SpencerG has taken over maintenance of this extension, and ownership in Forge has been transferred to him.

Thanks, SpencerG!

spencerg
January 11th, 2024, 17:55
Happy to help, its a great extension.

spencerg
February 3rd, 2024, 02:53
In regards to Phased initiative…I may have fixed this months ago. To be honest i’m not super familiar with phased init of c&t, but i remember noticing this bug and addressing it many moons ago, along with a few other things. It’s basically maintenance mode currently.

seanny
February 6th, 2024, 04:24
This is not an error ,
Rather a question.
Been a while since I played 2e with this extension.

I am using the Weapon versus Armour Optional Rule.
I notice Chat reference for using my Footman's Mace against a Chainmail armoured Goblin.
I get a +2 bludgeoning versus Chainmail.

2 questions.
(1) Where can I inspect these bonuses/penalties.
Can i open a chart in game or look online for a reference chart.
Are these user configurable ,and if so How.

(2) I made a unique Goblin for this test.
I made his normal AC 10.
Then i dropped Chainmail into his inventory.
Is this the only way it can be done ,as in if Goblin had a natural AC of 5 ,I assume he is not treated as wearing ChainMail Armour for purposes of this rule.

https://i.imgur.com/1D9tCBU.jpg

spencerg
February 6th, 2024, 05:22
1. These are detailed in the players handbook. You cannot configure the WvA automation, but you can configure the individual suites of armor. On the armors properties, you can set slashing: n, piercing: n, bludgeoning: n, where (n) is your desired modifier. Additionally, in “modifiers” you can change the value and drop and drop rather than rely on the automation. The values used are RAW, and baked into the extension.

2. You can additionally specify items, weapons, spells on the encounter record itself.

e.g create a new encounter. drag and drop an orc on the encounter… In this view, you change the base AC, add items/weapons and spells, semicolon terminated.

Weapons: longsword; dagger;
Items: leather amor; backpack;

When you spawn the encounter, they will spawn with these items with each npc on the encounter sheet. if your spelled them correctly and separates them with semi columns of course. As you’ve already discovered, make sure to set the AC to 10. You can again do this in bulk, one shot, on the encounter record you’re creating.

On page one of this thread, id high recommend visiting the repository and reading through the Readme, it will answer most questions and is invaluable in understanding/utilizing the full potential of the extension.

https://github.com/drplote/FG-2e-PlayersOption