REQUIREMENTS: SkyPatcher
This is a very very very work-around-"your-mileage-may-vary" mod.
So you know how Skyrim basically has no friendly-fire system prevention ever, especially between mage followers? The player can have that one perk from the Dragonborn DLC (which is wild that in order to not hurt my teammates I have to purchase a DLC and get through the entire black book sequence... but anyway), but your followers can still harm you, or other followers. Especially mage followers. Ever tried bringing Marcurio and Illia or Serana together? Don't.
There have been many many many attempts at removing friendly fire between followers through the many follower framework mods, SKSE plugins etc etc, but I always found that it never quite solved the problem. I could duplicate the Dragonborn perk (Companion's Insight) and distribute them to my followers, but it just makes them unable to damage other followers--such perk still doesn't remove the initial hostility when their spell hits another teammate. I tried some follower frameworks, and I guess it does suppress friendly fire a bit (or maybe it's placebo), but still doesn't nuke it entirely.
And then I remembered that you could attach conditions to spells and/or magic effects. That's how some spells only affect undead, paralyze can't affect dragons, Unrelenting Force can't stagger every single NPC, etc. So I thought, what if I made custom duplicate spells that are incapable of hurting anyone that isn't hostile to the caster, and make followers only use those spells?
It worked (I think).
So this is what this little thing does. I duplicated every single damaging spells*), I attached custom conditions to their magic effects, and then, using SkyPatcher, I curated every single vanilla, DLC, and CC followers, removing their vanilla spells and substituting them with my friendly-fireproof version. I also edited two duplicate spells added by Dawnguard DLC to be friendly fireproof--these duplicates seem to be used by Serana only. Then I did a run through Illia's quest with Marcurio tagging along, and not once did her wide-ass Ice Storm spell hurt the other mage! So I definitely did something right there.
Included spells (they all have LeftHand, RightHand versions, just like vanilla):
For completion's sake, I also added staves version to these spells. Staves count as their own spells, so in order to completely eliminate friendly fire with a specific NPC, they have to have BOTH friendly fireproof spells and friendly fireproof staves. However they're not distributed or placed anywhere by default.
Sounds good, right? Almost. However, there's a caveat. There's lots of caveats, actually. There's lots of reasons why you might NOT want to use this, and just stick to whatever follower framework or SKSE plugin you have to reduce friendly fire.
1) This is obviously made for my personal use, for my personal game, where I use almost no mods overhauling vanilla destruction spells (beyond whatever I made for myself). If you use Mysticism, it's not compatible.
(ok, technically it IS compatible, but whatever changes your mods make to the vanilla Fireball or Chain Lightning, it won't affect the friendly fireproof version of those spells in my mod)
2) This tweak will be made completely pointless if you already install a bajillion spell mods (like Darenii's or Kittytail's, for example) and distribute them to vanilla followers, because those new spells are not friendly-fireproofed. I do have some spell mods installed in my game, but for the sake of this tweak and my sanity I only gave them to enemies and non-followers.
3) Distribution is done manually--that is, I used filterByNpcs instead of filterByFactions or something similar. It won't automatically work on your Lucien or Xelzaz, unfortunately. The way Skypatcher works right now, I can only remove and then add spells, not "automatically replace any NPC with spell A to use spell B". The good news is you can simply edit the ini files to add (or remove) any NPC you want (for example, you might want to remove Marcurio from the distribution if you're using my makeover of him, since that already comes with his own friendly fireproof spells).
4) Serana is also another can of worms to deal with (tl;dr, it doesn't work on her). The way Bethesda gave her spells is through a script that kicks in every time the player (and thus her) levels up, and Skypatcher can't oveerride that. I tried including her ID in the inis anyway, but you'll see through the console (use MIC to inspect any NPC's attributes, perks and spells) that she has both my friendly fireproof spells AND the vanilla spells that the scripting gave her. You can remove the vanilla spells through the console, but it has to be done every time she levels up, which can be a chore.
5) It also doesn't affect Anska (the adventurer you meet in High Gate Ruins). Her spells pull from bandit mages' leveled spell list and can't be overridden by Skypatcher.
But hey, if you read all of that and still want to give it a try, here you go.
Mediafire
How to add support to other followers or NPCs:
1) Find out the NPC's base ID and the esp name of the mod it came from. For custom followers with a light (ESPFE) plugin, usually only the last three or two digits matter.
For example, Karura is an NPC from the mod KaruraWasabi.esp with base ID FE000819.
Her Skypatcher "code" would be KaruraWasabi.esp|819
2) Open the mod's esp through SSEEdit to double check if the NPC does have a vanilla a spell that can be replaced. Look at their NPC record and scroll down to Actor Effects (sorted)
For example, Karura has "IceStormRIghtHand".
3) Open the Skypatcher inis, located in Data\SKSE\Plugins\SkyPatcher\npc. Frost spells are located in a folder called "NoFriendlyFire_FrostSpells". Open it, then open the ini file inside. Read it and try to sense the pattern (I promise I wrote clear enough descriptions inside the ini files)
4) The top half of the ini is for removing spells, the bottom half is for adding new spells. Since we want to remove IceStormRightHand from Karura, we would need to edit these lines:
5) Scroll down to the bottom section, locate the part about adding KWnoFF_IceStormRightHand--it should be pretty similar. Add your NPC's base ID just like you did above.
6) Save the ini and test in-game.
How to access the spells and staves in-game:
Open the console and search for "KWnoFF" (it's not case-sensitive). You'll see that there are multiple versions of the same spell--the first is the normal spell, while the last two are LeftHand or RightHand version. For player use, you'd generally want the normal version. NPCs can use whatever version.
What if friendly fire still happens even with the spells?
I have a teeny tiny suspicion that Fireball can still trigger friendly fire under rare circumstances (probably something to do with the explosion effect). General advice to stop friendly fire is to open console, click on the follower (or whoever started the friendly fire), type "stopcombatalarmonactor", enter. If that still doesn't work, type "disable" "enable", enter. That should reset the hostility.
Technical details:
Every associated MGEF and SPEL records have these conditions:
- Subject.IsHostileToActor(NULL) < > 0
- Subject.GetPlayerTeammate = 0
Frost spells also have a workaround fix to make sure slow effects work on other NPCs, in case you don't have any other mod or SKSE plugin that fixes this. The workaround is basically a "damage carry weight" effect for 1 point.
There is an extra KID file included to make the spells compatible with NPC Spell Variance. If you don't have it, the file won't do anything.
This is a very very very work-around-"your-mileage-may-vary" mod.
So you know how Skyrim basically has no friendly-fire system prevention ever, especially between mage followers? The player can have that one perk from the Dragonborn DLC (which is wild that in order to not hurt my teammates I have to purchase a DLC and get through the entire black book sequence... but anyway), but your followers can still harm you, or other followers. Especially mage followers. Ever tried bringing Marcurio and Illia or Serana together? Don't.
There have been many many many attempts at removing friendly fire between followers through the many follower framework mods, SKSE plugins etc etc, but I always found that it never quite solved the problem. I could duplicate the Dragonborn perk (Companion's Insight) and distribute them to my followers, but it just makes them unable to damage other followers--such perk still doesn't remove the initial hostility when their spell hits another teammate. I tried some follower frameworks, and I guess it does suppress friendly fire a bit (or maybe it's placebo), but still doesn't nuke it entirely.
And then I remembered that you could attach conditions to spells and/or magic effects. That's how some spells only affect undead, paralyze can't affect dragons, Unrelenting Force can't stagger every single NPC, etc. So I thought, what if I made custom duplicate spells that are incapable of hurting anyone that isn't hostile to the caster, and make followers only use those spells?
It worked (I think).
So this is what this little thing does. I duplicated every single damaging spells*), I attached custom conditions to their magic effects, and then, using SkyPatcher, I curated every single vanilla, DLC, and CC followers, removing their vanilla spells and substituting them with my friendly-fireproof version. I also edited two duplicate spells added by Dawnguard DLC to be friendly fireproof--these duplicates seem to be used by Serana only. Then I did a run through Illia's quest with Marcurio tagging along, and not once did her wide-ass Ice Storm spell hurt the other mage! So I definitely did something right there.
Included spells (they all have LeftHand, RightHand versions, just like vanilla):
- Firebolt
- Fireball
- Incinerate
- Ice Spike
- Ice Storm
- Icy Spear
- Lightning Bolt
- Chain Lightning
- Thunderbolt
- Sun Fire
For completion's sake, I also added staves version to these spells. Staves count as their own spells, so in order to completely eliminate friendly fire with a specific NPC, they have to have BOTH friendly fireproof spells and friendly fireproof staves. However they're not distributed or placed anywhere by default.
Sounds good, right? Almost. However, there's a caveat. There's lots of caveats, actually. There's lots of reasons why you might NOT want to use this, and just stick to whatever follower framework or SKSE plugin you have to reduce friendly fire.
1) This is obviously made for my personal use, for my personal game, where I use almost no mods overhauling vanilla destruction spells (beyond whatever I made for myself). If you use Mysticism, it's not compatible.
(ok, technically it IS compatible, but whatever changes your mods make to the vanilla Fireball or Chain Lightning, it won't affect the friendly fireproof version of those spells in my mod)
2) This tweak will be made completely pointless if you already install a bajillion spell mods (like Darenii's or Kittytail's, for example) and distribute them to vanilla followers, because those new spells are not friendly-fireproofed. I do have some spell mods installed in my game, but for the sake of this tweak and my sanity I only gave them to enemies and non-followers.
3) Distribution is done manually--that is, I used filterByNpcs instead of filterByFactions or something similar. It won't automatically work on your Lucien or Xelzaz, unfortunately. The way Skypatcher works right now, I can only remove and then add spells, not "automatically replace any NPC with spell A to use spell B". The good news is you can simply edit the ini files to add (or remove) any NPC you want (for example, you might want to remove Marcurio from the distribution if you're using my makeover of him, since that already comes with his own friendly fireproof spells).
4) Serana is also another can of worms to deal with (tl;dr, it doesn't work on her). The way Bethesda gave her spells is through a script that kicks in every time the player (and thus her) levels up, and Skypatcher can't oveerride that. I tried including her ID in the inis anyway, but you'll see through the console (use MIC to inspect any NPC's attributes, perks and spells) that she has both my friendly fireproof spells AND the vanilla spells that the scripting gave her. You can remove the vanilla spells through the console, but it has to be done every time she levels up, which can be a chore.
5) It also doesn't affect Anska (the adventurer you meet in High Gate Ruins). Her spells pull from bandit mages' leveled spell list and can't be overridden by Skypatcher.
But hey, if you read all of that and still want to give it a try, here you go.
Mediafire
How to add support to other followers or NPCs:
1) Find out the NPC's base ID and the esp name of the mod it came from. For custom followers with a light (ESPFE) plugin, usually only the last three or two digits matter.
For example, Karura is an NPC from the mod KaruraWasabi.esp with base ID FE000819.
Her Skypatcher "code" would be KaruraWasabi.esp|819
2) Open the mod's esp through SSEEdit to double check if the NPC does have a vanilla a spell that can be replaced. Look at their NPC record and scroll down to Actor Effects (sorted)
For example, Karura has "IceStormRIghtHand".
3) Open the Skypatcher inis, located in Data\SKSE\Plugins\SkyPatcher\npc. Frost spells are located in a folder called "NoFriendlyFire_FrostSpells". Open it, then open the ini file inside. Read it and try to sense the pattern (I promise I wrote clear enough descriptions inside the ini files)
4) The top half of the ini is for removing spells, the bottom half is for adding new spells. Since we want to remove IceStormRightHand from Karura, we would need to edit these lines:
; removes IceStormRightHand from followers and potential allies
; Aranea, Illia, Talvas
filterByNpcs=Skyrim.esm|28AD0, Skyrim.esm|48C2F, Dragonborn.esm|17777:spellsToRemove=Skyrim.esm|BB96A
Those three base IDs are the IDs of Arenea, Illia, and Talvas. Add your NPC here (wherever it doesn't matter, just make sure to separate each ID with a comma and space). For example, adding Karura's base ID would make the line look like this:
Those three base IDs are the IDs of Arenea, Illia, and Talvas. Add your NPC here (wherever it doesn't matter, just make sure to separate each ID with a comma and space). For example, adding Karura's base ID would make the line look like this:
; removes IceStormRightHand from followers and potential allies
; Aranea, Illia, Talvas
filterByNpcs=Skyrim.esm|28AD0, Skyrim.esm|48C2F, Dragonborn.esm|17777, KaruraWasabi.esp|819:spellsToRemove=Skyrim.esm|BB96A
5) Scroll down to the bottom section, locate the part about adding KWnoFF_IceStormRightHand--it should be pretty similar. Add your NPC's base ID just like you did above.
6) Save the ini and test in-game.
How to access the spells and staves in-game:
Open the console and search for "KWnoFF" (it's not case-sensitive). You'll see that there are multiple versions of the same spell--the first is the normal spell, while the last two are LeftHand or RightHand version. For player use, you'd generally want the normal version. NPCs can use whatever version.
What if friendly fire still happens even with the spells?
I have a teeny tiny suspicion that Fireball can still trigger friendly fire under rare circumstances (probably something to do with the explosion effect). General advice to stop friendly fire is to open console, click on the follower (or whoever started the friendly fire), type "stopcombatalarmonactor", enter. If that still doesn't work, type "disable" "enable", enter. That should reset the hostility.
Technical details:
Every associated MGEF and SPEL records have these conditions:
- Subject.IsHostileToActor(NULL) < > 0
- Subject.GetPlayerTeammate = 0
Frost spells also have a workaround fix to make sure slow effects work on other NPCs, in case you don't have any other mod or SKSE plugin that fixes this. The workaround is basically a "damage carry weight" effect for 1 point.
There is an extra KID file included to make the spells compatible with NPC Spell Variance. If you don't have it, the file won't do anything.
Tags: