Home - BadDogSkyrim/Modding-Tools GitHub Wiki

Fallout 4 Furrification: How to do it

This page will tell you how to furrify your FO4 load order. There are four levels of complexity, but be warned that everything after the first requires you to have and use both xEdit and Creation Kit. So get those first and make sure they are running correctly.

Oh, and you have to have a working installation of Furry Fallout (FFO) too, of course.

Level 0: I don't wanna think! I just want furries!

As do we all. Here's how to do a simple install.

  1. Download and install CBBE and BodyTalk. CBBE is needed for the female armor meshes--without it female clothes and armor that show skin will look weird. BodyTalk has similar fixes for the male body.

  2. Download and install Furry_Fallout from Nexus. If you want other races -- dogs, dinosaurs, sharks, or proto-argonians -- install those mods too. If you want any other non-human race, scroll down to see how to customize them.

  3. If you want a furry world with all NPCs furry, install Furry_Fallout_NPCs. If you have the DLCs (you need them all) also install Furry_Fallout_DLC_NPCs. You don't have to do this step if you plan to create your own furry patch for your load order.

  4. If you want anatomically complete furries with full AAF support, download and install the NSFW addon. You'll also get some nudie magazines and other extras if you load the "Furry World" option. This requires AAF (Advanced Automation Framework).

Set up LOOT

This is optional, but saves trouble down the road, especially if you're using Vortex. Vortex instructions:

  1. Double-click the FurryFallout.esp plugin.
  2. In the pane on the right, find the "Group" pulldown and change it to "Late Fixes & Changes".
  3. Either click "Sort Now" or make sure auto-sort is enabled.

This makes sure the furry changes overwrite everything else. (MO users, do the equivalent in MO.)

A full load order

A full load order might look like this:

Hud Framework
Workshop Framework
AAF
Canary Save File Monitor
AAF Themes
Sim Settlements, all chapters
As many animation collections as seems good to you
LooksMenu (V1.6.18 if using AAF)
Everyones Best Friend
Grasslands
Luxor's Summer
ZaZ Extended Skeleton
Furry Fallout, all plugins

Level 1: I want my other mods to be furry! I hate humans!

Okay, so the simplest way to do this is to furrify your entire load order. Here's how. When you're done, you'll have a single patch which covers everything. If you change your load order, you rebuild the patch.

You need Creation Kit and xEdit V4.1.5f or later, available from Nexus. MAKE SURE OF YOUR VERSION! Older versions will have subtle bugs in how they operate.

You also need to get FFO_Furrifier.zip from the Releases tab. Unpack into your "FO4Edit\Edit Scripts" folder.

  1. Start up xEdit64 (it has to be the 64-bit version). xEdit selects all enabled plugins by default; that's probably what you want. If FFO's NPC plugins are in your load order, only non-vanilla NPCs will go into your patch and running facegen will be faster. The furry plugins should be last in your load order--nothing after them will be furrifed. If you want to minimize plugins, don't include FFO's NPC plugins and you'll get one plugin for everything.

  2. Right-click in the left pane and select "Apply Script...". Pick FFO_Furrifier. It will give you a dialog with a few options--take the defaults and let it run. Exit, saving the FFOPatch.esp that it created.

  3. Launch the Creation Kit. Load "FFOPatch.esp". Select "Actors" in the left pane of the Object Window. Select all NPCs. Click Ctrl-F4 (yes, really). It will ask, "Export face gen data for all selected NPCs?" Tell it yes, it should do what you asked it to do. Wait--it will take a while (like, an hour or more).

  4. If you use Mod Organizer, I'm assuming you know what you're doing. You probably want to run both xEdit and CK through MO, and you'll have to check that the generated files were put somewhere useful.

  5. If you use Vortex everything happens in the game folder, which is fine unless you're switching between furry and non-furry profiles. And why would you do that?

That's it!

Options Dialog

  • Plugin name: Name of your new plugin.
  • Patch: Either the whole load order, or you select the NPCs you want in the left pane and it furrifies only those.
  • Races: Either use the race assignments in the furrifier (which can be changed--see below) or force all NPCs to be the race you name.
  • Ghouls: You can furrify ghouls or not. If you do, you can decide which race to use as the ghoul's furry race. All ghouls have to be turned into a single furry race because of headgear.
  • Extra NPCs: Bethesda really cut corners on creating NPCs. There are only a few variants of raiders, Diamond City guards, and other groups. It's really obvious when everybody is furry. This option creates a bunch more variants so you're not looking at the same few faces all the time.
  • Debugging: Only use it if you're reporting a bug.

Notes

  • If you do not include the Furry Fallout NPC plugins in your load order, you'll get one plugin that furrifies everything. It will take longer to run facegen but saves a slot in your load order. If you just want to furrify a few mods and leave the rest human, just load those mods into xEdit.

  • You can speed the process up by installing Creation Kit Platform. If it crashes along the way, note where it left off and start it again from there.

  • Creation Kit Fixes will also give you a "Show only active (*) forms" checkbox. This is probably safe to use and speeds things up a bit. If you find some human heads in your game you can run again without it.

  • You may end up with giant-ass texture files that eat up your disk space, if you're not using the CK Platform. You can compress them in bulk with IceStorm's Texture Toolbox.

  • In addition to the Furry Fallout races, the furrifier knows about and will assign a few other races out of the box: the Selachii shark race, Canine races, Proto-Argonian race, and Dinosaur races.

