I'm confused in regards to this. I thought this was an engine bug but there's a way to fix it?
My theory is that the "can be all races" flag was supposed to prevent cloned NPC from spawning. For instance if you create facegen on an NPC with that flag enabled, the resulting files will have a xxRACE_xxID.dds name. I think when an NPC with the "can be all races" flag spawns, the game was supposed to randomly pick a race from one of the generated xxRACE_xxID.dds files and apply the corresponding race's facemorphs -- resulting in variation in spawned NPCs faces. There are more generic npcs such as NCR, Legion factions and Strip NPCs that I feel should've been randomized but the implementation made it so the same ones always spawn.
Another one would be the Gomorrah receptionist. She too has the "can be all races" flag enabled and can be killed since she's not essential. But the same one that died will always spawn.
edit: nevermind, I see what you did. Would be cool if someone could make "can be all races" work properly.
I'm no expert myself, and I think you actually know more than me when it comes to NPC stuff. But I'll try to explain, I could be completely wrong.
So the template diagram, where -> means "is the template of": VarFollowersGuard (LeveledCharacter) -> VFSFollowersGuard (NPC) -> VFSFollowerGuard1 (NPC)
I think that the root of the problem in this case is a special case of the engine bug, that occurs even with the textures generated. It happens in vanilla, which shouldn't have the engine bug. And it also happens in NVR3R, and I know I generated all the facegen textures. YUP tries to fix it by disabling a flag, which doesn't seem to do it 100%. There are 4 possible sources for the engine being confused:
The template of VFSFollowersGuard is a LeveledCharacter, which doesn't have a race because its a list of NPCs.
VFSFollowerGuard1 has a Female flag but it is set to "Use Model/Animation" of VFSFollowersGuard, which is a Hispanic Male. However, it has its own race (AfricanAmerican). "Use Traits" is supposed to take the race of the template, but none of them are checked.
"Can be all races" flag. Maybe this shouldn't break things, but according to the GECKwiki it's used only for Dad in FO3 which makes sense, since he is supposed to age, or because his race is dependent on the player's. Other sources say it's an Oblivion thing, and every advice says not to use it. Random NPCs that respawn should be using LeveledCharacter if they are supposed to vary.
Some other stupid thing.
Either way, there's several points of failure for why the bug occurs despite having facegen. Don't want to waste time investigating where, but setting it to "Use Traits" means now the NPCs are now basically pulling from a random list of NPCs with different races. This is definitely what was intended, though the flags were not set correctly for the templates to send data to their child records. These NPCs have the correct facegen textures, so everything works. And also, they don't use the "can be all races" flag.
Yes, it will be in NVR3R.
Also, the nature of this fix means it can be done by .txt script I think with Script Runner. Maybe I'll do it later.
Might want to consider adding the fix to VFSFollowersDoctor2 which also uses a list of templates to generate npcs. For now I just flip the "Use Traits" Flags on the VFSFollowersDoctor2 and also on its actor template.
thank you for posting this. I tried all the face mismatch fixes (bLoadFaceGenHeadEGTFiles which is apparently not a good fix) and exporting textures (this fix the african female guard but not the other guards)
Just started my first playthrough of New Vegas recently and when I noticed this bug, I was wondering if I'd messed up somewhere in the modding process (even though my mod list is already pretty light) as I'd assumed this would have been fixed long ago and included in one of the huge fix collection mods. Glad to know this isn't the case and we are still getting bug fixes to this day (or is this bad because there are just that many things to fix in the first place?)
Either way, I am not using NVR3R (yet? maybe) but thank you for this fix!
9 comments
My theory is that the "can be all races" flag was supposed to prevent cloned NPC from spawning. For instance if you create facegen on an NPC with that flag enabled, the resulting files will have a xxRACE_xxID.dds name. I think when an NPC with the "can be all races" flag spawns, the game was supposed to randomly pick a race from one of the generated xxRACE_xxID.dds files and apply the corresponding race's facemorphs -- resulting in variation in spawned NPCs faces. There are more generic npcs such as NCR, Legion factions and Strip NPCs that I feel should've been randomized but the implementation made it so the same ones always spawn.
Another one would be the Gomorrah receptionist. She too has the "can be all races" flag enabled and can be killed since she's not essential. But the same one that died will always spawn.
edit: nevermind, I see what you did. Would be cool if someone could make "can be all races" work properly.
Will this be ported to NVR3R?
So the template diagram, where -> means "is the template of":
VarFollowersGuard (LeveledCharacter) -> VFSFollowersGuard (NPC) -> VFSFollowerGuard1 (NPC)
I think that the root of the problem in this case is a special case of the engine bug, that occurs even with the textures generated. It happens in vanilla, which shouldn't have the engine bug. And it also happens in NVR3R, and I know I generated all the facegen textures. YUP tries to fix it by disabling a flag, which doesn't seem to do it 100%. There are 4 possible sources for the engine being confused:
Either way, there's several points of failure for why the bug occurs despite having facegen. Don't want to waste time investigating where, but setting it to "Use Traits" means now the NPCs are now basically pulling from a random list of NPCs with different races. This is definitely what was intended, though the flags were not set correctly for the templates to send data to their child records. These NPCs have the correct facegen textures, so everything works. And also, they don't use the "can be all races" flag.
Yes, it will be in NVR3R.
Also, the nature of this fix means it can be done by .txt script I think with Script Runner. Maybe I'll do it later.
Either way, I am not using NVR3R (yet? maybe) but thank you for this fix!