diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js
index 31a9ec88db521d906f5fd944a9ff439a425efd1b..ff006a0af1402f94e9916f35cf7443c3ff1911bc 100644
--- a/js/003-data/miscData.js
+++ b/js/003-data/miscData.js
@@ -452,6 +452,179 @@ App.Data.misc = {
 
 	badNames: ["Ass Kisser", "Ass Licker", "Ass", "Assfucker", "Asshole", "Ballsack", "Bastard", "Bitch", "Cock", "Cocksucker", "Coward", "Creep", "Cum Rag", "Cunt", "Degenerate", "Despoiler", "Dick", "Dickhead", "Dicksucker", "Dickweed", "Dipshit", "Douchebag", "Dumbass", "DumbFuck", "Dunderfuck", "Faggot", "Fucker", "Fuckface", "Fuckhead", "Fucko", "Fucktard", "Fuckwit", "Idiot", "Inbred", "Jackass", "Jerk", "Jizz Stain", "Moron", "Motherfucker", "Nutsack", "Pissbaby", "Prick", "Pussy", "Rapist", "Ratfuck", "Retard", "Ruiner", "Schmuck", "Scumbag", "Shitbird", "Shithead", "Slave", "Slaver", "Sleazeball", "Slut", "Sodomite", "Thundercunt", "Traitor", "Trash", "Whore"],
 
+	niceClothes: [
+		{name: "Attractive lingerie for a pregnant woman", value: "attractive lingerie for a pregnant woman", fs: "FSRepopulationFocus", unlock: {clothesBoughtMaternityLingerie: 1} },
+		{name: "Bunny outfit", value: "a bunny outfit", fs: "FSGenderFundamentalist", unlock: {clothesBoughtBunny: 1} },
+		{name: "Body oil", value: "body oil", fs: "FSPhysicalIdealist", unlock: {clothesBoughtOil: 1} },
+		{name: "Chattel habit", value: "a chattel habit", fs: "FSChattelReligionist", unlock: {clothesBoughtHabit: 1} },
+		{name: "Conservative clothing", value: "conservative clothing", fs: "FSPaternalist", unlock: {clothesBoughtConservative: 1} },
+		{name: "Harem gauze", value: "harem gauze", fs: "FSArabianRevivalist", unlock: {clothesBoughtHarem: 1} },
+		{name: "Huipil", value: "a huipil", fs: "FSAztecRevivalist", unlock: {clothesBoughtHuipil: 1} },
+		{name: "Kimono", value: "a kimono", fs: "FSEdoRevivalist", unlock: {clothesBoughtKimono: 1, continent:"Japan"} },
+		{name: "Maternity dress", value: "a maternity dress", fs: "FSRepopulationFocus", unlock: {clothesBoughtMaternityDress: 1} },
+		{name: "Qipao (slutty)", value: "a slutty qipao", fs: "FSChineseRevivalist", unlock: {clothesBoughtQipao: 1} },
+		{name: "Qipao (long)", value: "a long qipao", fs: "FSChineseRevivalist", unlock: {clothesBoughtCultural: 1} },
+		{name: "Stretch pants and a crop-top", value: "stretch pants and a crop-top", fs: "FSHedonisticDecadence", unlock: {clothesBoughtLazyClothes: 1} },
+		{name: "Toga", value: "a toga", fs: "FSRomanRevivalist", unlock: {clothesBoughtToga: 1} },
+		{name: "Western clothing", value: "Western clothing", fs: "FSPastoralist", unlock: {clothesBoughtWestern: 1} },
+		{name: "Courtesan dress", value: "a courtesan dress", fs: "FSSlaveProfessionalism", unlock: {clothesBoughtCourtesan: 1} },
+		{name: "Bimbo outfit", value: "a bimbo outfit", fs: "FSIntellectualDependency", unlock: {clothesBoughtBimbo: 1} },
+		{name: "Petite admi outfit", value: "petite admi outfit", fs: "FSPetiteAdmiration", unlock: {clothesBoughtPetite: 1} },
+		{name: "Battlearmor", value: "battlearmor", unlock: {clothesBoughtMilitary: 1} },
+		{name: "Military uniform", value: "a military uniform", unlock: {clothesBoughtMilitary: 1} },
+		{name: "Red Army uniform", value: "a red army uniform", unlock: {clothesBoughtMilitary: 1} },
+		{name: "Battledress", value: "battledress", unlock: {clothesBoughtMilitary: 1} },
+		{name: "Biyelgee costume", value: "a biyelgee costume", unlock: {clothesBoughtCultural: 1,} },
+		{name: "Dirndl", value: "a dirndl", unlock: {clothesBoughtCultural: 1,} },
+		{name: "Lederhosen", value: "lederhosen", unlock: {clothesBoughtCultural: 1,} },
+		{name: "Mounty outfit", value: "a mounty outfit", unlock: {clothesBoughtCultural: 1,} },
+		{name: "Hanbok", value: "a hanbok", unlock: {clothesBoughtCultural: 1,} },
+		{name: "Burqa", value: "a burqa", unlock: {clothesBoughtMiddleEastern: 1, continent: "the Middle East"} },
+		{name: "Niqab and abaya", value: "a niqab and abaya", unlock: {clothesBoughtMiddleEastern: 1, continent: "the Middle East"} },
+		{name: "Hijab and blouse", value: "a hijab and blouse", unlock: {clothesBoughtMiddleEastern: 1, clothesBoughtConservative: 1, continent: "the Middle East"} },
+		{name: "Burkini", value: "a burkini", unlock: {clothesBoughtMiddleEastern: 1, clothesBoughtSwimwear: 1, continent: "the Middle East"} },
+		{name: "Santa dress", value: "a Santa dress", unlock: {clothesBoughtCostume: 1} },
+
+		{name: "Klan robe", value: "a klan robe", unlock: {clothesBoughtPol: 1} },
+		{name: "Slutty klan robe", value: "a slutty klan robe", unlock: {clothesBoughtPol: 1} },
+		{name: "Schutzstaffel uniform", value: "a schutzstaffel uniform", unlock: {clothesBoughtPol: 1} },
+		{name: "Slutty schutzstaffel uniform", value: "a slutty schutzstaffel uniform", unlock: {clothesBoughtPol: 1} },
+
+		{name: "Nice business attire", value: "nice business attire", unlock: {clothesBoughtCareer: 1} },
+		{name: "Nurse (nice)", value: "a nice nurse outfit", unlock: {clothesBoughtCareer: 1} },
+		{name: "Police uniform", value: "a police uniform", unlock: {clothesBoughtCareer: 1} },
+		{name: "Maid (nice)", value: "a nice maid outfit", unlock: {clothesBoughtCareer: 1, "PC.career": "servant"} },
+
+		{name: "Ballgown", value: "a ball gown", unlock: {clothesBoughtDresses: 1} },
+		{name: "Gothic lolita dress", value: "a gothic lolita dress", unlock: {clothesBoughtDresses: 1} },
+
+		{name: "Cybersuit", value: "a cybersuit", unlock: {clothesBoughtBodysuits: 1} },
+		{name: "Latex catsuit", value: "a latex catsuit", unlock: {clothesBoughtBodysuits: 1} },
+
+		{name: "Button-up shirt and panties", value: "a button-up shirt and panties", unlock: {clothesBoughtCasual: 1} },
+		{name: "Button-up shirt", value: "a button-up shirt", unlock: {clothesBoughtCasual: 1} },
+		{name: "Cutoffs", value: "cutoffs", unlock: {clothesBoughtCasual: 1} },
+		{name: "Jeans", value: "jeans", unlock: {clothesBoughtCasual: 1} },
+		{name: "Leather pants and a tube top", value: "leather pants and a tube top", unlock: {clothesBoughtCasual: 1} },
+		{name: "Leather pants", value: "leather pants", unlock: {clothesBoughtCasual: 1} },
+		{name: "Oversized t-shirt", value: "an oversized t-shirt", unlock: {clothesBoughtCasual: 1} },
+		{name: "Sweater and cutoffs", value: "a sweater and cutoffs", unlock: {clothesBoughtCasual: 1} },
+		{name: "Sweater and panties", value: "a sweater and panties", unlock: {clothesBoughtCasual: 1} },
+		{name: "Sweater", value: "a sweater", unlock: {clothesBoughtCasual: 1} },
+		{name: "T-shirt and jeans", value: "a t-shirt and jeans", unlock: {clothesBoughtCasual: 1} },
+		{name: "T-shirt and panties", value: "a t-shirt and panties", unlock: {clothesBoughtCasual: 1} },
+		{name: "T-shirt", value: "a t-shirt", unlock: {clothesBoughtCasual: 1} },
+		{name: "Tank-top and panties", value: "a tank-top and panties", unlock: {clothesBoughtCasual: 1} },
+		{name: "Tank-top", value: "a tank-top", unlock: {clothesBoughtCasual: 1} },
+		{name: "Tube top", value: "a tube top", unlock: {clothesBoughtCasual: 1} },
+		
+		{name: "Boyshorts", value: "boyshorts", unlock: {clothesBoughtUnderwear: 1} },
+		{name: "Bra", value: "a bra", unlock: {clothesBoughtUnderwear: 1} },
+		{name: "Kitty lingerie", value: "kitty lingerie", unlock: {clothesBoughtUnderwear: 1} },
+		{name: "Panties and pasties", value: "panties and pasties", unlock: {clothesBoughtUnderwear: 1} },
+		{name: "Skimpy loincloth", value: "a skimpy loincloth", unlock: {clothesBoughtUnderwear: 1} },
+		{name: "Thong", value: "a thong", unlock: {clothesBoughtUnderwear: 1} },
+		{name: "Pasties", value: "pasties", unlock: {clothesBoughtUnderwear: 1} },
+		
+		{name: "Leather pants and pasties", value: "leather pants and pasties", unlock: {clothesBoughtUnderwear: 1, clothesBoughtCasual: 1} },
+		{name: "T-shirt and thong", value: "a t-shirt and thong", unlock: {clothesBoughtUnderwear: 1, clothesBoughtCasual: 1} },
+		{name: "Tube top and thong", value: "a tube top and thong", unlock: {clothesBoughtUnderwear: 1, clothesBoughtCasual: 1} },
+		{name: "Oversized t-shirt and boyshorts", value: "an oversized t-shirt and boyshorts", unlock: {clothesBoughtUnderwear: 1, clothesBoughtCasual: 1} },
+		
+		{name: "Sport shorts and a sports bra", value: "sport shorts and a sports bra", unlock: {clothesBoughtSports: 1} },
+		{name: "Sport shorts", value: "sport shorts", unlock: {clothesBoughtSports: 1} },
+		{name: "Sports bra", value: "a sports bra", unlock: {clothesBoughtSports: 1} },
+		
+		{name: "Sport shorts and a t-shirt", value: "sport shorts and a t-shirt", unlock: {clothesBoughtSports: 1, clothesBoughtCasual: 1} }, // note both unlocks should be met for this one, not just either.
+
+		{name: "Pony outfit (nice)", value: "a nice pony outfit", unlock: {clothesBoughtPony: 1} },
+		{name: "Pony outfit (slutty)", value: "a slutty pony outfit", unlock: {clothesBoughtPony: 1} },
+		
+		{name: "Monokini", value: "a monokini", unlock: {clothesBoughtSwimwear: 1} },
+		{name: "One-piece swimsuit", value: "a one-piece swimsuit", unlock: {clothesBoughtSwimwear: 1} },
+
+		{name: "Striped bra", value: "a striped bra", unlock: {clothesBoughtPantsu: 1, continent: "Japan"} },
+		{name: "Striped panties", value: "striped panties", unlock: {clothesBoughtPantsu: 1, continent: "Japan"} },
+		{name: "Striped underwear", value: "striped underwear", unlock: {clothesBoughtPantsu: 1, continent: "Japan"} },
+		
+		// "Normal" things:
+		{name: "Apron", value: "an apron"},
+		{name: "Bangles", value: "slutty jewelry"},
+		{name: "Clubslut netting", value: "clubslut netting"},
+		{name: "Cutoffs and a t-shirt", value: "cutoffs and a t-shirt"},
+		{name: "Bodysuit", value: "a comfortable bodysuit"},
+		{name: "Cheerleader", value: "a cheerleader outfit"},
+		{name: "Fallen nun", value: "a fallen nuns habit"},
+		{name: "Hijab and abaya", value: "a hijab and abaya"},
+		{name: "Leotard", value: "a leotard"},
+		{name: "Maid (slutty)", value: "a slutty maid outfit"},
+		{name: "Mini dress", value: "a mini dress"},
+		{name: "Nice lingerie", value: "attractive lingerie"},
+		{name: "Nurse (slutty)", value: "a slutty nurse outfit"},
+		{name: "Overalls", value: "overalls"},
+		{name: "Panties", value: "panties"},
+		{name: "Scalemail bikini", value: "a scalemail bikini"},
+		{name: "Schoolgirl", value: "a schoolgirl outfit"},
+		{name: "Slutty outfit", value: "a slutty outfit"},
+		{name: "Spats and a tank top", value: "spats and a tank top"},
+		{name: "String bikini", value: "a string bikini"},
+		{name: "Succubus costume", value: "a succubus outfit"},
+		{name: "Slutty business attire", value: "slutty business attire"},
+
+		//{name: "Let them choose", value: "choosing her own clothes"}, //an option, but not one we need to return.  Human eyes only.
+		{name: "Haltertop dress", value: "a halter top dress"},
+		{name: "Slave gown", value: "a slave gown"}
+	],
+
+	harshClothes: [
+		{name: "Chains", value: "chains", fs: "FSDegradationist", unlock: {clothesBoughtChains: 1} },
+		{name: "Go naked", value: "no clothing"},
+		{name: "Penitent nun", value: "a penitent nuns habit"},
+		{name: "Restrictive latex", value: "restrictive latex"},
+		{name: "Shibari ropes", value: "shibari ropes"},
+		{name: "Uncomfortable straps", value: "uncomfortable straps"}
+	],
+
+		/*
+		// Collars
+		{ name: "Cruel retirement counter", value: "cruel retirement counter", unlock: {seeAge: 1} },
+		{name: "bowtie", value: "bowtie", fs: "FSGenderFundamentalist", unlock: {clothesBoughtBunny: 1} , comfort: "nice"},
+		{name: "ancient Egyptian", value: "ancient Egyptian", fs: "FSEgyptianRevivalist", unlock: {clothesBoughtEgypt: 1} , comfort: "nice"},
+		{name: "massive dildo gag", value: "massive dildo gag", fs: "", unlock: {: 1, : 1} },
+			return (V.toysBoughtGags === 1);
+
+		// Shoes
+		{name: "platform shoes", value: "platform shoes", fs: "FSStatuesqueGlorification", unlock: {shoesBoughtHeels: 1} , comfort: "nice"},
+		{name: "platform heels", value: "platform heels", fs: "FSStatuesqueGlorification", unlock: {shoesBoughtHeels: 1} , comfort: "nice"},
+		{name: "extreme platform heels", value: "extreme platform heels", fs: "FSStatuesqueGlorification", unlock: {shoesBoughtHeels: 1} , comfort: "nice"},
+			
+		// Belly
+		{name: "a small empathy belly", value: "a small empathy belly", fs: "", unlock: {: 1, : 1} },
+		{name: "a medium empathy belly", value: "a medium empathy belly", fs: "", unlock: {: 1, : 1} },
+		{name: "a large empathy belly", value: "a large empathy belly", fs: "", unlock: {: 1, : 1} },
+		{name: "a huge empathy belly", value: "a huge empathy belly", fs: "", unlock: {: 1, : 1} },
+			return (V.arcologies[0].FSRepopulationFocus > 0 || V.clothesBoughtBelly === 1);
+
+		// Sextoy
+		{name: "bullet vibrator", value: "bullet vibrator", fs: "", unlock: {: 1, : 1} },
+		{name: "smart bullet vibrator", value: "smart bullet vibrator", fs: "", unlock: {: 1, : 1} },
+		{name: "long dildo", value: "long dildo", fs: "", unlock: {: 1, : 1} },
+		case "long, large dildo":
+		case "long, huge dildo":
+			return (V.toysBoughtDildos === 1);
+		{name: "vibrator", value: "vibrator", fs: "", unlock: {: 1, : 1} },
+			return (V.toysBoughtVaginalAttachments === 1);
+		{name: "long plug", value: "long plug", fs: "", unlock: {: 1, : 1} },
+		case "long, large plug":
+		case "long, huge plug":
+			return (V.toysBoughtButtPlugs === 1);
+		{name: "tail", value: "tail", fs: "", unlock: {: 1, : 1} },
+		{name: "cow tail", value: "cow tail", fs: "", unlock: {: 1, : 1} },
+		{name: "cat tail", value: "cat tail", fs: "", unlock: {: 1, : 1} },
+		{name: "fox tail", value: "fox tail", fs: "", unlock: {: 1, : 1} },
+			return (V.toysBoughtButtPlugTails === 1);
+		*/
+
 	harshCollars: [
 		{ name: "Tight steel", value: "tight steel" },
 		{ name: "Cruel retirement counter", value: "cruel retirement counter", fs: "seeAge" },
diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js
index 940ff65b989c3ce3d3cb92342770c14180daba85..c00d459196f5e7dc12d9130b077da63a6726e6b3 100644
--- a/src/js/itemAvailability.js
+++ b/src/js/itemAvailability.js
@@ -200,6 +200,46 @@ window.isItemAccessible = function(string) {
 	}
 };
 
+window.isClothingAccessible = function(string) {
+	if (V.cheatMode === 1) {
+		return true;
+	}
+
+	let item = App.Data.misc.niceClothes.find((i) => i.value === string);
+	if (!item) {
+		item = App.Data.misc.harshClothes.find((i) => i.value === string);
+	}
+	if (!item) {
+		console.log(`${string} is not a registered piece of clothing! Check App.Data.Misc.`);
+		return false; /* couldn't be found */
+	}
+	if (!(item.hasOwnProperty("unlock")) && !(item.hasOwnProperty("fs"))) {
+		return true;
+	}
+	if (item.hasOwnProperty("fs")) {
+		if (V.arcologies[0][item.fs] > 0) {
+			return true;
+		}
+	}
+	if (item.hasOwnProperty("unlock")) {
+		let keys = Object.keys(item.unlock);
+		for (let key in keys) {
+			if (keys[key] === "continent" && V.continent === item.unlock[keys[key]]) {
+				return true;
+			} else if (V[keys[key]] > 0 ) {
+				return true;
+			}
+		}
+		// special case where they must both be true
+		if (item.unlock.clothesBoughtSports && item.unlock.clothesBoughtCasual) {
+			if (V.clothesBoughtSports && V.clothesBoughtCasual) {
+				return true;
+			}
+		}
+	}
+	return false;
+};
+
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {string} prosthetic
diff --git a/src/js/wardrobeUse.js b/src/js/wardrobeUse.js
index dcf25c19cc8a8d513f5de57510427ed4c1d0988a..f1ae754633ace4afb08c5b740f968c7756f1eb53 100644
--- a/src/js/wardrobeUse.js
+++ b/src/js/wardrobeUse.js
@@ -12,124 +12,34 @@ App.UI.Wardrobe.clothes = function(slave) {
 		} = getPronouns(slave);
 
 	let choiceOptionsArray= [];
+	choiceOptionsArray.push({text: `Let ${him} choose`, updateSlave: {clothes: `choosing her own clothes`}});
+
 	let niceOptionsArray= [];
 	let harshOptionsArray= [];
-	choiceOptionsArray.push({text: `Let ${him} choose`, updateSlave: {clothes: `choosing her own clothes`}});
 
-	// Nice options:
-	niceOptionsArray.push({text: `Apron`, updateSlave: {clothes: `an apron`}});
-	niceOptionsArray.push({text: `Ballgown`, updateSlave: {clothes: `a ball gown`}});
-	niceOptionsArray.push({text: `Ballgown`, updateSlave: {clothes: `a ball gown`}});
-	niceOptionsArray.push({text: `Bangles`, updateSlave: {clothes: `slutty jewelry`}});
-	niceOptionsArray.push({text: `Battlearmor`, updateSlave: {clothes: `battlearmor`}});
-	niceOptionsArray.push({text: `Battledress`, updateSlave: {clothes: `battledress`}});
-	niceOptionsArray.push({text: `Biyelgee costume`, updateSlave: {clothes: `a biyelgee costume`}});
-	niceOptionsArray.push({text: `Bodysuit`, updateSlave: {clothes: `a comfortable bodysuit`}});
-	niceOptionsArray.push({text: `Boyshorts`, updateSlave: {clothes: `boyshorts`}});
-	niceOptionsArray.push({text: `Bra`, updateSlave: {clothes: `a bra`}});
-	niceOptionsArray.push({text: `Burkini`, updateSlave: {clothes: `a burkini`}});
-	niceOptionsArray.push({text: `Burqa`, updateSlave: {clothes: `a burqa`}});
-	niceOptionsArray.push({text: `Button-up shirt and panties`, updateSlave: {clothes: `a button-up shirt and panties`}});
-	niceOptionsArray.push({text: `Button-up shirt`, updateSlave: {clothes: `a button-up shirt`}});
-	niceOptionsArray.push({text: `Cheerleader`, updateSlave: {clothes: `a cheerleader outfit`}});
-	niceOptionsArray.push({text: `Clubslut netting`, updateSlave: {clothes: `clubslut netting`}});
-	niceOptionsArray.push({text: `Cutoffs and a t-shirt`, updateSlave: {clothes: `cutoffs and a t-shirt`}});
-	niceOptionsArray.push({text: `Cutoffs`, updateSlave: {clothes: `cutoffs`}});
-	niceOptionsArray.push({text: `Cybersuit`, updateSlave: {clothes: `a cybersuit`}});
-	niceOptionsArray.push({text: `Dirndl`, updateSlave: {clothes: `a dirndl`}});
-	niceOptionsArray.push({text: `Fallen nun`, updateSlave: {clothes: `a fallen nuns habit`}});
-	niceOptionsArray.push({text: `Gothic lolita dress`, updateSlave: {clothes: `a gothic lolita dress`}});
-	niceOptionsArray.push({text: `Haltertop dress`, updateSlave: {clothes: `a halter top dress`}});
-	niceOptionsArray.push({text: `Hanbok`, updateSlave: {clothes: `a hanbok`}});
-	niceOptionsArray.push({text: `Hijab and abaya`, updateSlave: {clothes: `a hijab and abaya`}});
-	niceOptionsArray.push({text: `Hijab and blouse`, updateSlave: {clothes: `a hijab and blouse`}});
-	niceOptionsArray.push({text: `Jeans`, updateSlave: {clothes: `jeans`}});
-	niceOptionsArray.push({text: `Kitty lingerie`, updateSlave: {clothes: `kitty lingerie`}});
-	niceOptionsArray.push({text: `Ku Klux Klan robe (nice)`, updateSlave: {clothes: `a klan robe`}});
-	niceOptionsArray.push({text: `Ku Klux Klan robe (slutty)`, updateSlave: {clothes: `a slutty klan robe`}});
-	niceOptionsArray.push({text: `Latex catsuit`, updateSlave: {clothes: `a latex catsuit`}});
-	niceOptionsArray.push({text: `Leather pants and a tube top`, updateSlave: {clothes: `leather pants and a tube top`}});
-	niceOptionsArray.push({text: `Leather pants and pasties`, updateSlave: {clothes: `leather pants and pasties`}});
-	niceOptionsArray.push({text: `Leather pants`, updateSlave: {clothes: `leather pants`}});
-	niceOptionsArray.push({text: `Lederhosen`, updateSlave: {clothes: `lederhosen`}});
-	niceOptionsArray.push({text: `Leotard`, updateSlave: {clothes: `a leotard`}});
-	niceOptionsArray.push({text: `Maid (nice)`, updateSlave: {clothes: `a nice maid outfit`}});
-	niceOptionsArray.push({text: `Maid (slutty)`, updateSlave: {clothes: `a slutty maid outfit`}});
-	niceOptionsArray.push({text: `Military uniform`, updateSlave: {clothes: `a military uniform`}});
-	niceOptionsArray.push({text: `Mini dress`, updateSlave: {clothes: `a mini dress`}});
-	niceOptionsArray.push({text: `Monokini`, updateSlave: {clothes: `a monokini`}});
-	niceOptionsArray.push({text: `Mounty outfit`, updateSlave: {clothes: `a mounty outfit`}});
-	niceOptionsArray.push({text: `Nice lingerie`, updateSlave: {clothes: `attractive lingerie`}});
-	niceOptionsArray.push({text: `Niqab and abaya`, updateSlave: {clothes: `a niqab and abaya`}});
-	niceOptionsArray.push({text: `Nurse (nice)`, updateSlave: {clothes: `a nice nurse outfit`}});
-	niceOptionsArray.push({text: `Nurse (slutty)`, updateSlave: {clothes: `a slutty nurse outfit`}});
-	niceOptionsArray.push({text: `One-piece swimsuit`, updateSlave: {clothes: `a one-piece swimsuit`}});
-	niceOptionsArray.push({text: `Overalls`, updateSlave: {clothes: `overalls`}});
-	niceOptionsArray.push({text: `Oversized t-shirt and boyshorts`, updateSlave: {clothes: `an oversized t-shirt and boyshorts`}});
-	niceOptionsArray.push({text: `Oversized t-shirt`, updateSlave: {clothes: `an oversized t-shirt`}});
-	niceOptionsArray.push({text: `Panties and pasties`, updateSlave: {clothes: `panties and pasties`}});
-	niceOptionsArray.push({text: `Panties`, updateSlave: {clothes: `panties`}});
-	niceOptionsArray.push({text: `Pasties`, updateSlave: {clothes: `pasties`}});
-	niceOptionsArray.push({text: `Police uniform`, updateSlave: {clothes: `a police uniform`}});
-	niceOptionsArray.push({text: `Pony outfit (nice)`, updateSlave: {clothes: `a nice pony outfit`}});
-	niceOptionsArray.push({text: `Pony outfit (slutty)`, updateSlave: {clothes: `a slutty pony outfit`}});
-	niceOptionsArray.push({text: `Red Army uniform`, updateSlave: {clothes: `a red army uniform`}});
-	niceOptionsArray.push({text: `Santa dress`, updateSlave: {clothes: `a Santa dress`}});
-	niceOptionsArray.push({text: `Scalemail bikini`, updateSlave: {clothes: `a scalemail bikini`}});
-	niceOptionsArray.push({text: `Schoolgirl`, updateSlave: {clothes: `a schoolgirl outfit`}});
-	niceOptionsArray.push({text: `Schutzstaffel uniform (nice)`, updateSlave: {clothes: `a schutzstaffel uniform`}});
-	niceOptionsArray.push({text: `Schutzstaffel uniform (slutty)`, updateSlave: {clothes: `a slutty schutzstaffel uniform`}});
-	niceOptionsArray.push({text: `Skimpy loincloth`, updateSlave: {clothes: `a skimpy loincloth`}});
-	niceOptionsArray.push({text: `Slave gown`, updateSlave: {clothes: `a slave gown`}});
-	niceOptionsArray.push({text: `Slutty outfit`, updateSlave: {clothes: `a slutty outfit`}});
-	niceOptionsArray.push({text: `Spats and a tank top`, updateSlave: {clothes: `spats and a tank top`}});
-	niceOptionsArray.push({text: `Sport shorts and a sports bra`, updateSlave: {clothes: `sport shorts and a sports bra`}});
-	niceOptionsArray.push({text: `Sport shorts and a t-shirt`, updateSlave: {clothes: `sport shorts and a t-shirt`}});
-	niceOptionsArray.push({text: `Sport shorts`, updateSlave: {clothes: `sport shorts`}});
-	niceOptionsArray.push({text: `Sports bra`, updateSlave: {clothes: `a sports bra`}});
-	niceOptionsArray.push({text: `String bikini`, updateSlave: {clothes: `a string bikini`}});
-	niceOptionsArray.push({text: `Striped bra`, updateSlave: {clothes: `a striped bra`}});
-	niceOptionsArray.push({text: `Striped panties`, updateSlave: {clothes: `striped panties`}});
-	niceOptionsArray.push({text: `Striped underwear`, updateSlave: {clothes: `striped underwear`}});
-	niceOptionsArray.push({text: `Succubus costume`, updateSlave: {clothes: `a succubus outfit`}});
-	niceOptionsArray.push({text: `Suit (nice)`, updateSlave: {clothes: `nice business attire`}});
-	niceOptionsArray.push({text: `Suit (slutty)`, updateSlave: {clothes: `slutty business attire`}});
-	niceOptionsArray.push({text: `Sweater and cutoffs`, updateSlave: {clothes: `a sweater and cutoffs`}});
-	niceOptionsArray.push({text: `Sweater and panties`, updateSlave: {clothes: `a sweater and panties`}});
-	niceOptionsArray.push({text: `Sweater`, updateSlave: {clothes: `a sweater`}});
-	niceOptionsArray.push({text: `T-shirt and jeans`, updateSlave: {clothes: `a t-shirt and jeans`}});
-	niceOptionsArray.push({text: `T-shirt and panties`, updateSlave: {clothes: `a t-shirt and panties`}});
-	niceOptionsArray.push({text: `T-shirt and thong`, updateSlave: {clothes: `a t-shirt and thong`}});
-	niceOptionsArray.push({text: `T-shirt`, updateSlave: {clothes: `a t-shirt`}});
-	niceOptionsArray.push({text: `Tank-top and panties`, updateSlave: {clothes: `a tank-top and panties`}});
-	niceOptionsArray.push({text: `Tank-top`, updateSlave: {clothes: `a tank-top`}});
-	niceOptionsArray.push({text: `Thong`, updateSlave: {clothes: `a thong`}});
-	niceOptionsArray.push({text: `Tube top and thong`, updateSlave: {clothes: `a tube top and thong`}});
-	niceOptionsArray.push({text: `Tube top`, updateSlave: {clothes: `a tube top`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Attractive lingerie for a pregnant woman`, updateSlave: {clothes: `attractive lingerie for a pregnant woman`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Bimbo outfit`, updateSlave: {clothes: `a bimbo outfit`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Bunny outfit`, updateSlave: {clothes: `a bunny outfit`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Body oil`, updateSlave: {clothes: `body oil`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Chattel habit`, updateSlave: {clothes: `a chattel habit`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Conservative clothing`, updateSlave: {clothes: `conservative clothing`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Courtesan dress`, updateSlave: {clothes: `a courtesan dress`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Harem gauze`, updateSlave: {clothes: `harem gauze`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Huipil`, updateSlave: {clothes: `a huipil`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Kimono`, updateSlave: {clothes: `a kimono`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Maternity dress`, updateSlave: {clothes: `a maternity dress`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Qipao (nice)`, updateSlave: {clothes: `a long qipao`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Qipao (slutty)`, updateSlave: {clothes: `a slutty qipao`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Stretch pants and a crop-top`, updateSlave: {clothes: `stretch pants and a crop-top`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Toga`, updateSlave: {clothes: `a toga`}});
-	niceOptionsArray.push({prefix: `FS`, text: `Western clothing`, updateSlave: {clothes: `Western clothing`}});
-
-	// Harsh options:
-	harshOptionsArray.push({text: `Go naked`, updateSlave: {clothes: `no clothing`}});
-	harshOptionsArray.push({prefix: `FS`, text: `Chains`, updateSlave: {clothes: `chains`}});
-	harshOptionsArray.push({text: `Penitent nun`, updateSlave: {clothes: `a penitent nuns habit`}});
-	harshOptionsArray.push({text: `Restrictive latex`, updateSlave: {clothes: `restrictive latex`}});
-	harshOptionsArray.push({text: `Shibari ropes`, updateSlave: {clothes: `shibari ropes`}});
-	harshOptionsArray.push({text: `Uncomfortable straps`, updateSlave: {clothes: `uncomfortable straps`}});
+	let clothingOption;
+	// Nice clothes
+	App.Data.misc.niceClothes.forEach(item => {
+		clothingOption = {
+			text: item.name,
+			updateSlave: {clothes: item.value}
+		};
+		if (item.fs) {
+			clothingOption.FS = item.fs;
+		}
+		niceOptionsArray.push(clothingOption);
+	});
+	// Harsh clothes
+	App.Data.misc.harshClothes.forEach(item => {
+		clothingOption = {
+			text: item.name,
+			updateSlave: {clothes: item.value}
+		};
+		if (item.fs) {
+			clothingOption.FS = item.fs;
+		}
+		harshOptionsArray.push(clothingOption);
+	});
 
 	// Sort
 	niceOptionsArray = niceOptionsArray.sort((a, b) => (a.text > b.text) ? 1 : -1);
@@ -137,18 +47,18 @@ App.UI.Wardrobe.clothes = function(slave) {
 
 	let el = document.createElement('div');
 
-	let title = document.createElement('div');
-	title.append(`Clothes: `);
+	let label = document.createElement('div');
+	label.append(`Clothes: `);
 
 	let choice = document.createElement('span');
 	choice.style.fontWeight = "bold";
 	choice.textContent = (`${slave.clothes} `);
-	title.appendChild(choice);
+	label.appendChild(choice);
 
 	// Choose her own
-	title.appendChild(generateRows(choiceOptionsArray));
+	label.appendChild(generateRows(choiceOptionsArray));
 
-	el.appendChild(title);
+	el.appendChild(label);
 
 
 	// Nice options
@@ -161,7 +71,7 @@ App.UI.Wardrobe.clothes = function(slave) {
 	// Harsh options
 	links = document.createElement('div');
 	links.className = "choices";
-	links.append(`Nice: `);
+	links.append(`Harsh: `);
 	links.appendChild(generateRows(harshOptionsArray));
 	el.appendChild(links);
 
@@ -177,7 +87,7 @@ App.UI.Wardrobe.clothes = function(slave) {
 
 			// Test to see if there was a problem with the key
 			for (let j = 0; j < keys.length; j++) {
-				if (["prefix", "text", "updateSlave", "update", "note", "disabled"].includes(keys[j])) {
+				if (["FS", "text", "updateSlave", "update", "note", "disabled"].includes(keys[j])) {
 					continue;
 				} else {
 					array[i].text += " ERROR, THIS SCENE WAS NOT ENTERED CORRECTLY";
@@ -185,7 +95,7 @@ App.UI.Wardrobe.clothes = function(slave) {
 					break;
 				}
 			}
-			if (isItemAccessible(array[i].updateSlave.clothes)) {
+			if (array[i].updateSlave.clothes === `choosing her own clothes` || isClothingAccessible(array[i].updateSlave.clothes)) {
 				// is it just text?
 				if (array[i].disabled) {
 					link = App.UI.DOM.disabledLink(array[i].text, [array[i].disabled]);
@@ -197,16 +107,15 @@ App.UI.Wardrobe.clothes = function(slave) {
 						App.UI.DOM.link(
 							`${array[i].text} `,
 							() => { click(array[i]); },
-							[],
-							passage
 						)
 					);
 
-					if (array[i].prefix) {
-						let prefix = document.createElement('span');
-						prefix.style.fontStyle = "italic";
-						prefix.textContent = `${array[i].prefix}`;
-						link.appendChild(prefix);
+					if (array[i].FS) {
+						let FS = array[i].FS.substring(2); // Given "FSEdoRevivalist", cut off the first two letters to start a user friendly tooltip
+						FS = FS.replace(/([A-Z])/g, ` $1`); // Given "EdoRevivalist", find every capital letter and put a space in front of it
+						FS = App.UI.DOM.disabledLink(`FS`, [FS]); // Tooltip should read "Edo Revivalist"
+						FS.style.fontStyle = "italic";
+						link.appendChild(FS);
 					}
 
 					// add a note node if required
@@ -244,6 +153,12 @@ App.UI.Wardrobe.clothes = function(slave) {
 		}
 	}
 };
+
+App.UI.Wardrobe.refreshAll = function(slave) {
+	App.UI.Wardrobe.clothes(slave);
+	return;
+};
+
 /*
 	<br>Collar: ''<span id="collar">slave.collar</span>.''
 	<<link "None">>slave.collar = "none";<</link>>