About this mod
This mod makes NPCs utilize every spell in their arsenal. Instead of just spamming one like my typewriter. SKSE Implementation.
- Requirements
- Permissions and credits
-
Translations
- Turkish
- Portuguese
- Italian
- German
- Changelogs
- Donations
The Problem:
In Vanilla, NPC spell users almost always spam the same spell - usually the highest damaging one. And whilst this sounds reasonable in theory, if this was genius in practice they wouldn't be getting destroyed so easily.
Combat is often nuanced, with a time to attack, a time to retreat, a time to apply utilities, and a time to intercept, etc. In the context magic spells, there spells that can create an attack opportunity (e.g., invisibility or a stagger spell), but because they deal no damage, the NPC won't even consider using it.
This mod seeks to change that.
Breakdown:
- NPCs are now able to use every spell in their arsenal (yes even support spells and Runes! ; PS. We need a SPID mod that gives Runes to some NPC mages now). This includes any spells from mods you might install.
- The plugin scans for spell that are very likely to be combat spells, based on many filters I've employed, and allows NPCs to consider them all in battle.
- There is an INI file where you exclude spells you don't want to be considered by plugin, either through specific keywords associated with spell, or all spells in a specific mod. A White-List approach is also available.
- This is the beginning of that NPC "Spell AI" we've all wanted. Currently my code can identify spells that are likely to be healing spells, and give them "unique AI"
- For example, it would be silly to be using heal spells at full health. So the plugin, ensures NPCs are unlikely to consider such spells at full health.
- Eventually, we can associate different spell archetypes with certain filters and give them "AI".
- AI is always tricky because the human brain is extremely adept at spotting patterns, no matter how complex.
- So at the core of my design philosophy, I ensure that anything I implement has as much variance as possible, and only implement specificity that mimics the decisions of a believable and reasonable being (i.e., NPCs as people in the case).
Showcase:
Source
Credits and Special thanks:
1) powerofthree - The foundation of my growing C++ knowledge.
2) Thanks to the SKSE and CommonLib Team.