1. The problem.

Some NPC overhauls (like Bijin, for instance) and many custom followers, are set in a way that they will use their own textures for the skin. They usually do that by changing the Worn Armor (WNAM) that those NPCs will use. Other mods might use meshes not compatible with the textures that we need for this mod, like NPCs based on COtR. This mod will overwrite their skin, using our RSV textures. You might want to keep their original custom skin textures for whatever reason. Or, if you use NPCs based on COtR, you definitely have to keep them or you might find some issues.

The process is very simple when dealing with just a few NPCs by following SPID exclusion rules. Here I'll show you how. (For many NPCs I recommend to use the method described in point 3 of this article).

We'll use here Sofia - The Funny Fully Voiced Follower as an example of a follower mod that uses their own set of textures for the body and head.


2. Solution: those NPCs will use their own textures, without being affected by RSV.

If you want those NPCs to use their own custom textures set by the author of the NPC overhaul or the custom follower, follow these steps. 

Spoiler:  
Show


- Open SSEEdit, go to the plugin containing the NPC that we want to exclude and check its name. In this case is Sofia. (The NPC's name should be exactly the same as the one that it has in SSEEdit when we exclude it in the DISTR file. It also works with the EditorID, but we'll just use its name here).

- Go to RSV_DISTR.ini file included in RSV mod and open it with any text editor.

- In that file go to the penultimate line and after *RSV add or insert a minus sign and the name of the NPC. Like this: Spell = RSVHeadTexturePatch|*RSV,-Sofia (leave the rest of this line as it was, if there was something else). 

- The NPCs that are valid to get their head textures changed (*RSV) will have them changed except if its name is Sofia (-Sofia).

- Now go to the last line and do the same. Like this: Skin = 0x818~Racial Skin Variance - SPID.esp|*RSV,-Sofia (leave the rest of the line as it was, in case there was something else).

- The NPCs that are valid to get their skin changed (*RSV) will have them changed except if its name is Sofia (-Sofia).

- So, you can exclude NPCs from getting their head textures changed to RSV by avoiding them to get the spell that does just that following SPID rules for exclusion. It is the same for their skin (the body).

- Those NPCs will get the custom textures for the head and body set in their own mods.



3. How to exclude many NPCs at once to let them use their own set of textures.

SPID distribution, as of now, cannot manage NPCs in bulk, except when they are added by a plugin. However, this only works when those NPCs are added  into the game by that plugin. It doesn't work when the plugin is modifying already existing NPCs in the vanilla game or its DLCs. Unfortunately, this is exactly what NPCs overhauls do: they modify existing NPCs.

So here we have two options if we want those overhauls to keep their own textures. We can add every one of those NPCs manually to the exclusion list as we've seen above, which is very tedious to do if we have to exclude dozens of them. Or we can add a Keyword (KYWD) to those NPCs and then exclude that Keyword from the distribution. We cannot do that with SPID without having to write every NPC's name, so we have the same problem as we had with the first option. To avoid this and to add a Keyword to those NPCs in a few clicks, we'll use SSEEdit and the scripts provided in this mod's Miscelaneous Files, that DarthBlender  has created and very generously given to us to this very same purpose. SO A THOUSAND THANKS AND KUDOS TO HIM!!

Download the script files and copy the folder Edit Scripts into SSEEdit main folder.

So follow these easy steps to create a patch for your NPCs overhauls if you want to keep their custom textures and not get overriden by RSV. For this, we are going to use Sons of Nirn - Whiterun by Lilson, as an example of an overhaul containing a lot of NPCs that uses its own custom textures. We can check if a mod uses its own textures by checking if it has a (or several) custom WNAM set for its NPCs by clicking in any of its NPCs records:

Spoiler:  
Show




