Skyrim Special Edition

File information

Last updated

Original upload

Created by

MongoMonk

Uploaded by

TheBearMan

Virus scan

Safe to use

Documentation

Readme

View as plain text

EBD - EveryBody's Different Redone
by
MongoMonk

Version: 3.45
Released: 10.04.2013
Last Update: 24.02.2021
SE Site: https://www.nexusmods.com/skyrimspecialedition/mods/15257/
LE Site: http://www.nexusmods.com/skyrim/mods/51612/
Source Code: https://gitlab.com/MongoMonk/ebd


- Readme Contents -

- 1. Summary
- 2. Requirements
- 3. Compatibility
- 4. Future Plans
- 5. Block Files
- 6. Overview
- 7. Installation
- 8. Uninstallation
- 9. Updates/Upgrading
- 10. Consistency
- 11. Known Issues
- 12. Details
- 12.1. NPC body and face textures
- 12.2. NPC body meshes
- 12.3. NPC height
- 12.4. NPC headparts
- 12.5. NPC animations
- 12.6. NPC weight
- 12.7. Face textures for the player character
- 13. Using Profiles in Mod Organizer (MO) or Nexus Mod Manager (NMM)
- 14. Texture Tools/VRam Usage
- 15. Version History
- 16. SSE Port
- 17. Tools Used
- 18. Credits
- 19. Recommended Mods
- 20. Permissions
- 21. Disclaimer

(you may Ctrl+f for any topic)


- 1. Summary -

When using EBD every NPC will get more personality by being diversified. This means everybody's different and every body's different.

EveryBody's Different Redone is a continuation of my patcher EveryBody's Different. Redone marks the version upgrade to version 3.00. While the patcher was not redone from scratch, many parts were rewritten and many new features were added. I think that this justifies a re-release. For the sake of simplicity I'll still call it just EveryBody's Different or EBD from now on.

This mod is a skyproc patcher meant for diversifying NPCs throughout Skyrim. Skyproc patcher means that it is a java program which is run once after you've downloaded the patcher. You can change your settings in a convenient user interface. Each time you add/remove NPC adding/changing mods you should rerun the patcher. The patcher will work with any load order and works with mod added and vanilla NPCs.
EBD offers several options to make NPCs more interesting. Most of them require no work from the user (you!) at all and all are optional (i.e. may be turned off/on at anytime). The main features are:

Option to set height ranges for the vanilla races. Every NPC will have a height in the range you define for that race. EBD comes with a predefined set of values, but you may change them to your liking. This feature is completely script free as all changes are done in the plugin (the .esp).

Option to distribute hair styles, eye colours, scars, eye brows and beards among NPCs. This includes headparts added by mods. You can finally let all the NPCs in Skyrim benefit from ApachiiSkyHair and the like. The distribution works on a random basis but you can optionally use an in game menu to select specific headparts for every NPC. You may also block specific headparts. This feature uses a script which in itself is quite lightweight. However, especially the hair meshes might cause a slight stutter when loaded from your hard disk. There are several options to reduce that stutter.

Option to distribute textures and meshes among NPCs. This feature requires you to set up the meshes and textures as described below. It allows you to see all those great texture (and mesh) mods in your game simultaneously. It also means that your player character textures will be unique (without the need of any custom races). As of version 3.00 you're able to assign specific textures to specific races. This feature is mostly script free. However, it needs a very lightweight script to apply the face tints. The script and performance impact is barely noticeable, though you should use texture resolutions not too demanding for your VRAM.

Option to have all females use female animations. You may have noticed that soldiers, bandits, orcs and housecarls use male animations even when they are female. This feature will have all females use female animations. Best used on a new game as animations can't be changed for NPCs you've already encountered. Completely script free.

There are more features you can discover below or when running the patcher.
Please note that the script is entirely optional. Also it is not running permanently, it only runs once per NPC you encounter. It executes pretty fast and EBD should be safe to uninstall at any time even with the script enabled.


- 2. Requirements -

Java runtime environment version 8 and up (http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html)
Knowledge about skyproc patchers
No DLC required
No SkyUI required

Optional: SKSE version 1.7.3 (and up) is required if you want to use the texture feature or/and if you want to use the headparts feature. Get SKSE here: http://skse.silverlock.org/
Optional: JContainer 3.3.0 (and up) is required if you want to use the headpart feature. Get it here: http://www.nexusmods.com/skyrim/mods/49743/
Optional: UIExtensions (http://www.nexusmods.com/skyrim/mods/57046/) OR Extensible Follower Framework (EFF, http://www.nexusmods.com/skyrim/mods/12933/) is required for the headpart feature in game spells/menus
Optional: RaceMenu (http://www.nexusmods.com/skyrim/mods/29624/) is required if you want to have the cosmetic menu for NPCs (to edit tattoos and body scales)
Extremely Optional: PapyrusUtil (http://www.nexusmods.com/skyrim/mods/58705). When using the EBDCustomizerSpell or EBDDebugSpell they will print information about NPCs to the console if PapyrusUtil is installed.


- 3. Compatibility -

This mod should work with ANY setup and any other mod. It works with any mod which adds NPCs and adds those NPCs to the random mix automatically (that's the concept of a skyproc patcher).
It is also compatible with any body mod. Use CBBE, UNP, Adec, ... whatever comes to mind. All the textures you add to the patcher have to be for the the SAME BODY TYPE (the body you're using) or strangeness will occur. Compatible with any NPC overhaul and follower mods.

EBD is completely compatible with Enderal! See the LE Files section for Enderal LE.
The SE Version of EBD is compatible out of the box with Enderal SE: https://www.nexusmods.com/enderalspecialedition/mods/1

If you want some NPCs from mods to be excluded, then add the mod's .esp file to "SkyProc Patchers\EBD\Files\Blocklist.txt".
For the headpart feature you can use the included spell for excluding certain NPCs or certain headparts without the use of the Blocklist.txt.

Note that for SSE the patcher will still produce form 43 esp files. This is NOT a problem and purely a cosmetic issue.


- 4. Future Plans -

- make the height feature import the load order and therefore import all races to set them up in the gui. Add the ability to choose between Uniform distribution and Gaussian distribution
- make the mesh feature (optionally) independent from the texture feature
- make the texture feature faction specific


- 5. Overview -

This skyproc patcher changes several attributes of all NPCs in the game:

- NPC body and face textures (all races, males and females); requires SKSE for the face textures. Yes, this is like Automatic Variants, but for NPCs. Works for any body type (UNP, CBBE, ...) as long as your provide the appropriate textures. There is a race-selection feature built into patcher allowing you to select specific races for specific textures; requires SKSE
- NPC body meshes (all races, males and females); script free. This feature works only in combination with the above texture feature. Furthermore it only replaces the meshes of the naked body, no armor/clothes meshes; requires SKSE
- NPC height (all races, males and females); script free
- NPC hair styles, eye colours, scars, eye brows and beards(all races, males and females, includes mod added hair); requires SKSE and JContainers
- NPC animations (set the "use opposite gender animation" flag to false for all females, enable Orc "ladies" to use female animations); script free
- Bonus feature: add all face textures the patcher finds to the complexion slider for your player character to choose

Every feature is optional and can be turned on or off at your leisure. The mod uses a script for fixing face tints and applying headparts (called helper script). The script is activated automatically if you enable either of these options.
Please note: The script is pretty light weight. It works via a magic effect attached to all playable races. It is only run once per NPC you meet in one gaming session. After the face/head of that NPC is processed the magic effect dispels. There is NO polling, any events recurring on a timer or cloak spell. Stutter might occur when loading headpart meshes from your hard disk into the game. This not so much Papyrus lag but more just loading lag. Note that the body textures are precached by the game as they are set in the esp file. Therefore they won't introduce loading stutter as they are loaded during load screens.
It is very safe to remove the mod even when using the script. I've done so several times without getting ANY papyrus errors. Check the uninstallation section for more information.


- 6. Block Files -

The patcher only processes races which have the isActorTypeNPC keyword and the Child flag set to false. However, there are still some test/misc races from Bethesda or mod added races you may want to have globally ignored. As of version 3.00 there is a file called "Race_BlockedEDIDs.txt" in "Data\SkyProc Patchers\EBD\Files". This is a blacklist. Race Editor IDs containing any of the strings listed in there will be ignored. It comes already pre-filled with some EDIDs which are safe to ignore. You may however change that list to your liking.
Note that in the same folder there are files called "TexturePack_validEDIDsArgonian.txt" and "TexturePack_validEDIDsKhajiit.txt". They are whitelists which define the Argonian and Khajiits races. Since both beast races have the isBeastRace flag set, I needed some further means to separate the two of them. The beast races have to contain at least one of the strings listed in there to be recognized for the texture feature. They come with the correct keywords for Khajiits and Argonians pre-filled. If you want to add support for some custom Khajiit/Argonian race you'll have to do it here. This again concerns the EDIDs (Editor IDs).

As of version 3.01 there is a file called "Npc_BlockedEDIDs.txt" in "Data/SkyProc Patchers/EBD/Files". Use this file to block specific NPCs or groups of NPCs from being processed by EBD.
Use it for example for follower mods which also add a bunch of non-unique NPCs. Let's assume you have the Vilja follower mod installed. This mod adds Vilja and a bunch of other less-unique characters to your game.
You probably don't want Vilja herself to be changed by EBD but the other NPCs should be changed. So you just add the EDID (find out via TESVEdit or the Creation Kit) of Vilja to the aforementioned file. This way all NPCs from that mod are changed except for Vilja.
You may also use the file to selectively ignore special NPCs. For example if you add "HousecarlWhiterun" then Lydia will be excluded. If you just add "Housecarl" (without quotes) then all housecarls will be excluded.

As of version 3.05 there is a file "HeadPart_BlockedEDIDs.txt" in "Data/SkyProc Patchers/EBD/Files". Use this file if you want to block specific headparts (hair, eyes, ...) from being distributed by the headpart feature.
Your in game selection of blocked headparts when using the EBDCustomizerSpell will be imported to this file. You may edit this file directly to block specific headparts or groups of headparts from being distributed by EBD.

Note that for all those text files the EDIDs you add are case insensitive, so upper/lower case does not matter. You can put any entry in double quotes (like "this") to force an exact match. Not using quotes means that also EDIDs just containing the string will be blocked. For example adding Ria to the "Npc_BlockedEDIDs.txt" while block the NPC Ria and also ALL Imperials since they contain the string ria. So if you just want to block Ria only you'd add "Ria" in double quotes to the file.

The patcher creates a file called "EBD Summary.txt" in "Data\SkyProc Patchers\EBD\SkyProcDebug". You can view some information about what the patcher has done in there. This is especially useful if you want to see whether the textures packs were created as intended.


- 7. Installation -

Use NMM, Mod Organizer or Wrye Bash to install. If you are familiar with Skyrim's folder structure you can install manually of course.
If you want to use body/face textures set them up as shown in the "NPC body and face textures" chapter.
Run the included "EBD.jar" in: "Data\SkyProc Patchers\EBD".
Configure the patcher as you please.
Check the created "EveryBody's Different.esp" in your launcher.

If you are using Mod Organizer and are new to skyproc patchers have a look here: http://wiki.step-project.com/Guide:Mod_Organizer#tab=Third_Party_Programs
Scroll down to SkyProc Patchers to see how they are used with Mod Organizer.


- 8. Uninstallation -

Uncheck the "EveryBody's Different.esp" in your launcher.
Delete the file "EveryBody's Different.esp" & remove the folder "EBD" in "Data\SkyProc Patchers\" and in "Data\Textures\" and in "Data\Meshes\".
Delete the files "EBDCustomizerScript.pex", "EBDHelperScript.pex", "EBDDebugScript.pex", "EBDGlobalFuncs.pex", "EBDHeadPartFuncs.pex" and "EBD_Domain.pex" in "Data\scripts".
Delete the folder "SKSE\Plugins\JCData\Domains\EBD_Domain". This will lead to JContainers removing all traces of EBD from your co-save if you were using the headpart feature.
If you're not using the helper script you can remove the mod any time.
If you are using the script (either if you have the texture or headpart feature enabled) then go inside some place with no or few NPCs (like a player home), save & remove the mod then. Even if you're not following that procedure there should be no errors when removing the mod. I recommend this procedure just to take no chances.
Note that when using the headpart feature the selected headparts of each NPC are written to your co-save. When uninstalling EBD this data is automatically removed by JContainers (this happens when you remove the folder "EBD_Domain" which was mentioned before). This means you should never remove JContainers and EBD at the same. If you want to uninstall JContainers as well, uninstall EBD first, go in game & save, then uninstall JContainers.


- 9. Updates/Upgrading -

Generally every update of the patcher is safe to overwrite the previous version with. However, you should always rerun the patcher after upgrading. Otherwise you might get a mismatch between the data in the plugin and what the script expects. Even if you don't use any script functions you should rerun the patcher to benefit from bug fixes and new features.
IMPORTANT: If you are using the helper script then please go somewhere inside with as few NPCs as possible (i.e. player home) BEFORE updating. Then save, then update. This is to make sure that no scripts are still running on NPCs when you upgrade as this might lead to script errors. This is not a necessity but definitely advantageous.


- 10. Consistency -

Consistency is the feature which allows the NPC modifications to persist even if the patcher is rerun. This affects all features which are random. These are: The headpart feature, the texture/mesh feature and the height feature.
Note that no NPC is modified in any way unless you run the patcher. However, in some cases you will have to rerun the patcher. For example when updating EBD or removing/adding a mod which includes NPCs.

The headpart feature works very differently from the others, so let's start with that one.
NPCs get their headparts assigned the first time you meet them ingame. They are saved to your SKSE co-save using JContainers. They'll always stay the same unless:
- you remove the mod containing the distributed headparts
- you add headparts to the HeadPart_BlockedEDIDs.txt or use the in game menu to block them; these headparts will obviously not be used by EBD anymore
- you uncheck & recheck EBD's .esp file and save in-between (i.e. make a "clean" save)

The texture/mesh and the height feature work similar in their consistency storing. The NPCs get their values assigned by the patcher, directly into the .esp file. To restore the adjustments for the next patcher run they are saved into .xml files found in "Data\SkyProc Patchers\EBD\Consistency". There is a setting on the patcher's Main Settings panel named "Enable Consistency". This decides whether or not to enable consistency for the height and texture/mesh features. I'd recommend to enable it (which is the default setting). It will, however, increase patching time.
The patcher will create a hash for each feature which stays the same across multiple patcher reruns (and even updates) unless you change the configuration. If the hash has not changed compared to the one found in the .xml file then patcher will import the NPC adjustments from the .xml file instead of assigning new random ones. Note that the patcher will inform you via the "EBD Summary.txt" whether or not the hash for a given feature has changed since the last run.
The hash for the height feature will only change if:
- you change any setting at the Height Settings page

As you can deduce the hash is purely based on the values found on that page. Therefore the NPC heights are load-order independent and the same height consistency may even be used for different save games.

The hash computation for the texture/mesh feature is much more complicated. For each texture type (female/male and Humanoid/Argonian/Khajiit) the assigned textures/meshes & the hash are saved independently. The hash for a specific texture type will only change if:
- you add/remove (enable/disable) any mainpack/subpack
- you enable/disable any race for any mainpack/subpack (either in the TexPack Editor or using the Race_BlockedEDIDs.txt)
- you add/remove any texture file from any subpack
- you install/uninstall any mod which includes races valid for the texture/mesh feature
- you install/uninstall any mod which alters the "base" records EBD imports

To sum it up the hash will change (and all NPCs will be reassigned) if you make any change to your file setup (except for replacing a file) or when you make any change inside the TexturePack editor.
Furthermore mods adding races EBD considers valid (like Dawnguard or Dragonborn) will be factored inside the hash as well. Finally mods editing the base armors or armor addons or texture sets of a valid race are considered as well (an example would be Ethereal Elven Overhaul).
This means the texture/mesh feature is mostly consistent even across different load orders as very few mods fall into the above categories. However, if you're using Mod Organizer I'd recommend to have the consistency files the patcher creates moved into different "mods" which are only active for the given profile. This way you'll avoid having EBD overwriting the consistency files on accident.



- 11. Known Issues -

Helper Script: the helper script will not run on dead actors. This means dead NPCs will not get their face tints or headparts applied. Some dead actors are fixed on game load though (this method unfortunately does not catch all dead actors when outdoors).

Headpart feature: the CustomizerSpell will not work on NPCs which have the ghost flag enabled. These may be "normal" NPCs, i.e. they don't need to be to be translucent ingame. However, if you hit them with a weapon or spell it goes right through them. Same goes for the CustomizerSpell. As a workaround you may click on such an NPC with the console open and enter "SetGhost 0", then use the CustomizerSpell. When you're done again open the console, make sure the NPC is selected and enter "SetGhost 1" to make the NPC a ghost again. If you know how to apply an aimed spell at NPCs with the ghost flag set, please let me know.

Headpart feature: some particular NPCs (I have yet to determine which exactly) will receive their old headparts when changing cells. I.E. their old hair/eyes/beard will clip with the new one assigned by EBD. This only happens with a few NPCs and only after they change cells. They will look fine on game load. Seems to an engine bug which I cannot fix.

PLEASE NOTE: The patching can take some time (up to five minutes on my system). It depends on how many mods and texture packs you have installed. Patching is sped up significantly if you enable "Add all mods as masters" in the Other Settings panel. This comes with the disadvantage of having to rerun the patcher each time you remove ANY mod from your load order (as opposed to only having to rerun the patcher when you remove a mod EBD actually depends on).


- 12. Details -

- 12.1. NPC body and face textures (humanoid races, males and females) -

Important: The patcher provides no texture files. You have to put the texture files where they belong yourself. Every time you add or remove textures you have to rerun the patcher!

You may get some example TexturePacks here: http://www.nexusmods.com/skyrim/mods/51638/

This feature allows you to distribute body and (matching!) face textures on a random per race basis for every npc in the game. The valid races for each mainpack/subpack are selected in the patcher gui.
Note that by default all mainpacks/subpacks and all valid races are ENABLED. If you want to disable specific mainpacks/subpacks OR the valid races for a mainpack/subpack you should do that in patcher interface.
This means that for example if you add Dragonborn to your load the new races introduced by that DLC will, by default, be enabled for all your texture packs. Of course this only concerns races which are valid for the texture feature in the first place.

Nice side effect: the body/face textures you installed regularly will be unique to your player character.
To use this feature you are required to be able to create some folders and put the body/face textures in there by hand. Some basic knowledge of the different texture files for Skyrim is advantageous but not required.
No worries though, I implemented the feature very straight forward. Once you figured it out, it's really intuitive to use. The patcher uses so-called mainpacks and subpacks to achieve its goal.
Mainpacks are just folders and subpacks are subfolders in a mainpack folder. The subpacks contain the actual texture files

Here is the concept: mainpacks classify textures of the same making (for example CBBE standard or MatureSkin or navetsea or ...). This means textures in one mainpack should share some "base" files. For example the "*_s.dds", "*_sk.dds" should be compatible with all the other texture files you put into that mainpack ("*_msn.dds" and color textures). Race specific textures (like face normal maps) which come with most body textures should be put into their own subpacks.

As of version 3.00 you're able to assign specific textures to specific races in the patcher interface. The interface is self-explaining (I hope) as it has in-built help descriptions.
For the race selection interface to work you have to make sure that:
a) "Import Mods on Startup" in the Other Settings panel is checked (enabled)
b) You HAVE TO wait until the patcher has imported your load order before opening the TexturePack Editor. Otherwise not all races (or even none) in your load order will be recognized. The patcher says "Done Importing" in the lower left corner when it has finished importing.

Let's get some technical stuff sorted first. Here is the file setup:

Female humanoid (all the standard races except Khajiits and Argonians) mainpacks go to "Textures\EBD\Female" and male humanoid ones to "Textures\EBD\Male".

Female Argonian mainpacks go to "Textures\EBD\FemaleArgonian" and male Argonian ones to "Textures\EBD\MaleArgonian".

Female Khajiit mainpacks go to "Textures\EBD\FemaleKhajiit" and male Khajiit ones to "Textures\EBD\MaleKhajiit".

The following files are recognized for humanoid texture packs:

- Females: "FemaleBody_1.dds", "FemaleBody_1_msn.dds", "FemaleBody_1_sk.dds", "FemaleBody_1_s.dds",
"FemaleHands_1.dds", "FemaleHands_1_msn.dds", "FemaleHands_1_sk.dds", "FemaleHands_1_s.dds",
"FemaleHead.dds", "FemaleHead_msn.dds", "FemaleHead_sk.dds", "FemaleDetailmap.dds", "FemaleHead_S.dds";

- Males: "MaleBody_1.dds", "MaleBody_1_msn.dds", "MaleBody_1_sk.dds", "MaleBody_1_s.dds",
"MaleHands_1.dds", "MaleHands_1_msn.dds", "MaleHands_1_sk.dds", "MaleHands_1_s.dds",
"MaleHead.dds", "MaleHead_msn.dds", "MaleHead_sk.dds", "MaleDetailmap.dds", "MaleHead_S.dds";

Note that "(fe)maleHeadOrc_msn.dds" has to be renamed to "(fe)maleHead_msn.dds" for the patcher to recognize that file.

The following files are recognized for Argonian texture packs:

- Females: "ArgonianFemaleBody.dds", "ArgonianFemaleBody_msn.dds", "ArgonianFemaleBody_sk.dds", "ArgonianFemaleBody_s.dds",
"ArgonianFemaleHands.dds", "ArgonianFemaleHands_msn.dds", "ArgonianFemaleHands_sk.dds", "ArgonianFemaleHands_s.dds",
"ArgonianFemaleHead.dds", "ArgonianFemaleHead_msn.dds", "ArgonianFemaleHead_sk.dds", "ArgonianFemaleDetailmap.dds", "ArgonianFemaleHead_S.dds";

- Males: "ArgonianMaleBody.dds", "ArgonianMaleBody_msn.dds", "ArgonianMaleBody_sk.dds", "ArgonianMaleBody_s.dds",
"ArgonianMaleHands.dds", "ArgonianMaleHands_msn.dds", "ArgonianMaleHands_sk.dds", "ArgonianMaleHands_s.dds",
"ArgonianMaleHead.dds", "ArgonianMaleHead_msn.dds", "ArgonianMaleHead_sk.dds", "ArgonianMaleDetailmap.dds", "ArgonianMaleHead_S.dds";

The following files are recognized for Khajiit texture packs:

- Females: "FemaleBody.dds", "FemaleBody_msn.dds", "FemaleBody_1_sk.dds", "FemaleBody_s.dds",
"FemaleHands.dds", "FemaleHands_msn.dds", "FemaleHands_1_sk.dds", "FemaleHands_s.dds",
"FemaleHead.dds", "FemaleHead_msn.dds", "FemaleHead_sk.dds", "FemaleDetailmap.dds", "FemaleHead_S.dds";

- Males: "MaleBody.dds", "MaleBody_msn.dds", "MaleBody_1_sk.dds", "MaleBody_s.dds",
"MaleHands.dds", "MaleHands_msn.dds", "MaleHands_1_sk.dds", "MaleHands_s.dds",
"MaleHead.dds", "MaleHead_msn.dds", "MaleHead_sk.dds", "MaleDetailmap.dds", "MaleHead_S.dds";


Let us assume you want to use female body textures. You go the the aforementioned folder for females. Then you create a new folder in there and name it any way you want (the patcher recognizes folders in there automatically). Every folder you create on that level will be a mainpack. Inside those mainpack folders you again create folders, subpacks, which contain the actual texture files.
For example you could create one "main" subpack which contains all the base textures. Those would usually be all the hand, body and face textures with the exception of the face normal maps ("*_msn.dds" files). The face normal maps should usually be put into different folders. One for each race if they are provided by the textures you're using.
Then you'd create more subfolders (subpacks) for the different variations you want to achieve. Usually this would be for different body normal maps ("muscle textures") and different body color textures like dirty bodies, scars or body hair variations. In each of those variation you only have to put the texture files which are modified compared to the "base" textures. The patcher will grab the missing files from other subpacks which are in the same mainpack.
It works recursively and will create any possible combination of the textures you offer.
Texture files in the same subpack will stay "together" when the patcher creates the actual records. That means if you want to provide e.g. some wet looking textures (which usually provide "*hands_s.dds", "*body_s.dds" and "*head_s.dds" texture files) you just have to drop them in the same folder and the patcher will make sure that those files are always provided together for the esp creation.
Furthermore if a mainpack is missing some texture file (i.e. no subpack contains it) then no worries. When the esp is created texture records which are based on that mainpack will just point the standard Skyrim path for the missing texture file.

A TexturePack has to contain at least one face texture OR one body texture OR one hand texture for it to be recognized as a TexturePack. Otherwise it will be ignored. This basically means that empty folders will be ignored. Missing textures will be replaced by the standard textures for a given race. You may have TexturePacks which are face only or which have no face textures at all.


Example (MatureSkin is used as an example. You can name any folder any way you want):
-1) go to "Textures\EBD\Female"
-2) create folder "MatureSkin" (again, you can name the folder any way you want)
-3) go to "Textures\EBD\Female\MatureSkin"
-4) create folder "1_Main"
-5) copy all of the MatureSkin texture files (*.dds) to "Textures\EBD\Female\MatureSkin\1_Main", EXCEPT for the files "FemaleBody_1_msn.dds", "FemaleHands_1_msn.dds" and "FemaleHead_1_msn.dds"
-6) create a folder named "Msn_Standard"
-7) copy the files "FemaleBody_1_msn.dds" and "FemaleHands_1_msn.dds" you skipped in step 5) into the folder created in the last step
-8) create a folder named "head_nord"
-9) copy the file "FemaleHead_1_msn.dds" you skipped in step 5) into the folder created in the last step
-10) the textures (MatureSkin in this case) should provide some face normal maps. Create corresponding folders for each race. For example for "bretonfemale" create a folder "head_breton". Copy the corresponding face normal maps to the folders you just created.
-11) now you could create some folders for body texture variations. For example different body hair. Just create a folder for each variation and copy over the corresponding body texture (should be only FemaleBody_1.dds)
-12) the patcher will automatically link all the missing files to the "1_Main" folder
-13 now you could add a muscle normal map to the mix: create a folder "muscle map" in "Textures\EBD\Female\MatureSkin"; drop a "FemaleBody_1_msn.dds" file from a muscle mod in there; the patcher creates every possible combination of the textures you provide)
-14) now go into the patcher & open the TexturePack Editor. In there select the appropriate races for each of your subpacks. This is especially important for the face normal maps. And if you don't provide any normal maps for old people you should either disable the elder race or disable the subpack "Msn_Standard" for the Elder race.

- I know that the description here is overly complicated but I can't put it into simpler words. There is a screenshot showing some of the things I said. It's shown where to put which files and found in the folder "Docs/EBD_ScreenShots_manual".

As you can see the patcher automatically creates every possible combination of the textures you provide in the subpacks.
Some simple facts:
- Each mainpack has the same probability of being chosen for a given NPC. For example if the patcher assigns textures to a Nord NPC it will first get all mainpacks which are valid for Nords. Then it will randomly choose one among them. If you have 5 valid mainpacks for Nords then each mainpack will have a probability of 1/5 or 20% of being chosen. After the mainpack is chosen it will then randomly select a subpack from that mainpack in the same fashion.
- Missing files in one subpack will be replaced by files from another subpack. This means you shouldn't put the same file twice in a mainpack.
- Files which are in one subpack will always be used together.
- If a Mainpack misses one of the compatible files, the standard path for this file will be used. For example many texture mods don't provide *Body_1_sk.dds files. If the file is not provided in any of the subpacks of a mainpack then the default file will be used for this mainpack.
- The patcher will treat old people just as another race (ElderRace). If you want to avoid old people looking young you should consider one of the following options: a) disable the ElderRace altogether for each mainpack. OR b) disable the ElderRace for the subpack which contains the normal maps. This way old people just use their standard normal maps. OR c) Provide a subpack containing normal maps specifically for old people and select only their race for that subpack in the interface.
- You should provide the different face normal maps for each race if the textures you're using have them. Be sure to select only the appropriate races in the interface.
- Vampires will get the new face textures as well. They won't look as ugly as before. But you may choose to provide face (and body) textures specifically for vampires.
- Check out the provided image for more details for the file setup

