-
December 30th, 2024, 03:07 #1
[Extension] 5E, PFRPG, PFRPG2 - Aggro: Smart Target System for NPCs
Forge Link: https://forge.fantasygrounds.com/shop/items/2021/view
Introducing Aggro – Smart Targeting for NPCs in Fantasy Grounds
Are your players constantly shouting, "Why is he attacking me instead of the barbarian?"
Are you a DM who wants to enjoy impartial targeting while battling it out in an arena with your players?
Or are you simply looking for a way to streamline combat decisions without overthinking?
Well… this is for you!
Aggro is a new extension designed to bring intelligent, automated targeting to your games. By using customizable variables with adjustable weights, it calculates targeting priorities for NPCs. At the start of an NPC's turn, Aggro determines targets based on probability—higher Aggro values mean a greater chance of being selected.
Key Features
Two Targeting Systems
- Logical Chance: Target selection remains random, but higher threat levels significantly increase the chances of being targeted. This maintains a balance of consistency and unpredictability.
- Pure Logical: The actor with the highest threat level is always selected as the target.
Choose between Auto Target or Target Advisor
- Auto Target will do the calculations and auto select the target for you.
- Target Advisor will calculate the aggro values, but will not select target, instead, it will advise you of the best option (better with "Pure Logical")
You can also choose whether to display full threat calculations in the chat or only the final target selection message.
Customizable Threat Variables
Aggro's targeting system is powered by the following variables, all adjustable via the Options menu:
- Base Value: A default Aggro value assigned to all actors at the start of a turn. Think of it as a "random motive" factor.
- Proximity Threat: Closer targets receive higher Aggro values. The nearest target gets 100%, the second-closest gets 50%, the third 25%, and so on.
- Damage Threat: Targets that deal the most damage to the NPC are prioritized. The top-ranked actor receives 100% of the damage Aggro, with subsequent ranks halving the previous value.
- Persistence Threat: Actors already targeted in previous turns gain this Aggro value, ensuring consistent NPC behavior.
- Critical Hit Threat: Actors who land a critical hit on the NPC gain increased Threat until the NPC's next turn.
- Miss Penalty: Each time an NPC misses a target, that target's Aggro decreases. This penalty is cumulative and resets upon a successful hit, making difficult-to-hit targets less attractive.
- Out of Reach Penalty: Targets outside the NPC’s base movement range (or effective attack range) have their Aggro reduced by 100%. Targets beyond dashing range (or maximum range) receive triple this penalty, making faraway targets less appealing.
- Injured Opponent Penalty: Bloodied actors (50% HP or less) have their Aggro reduced by 100%, while wounded actors (more than 50% HP but not full) receive half the penalty.
- Minimum Target Value: Prevents an actor’s Aggro from dropping to 0 or below, ensuring they remain a potential target.
- NPC Cruelty: Determines if dying actors (0 HP) are valid targets. When turned off, NPCs will ignore actors with 0 HP.
Don’t like a variable? Set its value to 0, and it will no longer affect targeting.
New Effects: AGGRO, INDEPENDENT, NOTHREAT, CRUEL
Usage: AGGRO: [n]
Where [n] is a number (positive or negative) that adjusts the target’s Aggro value.
Examples:
Code:Taunt: AGGRO: 300
Code:Innocent Face: AGGRO: -200
INDEPENDENT: Skip threat calculation and auto targeting. Use it for manual targeting.
NOTHREAT: Excludes the actor from the valid targets list.
CRUEL: Bypass the check for "NPCs Cruelty: off" for this particular NPC.
Important Notes
- Always drag tokens from the Combat Tracker to the map. Dragging tokens directly from a PC sheet or NPC list will prevent the extension from functioning properly.
- This extension is not compatible with language translations, as it depends on capturing certain messages from the ruleset to work properly.
Changelog
1.3.0
New Features:
- Spellcasting Aggro! Caster receive the base spell threat value + additional level bonus (both customizable).
- Healing Aggro: also receive additional aggro based on healing level.
- Intelligence based aggro: Define the minimum intelligence to be considered 'intelligent' and 'rational'. Intelligent actors will calculate all variables plus spell and healing aggro. Rational actors will calculate everything but those two and irrational actor will only consider basic aggro modifiers.
- Neglected target aggro: Actors that are not being targeted by anyone will receive this bonus to threat.
1.2.1
New Features:
- 3 New Effects: INDEPENDENT, NOTHREAT and CRUEL.
- New feature to decide if attacked neutral NPCs engage in battle.
- New target advisor mode to show aggro calculations without actually targeting.
Fixes an Small Changes:
- Fixed effective and max range calculations for melee combatants.
- Renamed options.
1.1.2
Fixes:
- Fixed a bug related to tied actors with the same threat modifiers resulting in a console error and no target selected when in "Pure Logical" mode.
1.1.1
New Features:
- NPCs now have the option to target any actor in Combat Tracker. (Select between "PC Only", "Any Friendly" or "All But Hostile").
- Added a option to choose the target message's display mode for players.
- Included a message feedback in Verbose mode to show the current NPC effective and maximum range. (If the NPC has no ranged attack, effective range is NPC speed + reach. Maximum range is NPC speed x 2 + reach. For ranged attacks, it takes the effective and maximum range from the weapon or ranged spell attack. If there is only a single value for range, maximum range = effective range.)
Fixes:
- Fixed "Injured" threat bonus displayed as a penalty.
- Fixed console error when NPC ranged attack have only one range value.
1.0
- Initial Release
Coming Next
Exciting future updates include:
- Status Effects Threat: Assign custom threat values to statuses like Invisible, Dash, Prone, Paralyzed, etc.
- Improved Range Calculation: Incorporate save-based spells and powers, like dragon's breath, into the "Out of Reach" penalty.
- NPCs Quirks: A chance to randomly assign an effect to a NPC representing some personal beef or soft spot, like: "HATES: Dwarves" (Dwarves get threat +200 against him), "LOVES: TINY" (Tiny sized actors receive -200 threat against him).
I'm constantly checking this post to see the feedback and suggestions to update this list.
Have Suggestions or Found a Bug?
I’d love to hear your feedback! Reply to this post with your thoughts or report any issues you encounter.
Want to be a beta tester for future versions? Send me a message!Last edited by Alanrockid; February 1st, 2025 at 02:34. Reason: 1.3.0 patch
-
December 30th, 2024, 08:00 #2
-
December 30th, 2024, 09:15 #3
This is super cool.
-
December 30th, 2024, 12:38 #4
Interesting concept. Nice work.
If there is something that you would like to see in Fantasy Grounds that isn't currently part of the software or if there is something you think would improve a ruleset then add your idea here https://www.fantasygrounds.com/featu...rerequests.php
-
December 30th, 2024, 21:08 #5
Very cool!
I really won't be able to use it until it can target NPCs, unfortunately, as my groups are always running around with extras (who should often be juicy targets).
Does "11-Injured Opponent Penalty" make it so the monster is less likely to try to finish off a bloodied opponent? If so it's really the only one that stands out as counterintuitive at a glance...
I would love to see another option for 'Message Visibility' to be able to have either discreet or verbose but optionally not broadcast to players.
-
December 30th, 2024, 22:16 #6
I'm working on expand the effect to all actors in scene right now. I may update this extension sooner than i thought.
Does "11-Injured Opponent Penalty" make it so the monster is less likely to try to finish off a bloodied opponent? If so it's really the only one that stands out as counterintuitive at a glance...
I would love to see another option for 'Message Visibility' to be able to have either discreet or verbose but optionally not broadcast to players.
-
December 30th, 2024, 22:19 #7
-
December 30th, 2024, 22:22 #8
Regarding Message Visibility: I'm not sure it's worth the complexity, but I could see a situation where some users would prefer Discreet for Players and Verbose for GM, so having separate options for Player and GM with all 3 options each might be best:
Players - Muted / Discreet / Verbose
GM - Muted / Discreet / Verbose
-
December 30th, 2024, 23:01 #9
Lesser Deity
- Join Date
- Mar 2006
- Location
- Arkansas
- Posts
- 7,538
Very interesting concept. Of course, the end game for something like this would be for the extension to actually set the targeting for the active NPC creature with the most aggro so all you have to do is roll.
-
December 30th, 2024, 23:14 #10
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks