Fallout 4

File information

Last updated

Original upload

Created by

tzenrick

Uploaded by

tzenrick

Virus scan

Safe to use

About this mod

Transform the outfits of the NPCs in Fallout 4 with OutfitShuffler! This mod lets you mix and match clothing and accessories to create endless fashion combinations. Customize the frequency, NPC selection, and item exclusions for outfit changes to make them fit your playstyle. And if you're lucky, you might even find some new outfit pieces as loot!

Requirements
Permissions and credits
OutfitShuffler 10.4
10.4 LL_FourPlay(v46, self-reports as v44. They forgot to update the version number.) has been updated. Now I'm using PopulateFormlist() again. Outfit scanning is faster, again. The Reset at the bottom of the MCM should dump the Formlists, Special Items, and Indexes for NPCs. Uninstall does all of that, tries to stop the script, and restarts the script. I'm working on it...

10.3 Oopsie. I left in a .Clear() that I was using in testing. My bad.

10.2 Probably never going to be upgrade friendly. The script is constantly changing... I'm going to try to make a working uninstall......

10.1 STILL NOT UPGRADE FRIENDLY! It turns out that I'm doing this thing where I'm beating the new functions in LL_FourPlay to death, and exposing their weaknesses. I rolled back to some older code for outfit scanning, since PopulateFormlist is not persistently storing data, like it's supposed to. I've already discussed it with the FourPlay devs, and the code concened has been fixed for the next release. I'm going to try to beat some other things to death before that happens, so they'll be predictable when I want to use them.

10.0 ALSO NOT UPGRADE FRIENDLY! DAILY effort has gone into this. There is now a new background script that maintains the massive sets of Arrays and FormLists I've created. I statically defined some very large arrays and formlists, so now all SaveNPC, LoadNPC, and all outfit lists are stored in memory after the initial scan. 1024 NPCs can be stored in the current configuration. Speaking of the initial scan, It should also be considerably faster. My current loadout now scans and loads in 210 seconds instead of 330-ish. I'm using a new function from LL_FourPlay, PopulateFormlist(). Load and correct form IDs into an array, then dump the entire section to a formlist. Go get GELUXRUM's Outfit ReDress Fix! https://www.nexusmods.com/fallout4/mods/72657 I can't recommend it enough! I have done absolutely nothing to integrate with it, because it doesn't need it, "It just works."

9.1 NOT UPGRADE FRIENDLY! The scripts are wildly different, and upgrading in situ, is definitely not supported! If you can manage to clean the old script out with ReSaver, more power to you. This is an advanced proceedure and incredibly risky.
    
Container script now resticts loot on dead bodies, based on the same Allowed Races/Disallowed Factions as outfit changes. More speed optimizations. OSNPCData.ini is no longer being used to store NPC Data.

9.0 Moved all outfit assignment, saving, and loading to Maintainer script from the Main script. Much, much, much faster. Outfit assignments are now being done almost in parallel, instead of serially.

8.5 LL_FourPlay added a couple of features that I took advantage of. Increased outfit scanning speed so now it's 1/3 of what it was.
8.3 Accidentally removed the exclusion for [X?Disabled] at some point. Fixed that..
8.2 Furniture checks are in a better place now. Container and Dead Body loot chances can be independently changed in MCM.


8.1.0001 Just documentation updates.
    
8.1 So now it's using GetSlotMask to try to prevent outfit pieces from replacing each other. Seems to respect Devious Devices, Real Handcuffs, and SafeItems better.

Added a hotkey to spawn a captive from Commonwealth Captives (if available) or a random female settler.

There's a new section available for use, [OSRestrictedFurniture], and I've included INI files for some of the more popular restrictive furniture. I also threw in Cryopods, Memory Loungers, toilets, etc.

8.0c A wild settings file appeared! This is the "Hard Save data file update, with Additional Optimizations" update. That's a mouthful. Outfits and Weapons are now saved to a file, and reloaded when NPCs come back into range. I highly recommend having Buffout 4 installed, as it uses a RAM buffer instead of going to disk for every INI check. The Hard Save has the additional feature of maintaining outfits across savegames. You can also manually edit loadouts. I made the unilateral decision to use a file, over an array tied to the script, for those reasons. I added a function at the bottom of the MCM to Clear OSNPCData. It will remove any OutfitShuffler special items from all NPCs in OSNPCData, and delete their outfits from the file.

I removed a lot of repitition from the code by making a lot of the functions global, to call them from any script. I am passing properties, arrays, and formlists around, like joints at a Grateful Dead concert.

I have not updated the documentation yet. I hate documentation. I spent years writing technical documentation. Would anyone like to update my documentation for me?