Step 1. Create a patch-plugin (this step is not extrictly necessary, but this way we don't need to modify the original mod).

Spoiler:  
Show


- Open SSEEdit and go to Sons of Nirn - Whiterun.esp. Open the Non-Player Character (Actor) tab and select all NPCs (or those that you don't want to get modified by RSV).

- Once selected, right click of them and in the pop-up window select Copy as override into... 
Spoiler:  
Show


- In the new window, select <new file>.esp [template] ESL
Spoiler:  
Show


- Write the name of the new plugin. (Something you can easily identify later).
Spoiler:  
Show


- Now you have a new plugin that will serve us as a patch without having to modify the original mod.
Spoiler:  
Show





Step 2. Set RSV as master of the patch we just created.

Spoiler:  
Show


- Right click on the plugin that we have just created and in the pop-up window click on Add Masters...
Spoiler:  
Show


- Now, select the main RSV plugin.
Spoiler:  
Show




Step 3. Apply the script to the NPCs of the patch.

Spoiler:  
Show


- Select all NPCs of our patch and right click on them. Then select Apply Script...
Spoiler:  
Show


- On the new window, search for the script in the scroll down menu. *Since v. 2.0 there's only one script for males and females both. You have to select the one for both, no matter your selection in the FOMOD of RSV.
Spoiler:  
Show




Step 4. Check that the keyword is correctly applied.

Spoiler:  
Show


- Check the NPCs and see that the keyword RSVignore* has being included into their records. *This is the keyword that RSV is using since v. 2.0. Do not mind the one (DoNotSwap) that appears in the following picture. The keyword that should be there is RSVignore.
Spoiler:  
Show




Step 5. Save the new plugin.

Spoiler:  
Show


- Click on the top left corner of SSEEdit and save the file.
Spoiler:  
Show


- If you used MO2, the new plugin should be in Override. (I don't know where it ends up if using Vortex... I don't use it xD)



Step 6. Create the new mod and check the Load Order.

Spoiler:  
Show


- Now create a new mod containing our just created and modified plugin and write a name for it that you can easily indentify later.

- Make sure that this patch has higher priority than RSV and the NPC overhaul that it patches (in this case, Sons of Nirn - Whiterun.esp).




Now you're done. You don't need to do anything else. The distribution files for SPID provided in this mod, already have included the exclusion for the new keyword that we just added to those NPCs.



4. SPID rules

To exclude NPCs for the distribution, simply add a minus sign before their name separated by a comma.

To add for the distribution, follow the same rules, but don't add the minus sign. It's that simple!

You can also apply the keyword RSVignore to exclude any NPC from distribution with SPID. You can use a new DISTR file for it or just add as many lines as you want to the already existent DISTR files. If you want to include several NPCs at the same time, simply separate their names by a comma.

Spoiler:  
Show


Keyword = RSVignore|Sofia,Serana



If you want to exclude any NPC but just from teeth distribution, then you can use the same method but using the keyword RSVIgnoreTeeth.

(This mod is wonderful if you want to use this method but for a bunch of NPCs at the same time: Copy Records to Clipboard. Thanks a lot to AizenV to point that out).

By following very simple SPID rules, we can adapt our custom NPCs selection to our liking. We can have NPCs with custom textures and others with RSV textures... Whatever we like. The examples shown here can give you an idea of what you can do.

I recommend you to check SPID mod page to learn more about it.

Article information

Added on

Edited on

Written by

Thardrim

43 comments

  1. aethoobaec
    aethoobaec
    • premium
    • 2 kudos
    @Everyone do yourself a favor, ignore everything on this page because its useless and cost me 3h of my life :)
    and read the official documentation SPID: The Complete Reference

    Also be aware that every file in your Data directory which ends in _DISTR.ini gets read by SPID.
    There could be duplicates or false positives or what else not in other files.

    SPID takes also a good amount of time to swap all the stuff in all DISTR-files in your system.
    So your changes will not immediately be visible after you load the game for your next test.
    1. rskstrike
      rskstrike
      • member
      • 4 kudos
      How do I exclude an npc then?
    2. aethoobaec
      aethoobaec
      • premium
      • 2 kudos
      Its a complete mess. SPID does not have a well defined and disambigous logic by itself.
      Also in RSV_DISTR.ini they define Keywords containing Stringfilters and Formfilters interchangeably.
      But in the resulting distribution rules for Spell and Skin they reference only the Stringfilter list of SPID. The second column.
      The proclaimed logical interconnection between Stringfilters and
      Formfilters is an AND. As within the comma seperated expressions it
      should be an OR.

      This is the statement in the SPID manual:
      All Filters sections are multiplicative (combined using logical AND
      operation), while expressions within the same section are additive
      (combined using logical OR operation).

      Regarding to this logic the DISTR-rules we see should not work at all. But obviously they do.

      For my own use case the following works reliably:

      EDID Editor ID: AAA_SweeneyFollower
      Base Form ID: FE089807
      Plugin Name: Sweeney_follower.esp

      I would not suggest to use the NPC names in Stringfilters with wildcards as it could be ambigous.
      The most unique addressing scheme would be the Form ID like e.g.:
      Form ID light plugin: 807~Sweeney_follower.esp
      But the Editor ID works also fine.

      For the Body Data/RSV_DISTR.ini:
        Keyword = RSVignore||AAA_SweeneyFollower

      For the Head Data/RSVBnPteeth_DISTR.ini:
        Keyword = RSVignoreTeeth||AAA_SweeneyFollower

      And this should work for multiple followers or npcs:
      Keyword = RSVignore||EditorID1,EditorID2,...

      Any of these alternatives work as well:

        Keyword = RSVignore|*sweeney
        Keyword = RSVignore||AAA_SweeneyFollower
        Keyword = RSVignore||807~Sweeney_follower.esp

      In contrast to my earlier statement SPID is really fast and distributes within milliseconds after you load the game.
      To get detailed information about your npc ingame I use More Informative Console
      You can also quickly check in the texture section if your NPC uses the desired texture filenames and paths.
    3. rskstrike
      rskstrike
      • member
      • 4 kudos
      Okay, this works but now i've got an issue, on old saves it still reverts to racial skin variance when I first load them, but when i go to a different location it reverts to the normal npc skin and body.

      When I create a new game it works correctly.
    4. aethoobaec
      aethoobaec
      • premium
      • 2 kudos
      There is a po3_SpellPerkItemDistributor.log somewhere propably in your SKSE log directory.
      It tells a bit what its doing. Maybe the debug level can be increased to show what its distributing to each individual npc.
    5. Chugumbius
      Chugumbius
      • premium
      • 2 kudos
      Hey , thanks for the tip. It shouldn't matter where exactly i add this line , right ? 
    6. aethoobaec
      aethoobaec
      • premium
      • 2 kudos
      This is what SPID tells:

      Within each type forms are distributed in the same order that they were loaded with a few exceptions:

      Keywords are additionally sorted to make sure that keywords that depend on other
      keywords will be distributed later than their dependencies. This allows
      you to freely use keywords as requirements for other keywords without
      manually ordering them.

      So I would say order within the same DISTR file doesn't matter.
      I didn't check for conflicts with equal rules or dependencies in other DISTR files but po3_SpellPerkItemDistributor.log tells you what its doing.
    7. MadMaxx97
      MadMaxx97
      • member
      • 1 kudos
      .
    8. Chugumbius
      Chugumbius
      • premium
      • 2 kudos
      This Worked flawlessly with Editor ID , thank you very much. 
    9. stevenpanca
      stevenpanca
      • member
      • 0 kudos
      it's funny how you encourage people to ignore everything in the article, when what you explained are already explained in the article. 
      Keyword = RSVignore|Sofia,Seranait's as simple as that. 

      the author also recommend to check SPID mod page to learn more about it. 
  2. gidzii
    gidzii
    • member
    • 3 kudos
    I'm using this Lucien follower mod and I have this replacer, he got a weird face after I installed RSV. I've already excluded Lucien to the SPID list and it works fine the first time, but afterwards when I loaded my save game it goes back to the weird face again, any help?
    1. mixynix
      mixynix
      • supporter
      • 0 kudos
      Hey I had the same issue with another Lucien replacer but adding this line:

      Keyword = RSVignore||JRLucien

      in RSV_DISTR.ini helped.
  3. Corn11
    Corn11
    • member
    • 5 kudos
    First time I've tried this before, doing it for this new Lydia replacer because she has cool tattoos: 
    https://www.nexusmods.com/skyrimspecialedition/mods/127860?tab=posts

    Following all the steps in Part 3 here and nothing has changed at all. Has anybody else tried it? I feel like it must be an issue on my end but I followed all of the instructions exactly. Thanks!
  4. dazuzu
    dazuzu
    • premium
    • 1 kudos
    I'm using Seranaholic as my replacer and I tried excluding her as per the guide but she keeps appearing with a vampire nose. Uninstalled to check vanilla and she was fine. Is there a keyword for the nose like RSVIgnoreTeeth? I also did the second option of making the plugin. Still didnt work. But the weird thing is I spawned a second instance of her and she didnt have the issue, so im at a complete loss lol. Always had trouble with damn vampires in this game. >:(
    Edit: Well I've either fixed the issue myself or it fixed itself.
    1. Quiller4444
      Quiller4444
      • member
      • 0 kudos
      Is it fixed by itself or what?
      i got  the same problem, cant figure out what to do...
  5. FAANickell
    FAANickell
    • premium
    • 4 kudos
    I know this is a texture mod, but it is playing havok with my follower mods that have unique body meshes (femalebody_1.nif, femalehands_1.nif, and femalefeet_1.nif - all incorporated through the "worn armor" field in SSEdit that loads their femalebody meshes from a different folder instead of the baseline body meshes at ...\actors\character\character assets\femalebody_1.nif, and same for feet and hands).

    When I put this mod in my line up, they all start using the baseline body meshes. I discovered this several hours after launching a new game with the RSV SPID (their clothing showed the correct bodyslide preset, but when I went to change it, discovered their bodies no longer matched - I have used these followers in other playthroughs without this SPID, so I know they work.)

    I'm guessing I can use RSVIGNORE for those particular followers, but some of them use the baseline textures.

    In a perfect world, I would like to have my followers use their assigned body meshes yet SPID-in the RSV textures with this mod. Can this be done?


    Finally, as mentioned, I discovered this several hours after launching a new game with the RSV SPID. If I go into the DISTR and RSVIGNORE these followers as a fix, Can I load an existing save and see these followers as if this SPID never loaded them? If not, can I recycleactor or Disable/enable to reload with them ignored? ... Or do I have to restart the whole playthrough?

    TIA.

    [EDIT] Bad news for me. I added my followers to RSVIGNORE and RSVIGNORETEETH and 1) the textures did swap back to normal with disable/enable BUT ... 2) The meshes did not update to the ones assigned in their mod. Not sure how to fix this mid playthrough ...

    [2nd Edit] More bad news - for all mods that have unique body meshes - whether they be new followers or NPC remakes. RSVIgnore and RSVIgnoreTeeth will work to keep their unique textures BUT their unique body meshes will revert to the baseline body meshes. I tested this by starting a new game in the ASLAL Prison cell without the RSV SPID, spawned a follower with body meshes, and removed their clothes - follower was using their unique body meshes. Tried the same with the RSV SPID and the follower put in the RSVIgnore line of the RSV_DISTR.ini - RSV textures did not load on follower, but they had the baseline body mesh.

    Unless there are different ways to have this SPID ignore followers/NPCs, this mod appears incompatible with follower/NPC mods that have unique body meshes.

    Bummed.
  6. adandyman78
    adandyman78
    • premium
    • 1 kudos
    I'm using Lyris Titanborn from Coldsun and for some reason she has sharp teeth. Anyone know how I can have her have regular white teeth instead?
    1. AizenV
      AizenV
      • premium
      • 92 kudos
      I believe all coldsun NPC mods come with their own skin textures, 
      that means they should all be excluded from RSV to begin with, in the manner already described above. 
    2. Thardrim
      Thardrim
      • premium
      • 119 kudos
      You can exclude just teeth distribution by adding the keyword RSVIgnoreTeeth to that NPC.
  7. lsnoop
    lsnoop
    • member
    • 1 kudos
    Penultimate what? Mine last six lines say

    Skin = 0x818~Racial Skin Variance - SPID.esp|*RSV,-RSVasian,-RSVafflicted,-RSVfantasymer,-RSVvampirebeast,-RSVsnow,-RSVignore|NONE|NONE|F
    Skin = 0xDDD~Racial Skin Variance - SPID.esp|RSVfantasymer,-RSVvampire,-RSVasian,-RSVvampirebeast,-RSVignore|NONE|NONE|F
    Skin = 0xDDE~Racial Skin Variance - SPID.esp|RSVafflicted,-RSVignore|NONE|NONE|F
    Skin = 0xDDF~Racial Skin Variance - SPID.esp|RSVvampirebeast,-RSVasian,-RSVfantasymer,-RSVignore|NONE|NONE|F
    Skin = 0xDE0~Racial Skin Variance - SPID.esp|RSVasian,-RSVvampire,-RSVfantasymer,-RSVvampirebeast,-RSVignore|NONE|NONE|F
    Skin = 0x84F~Racial Skin Variance - SPID.esp|RSVsnow,-RSVignore|NONE|NONE|F

    Where and what do I change to exclude Camilla for example?


    1. mabezard
      mabezard
      • premium
      • 10 kudos
      I think this article needs updating. I just found out it's easier to add the RSVignore keyword to any NPCs you want to exclude as it's already in all of those SPID lines.

      So in the ini look for RSVignore and then add the line
      Keyword = RSVignore|Sofiato add the keyword to Sofia. It works, just tested in my game.
    2. lsnoop
      lsnoop
      • member
      • 1 kudos
      Thanks a lot
    3. FoxTheMalder
      FoxTheMalder
      • premium
      • 0 kudos
      Can I add to the same line more NPC's seperated by coma?
    4. Exarielle
      Exarielle
      • premium
      • 26 kudos
      If I understood the description page for SPID correctly, then yes. From the SPID main page:

      Multiple strings should be separated using a comma.  All keyword strings, names and editorIDs
      (vanilla and modded) are supported.
       
  8. BeranabusBarnes
    BeranabusBarnes
    • premium
    • 70 kudos
    A Synthesis patcher for this that auto-checked for WNAM would be a godsend.
  9. dvdaed
    dvdaed
    • premium
    • 14 kudos
    Fixed the Femboys!
  10. Revan410
    Revan410
    • premium
    • 1 kudos
    Thank you so much for this! Following this I was able to give my bijin npcs hair with physics. The bards shall sing songs in your honor!