Errors and warnings you might see

WARNING: Unknown tint type for <some race> <MALE/FEMALE/CHILD: <tint name>

This means there's a furry race in your load order that has some tint layers the furrifier doesn't know what to do with. These won't be given to any of the NPCs, but everything will work.

Level 2: I want furries, but not your furries! Waaah!

Yeah, ok, I got you. It's a little more work but not much (depending on exactly what you want to do). You need to edit a few easy parts of the script before running it.

Open "FFO_RaceProbabilities.pas" in the text editor of your choice and change race assignments. Scroll down until you see a bunch of lines like this:

    SetClassProb(CLASS_PLAYER, 'FFOCheetahRace', 100);
SetClassProb(CLASS_MINUTEMEN, 'FFOLykaiosRace', 30);
SetClassProb(CLASS_MINUTEMEN, 'FFOFoxRace', 20);
SetClassProb(CLASS_MINUTEMEN, 'FFOHyenaRace', 10);
SetClassProb(CLASS_MINUTEMEN, 'FFOLionRace', 30);
SetClassProb(CLASS_MINUTEMEN, 'FFOTigerRace', 40);
SetClassProb(CLASS_MINUTEMEN, 'FFOCheetahRace', 20);
SetClassProb(CLASS_MINUTEMEN, 'FFOHorseRace', 40);
SetClassProb(CLASS_MINUTEMEN, 'FFODeerRace', 20);
// SetClassProb(CLASS_MINUTEMEN, 'HumanRace', 10);
    ... etc ...

This next long section defines the furry races that NPCs will turn into. By default, non-combatants (settlers, city people, Institute) are more likely to be prey animals and fighters, good or bad, are more likely to be predators or horses. But you can change that.

The first line above says the player will be a cheetah. You can do this or use the FFO-Player-Cheetah.esp, but setting the player race in the furrifier works with any race. Not only will this set the player's race, but every NPC in the player's family will be set to that race.

The next lines say that tigers and horses have an equal chance of being Minutemen; foxes are half as likely, and hyenas are half as likely as foxes. You don't have to make sure the numbers add up to 100, but if this is too confusing just make sure they do and you can treat them as percentages.

The two slashes starting the last line mean that it will be ignored. Take the two slashes out and some of the Minutemen will stay human. If you want all the Minutemen to be human (or any other race) set all the other numbers to 0 or take their lines out entirely. There are classes for all the major factions--Railroad, Brotherhood of Steel, raiders of different types, and so forth.

This means you can do things like set all the NPCs to human except the raiders, gunners, and other bad guys. Then you have a human world beset by furry hordes. Or set just the Institute to human--then you have the lone human enclave trying to recover from a furry world.

SetClassProb(CLASS_MACCREADY, 'FFOCheetahRace', 100);
SetClassProb(CLASS_PIPER, 'FFODeerRace', 100);
SetClassProb(CLASS_X688, 'FFOTigerRace', 100);

There are also classes to keep related NPCs together--Piper and Nat, the Cabots, and Deacon's different instances. For consistency the rest of the companions have classes as well. By default there's a companion of each race.

AssignNPCRace('MamaMurphy', 'FFOLionRace'); // Her hat is tailored to the lioness head
AssignNPCRace('DLC04Mason', 'FFOHorseRace'); // I just like him this way

Individual NPCs can be assigned races. Add as many lines here as you like. You need the NPC's editor ID, not the name you see in the game.

That's all you need to do to furrify your world with existing races.

Level 3: But what about myyyy furries? I have furries too!

If you made a furry race and want to include it in Furry Fallout, your furries can play too. By default, if your race is named in the class assignments above, some NPCs will be assigned to it. Random head parts, skin tones and tint layers, and morphs will be applied as defined in your race record.

However, random assignment of all the customization options you provide doesn't necessarily produce good-looking NPCs. So you may want to provide a little extra information. Keep scrolling down the script to see the options.

SetHeadpartProb('FFODeerRace', MALE, HEADPART_MOUTH, 0); 
SetHeadpartProb('FFODeerRace', FEMALE, HEADPART_MOUTH, 0); 

By default, one of each type of headpart, chosen randomly, will be assigned to each NPC. If you want the headparts to be assigned to only some NPCs, set the probability this way. Probabilities are 0-100. In this case, the mouth headpart is assigned on the race record, so the individual NPCs don't need it.

Valid head parts are:

HEADPART_EYEBROWS
HEADPART_EYES
HEADPART_FACE
HEADPART_FACIAL_HAIR
HEADPART_HAIR
HEADPART_MISC 
HEADPART_SCAR