And finally one paragraph about NPC visual overhauls or follower mods. Many follower mods and some NPC overhauls provide their own bodies and textures. (On the technical side this means they have an armor reference set for the WNAM record.) By default EBD will NOT assign new textures to these NPCs. The assumption being that you prefer the textures given by your other mods. However, since version 3.45 you now have the option to let EBD overwrite the custom textures from your mods. This is very useful if you do not want some mod introducing a body type not compatible with the rest of your load order or if you prefer your own textures. You have to enable this option in the Texture/Mesh Settings panel. Is called "Overwrite Custom NPCs" and I would personally recommend to enable it. Note that this feature will keep any changes to the facial features of an NPC done by a mod intact. It just overwrites the body mesh and body textures.

PLEASE NOTE: Any time you make changes to the folder structure of the textures (i.e. you remove or add some textures) you HAVE TO RERUN the patcher.


- 12.2. NPC body meshes (humanoid races, males and females)

This feature is meant to be an addon the texture feature. Before you use it you should have understood how the texture feature works.
Female humanoid meshes go to "Meshes\EBD\Female\" and male ones to "Meshes\EBD\Male". Argonian ones go to "Meshes\EBD\FemaleArgonian\" and to "Meshes\EBD\MaleArgonian" while Khajiit ones go to "Meshes\EBD\FemaleKhajiit\" and to "Meshes\EBD\MaleKhajiit". Inside those folders you have to create subfolders with the SAME NAMES (though lower case/upper case does not matter) as the mainpacks from the corresponding texture folder. So the meshes will be assigned to a certain texture mainpack. For example: You have the following mainpack for textures: "Textures\EBD\Female\AntiWo". If you want assign specific meshes to that mainpack you create the folder "Meshes\EBD\Female\AntiWo" (note that lower case/upper case does not matter). Now all females using the "AntiWo" mainpack for textures will have the corresponding meshes assigned located in the "AntiWo" mesh folder.

The following files are recognized:

- Females: "femalebody_0.nif", "femalebody_1.nif", "femalefeet_0.nif", "femalefeet_1.nif", "femalehands_0.nif", "femalehands_1.nif"

- Males: "malebody_0.nif", "malebody_1.nif", "malefeet_0.nif", "malefeet_1.nif", "malehands_0.nif", "malehands_1.nif"

If one or more files are missing then the regularly installed mesh file will be used. Though you should never put a "_0.nif" without the corresponding "_1.nif" in the folder (or vice versa) or strangeness will occur.

Please note that only the naked body mesh will be replaced, no armor or clothes meshes will be replaced. So you'll see the new meshes only on naked NPCs.

When is this useful? For example if you're a body slide user and want to distribute slightly different meshes this works quite well. It is also useful if you want to mix different kinds of the UNP body (like skinny, "normal", UNPB, ..).
This feature can even be used to mix CBBE/UNP/Whatever... You just have to use texture packs with the UNP/CBBE/... textures and put the corresponding meshes in the corresponding mesh folders. However, as said before, it will not change armor/clothes. So if you're using skimpy armor/clothes the NPCs with wrong body textures/meshes will look strange.

Check the "EBD Summary.txt" in "Data\SkyProc Patchers\EBD\SkyProcDebug" if you want to check whether the feature worked.


- 12.3. NPC height (all races, males and females) -

You can change the minimum and maximum height of all playable races, the old Old People race and races which fit none of those categories (i.e. custom races) to your liking. Additionally you can set a female height offset. This configures whether females should be smaller or taller than men or have the same height (if set to 0).

An NPC of the according race will get a height between (and including) those min/max values you set. Any NPC whose height differs from 100 (the default value) will not be modified to avoid changes to NPCs who are supposed to have a different height or which were modified by mods. The distribution is uniform, i.e. every value in the specified range has the same chance of being picked. I plan on adding a Gaussian distribution in a upcoming version.


- 12.4. NPC headparts (all races, males and females) -

This feature enables you to distribute hair styles, eye colours, scars, eye brows and beards (all of them are called headparts) among NPCs. You can choose between females and males and whether to exclude unique NPCs, old NPCs and vanilla Skyrim headparts. You may disable headpart distribution to NPCs which are in combat when the script loads to reduce stress on Skyrim. This is especially useful if you have mods adding big fights to Skyrim.
It will include any headparts added by mods and distribute them among NPCs as if they had been in the game all along.
The patcher will make sure that NPCs of a specific race & gender will only receive the headparts viable for them.
The headparts are assigned to an NPC the first time its loaded in game and will be remembered unless you remove the mod containing them.
This is achieved by using JContainers to store the assigned headparts to the SKSE co-save. Note that removal of the values is done automatically by JContainers should you ever uninstall EBD (but why would you do that, right?).

In the headpart settings panel there is the headpart editor. It allows you to set the probability to change the headparts of a single NPC. This is done on a per-gender and per-headpart type basis.
This setting is useful if you don't want every NPC's head changed by EBD and/or reduce script load. Fewer NPCs processed equals less load on the papyrus engine and less stutter by loading custom headparts from hard disk. The script will decide for every NPC whether to change that NPC or not. The decision taken (to change or not) for that NPC will be saved until you change the probability in the patcher.
Setting the probability to 0 is NOT equal to disabling the head feature altogether. You can still enable the headparts spells and assign specific headparts to any NPC in game (read about it further down). Setting it to 100 means that every NPC will be changed for that headpart type.

IMPORTANT: If you change the probability the cards will be mixed again, i.e. the decision whether to change a NPC/headpart type or not will be made again.

Also in the headpart settings menu you will find the custom race editor. By default custom races (and DLC races) do not have any valid headparts. In the editor you may select vanilla Skyrim races to treat them like. That way they will get the same headparts as the chosen vanilla races. It comes with predefined settings for the DLC races the teen race from Inconsequential NPCs. For example the Skaal race from Solstheim will be treated like the Nord race and therefore receive the same headparts as the Nords.

You may choose to disable the distribution of vanilla headparts. This setting is enabled by default and will prevent the distribution of any headpart coming from Skyrim.esm. This is quite useful if you only want mod added headparts to be distributed by EBD. You may change this setting on a per-headpart (and gender) basis. For example there are not many mods adding new scars to Skyrim, so you could enable the distribution of vanilla Skyrim scars to mix things up.

EBD offers very advanced in game menus allowing you to customize the headparts of any NPC. It also offers a debug spell to re-apply face tints and print information about an NPC's headparts. The two spells (EBDCustomizerSpell and EBDDebugSpell) are automatically added to your player character if you check the corresponding settings in the headpart settings panel. You may remove those spells again by unchecking the settings.
Note that both spells do print information about an NPC to your Papyrus log. If you have PapyrusUtil (see Requirements section) installed this information will also be printed to console.

EBDCustomizerSpell (requires EFF or UIExtensions; see Requirements section): This is your all-in-one center to customize the looks of an NPC. Using this on an NPC you may:

a) Select a new headpart for an NPC. Either from a list containing all of them or by searching for the EDID of a headpart
b) Completely or partly (only certain headpart types) force disable a NPC from being processed by the headpart feature. This means the NPC will NOT be processed irrespective of probability set in the patcher
c) Completely or partly force enable an NPC. This means the NPC will be processed irrespective of probability set in the patcher
d) Completely or partly re-randomize an NPC. This means all EBD associated values will be removed from that NPC and the NPC will be processed as if you encountered it for the first time
e) Block certain headparts. See an NPC with a haircut you don't like? Just block it. Note that is will only take effect the next time you re-run the patcher
f) Re-apply the headpart script. For example if you disabled NPCs in combat and they were fighting when the script loaded, no headparts were applied by EBD. Use this to re-process them (or restart the game)
g) Bonus feature: Cosmetic Menu. If you have race menu installed (see Requirements section) you'll get a menu option for editing an NPC's tattoos and body scales
h) Main menu: global menu (not NPC specific) to export or import your current selection of headparts for all NPCs between save games. Also allows to completely reset all of the selected headparts (like a new install of EBD)

Note that all settings which lead to headpart types being disabled for a NPC will only be visible when you restart the game. For example if you disable the hair distribution for a certain NPC but at that time the NPC has already received a new hair by EBD, then the vanilla hair will only be visible after you save & restart Skyrim.

EBDDebugSpell: Re-applies face tints, prints information about used headparts and their script status and undresses/redresses NPCs.

If you want to disable certain headparts by hand you may use the file "HeadPart_BlockedEDIDs.txt" in "Data/SkyProc Patchers/EBD/Files" to do so. Add the specific EDID or part of an EDID to this file to block a headpart or groups of headparts. This is also the file where blocked headparts using the EBDCustomizerSpell are imported to.

Note that the patcher will write all the valid headparts for each race and gender to a file called "HeadpartDB.json" located in "SkyProc Patchers\EBD\JsonExchange". This file will highly depend on your current load order. If you are using Mod Organizer/Nexus Mod Manager make sure to read section 13 of the readme below.

EBD only considers headparts valid if they have the isPlayable flag enabled and either have the Male or Female flage set.


- 12.5. NPC animations -

Sets all females to use female animations. There are some female NPCs (like Housecarls) which use male animations. This will disable the "use opposite gender animation" flag on those NPCs.
Enabling this means those NPCs use female animations (instead of male ones) from now on. This will also fix Orc females using male animations, so they will act like females now as well.
Please note: some females using opposite gender animations is (I think) a design choice by Bethesda. So this is not a "fix", it is just a matter of personal preference.

IMPORTANT: You might have to start a new game to see the effect for females you have already encountered. They will probably stick to the animations they used before.
Furthermore it is possible that the female animations stick for NPCs you've met even when you disable this feature. Use with care.

Please note: I know that there are numerous mods available doing the same. However, EBD will achieve it's goal in an automated fashion. Meaning there will be no females left out/forgotten. It also means that any females added by DLCs/other mods are affected by this setting automatically.

This feature is completely script free.


- 12.6. NPC weight (all races, males and females) -

This feature is removed as of version 2.00. Might come back at a later stage if I figure out how to fix it.
Note: The recoding of this feature is completely done (as of version 2.20). However, it does not play nicely with the headparts feature and I want to figure out what's wrong before I re-enable it.
Note No. 2: It seems that it is actually impossible to re-add this feature. The problem is as follows: When the weight of a NPC is changed (either by script or by plugin) the body mesh is updated by the game to reflect that change. However the head mesh is not updated. The head mesh is exported at a fixed weight when exporting face gen data in the Creation Kit. This means the head mesh will not "fit" on the updated body mesh. There is a SKSE function to do exactly that (Actor.UpdateWeight()). This function however is only meant for the player character & only works erratically on NPCs. Until (if ever) this functions works, I have to drop that feature altogether.
Further note that NPC weight is stored into your save game. That means if any mod changes the weight of NPCs without exporting the new face gen data, you will get neck seams which CANNOT be removed any more from your save.

Also, with the arrival of race menu's bodygen feature I consider this pretty much obsolete as the bodygen feature does so much more.


- 12.7. Face textures for the player character -

This is a small bonus feature found under texture settings. It will add any face textures the patcher finds to the complexion slider in the race menu. It will also create all possible complexions with those new textures.
You can then use the complexion slider in the race menu to change the face textures of your player character.
Only works for vanilla races & does not work for vampires.
This is a bonus feature and might not work for your setup.


-12.8 Debug Output -

Enabling the debug output in the Other Settings panel will lead to very detailed information of what the patcher in various text files. These are found in "Data\SkyProc Patchers\EBD\SkyProcDebug". The patcher will print very deatailed information to the "Asynchronous log.txt". Additionally, the following two files will be created:
- Texture_Hashes.txt: relates the hash value of an assigned texture to the actual texture files. Only really useful if you plan to change them by hand in the consistency file
- EBD_Missing_FaceGen.txt: prints a list of FormIDs and EDIDs of NPCs where the patcher was unable to find facegen files (textures only). Useful to check if you get a body/face mismatch for certain NPCs due to missing facegen textures. Works best for mod added NPCs as some vanilla NPCs are missing facegen data on purpose (they never appear in game)


- 13. Using Profiles in Mod Organizer (MO) or Nexus Mod Manager (NMM) -

In this section I will list all of EBD's files which should go into profile specific mods/folders if you are using different profiles by virtue of MO or NMM. Note that I am personally using MO but everything that follows should still be true for NMM.

The most important file to make profile specific is the esp file: "EveryBody's Different.esp" found inside your "Data" directory.

It is useful to make the following files profile specific as they most likely depend on your load order. For the sake of convenience you could just make the whole folder "Data\SkyProc Patchers\EBD\" profile specific.
Note that all of the following is located in "Data\SkyProc Patchers\EBD\":

Required: These files will depend on your load order
- the folder "Consistency" and everything it contains: stores the consistency information for the height and the texture feature
- the file "HeadpartDB.json" located in the folder "JsonExchange": contains the valid headparts of the headpart feature. Highly dependent on your load order & required by the helper script
- the folder "TexturePackXmlFiles" and everything it contains: the valid races for all texture packs of the texture feature are stored here. If you have different custom races between your profiles (which is likely) all theses files will depend on your load order

Optional: You might want different patcher settings here for different profiles
- the file "Savefile" inside the folder Files: contains nearly all of the settings you make in patcher
- the folder "DynamicSettings" and all files it contains: stores some of the settings you make in the patcher for the headparts feature (all the things you select in Headpart Editor)

While you don't have to put all these inside their own profile specific mod, not doing so (with the required files) will most likely lead to you having to rerun the patcher each time you switch profiles.


- 14. Texture Tools/VRam Usage -

The VRam and performance impact of the texture feature can be kept quiet low. I use about 1 gb of texture files while my ingame VRam usage only increases by 100-150 mb & performance impact is not noticeable.

Check out the following tools to optimize the textures in the EBD folder (make a backup before using them, just in case). Only use them to optimize textures, I do not recommend optimizing meshes/nifs:
SMCO: http://skyrim.nexusmods.com/mods/13529
Very easy to use. Just click and play. I like it a lot. However, you cannot resize big textures (4096px). For resizing and more options use the tool below.

Optimizer Textures: http://skyrim.nexusmods.com/mods/12801
Has more options and is a tad more complicated to use. I recommended to use this tool to resize any textures with a resolution greater than 2048px down to 2048px. Especially if you have 1 gb of VRam or less.


- 15. Version History -

1.0 - 10.04.2013
initial release
1.1 - 11.04.2013
fixed some bugs concerning hand textures not applying. Now they do. Also added a better error message for a wrong folder setup.
2.00 - 31.05.2013
Fixed face textures not showing by using a script. SKSE is required for that function to work.
Add distribution of (mod added) hair styles and eye colours.
Made race heights user configurable. Added a setting for making females taller/smaller than males.
Bonus feature: add all face textures the patcher finds to the complexion slider for your player character to choose
Many bug fixes & code optimizations. Patcher should run much faster now and create fewer records.
Removed the skin color & the body weight feature for now as they are not working properly.
Removed all mods from the Blocklist.txt as of now there are no known incompatibilities.
Flashy new font colors.
Now uses skyproc library 2.2.0.3 and benefits from all the upstream fixes (BOSS support & faster patching).
Patcher now creates a file called "EBD Summary.txt" in "Data\SkyProc Patchers\EBD\SkyProcDebug". You can view some information about what the patcher has done in there.
2.10 - 24.07.2013
Massive speed improvements to the headparts features. New eyes/hair styles are applied much, much faster.
Headpart feature now works for Argonians/Khajit as well.
Added head part probability. You can now configure how likely it is for a NPC to receive new looks.
Added two spells (actually lesser powers) for the player to use on NPCs. One spell allows to have an NPC have a new random look while the other spell excludes an NPC from EBD's head part feature.
Fixed Imperials/Orcs having wrong heights when using the height feature.
Now the rings from version 2.00 are invisible! This means you won't see them in NPCs' inventories and you can't loot them. And technically they are not rings anymore.
2.11 - 29.07.2013
Fixed a small bug in the helper script which would lead to some NPCs being incorrectly excluded. No need to rerun the patcher (if updating from 2.10), just overwrite with the new files.
2.20 - 07.08.2013
Added a feature to have all females (i.e housecarls) use female animations (including Orc ladies).
Added Mesh support: You can now assign specific body meshes for specific texture mainpacks. You can even mix UNP/CBBE/Whatever... if you want to.
The spells added in 2.10 can now be automatically given to the player by using a setting in the headpart feature menu.
Extended save guards against null pointer exceptions and extended the debug output (check "EBD Summary.txt" in "Data\SkyProc Patchers\EBD\SkyProcDebug" for various interesting information).
2.25 - 14.09.2013
Headpart feature: Massive speed improvements to the headparts script. It's now as fast as it gets.
Headpart feature: you can now set the probabilities for males and females independently
Headpart feature: option to disable elderly NPCs. Use this to save resources if you don't care about the looks of old NPCs.
Texture feature: fixed a bug where NPCs without the proper gender flag would cause mismatched head textures. Possibly fixes pale heads for males.
2.26 - 06.10.2013
Headpart feature: small stability improvement to the script.
Bug fix for the patcher: some records from Interesting NPCs would be exported incorrectly. Those NPcs will be ignored now (until fixed in skyproc itself).
2.30 - 14.12.2013
Update of the skyproc library: There were a few instances of NPC records getting processed incorrectly (e.g. from Interesting NPCs). Many thanks to DienesToo
Headpart feature: Headparts are now matched by flags and not by EDID. This improves the recognition of headparts significantly. Any mod should now be recognized. Again thanks to DienesToo.
Headpart feature: Added two new options. You may now disable NPCs in combat & prevent the distribution of vanilla headparts.
3.00 - 07.03.2014
Texture Feature: Complete rewrite of the texture feature. This means:
- You're now able to choose specific races for specific MainPacks and even SubPacks
- There is a new gui for selecting the valid races. Your selections are saved and loaded from xml files. Each MainPack has a xml file.
- Support for beast races: i.e. Khajit and Argonians
- The patcher now only creates the bare minimum of necessary records. A much smaller .esp file is the result.
- The patching process is much more efficient and faster.
- Removed the creation of skin swap formlists. They seem to fulfil no purpose. Again: fewer records = smaller .esp file.
Height feature:
- Fixed the height feature for Khajiits (thought they were spelled Khajit, oops)
Headpart feature:
- The patcher will create much less records for the headpart feature, functionality is unchanged though. This results in a smaller .esp file
- The Wait() function in the script now uses smaller numbers and processes actors faster. It is processing all actors in order based on the distance to the player (from closest to farthest). The minimum wait time is now 0.5 seconds. The wait time is necessary to assure that no actor is left out. This happens if the Wait time is zero for example.
- Some script if clauses for checking whether an actor is valid have been removed. The checking is now done by patcher & a new keyword is added to valid NPC. This shortens the script by a few lines.
Patcher Global:
- Dumped the standard Jave random number generator (rng) for a MersenneTwister rng and a DiscreetUniformNumberGenerator from the Uncommon Maths library. Should lead to "better" random numbers as the distribution is now truly discrete and uniform. This introduces the foundation for doing a Gaussian distribution for the Height feature later on.
Script Global:
- There is now a "main" script attached to a hidden quests. This makes sharing of properties between scripts much easier and might be a good start for new features. No usability changes.
3.01 - 09.03.2014
Patcher Global:
- Added a file called "Npc_BlockedEDIDs" to "Data/SkyProc Patchers/EBD/Files". Use this file to block specific NPCs or groups of NPCs from being processed by EBD.
Headpart feature:
- Fixed a crash of the patcher if there was a mod adding headparts with no valid races set.
3.02 - 09.03.2014
Texture feature:
- Renamed the folders "MaleKhajit" and "FemaleKhajit" to "MaleKhajiit" and "FemaleKhajiit" in both the textures and the meshes folder so the patcher recognizes them. Modified the patcher source as well. I just misspelled them. Please move your Khajiit TexturePacks into the new folders or the patcher won't recognize them.
3.03 - 10.03.2014
Headpart feature:
- Fixed a crash of the patcher if there was a mod adding headparts with no valid races set. For real this time.
3.05 - 21.03.2014
Patcher Global:
- Added the mod "NewmGlassRobe.esp" to the "Blocklist.txt". This mod adds a buggy NPC without an EDID which leads the patcher to crash otherwise.
- Empty lines in the various text documents the patcher uses are now ignored. Beforehand an empty line could lead to blocking all records. Furthermore trailing & leading whitespaces are now handled properly (they are ignored).
Script Global:
- Some optimizations here and there to reduce function calls.
Texture feature:
- Fixed a crash of the patcher if there was a TexturePack without any hand or body texture.
- TexturePacks are now valid even when they only contain one single texture. This means that one body or one face or one hands texture is enough for a TexturePack.
- Fixed a bug which could lead the patcher to assign a wrong hand armor addon to a body armor (inside the same mainpack).
Headpart feature:
- Added a file called "HeadPart_BlockedEDIDs.txt" to "Data/SkyProc Patchers/EBD/Files". Use this file to block specific headparts or groups of headparts from being distributed by EBD.
3.06 - 05.04.2014
Script Global:
- Removed the quest containing all of EBD's properties. It seemed to cause peculiar errors for some users which I was unable to reproduce (like the grey-face bug). Now the properties are again duplicated into all of EBD's scripts. Note that the file "EBDQuestScript.pex" in the scripts folder is now superfluous and will be automatically deleted by the patcher if detected. It is replaced by the file "EBDGlobalFuncs.pex".
For that reason you might want to consider either doing a "clean" save before updating OR using the great SaveTool (http://www.nexusmods.com/skyrim/mods/52363/) after updating. Otherwise you'll get some harmless Papyrus errors on game load.
Texture feature:
- Completely rewrote the code assigning matching body/hands/face textures inside the same mainpack. This fixes a bug where a NPC could get non-matching body/hands/face textures if there was more than one face/hands texture for the same race in a single mainpack.
- Fixed the creation of superfluous body armors with no valid races.
- Improved the handling of missing hands OR body textures. Now even if only one race is missing for example hand textures it will get the vanilla textures instead of being ignored.
3.10 - 18.04.2014
Patcher Global:
- Added consistency for the height and the texture/mesh feature. Already processed NPCs will now stay the same even if the patcher is rerun and/or updated.
- Missing folders are now created on startup. This means the empty Textures/Meshes (and a few others) folders are not included in the archive anymore.
Headpart feature:
- Removed the Armor Addon list of the headpart token armor. This prevents NPCs from visibly equipping hand bandages which the tokens are based of.
3.11 - 31.05.2014
Patcher Global:
- Moved on to JDK 8. This means Java 8 is now required for running the patcher. Get it here: http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
- Fixed patcher crashing when consistency was disabled
Headpart feature:
- You may now set the probability of the headpart distribution to zero and use the spells only.
- The EBDTestSpell now prints the assigned headparts of a NPC to the console if you have PapyrusUtil (http://www.nexusmods.com/skyrim/mods/58705/) installed. This is useful for example if you want to find out the EDID of a headpart you intend to block.
- If you have SKSE 1.7.0 or higher installed a new function for changing headparts will be used. This should fix a bug where headparts could become stuck onto each other.
- Small optimizations to the headpart script for fewer function calls.
Texture feature:
- Fixed a bug where the consistency feature could lead to NPCs with an unresolved body skin/face texture.
Height feature:
- Increased the min/max values of the height settings. You may now select values between 1 and 500 (same goes for the female height offset). Note that I'd personally consider any value lower than 90 and higher than 110 unreasonable but the decision is now yours.
3.12 - 14.06.2014
Patcher Global:
- Turned off the running of BOSS at startup since it has been replaced by LOOT. Ordering your mod list is now completely in your hands again. Therefore removed the noBOSS.bat file.
- Upgraded to newest skyproc lib by Dienes (from version 6 to version 9). Could fix some bugs which I didn't even know they were there.
Texture feature:
- There was bug in the consistency feature which could lead to NPCs getting the wrong textures assigned. This was caused by relying on skyproc's internal consistency system for FormIDs which does not seem to be that reliable. I am using my own hash based system now which should completely fix the issue. Note that you will loose the assigned textures from the last version.
- Improved handling of how matching face textures are assigned to a given body texture. It was possible that one faulty set up race could lead to a mix up of face textures from different races. This is now fixed.
Headpart feature:
- Fixed a bug if you're using SKSE 1.7.0+ which led to headparts getting stuck on top of each other.
3.14 - 17.10.2014 (beta)
Patcher Global:
- Compiled with the newest skyproc library by Dienes (v2.2.0.3.15) to benefit from his fixes/new features. Many thanks to him. You may have a look here: https://forums.bethsoft.com/topic/1508900-relz-skyproc-skyrim-processing-library-thread-4/
Texture feature:
- Made the consistency feature check retro-actively for NPCs with invalid body/face texture. This could happen if I updated the consistency feature and you were updating the mod.
3.15 - 16.11.2014 (beta)
Patcher Global:
- Compiled with the newest skyproc library by Dienes (v2.2.0.5) to benefit from his fixes/new features. And hopefully fix problems with SUM and the patching process some people were reporting.
3.16 - 24.11.2014 (beta)
Patcher Global:
- Compiled with the newest skyproc library by Dienes (v2.2.0.6) to benefit from his fixes/new features.
3.17 - 26.11.2014 (beta)
Patcher Global:
- Compiled with the newest skyproc library by Dienes (v2.2.0.6) to benefit from his fixes/new features. For real this time!
3.18 - 29.12.2014
Patcher Global:
- Added option to the Other Settings panel to allow adding all mods as masters
- Now NPCs which are chargen presets are considered valid as well
Texture feature:
- Removed some debug code affecting templates of templated NPCs not carrying over
- Fixed body textures not applying for NPCs with a leveled list template in their template chain (rare case). This fix only works through SKSE magic and therefore requires the helper script.
Script Global:
- Fixed a harmless (and rare) script error related to the OnLocationChange event
3.19 - 10.10.2015
Patcher Global:
- Updated to newest skyproc library in order to restore compatability with the unofficial patches
- Added a dog race from AnnaNPCs to the EDID block list as this race is somehow processed incorrectly
- Using quotes in all the blacklists and whitelists (Npc_BlockedEDIDs.txt, Race_BlockedEDIDs.txt, HeadPart_BlockedEDIDs.txt, TexturePack_validEDIDsArgonian.txt, TexturePack_validEDIDsKhajiit.txt) will force an exact match. For example using "Ria" (with quotes) in the Npc_BlockedEDIDs.txt will only block Ria while using Ria (without quotes) will also block every Imperial (contains ria)
Texture feature:
- More fixes to the way leveled actors are processed. Should fix some rare cases of face/body texture mismatches (like Immersive Wenches and a few others)
Script Global:
- Upped the version requirement of SKSE and PapyrusUtil (optional) to their newest versions. Remember that if you have PapyrusUtil (http://www.nexusmods.com/skyrim/mods/58705/) installed the EBDTestSpell will print some information (like the NPC's used hair style) to the console
3.20 - 21.10.2015
Patcher Global:
- Added "KS Hairdos - HDT.esp" to the blocklist.txt as hdt hairs don't work on NPCs
Texture feature:
- Fixes to the texture pack creation algorithm: now TexturePacks only containing face textures work fine; also fixed a bug which could lead to NPCs defaulting in some texture paths to their vanilla textures (even though custom textures were supplied)
- Added option to disable the feature for unique NPCs
Height feature:
- Added option to disable the feature for unique NPCs
3.30 - 20.11.2016
Patcher Global:
- The option for enabling/disabling the helper script is removed; it was redundant anyway
- The helper script is now enabled "on-demand", i.e. it is automatically enabled if you use the headpart/texture feature; otherwise it's disabled
- Always Force Patch: if you open the patcher it'll always force a new patch when you click on Patch. If you don't want to patch click Cancel
- Now NPCs with the ghost flag will be processed like normal NPCs and not be excluded anymore. I was under the impression that those NPCs were in fact ghosts (i.e. invisible) while the flag just allows weapons to pass through them. This should fix quite a few NPCs from having body/head color mismatch if using the texture feature
- Recompiled with the most recent skyproc library. This should allow the patcher to automatically detect Skyrim's language, if it is not English, and adjust accordingly. No need anymore for the "-language" parameter
Script Global:
- Only NPCs which have their face textures modified by the patcher will be considered when applying the face tint. This should completely avoid discolored heads caused by the script applying the face tint when not necessary. The fix should be especially useful for those using the headpart feature while not using the texture feature
Headpart feature:
- Nearly a complete rewrite of the feature
- The script now uses JContainers for storing given headparts; it is therefore a requirement
- You may now distribute: hairs, eyes, scars, brows, beards
- Support for custom races: NPCs from custom races may now be assigned vanilla races to treat them like the assigned race(s). Comes with predefined settings for the DLC races
- The script is now much faster: executes nearly instantaneously
- Fancy (optional) in game menus, requiring either UIExtensions OR Extensible Follower Framework (EFF) to be installed:
- Select a new headpart for a NPC either randomly, from a list or by searching for it
- Completely or partly block a NPC from being processed
- Block headparts you don't like from being distributed
- Re-Randomize a NPC
- Import/Export headpart assignments for all NPCs into a different save game
- Bonus: if you have expired's race menu installed get a cosmetic menu for NPCs allowing you to choose tattoos and body scales
- Probabilities for each type/gender may be set independently
- Disabling vanilla headparts may now be set per type/gender
- Enabling the debug spell is its own setting now, I figure hardly anyone needs that spell anyway
Texture feature:
- Fixed patcher not recognizing *_sk files for Khajiit and Argonian (for body and hands). Make sure the texture files are named exactly as shown in the readme
- Patcher will now keep mod added armatures for the body armors. This should allow for compatibility with mods adding custom armatures (like SOS)
- Rewritten to internally use FormIDs instead of EDIDs for races. This was necessary to ensure compatibility with Enderal as it adds several races with identical EDIDs. This will also be reflected in your TexturePack xml files which will be updated to the new format automatically
- Added some more null pointer checks when creating texture packs. Could fix some hard-to-track-down patcher crashes
3.31 - 01.02.2017
Patcher Global:
- If Debug Output is enabled the patcher will output two new text files:
- Texture_Hashes.txt: relates the hash value of an assigned texture to the actual texture files. Only really useful if you plan to change them by hand in the consistency file
- EBD_Missing_FaceGen.txt: prints a list of FormIDs and EDIDs of NPCs where the patcher was unable to find facegen files (textures only). Useful to check if you get a body/face mismatch for certain NPCs due to missing facegen textures. Works best for mod added NPCs as some vanilla NPCs are missing facegen data but they never appear in game anyway
Script Global:
- Recompiled against the most recent JContainers version (3.3.0 RC3). Please update to that version
Headpart feature:
- Allow headparts which have no gender set to be valid for both males and females (thanks to Nexus user ChewyZ for the suggestion)
- The script now checks whether the json files it uses actually exists
3.41 - 18.11.2018
Patcher Global:
- Ported to SSE: recompiled with the newest Skyproc
Script Global:
- Recompiled with SSE CreationKit and adjusted dependency checks for SSE versions
Headpart feature:
- Reordered the functions for applying face tints. Should further reduce the likelihood of an NPC ending up with a discolored head
Texture feature:
- When using the EBD Debug spell on an NPC it will now print the NPC's face texture if it was changed by EBD to directly see which mainpack the NPC is using (printed to console and Papyrus trace)
3.42 - 19.01.2019
Patcher Global:
- Fixed version numbers, forgot to update them last time
Script Global:
- Some small misc fixes to the debug script
Headpart feature:
- Bonus feature for a bonus feature: the in game customizer allows you to clear NiOverride data for a selected NPC (i.e. bodygen morphs or any morphs really)
3.43 - 18.08.2019
Patcher Global:
- Fixed some bugs with the Skyproc library and Special Edition. Specifically .esl files are now imported properly
- Now compiled with JDK11. Might improve readability on high dpi screens
- The SE and LE version of the patcher now share exactly the same code, improving maintainability
3.45 - 02.05.2020
Patcher Global:
- Now compiled with JDK14
Headpart feature:
- Added a new option for the in game spell menu: Fix Face Tint. If for some reason an NPC has a mismatch between body and face you can apply this function in an attempt to fix it. Normally the script does that automatically but in some rare cases (other mods interfering, extreme script lag) the script might miss an NPC
- Fixed the black face bug in a specific case: if a valid NPC does not have a face texture set (either in the FTST record or as a head headpart) then the NPC's race default texture will be set as face texture. This will fix the black head bug occurring for NPCs when only the Headpart but not the Texture was active for that NPC
- Updated the EBD_Domain file fixing some harmless Papyrus errors on game load
Texture feature:
- Added a new optional feature: overwrite custom body textures set by mods. Some mods use custom bodies (and textures) for their followers/NPC overhauls. Enabling this option will overwrite these custom textures/bodies with the ones provided by EBD. Enable it in the Texture/Mesh settings (default off)
- Fixed the face texture application for NPCs with a custom head with mismatching Name/EDID. This will fix neck seams with NPC overhauls/custom NPCs if they use a custom head headpart (thanks to Spawnblade/Piranha91). IMPORTANT: this fix only works with SKSE64 2.0.17 for SE runtime 1.5.97. Older versions are not supported! Users of an older Skyrim/SKSE version will need to download an optional script file not containing this fix
- Fixed an issue if an NPC is defined inside a light plugin (i.e. esl or esp with esl flag) where the script would be unable to find the NPC's face texture
3.45 Reupload - 07.02.2021:
Patcher Global:
- Support for Enderal SE: https://www.nexusmods.com/enderal/mods/239. Nothing else changed
3.45 Reupload 2 - 24.02.2021:
Patcher Global:
- Support for Enderal SE final release: https://www.nexusmods.com/enderalspecialedition/mods/1. Nothing else changed

- 16. SSE Port -

EBD was first ported to SSE by TheBearMan (big kudos to him!). I have now sort of taken over his upload with my "official" port to SSE. All features are ported and working.
As of version 3.43 import of .esl files is fixed. To do this I modified the skyproc library. I will release for the source for the modified library at some point. The version for the esp file created by the patcher will be reported as incorrect by tools like WryeBash, though this can safely be ignored.

I no longer intend porting EBD from Skyproc to UPF/zEdit. It is just too much work and EBD works fine as is for LE and SE.

- 17. Tools Used -

NetBeans - for java programming
SkyProc Java Library - not possible without this. Thanks Leviathan! And thank you Dienes for taking over.
TESVEdit - absolutely essential
Notepad++ - very useful for writing Papyrus scripts


- 18. Credits -

Leviathan1753 - the guy who made it all possible
Plutoman - for helping me with some coding questions
PurpleLunchBox - for helping me with the helper script. Without him it would not exist. Also kudos to him for the UIExtensions mod
DienesToo - for bug fixes and new features in the skyproc library
silvericed - developer of JContainers. Thank you for your support!
Automatic Variants(http://skyrim.nexusmods.com/mods/21377) - inspired me to create this patcher


- 19. Recommended Mods -

I recommend to check out the following body/face textures to use the patcher in the full glory:

https://www.nexusmods.com/skyrimspecialedition/mods/2962 - MatureSkin
https://www.nexusmods.com/skyrimspecialedition/mods/20078 - Bijin Skin UNP and CBBE SE
https://www.nexusmods.com/skyrimspecialedition/mods/19355 - Demoniac- High Quality Glossy Female Body Texture
https://www.nexusmods.com/skyrim/mods/85649 - Real Women of Skyrim

All of them are really awesome and I use them myself with the patcher. Use them. Endorse them.

For hair mods check out the following:
https://www.nexusmods.com/skyrimspecialedition/mods/6817 - KS Hairdos SSE <-- that one is really awesome, get it!
https://www.nexusmods.com/skyrimspecialedition/mods/2014 - ApachiiSkyHairSSE
http://skyrim.nexusmods.com/mods/7403 - Lovely Hairstyles by sn00p
Google for the awesome SGHairs to find even more!

Eye mods:
https://www.nexusmods.com/skyrimspecialedition/mods/9141 - Improved Eyes Skyrim
https://www.nexusmods.com/skyrimspecialedition/mods/16185 - The Eyes Of Beauty SSE
https://www.nexusmods.com/skyrimspecialedition/mods/10099 - Natural Eyes SSE


- 20. Permissions -

Do not redistribute this file or any part of it. Exclusive to the Nexus.
I reserve the copyright of this mod and all intellectual property and the development rights.
You may use the source code to modify EBD or create your own patcher. Notify me BEFORE you release something, mention me in your credits and link back to EBD's nexus page.


- 21. Disclaimer -

This mod comes without any guarantees that it will work or leave your game/computer intact. Use at your own risk.