7.7 Fixed AAF Doppelgangers. Fixed an annoying bug that repeated a message unnecessarily.
7.6.1 Fixed a glitch in the updater code. It was adding the maintenance spell to ALL the NPCs, then relying on the maintenance to remove itself. The maintenance script was removing itself, but not before doing the maintenance.
7.6 Removed Debug hotkey. Added variables and checks to handle updating NPC scripts when upgrading the mod.
7.5 DD Compatibility was breaking things, and I had to fix it. Left a debug function in, that teleports NPCs to your position. Not recommended in firefights.
7.4 Hammered out a little more speed in the outfit change routine.  Changed the scan routine to prioritize based on FOV and distance.

7.3 Lots of cleaning, speed improvements, logging improvements (Disable if you don't need it. Seriously.) Much better Devious Devices/Real Handcuffs compatibility.

7.2 Container management is much cleaner now. It's SUPPOSED to ignore the container used by Dave's In-Game ESP Explorer, now. I added rudimentary Devious Devices Support. I also added in a NoNudes option. It should be more aggressive at keeping some sort of clothing on the NPC's, unless they've been hit with the DontChange keyword. ** It is advised by the authors, and other users, that Devious Devices and NPCs don't mix well. I tried.

7.1 Now adds random amounts of random items to containers when you're looting. You rummage around in there, and sometimes something turns up.

7.0 BodyGen options now include a "BodyGen OneShot" option, that will only regenerate the NPCs once, then flag them to not change, even if their outfit does. Hotkey is available to change NPCs even if the other BodyGen options are disabled.
[Races] and [FactionsToIgnore] in the OufitShuffler.ini, now accept regular hexadecimal values. 0x123456 <== Is the correct format to use.
MCM Readme.txt is in Data\MCM\Config\OutfitShuffler\ in the 7z, and in the root of the repo at https://github.com/tzenrick/FO4OutfitShuffler/blob/main/MCM%20Readme.txt

6.9 Nice. Huge Speed and Stability improvements.
There was an accidental soft-dependency on AAF in previous versions. It would have caused extra outfit changes on some NPCs. Talos II Exosuits are now properly protected.

6.8 Fixed the pesky issue that was removing clothing from everyone...I think.

6.7 Outfit INI files now accept standard hexadecimal, so no more converting.

6.6 Cleaned up most of the outfit 'flicker.' (When two items keep replacing each other.)

6.5 Lots of code cleanup, much cleaner/more readable debugging. Optimization for speed.

6.3 BodyGen and Scale can be randomized with outfit changes, with a hotkey, or just disabled.

6.2 Some of the updates are pretty big...

6.23 Added more Vtaw Outfits

6.21 Just outfit sets. Don't bother unless you're adding Classy Chassis outfits to your collection.

6.22 Changed directory structure to hopefully make it MO2 friendly.


Installation: "Download with Manager," drag and drop into your mod manager, and manual installation, are all options. If you already have something that includes the Lovers Lab Four Play F4SE plugin, you will see file conflicts. As long as your other mods are up-to-date, the conflicts don't matter. The LL_FourPlay version included, is v42, released on 8/2021, and is the newest version at the time of this mod being published.

Upgrading: REMOVE PREVIOUS VERSIONS! Start game. Step through the warning about OutfitShuffler.esl not being present. Save Game. Exit. Install new version. Start Game. Save Game. Play on.

I honestly have no idea how well an update is going to go. I can edit the script and relaunch the game a dozen times in a day, and I do it from a dedicated clean save every time. Every time the script changes, and I load the game, I'm right back in Home Plate, where I wait 4 1/2 minutes for the entire initialization to run. Then I step outside and see how long it takes to change every NPC in Diamond City.
Coincidentally:
[..Shuffler]TimerTrap(6) run in 160.210022 seconds. 15 NPCs changed.
NPCs Processed:Resident Moe Cronin Terrance Mayor McDonough Abbot Solomon Resident Resident Kyle Diamond City Security Diamond City Security Diamond City Security Malcom Latimer Diamond City Security Diamond City Security
Total Plugins=379 Total OutfitParts=2471


MCM Settings:
### Rescan
[code]Rescan Rechecks Data\F4SE\Plugins\OutfitShuffler.ini updates options and rescans all of the INI files in the [INIFiles] section.
### Change Items
This option allows you to add 25 of each of the following types of items to the player's inventory:
* DontChange Item
* AlwaysChange Item
* DontBodyGen Item
* AlwaysBodyGen Item
* DontScale Item
* AlwaysScale Item
### General Settings
This option allows you to enable or disable the mod, enable or disable changing female and male NPCs, and allow or disallow container loot.

### Loot Options
This option allows you to enable or disable finding outfit pieces as loot in containers and on bodies, as well as set a maximum number of random container items and allow or disallow random outfit pieces in.

### Shuffling Options
This option allows you to enable OneShot, Keep Clothes On, enable random BodyGen, enable OneShot for BodyGen, and random Body Resizes.

### Scanning
This option allows you to set the scanning distance.

### Timers and Counters
This option allows you to set the short timer and the multiplier.

### Hotkeys
This option allows you to set hotkeys for ChangeNow, UpdateAllOutfits, DontChange, DebugNPC, and RandomBodyGen.

### Logging
This option allows you to set the logging level.

### Weapons and Base/DLC outfits
This option allows you to set the chance of new weapons from a WeaponsList.ini file, as well as allow Base/DLC outfits.

### Chances of female and male outfit parts
This option allows you to set the chances for the following female and male outfit parts: Hair, Top, Bottom, Shoes, FullBody, and ArmAddons.

### Uninstall
This option clears the formlists and stops the OutfitShuffler Control Quest. It DOES NOT RESET OUTFITS and requires a reinstall.

### Restart from OnInit()
This option restarts the mod from OnInit. It attempts to reset all formlists and reload all data. 95% of this is accomplished in "Rescan Outfits" and should be used as a last result before removing the mod, loading the game without the mod, saving the game without the mod, and reinstalling the mod.

### Reset ALL NPC data.",
Removes all saved OutfitShuffler special items, and cleans out F4SE\Plugins\OutfitShuffler\OSNPCData.ini


LL_FourPlay:
\F4SE\Plugins\LL_fourPlay.ini
\F4SE\Plugins\LL_fourPlay_1_10_163.dll
\Scripts\LL_FourPlay.pex
\Scripts\Source\User\LL_FourPlay.psc

Are all part of the FourPlay community plugin, from LoversLab.
"This is a community resource. It can be used in any way you wish in any mod."
https://www.loverslab.com/files/file/4317-devtestbeta-ll-fourplay-community-f4se-plugin-v42-2021-09-13/


Script Files:
\Scripts\OutfitShuffler.pex
\Scripts\OutfitShufflerMaintainer.pex
\Scripts\OutfitShufflerContainer.pex
\Scripts\Source\User\OutfitShuffler.psc
\Scripts\Source\User\OutfitShufflerMaintainer.psc
\Scripts\Source\User\OutfitShufflerContainer.psc

The PEX files are compiled PSC files. Take a look at the PSC files if you want to see how the script works.
At one point, I even started documenting my code.


INI Files:
\F4SE\Plugins\OutfitShuffler.ini
Is the main INI file. [Races], [FactionsToIgnore], and [InputFiles] are defined here. [Races] Defines the races that will be scanned for outfit changes. Humans, Ghouls, etc. [FactionsToIgnore] Lets you specify that Humans, yes, but Gunners, no, or Ghouls, yes, but not Triggermen.
The [InputFiles] section contains a list of files, that will be scanned through, in the F4SE\Plugins\OutfitShuffler directory. If the line is terminated with '=1', then the file will be scanned. If it's terminated in '=0', the file will not be scanned.

\F4SE\Plugins\OutfitShuffler\*.ini
These are the individual outfit files. Weapons may be specified as well.

The INI files are in the format of:
[SectionTag]
Filename.esm/esp/esl=0x000000 ; 6 digit truncated hexidecimal value of armor or weapon item. (Will probably depreceate the use of decimal conversions of this value.)

The section tags available include:
Disabled Items:
[Disabled]
Weapons:
[WeaponsList] ; Currently in Fallout4.esm.ini
Females:
[XXFullBody]
or
[XXShoes]
[XXTop]
[XXBottom]
[XXArmAddon]
[XXNeck]
[XXBelt]
[XXHair]
[XXGlasses]
[XXLegs]
[XXBack]
[XXFront]
[XXAccessory]
[XXWeaponsList]
[XXLongHair]
[XXJacket]
[XXTorsoArmor]
[XXLeftArmArmor]
[XXRightArmArmor]
[XXLeftLegArmor]
[XXRightLegArmor]
[XXEarrings]
[XXRing]
[XXBackpack]
[XXShoulder]
Males:
[XYFullBody]
or
[XYShoes]
[XYTop]
[XYBottom]
[XYArmAddon]
[XYNeck]
[XYBelt]
[XYHair]
[XYGlasses]
[XYLegs]
[XYBack]
[XYFront]
[XYAccessory]
[XYWeaponsList]
[XYLongHair]
[XYJacket]
[XYTorsoArmor]
[XYLeftArmArmor]
[XYRightArmArmor]
[XYLeftLegArmor]
[XYRightLegArmor]
[XYEarrings]
[XYRing]
[XYBackpack]
[XYShoulder]

Any section tag can be used in any OutfitShuffler\*.ini


Mod Configuration Menu:
\MCM\Config\OutfitShuffler\config.json
\MCM\Config\OutfitShuffler\keybinds.json
\MCM\Config\OutfitShuffler\settings.ini

The Mod Configuration Menu allows you to configure a slew of options. You can enable and disable the mod, overall, and on a per-sex basis. Body scaling and BodyGen options are available.
Random odds for outfit pieces can be set as well.
Rescanning outfit sets, restarting, and uninstalling the mod can all be accomplished from the Mod configuration Menu, as well.

xEdit Scripts:
\Edit Scripts\FO4 Export ARMO or WEAP as OutfitShufflerINI.pas
\Edit Scripts\FO4 Export ARMO or WEAP as OutfitShufflerININewHex.pas

The xEdit scripts provided, will allow you to export ARMO and WEAP records. The default save location is Data\F4SE\OutfitShuffler\. The "NewHex" version is preferred as of v6.7. Previous versions required all values to be in decimal format.

Usage: Once installed and enabled, outfit scanning will begin shortly after the completion of character creation. Outfits can be rescanned for additions or removals at any time in the MCM.

Customization: Use the provided xEdit scripts to export items in bulk from your mod added outfit sets. Edit the generated INI files with a text editor, and separate the exported items into proper categories. Items not to be included can be deleted, per line, or [Disabled] in groups.

Basic INI files for the folowing mods included:
38 Latex Outfit 3
AAF_AutonomyEnhanced
AnimatedJewelry_ATG
ASA
CCOCheekyCasualsCraftable
CCOFoxyFactionsCraftable
CCOSaucySettlersCraftable
CCOSaucySettlersCraftableBACKUP.txt
CCOVulgarVillainsCraftable
CCWigs
Clothes Pack 2 by DonEb14n
Clothes Pack 3 by DonEb14n
Clothes Pack 4 by DonEb14n
Clothes Pack v2.0 by DonEb14n
COCO Lingerie
COCO-LaceBody
Colorful_Wit_FG
dcc-bp-lol
DonEb14n Clothes pack
DX_FetishFashion_Part1
DX_Pornstar_Fashion
Fallout4
fco - fully customizable outfits
FF7R
FrenchMaidFO4-CBBEPhysics
ghoulMenaceFO4-LR
HeatOutfits-LionelRossi
HN66Fo4_EarringsV1
HN66Fo4_EasyGirl_BS
HN66Fo4_Nails
HN66Fo4_Rings
HN66Fo4_TRS
InoueKinkKollarsV2
InoueKinkyKollars
InoueKittyKollars
Kharneth_Chain_Lingerie
Kharneth_Slave_Clothes
LovFit
Milking And Devious Costumes
OppaiMilkPasties
OutfitShuffler 3.0 Notes.psc
Pastel Wigs
Patterned Leggings
PowerArmorLite
RealHandcuffs
rpampas
Star Pasties
Stylish_Bloomer_FG
TCNHighHeels
TCNPastiesPack1v1.0.1
TechWear
TeddyBearPasties-CBBEPhysics
Venus_Nine_FG
Vioxsis_Strap-Ons
VtawBabydoll
VtawBecca
VtawBoha
VtawCharmant
VtawChristmas
VtawClaire2
VtawCowGirl
VtawCP77Panam
VtawCP77Rogue
VtawCP77Wizzy
VtawDahlia
VtawDark
VtawDominatrix
VtawFreeSpirit
VtawFused
VtawGamerGrill
VtawGhost
VtawHalfLifeAlyx
VtawHarleyQuinn
VtawHel
VtawHolidayNights
VtawInstituteScout
VtawJoy
VtawJoyner
VtawKaine
VtawKatana
VtawKimono
VtawLady
VtawLana
VtawLancer
VtawLeony
VtawLittleDanger
VtawLoba
VtawLullaby
VtawLunarAssaultSuit
VtawMara
VtawMystique
VtawNightSpy
VtawOnyx
VtawPhantom
VtawPortal
VtawPRICE
VtawRonin
VtawSeductive
VtawSensualWear
VtawShadowYamato
VtawShevaOffice
VtawShirt
VtawSonya
VtawSpider
VtawStreetFashion
VtawTorn
VtawUmbra
VtawUtilityPack1
VtawWardrobe1
VtawWardrobe2
VtawWardrobe4
VtawWardrobe5
VtawWardrobe6
VtawWardrobe7
VtawWardrobe8
VtawWarrior
VtawWeddingDress
VtawYenn
Weapons.ini
Wigs
Zipsuit