One additional tweak for hair--some vanilla hair is too extreme to be handed out randomly, so it is excluded from consideration. You can exclude any such hair yourself too:

ExcludeHair('DLC03_HairMale47'); // Chemical Storm
ExcludeHair('HairMale44'); // Megaton

Skin tints can be tailored too:

SkinLayerTranslation('Blaze Narrow', TL_MUZZLE);
SkinLayerTranslation('Blaze Wide', TL_MUZZLE);
SkinLayerTranslation('Cap', TL_FOREHEAD);

Skin tint layers have names which indicate how they're used. These lines tell the furrifier how to apply them. Horses, for example can have wide or narrow blazes on their noses so both those options translate to the MUZZLE option in the furrifier.

The furrifier will pick 0 or 1 option for each layer, so only one MUZZLE option, one MASK option, and so forth. All layers except the skin tint are usually set up with the first color being no color so you can turn the option off in character customization, so the furrifier won't pick the first option if it's trying to set a color.

raceInfo[RacenameIndex('FFOHorseRace'), MALE].tintProbability[TL_MUZZLE] := 60;
raceInfo[RacenameIndex('FFOHorseRace'), FEMALE].tintProbability[TL_MUZZLE] := 60;

Not all NPCs need all the tint layers. Not all horses have blazes. So you can set the probability for each tint layer. Here, 60% of male and female horses will have blazes. (MALECHILD and FEMALECHILD are also options if you provide child races.)

You can set the tint probability to 0% if you have a specialized layer that you don't want handed out automatically.

By default everything is set to 100% so if you don't tailor the probabilities NPCs will get every layer. BUT, to prevent stupidly patterned NPCs, only three layers will be given to any one NPC.

These are the defined tint layers:

TL_CHEEK_COLOR_LOWER
TL_CHEEK_COLOR
TL_CHIN
TL_EAR
TL_EYEBROW
TL_EYELINER
TL_EYESOCKET_LOWER
TL_EYESOCKET_UPPER
TL_FOREHEAD
TL_LIP_COLOR
TL_MASK
TL_MISC
TL_MUZZLE
TL_MUZZLE_STRIPE
TL_NECK
TL_NOSE
TL_OLD
TL_PAINT
TL_SKIN_TONE

Use these and these only.

AddChildRace('FFOCheetahRace', 'FFOCheetahChildRace');

If you provided children, you have to tell the furrifier which adult race the children go with. If you didn't provide children, you should define a child race to go with your adult race, so the furrifier doesn't leave them human.

SetTintColors('FFOHyenaRace', MALE, TL_EAR, '|FFOFurBlack|FFOFurBlueBlack|');
SetTintColors('FFOLykaiosRace', FEMALE, TL_MUZZLE, '|FFOFurBlack|FFOFurBrownD|');

You may have specialized tints in a tint layer that you don't want the furrifier to use randomly. If so, you can specify the colors that are allowed. Separate the color names with the vertical bar.

ExcludeMorph('FFOFoxRace', MALE, 'Child');
ExcludeMorph('FFOFoxRace', MALE, 'Neck');

You may have morphs that you don't want the furrifier to use. Here I was experimenting with a morph for thicker necks, but didn't like the results.

SetMorphProbability('FFOHorseRace', MALE, 'Horse - Nose Size', 80, 0, 100, SKEW0);
SetMorphProbability('FFOHorseRace', MALE, 'Horse - Nose Shape', 80, 0, 100, EVEN);

Morphs will be found and used randomly, one from each morph group, with a random strength (which means some NPCs won't look like they have it applied because the strength will be near 0). You can set a probability to have a group applied less often. In this example:

  • 80% of male horses have the Nose Shape morph applied.
  • The strength will be picked randomly between 0 and 100%. If you have a morph that doesn't look good at the extremes, lower the top number.
  • The strength will be set with even probability across the range, so 1.0 is as likely to be chosen as 0.2. Other values are SKEW0, which weights the strength towards 0, so it's less likely the NPCs will have extreme values, and SKEW1, which makes it more likely that the strength will be at the extreme.
    SetFaceMorph('FFOFoxRace', FEMALE, 'Ears - Full', 
        {loc min} -0.25, -0.25, -0.25,  {rot min} 0, 0, 0, {scale min} -0.4,
        {loc max} 0.25, 0.25, 0.25,  {rot max} 0, 0, 0, {scale max} 0.4);
    SetFaceMorph('FFOFoxRace', FEMALE, 'Nose - Full', 
        {loc min} 0, 0, -0.7,  {rot min} 0, 0, 0, {scale min} -0.2,
        {loc max} 0, 0, 0,  {rot max} 0, 0, 0, {scale min} -0);

Face morphs use the facebones mechanism to modify the head shape and they will be ignored completely if you don't specify them. That's because it's really easy to create deformed heads if you are just throwing random values at it.

For morphs you do want the furrifier to use, like the fox ears here, name the Face Morph and then provide min/max values for all the elements--location, rotation, and scale. The furrifier will choose a random value in the range you provide.

That's it!

⚠️ **GitHub.com Fallback** ⚠️