Alternatives - focustense/easymod GitHub Wiki
An occasional question that comes up is: why? What does this do that $WORKAROUND doesn't already do, and why shouldn't I just use _______?
Anyone who is already patching NPCs and facegens manually probably does not need to be convinced of the value of having the entire process be automated, and anyone who doesn't use NPC overhauls clearly has no use for an NPC-overhauling tool. The question comes from people in the middle, generally comparing EasyNPC to certain "folk fixes" that circulate within the modding community.
Before deep-diving into the workarounds, it helps to understand what an NPC overhaul actually does to the game. Skyrim/SSE were not designed with this degree of customization in mind, and many if not most NPC overhauls are actually taking advantage of an exploit known in other areas of computing as cache poisoning.
"Poisoning" does not sound as fresh and exciting as "overhaul", but it is essentially the same technique. Facegen files are Bethesda's caching system for face meshes; these are built from sliders, which either select specific head parts (e.g. hair, beards, eyes) or apply transformations to them (tints, morphs). This process is very expensive - or was very expensive, 10 years ago, when 8-core CPUs and 8 GB GPUs were not ubiquitous - so instead of generating them all on the fly in-game, they are mostly pre-generated, i.e. pre-cached. These are the facegens - generated faces.
Inside the NetImmerse File - that is, the .NIF, used by both headpart meshes and facegen files and every other mesh in Skyrim, Fallout and so on - lies a familiar sort of 3D model, with familiar old vertices, transforms and more, and the game does minimal checking when it loads them. Mod creators learned that they could put pretty much any face they want in there, and even create heads and faces using external tools like Blender, although many stick to sculpting in RaceMenu which exploits a very similar loophole. Using these techniques, one can bring facial geometry into the game that could never be achieved by any combination of the vanilla sliders.
But "minimal checking" does not mean "no checking". Skyrim (et al) need to do certain things with these faces, like apply facial expressions, which requires knowing a little bit about how the facegens were generated, which in turn requires a certain amount of parity to be retained between the NPC record and the facegen file. When the game sees a facegen that it can't understand, because the objects in it make no sense in the context of that NPC record, then it freaks out. In the majority of instances, this results in "blackface", although in some rare scenarios it's been observed to crash outright.
This is the background for why the most popular workarounds don't really work, or require additional and usually more complex steps to make work.
"whatever dawg, I just go into CK, select all actors and do Ctrl+F4, it just works"
Lies. Some people may do this, but not only does it not work, it will break mods and NPCs that were previously working fine.
If you read the previous section, you may have picked out a key phrase:
...bring facial geometry into the game that could never be achieved by any combination of the vanilla sliders
NPC overhauls normally use "face sculpting" - start with a vanilla head or a juiced-up baseline such as High Poly Head, and then deform the generated mesh. This sculpting exists only in the facegen file. As far as the Creation Kit is concerned, the facegen can and should be derived entirely from the NPC record, its sliders and whatever head parts it points to.
In other words: if you start with a sculpted face, and generate facegen from Creation Kit, you'll end up with an unsculpted face, i.e. a vanilla face, and possibly something a lot worse if the CK couldn't find all of the original resources, which mod creators are not obligated to provide, since it normally makes no difference to the functionality of the mod. Even if nothing is missing, the outcome is still often worse than a vanilla face, because the slider settings were designed for something other than vanilla.
But seeing is believing. Instead of describing it, why not show it? Let's do an experiment and start with a vanilla-esque load order, with some texture and bugfix mods but no NPC overhauls. Then we'll add the venerable Pandorable's NPCs and take a look at Elisif. It's important to note that this load order has no conflicts - we are only using Pandorable's NPCs and no other overhauls. Elisif therefore looks great, exactly as Pandorable intended, but we'll get there in a moment. First, what happens when we load that mod in CK and open up Elisif?
We are off to an inauspicious start. Clearly, CK can't find some resource, probably the hair. Also, it has spewed out a bunch of warnings:
MODELS: Could not find model Pandorable\PAN_NPCs\Hair\Veneris.nif
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\Veneris.nif'.
MODELS: Could not find model Pandorable\PAN_NPCs\Hair\VenerisHl.nif
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\VenerisHl.nif'.
MODELS: Could not find model Pandorable\PAN_NPCs\Hair\straightscalpHUMAN.nif
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\straightscalpHUMAN.nif'.
TEXTURES: femalehead.nif : FemaleHead is missing a facegen tint map
TEXTURES: femalehead.nif : FemaleHead is missing a facegen detail map
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\Veneris.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\VenerisHl.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\straightscalpHUMAN.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\Veneris.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\VenerisHl.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\straightscalpHUMAN.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\Veneris.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\VenerisHl.nif'.
FACEGEN: Non-skinned facegen part 'Pandorable\PAN_NPCs\Hair\straightscalpHUMAN.nif'.
Well, never mind. Sometimes CK is quirky like that, but everything still works. Zooming in a bit:
Call me picky, but there seems to be something slightly off about the face. No matter; we've come this far - seriously, just getting the CK to open a mod and not crash is a non-trivial task - so we might as well see it through to the end. Ctrl+F4, OK, exit.
Before Creation Kit | After Creation Kit |
---|---|
![]() |
![]() |
Perhaps you are thinking, "ha ha, the author goofed and swapped the before/after images!" But they are not swapped. Remember, this is with only one NPC mod and no conflicts. The Creation Kit broke a perfectly good mod.
Maybe there is just something unusual about Pandorable's mod. Surely other mods don't have this issue. We'll try the most popular NPC mod on the entire Nexus, Bijin Warmaidens. Of course, we will deactivate Pandorable's NPCs, again to ensure that there are no possible conflicts. The screenshot of Jordis looks enticing. Let's see how she turns out in the CK:
Never mind the purple hair, that's just a missing texture, which we know from experience won't be a problem in the game. But there is still something off about the face, isn't there? Oh well, YOLO, ignore and plow:
Before Creation Kit | After Creation Kit |
---|---|
![]() |
![]() |
Good effort, CK, but...
The moral of the story is: you should definitely batch-rebuild facegens from your mods in the Creation Kit, if you want to end up with more problems than you started with.
"sure, blackface WAS an issue, but now I can just slam 47 overhauls into LOOT and magic away the conflicts. BAM!*"
Parapets's Face Discoloration Fix is a very clever little mod - technically, a SKSE plugin - which, in a nutshell, tells the game to stop freaking out when the facegen can't be reconciled with the NPC record, and just pretend that the facegen was never there, and generate a new one like the Creation Kit would. In the author's own words:
You can use this fix as a runtime equivalent to Creation Kit's 'Ctrl+F4' to generate FaceGen.
Actually, the author sells himself short. It's better than Creation Kit's Ctrl+F4, in the sense that it will not create blackface bugs, or screw up NPCs that were already working; it specifically targets NPCs that are actually broken. FDF will not make things worse than they already are, unless you count the potential of stuttering or pop-in, which the author acknowledges in his remarks, along with several other limitations, which, like all fine-prints, tend to be ignored by the customers.
Time for another side-by-side, then. We will deliberately create a conflict in Mod Organizer, by installing both Pandorable's NPCs and Fresh Faces, with Fresh Faces last in the mod order but PAN_NPCs.esp
last in the plugin order. Both mods touch Elisif. Poor Elisif, the weight of the Empire on her shoulders and everybody just wants to pick on her for how she looks. Will FDF be her white knight?
Before Face Discoloration Fix | After Face Discoloration Fix |
---|---|
![]() |
![]() |
Well... kind of? She doesn't look broken anymore, but she still looks like a man in drag. It looks a lot like the blackface, but without the black. Light blackface. Also, it might just be the lighting, but her nose seems to have grown a few sizes.
FDF isn't doing anything wrong here, and neither is the game. Both are doing the best they can to generate facial geometry based on the data they have available. The problem is that the correct data is not available anymore. We made it disappear, from the game's perspective, when we created the conflict. The mod manager might still be aware of it, but it exists nowhere in the game, it is entirely unreachable, and there is absolutely nothing that the game can do, or that any script, mod, or plugin can do, which is going to fix that.
FDF is designed for a particular niche, and the author describes that niche fairly well: it's great for certain mods that directly alter vanilla head parts. Rather than follow the VHR instructions, one can simply activate FDF and get vanilla faces with not-vanilla hair, at a performance cost that some modders might find totally reasonable compared to the complexity of following those instructions.
It is not intended for "sculpted" mods, and the author says so. Most NPC overhauls use sculpting. Therefore, FDF is not for most NPC overhauls.
* Lore-friendly: FUZ! ↩
"bruh, did you know Mod Organizer can hide files? it's a big secret but thankfully my galaxy-bren is here to educate you."
This shouldn't even need to be discussed, because it is more generic snark than a serious response. Nevertheless, it does come up, so it should be addressed. In this case, it boils down to two main arguments:
- Conflicts only happen when plugin priorities (load order) and file priorities (mod order) get out of sync. Keep them in sync, no glitches.
- You can resolve any plugin-facegen conflict just by hiding the facegen from the "wrong" mods.
EasyNPC is really not about conflict resolution, despite said conflict resolution - or more accurately, conflict elimination - being a necessary feature of the tool. It is about creating a better, simpler, faster, more fun and less error-prone way to manage NPC customizations than fiddling with load order and loose files. The core feature is not "fixing blackface", but an intelligent UI that lets you sort, filter, see which mods apply to which NPCs, see previews of those changes, find hidden problems with mods, and more. Right off the bat, the snark arguments are misunderstanding the problem space and making it all about the snarkers, as they typically do.
Moreover, the responses are technically incorrect. Enforcing load order and mod order consistency for NPC overhauls can eliminate many conflicts, but not all conflicts. Hiding files can't resolve every conflict in a way that necessarily yields the intended outcome.
Blackface bugs can still occur with a consistent mod and plugin ordering because overhaul mods can make record-only or facegen-only edits. Certain record edits do not require new facegen, and vice versa - particularly whenever the head part references are not changed. However, if one mod changes a certain NPC with only one type of edit, and another mod changes the same NPC with the other type or both types, then they will conflict if a single-typed edit has priority.
Hiding files in Mod Organizer might resolve a conflict caused by inconsistent orders - which is in any case better solved by fixing the order - but for the same reasons as above, might also simply cripple the mod that is supposed to have priority. It is also entirely reactive, requires every mod to use loose files, requires opening up the ESPs to find which Form IDs correspond to which NPCs, scales very poorly to dozens of mods changing thousands of NPCs, and in general is simply a non-solution to a non-problem. There are many things that .mohidden
is useful for; facegens are not among them.
Piranha91 was first to market on crafting a serious solution to this problem. It uses the correct conceptual model for NPCs and overhauls. It understands what the facegen system is for and what its limitations are. Quite possibly, it handles a few more situations and/or resolves a few bugs that EasyNPC does not. For some modders, it may be the better choice. There is nothing negative to say about it.
Why go into competition? A few reasons:
- EasyNPC was already in progress at the time.
- Competition is good. xEdit and zEdit, CBBE and UNP, Cathedral and Vivid. And of course, the many competing NPC overhauls.
- The design philosophy is different. Subs vs. dubs. N.P.C. (that's NPC Plugin Chooser) is designed like a patcher, intended for users who know exactly what they're doing and what they want, with lots of options and switches at every level to give them total control. EasyNPC tries to act more like a Google app, anticipate user needs, minimize information density, prefer better algorithms over more choices, keep the dangerous knobs and dials out of sight until you really need them, and maybe even provide a bit of fun. Maybe it meets those goals, and maybe it doesn't, but in any case it's targeting a different audience.
If EasyNPC isn't doing it for you, go check out N.P.C. - because unlike the other "alternatives", it's a genuine solution, not a hack or workaround. On the other hand, if you passed over N.P.C. or have been hesitant to try it out because it looks intimidating and hard to use, definitely give EasyNPC a closer look.