File information
Last updated
Original upload
Created by
Kenny LeoneUploaded by
LeoneKingzzVirus scan
Safe to use
Current section
About this mod
This mod makes NPCs utilize every spell in their arsenal. Instead of just spamming one like my typewriter. SKSE Implementation.
- Requirements
-
Nexus requirements
Mod name Notes Behavior Data Injector Required Behavior Data Injector Universal Support For AE and VR Keyword Item Distributor (KID) Required. Mods requiring this file
- Permissions and credits
-
Credits and distribution permission
- Other user's assets All the assets in this file belong to the author, or are from free-to-use modder's resources
- Upload permission You can upload this file to other sites but you must credit me as the creator of the file
- Modification permission You are allowed to modify my files and release bug fixes or improve on the features so long as you credit me as the original creator
- Conversion permission You can convert this file to work with other games as long as you credit me as the creator of the file
- Asset use permission You are allowed to use the assets in this file without permission as long as you credit me
- Asset use permission in mods/files that are being sold You are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
- Asset use permission in mods/files that earn donation points You are allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
-
Translations
- Turkish
- Portuguese
- Italian
- German
-
Translations available on the Nexus
Language Name Turkish Author:pulsadenura NPC Spell Variance - Spell Variety AI Turkish Translate Portuguese Author:Daniel NPC Spell Variance - Spell Variety AI traducao PT BR Italian Author:ALL4ALL NPC Spell Variance - Spell Variety AI (ITALIANO) German Author:ALL4ALL NPC Spell Variance - Spell Variety AI (DEUTSCH) - Changelogs
-
-
Version 2.3.8
- Yet another crash fix.
-
Version 2.3.7
- Attempt to fix an uncommon reported CTD that happens before main menu for some people.
-
Version 2.3.6
- Another tiny fix.
-
Version 2.3.5
- Tiny fix for a possible CTD.
-
Version 2.3.4
- Greater polish for allied targeting - NPCs that have supportive spells are now more responsive at supporting their allies.
- Also more responsive at switching off the behaviour when not needed.
- Greater polish overall.
-
Version 2.3.3
- Frantic switching and mid-cast, self interrupts are virtually gone now.
- So if the NPC equips a spell, they will very likely cast it because the AI variables now align with combat events, rather than varying frantically by the moment.
- Hence, if an NPC decides to pull out, for example, a bound weapon, they will very likely use it.
- This make NPC Mages more decisive and better fighters because they aren't caught in decision paralysis that gets them killed.
-
Version 2.3.2
- Fixed issue where NPCs occasionally used spells with NSV _Tag_Undead on non-undead actors.
-
Version 2.3.1
- Added support in the code for Rune-type spells that are specific to Undead (e.g., Sun Burst Rune from Lost Grimoire SSE), and summoned creatures (Banish Rune maybe?)
-
Version 2.3.0
- NPC mages interrupt themselves less often when actively casting, allowing them to fight better.
-
Version 2.2.8beta
- Spell copies added to NPCs now also account for spells added to them at runtime, instead of only their actor base.
- code Improvements for allied, targeted spells.
-
Version 2.2.7beta
- Fixing issue where NPCs possibly get stuck in combat animation, especially when casting concentration spells.
- This is actually a rare vanilla issue, but due to the fact that NPCs cycle through far more spells with this mod, it became more common.
- I tested with my companion, Lucien, and everything have been working well since this update.
- See the change log for v2.2.5beta for the main changes.
-
Version 2.2.6beta
- Fixed reported problem to do with timekeeping.
- For VR folks, the last time keeping function I tried implementing was the cause of the problem.
- Please, check if this update works for you and report.
- See the change log for v2.2.5beta for the main changes.
-
Version 2.2.5beta
- The plugin now makes copies of spells (both vanilla and mod-added; at runtime) with the NSV_Magic_Damage and NSV_Magic_Absorb keywords.
- It "stores" these spells in the new ESP (i.e, using its FormID as a base reference for ordering these copies). I've not esl-fied it since may limit the amount of spell copies that can be made.
- But you can try and report your findings.
- The plugin mainly identifies spells by their full name and equipslot (e.g., lefthand).
- So for example, there can only ever be one spell called "Sparks" with a "lefthand" equipslot in the ESP.
- If an NPC mage without the NSV_SpellSword keyword enters combat, the plugin scans their spell-list and gives them matching spells.
- This means they'll always have access to their "auto-attack", preventing the pure mage melee problem.
- Everything seems to be working very well on my end, and NPCs are casting spells well, with decent variety.
- But let me know your experience.
- The spells added to NPCs are shown the NPCSpellVariance.log (found in this path on your PC "Documents\My Games\Skyrim Special Edition\SKSE")
-
Version 2.2.4
- More polish to the introduced systems and correcting some mistakes.
- See the change log for v2.2.3 for the main changes.
-
Version 2.2.3
- Drastically reduced erratic spell switching and self-interrupts by thorough condition adjustments.
- Now, the plugin scans the spell-list of pure-mages and identifies any damage-type, vanilla spells they have through name (e.g., Ice Storm)
- The plugin gives them a copy of the spell so they always have access to their "auto-attack" should the patched version's AI be invalid at anypoint.
- This will effectively negate pure mages randomly going to melee.
- In constrast, there is now a SPID file with this keyword (NSV_SpellSword)
- You can give this to any NPC (Or Class or Combat Style) that you want to act more like Spellswords.
- All the spell copies can be found in the NSV assets esp. Please, DO NOT add NSV Keywords to them as it will break this system.
- For VR folks, I'm trying a different function I devised for time keeping, to allow for compatibility. Let me know if there are any problems.
-
Version 2.2.2
- Attempt fix for reported crash
- Added new option in the INI file to skip patching pure damage spells.
- Since these spells tend to act as auto attacks, it can help prevent strange mage behaviour and allow them to attack properly and consistently (like vanilla).
- It does mean that NPCs will pick their highest damage spells when attacking, unless their magicka is lower
- Or an enemy is weaker to another damage spell in their arsenal.
- This isn't always a bad thing, especially since the other unique keyword spells work when they need to (e.g., healing self or allies).
-
Version 2.2.1
- Tiny addition to soul gem check so it updates with no. of empty soul gems available.
- See the change log for v2.2.0 for the main changes.
-
Version 2.2.0
- Ironing out erratic spell swapping (and casting interrupts) due to multple variable assessments and validity.
- NPCs casting self, concentration, beneificial spells (e.g., healing) will now stop casting when they reach an acceptable goal (e.g, high health), instead of casting infinitely.
- NPCs will now only use soul trap spells when they have an empty soul gem in their inventory.
- Unfortunately VR folks, this update probably isn't compatible with your game. They are so many advanced method I know for SE/AE that are simply unknown for VR.
-
Version 2.1.7
- Some crash fixes.
-
Version 2.1.5
- Further AI polishes.
- See the change log for v2.1.2 for the main changes.
-
Version 2.1.4
- Further AI polishes.
- See the change log for v2.1.2 for the main changes.
-
Version 2.1.3
- Further AI polishes.
- See the change log for v2.1.2 for the main changes.
-
Version 2.1.2
- Further AI polishes.
- Using an alternate function to test for a variable in combat, for those on VR. If the problem persists, let me know with a pdb log.
- Added a new KID file in the mod. Please see my latest sticky for its purpose.
- Now, any spells without any of NSV's keywords are simply skipped.
- This will nullify the impact of touching spells that maybe unconventional and not related to combat.
- Please grab the NSV keyword mods available for your spell mods. Alot of great work has been done by the community.
- They are essentially a hard requirement now, else the mod will do nothing.
-
Version 2.1.1
- Hopefully fixed crash that some people reported, but I only had 2 pdb logs to guide my change. I need pdb logs, else I have no idea what's happening.
- Hopefully sorted out issue where pure mages randomly switch to melee.
- Fleshed out some more AI effects, but this is an ongoing process as it's incredibly tedious.
- NPCs can now use Rune spells. The spell must have the NSV_Magic_Trap keyword. It must also have the vanilla MagicRune keyword in it's magic effect (Vanilla runes already have this).
- This is to ensure the code accuractly identify spells that are definitely Runes.
- NPCs that are given heal spells (e.g., healing hands), or other spells for their allies, can now use it on them.
-
Version 2.0.0
- Massive Update to AI. For the AI to work, please get the NPC Spell Variance Keyword Mods, available for the spell packs in your game.
- Any spells not tagged with NSV's keywords, will use the previous, default AI.
- Maxsu's BDI is now a hard requirement, else many aspects of the AI won't work.
- Now I need some rest...
-
Version 1.4.1
- Included a Whitelist Approach in the INI file.
-
Version 1.4
- KID is now a hard requirement.
- One plugin now to reduce extra work, and streamline development.
-
Version 1.3.4
- This version waits for KID to finish its distribution before going to work.
-
Version 1.3.3
- This version waits for KID to finish its distribution before going to work.
-
Version 1.3.2
- Can't test since I don't use VR. Try and let me know if it works
-
Version 1.3.0
- Fixed issue where excluded mods and keywords weren't being considered.
-
Version 1.2
- Resolving Aggro Issues with Ability-like effects.
-
Version 1.1
- Removed KID dependency.
-
Version 1.0
- Initial Release
-
- Donations
-
No donations accepted
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
This mod is dedicated to Lucien, the Dovahkiin's student with a spark of greatness.
Credits and Special thanks:
1) powerofthree - The foundation of my growing C++ knowledge.
2) Thanks to the SKSE and CommonLib Team.