diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js
index b79e4bd611d53d0561473aaf0254e5da0d2e37bf..13ad51986035fed5b87ce0d805d31816f9179b0b 100644
--- a/js/003-data/miscData.js
+++ b/js/003-data/miscData.js
@@ -1935,640 +1935,6 @@ App.Data.misc = {
 	badWords: ["anus", "ass", "bitch", "boob", "butt", "cock", "crap", "cum", "cunny", "cunt", "dick", "fuck", "jizz", "junk", "piss", "prick", "pussy", "shit", "slave", "slut", "tit", "trash", "whore"],
 
 	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"],
-	/**
-	 * @typedef {object} slaveWear
-	 * @property {string} name
-	 * @property {string} value
-	 * @property {string} [fs]
-	 * @property {boolean} [requirements]
-	 */
-
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	niceClothes: [
-		{
-			name: "Maternity lingerie",
-			value: "attractive lingerie for a pregnant woman",
-			fs: "FSRepopulationFocus",
-			get requirements() { return V.boughtItem.clothing.maternityLingerie === 1; }
-		},
-		{
-			name: "Bunny outfit",
-			value: "a bunny outfit",
-			fs: "FSGenderFundamentalist",
-			get requirements() { return V.boughtItem.clothing.bunny === 1; }
-		},
-		{
-			name: "Body oil",
-			value: "body oil",
-			fs: "FSPhysicalIdealist",
-			get requirements() { return V.boughtItem.clothing.oil === 1; }
-		},
-		{
-			name: "Chattel habit",
-			value: "a chattel habit",
-			fs: "FSChattelReligionist",
-			get requirements() { return V.boughtItem.clothing.habit === 1; }
-		},
-		{
-			name: "Conservative clothing",
-			value: "conservative clothing",
-			fs: "FSPaternalist",
-			get requirements() { return V.boughtItem.clothing.conservative === 1; }
-		},
-		{
-			name: "Harem gauze",
-			value: "harem gauze",
-			fs: "FSArabianRevivalist",
-			get requirements() { return V.boughtItem.clothing.harem === 1; }
-		},
-		{
-			name: "Huipil",
-			value: "a huipil",
-			fs: "FSAztecRevivalist",
-			get requirements() { return V.boughtItem.clothing.huipil === 1; }
-		},
-		{
-			name: "Kimono",
-			value: "a kimono",
-			fs: "FSEdoRevivalist",
-			get requirements() { return (V.boughtItem.clothing.kimono === 1 || V.continent === "Japan"); }
-		},
-		{
-			name: "Maternity dress",
-			value: "a maternity dress",
-			fs: "FSRepopulationFocus",
-			get requirements() { return V.boughtItem.clothing.maternityDress === 1; }
-		},
-		{
-			name: "Qipao (slutty)",
-			value: "a slutty qipao",
-			fs: "FSChineseRevivalist",
-			get requirements() { return V.boughtItem.clothing.qipao === 1; }
-		},
-		{
-			name: "Qipao (long)",
-			value: "a long qipao",
-			fs: "FSChineseRevivalist",
-			get requirements() { return V.boughtItem.clothing.cultural === 1; }
-		},
-		{
-			name: "Stretch pants and a crop-top",
-			value: "stretch pants and a crop-top",
-			fs: "FSHedonisticDecadence",
-			get requirements() { return V.boughtItem.clothing.lazyClothes === 1; }
-		},
-		{
-			name: "Toga",
-			value: "a toga",
-			fs: "FSRomanRevivalist",
-			get requirements() { return V.boughtItem.clothing.toga === 1; }
-		},
-		{
-			name: "Western clothing",
-			value: "Western clothing",
-			fs: "FSPastoralist",
-			get requirements() { return V.boughtItem.clothing.western === 1; }
-		},
-		{
-			name: "Courtesan dress",
-			value: "a courtesan dress",
-			fs: "FSSlaveProfessionalism",
-			get requirements() { return V.boughtItem.clothing.courtesan === 1; }
-		},
-		{
-			name: "Bimbo outfit",
-			value: "a bimbo outfit",
-			fs: "FSIntellectualDependency",
-			get requirements() { return V.boughtItem.clothing.bimbo === 1; }
-		},
-		{
-			name: "Petite admi outfit",
-			value: "petite admi outfit",
-			fs: "FSPetiteAdmiration",
-			get requirements() { return V.boughtItem.clothing.petite === 1; }
-		},
-		{name: "Battlearmor", value: "battlearmor", get requirements() { return V.boughtItem.clothing.military === 1; }},
-		{name: "Military uniform", value: "a military uniform", get requirements() { return V.boughtItem.clothing.military === 1; }},
-		{name: "Red Army uniform", value: "a red army uniform", get requirements() { return V.boughtItem.clothing.military === 1; }},
-		{name: "Battledress", value: "battledress", get requirements() { return V.boughtItem.clothing.military === 1; }},
-		{name: "Biyelgee costume", value: "a biyelgee costume", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
-		{name: "Dirndl", value: "a dirndl", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
-		{name: "Lederhosen", value: "lederhosen", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
-		{name: "Mounty outfit", value: "a mounty outfit", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
-		{name: "Hanbok", value: "a hanbok", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
-		{
-			name: "Burqa",
-			value: "a burqa",
-			get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; }
-		},
-		{
-			name: "Niqab and abaya",
-			value: "a niqab and abaya",
-			get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; }
-		},
-		{
-			name: "Hijab and blouse",
-			value: "a hijab and blouse",
-			get requirements() { return (V.boughtItem.clothing.conservative === 1 || V.continent === "the Middle East"); }
-		},
-		{
-			name: "Burkini",
-			value: "a burkini",
-			get requirements() { return V.boughtItem.clothing.swimwear === 1 && (V.boughtItem.clothing.swimwear === 1 || V.continent === "the Middle East"); }
-		},
-		{name: "Santa dress", value: "a Santa dress", get requirements() { return V.boughtItem.clothing.costume === 1; }},
-
-		{name: "Klan robe", value: "a klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }},
-		{name: "Slutty klan robe", value: "a slutty klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }},
-		{name: "Schutzstaffel uniform", value: "a schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }},
-		{name: "Slutty schutzstaffel uniform", value: "a slutty schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }},
-
-		{name: "Nice business attire", value: "nice business attire", get requirements() { return V.boughtItem.clothing.career === 1; }},
-		{name: "Nurse (nice)", value: "a nice nurse outfit", get requirements() { return V.boughtItem.clothing.career === 1; }},
-		{name: "Police uniform", value: "a police uniform", get requirements() { return V.boughtItem.clothing.career === 1; }},
-		{
-			name: "Maid (nice)",
-			value: "a nice maid outfit",
-			get requirements() { return V.boughtItem.clothing.career === 1 || V.PC.career === "servant"; }
-		},
-
-		{name: "Ballgown", value: "a ball gown", get requirements() { return V.boughtItem.clothing.dresses === 1; }},
-		{name: "Gothic lolita dress", value: "a gothic lolita dress", get requirements() { return V.boughtItem.clothing.dresses === 1; }},
-
-		{name: "Cybersuit", value: "a cybersuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }},
-		{name: "Latex catsuit", value: "a latex catsuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }},
-
-		{name: "Button-up shirt and panties", value: "a button-up shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Button-up shirt", value: "a button-up shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Cutoffs", value: "cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Jeans", value: "jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Leather pants and a tube top", value: "leather pants and a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Leather pants", value: "leather pants", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Oversized t-shirt", value: "an oversized t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Sweater and cutoffs", value: "a sweater and cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Sweater and panties", value: "a sweater and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Sweater", value: "a sweater", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "T-shirt and jeans", value: "a t-shirt and jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "T-shirt and panties", value: "a t-shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "T-shirt", value: "a t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Tank-top and panties", value: "a tank-top and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Tank-top", value: "a tank-top", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-		{name: "Tube top", value: "a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }},
-
-		{name: "Boyshorts", value: "boyshorts", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
-		{name: "Bra", value: "a bra", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
-		{name: "Kitty lingerie", value: "kitty lingerie", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
-		{name: "Panties and pasties", value: "panties and pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
-		{name: "Skimpy loincloth", value: "a skimpy loincloth", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
-		{name: "Thong", value: "a thong", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
-		{name: "Pasties", value: "pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
-
-		{
-			name: "Leather pants and pasties",
-			value: "leather pants and pasties",
-			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
-		},
-		{
-			name: "T-shirt and thong",
-			value: "a t-shirt and thong",
-			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
-		},
-		{
-			name: "Tube top and thong",
-			value: "a tube top and thong",
-			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
-		},
-		{
-			name: "Oversized t-shirt and boyshorts",
-			value: "an oversized t-shirt and boyshorts",
-			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
-		},
-		{name: "Sport shorts and a sports bra", value: "sport shorts and a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }},
-		{name: "Sport shorts", value: "sport shorts", get requirements() { return V.boughtItem.clothing.sports === 1; }},
-		{name: "Sports bra", value: "a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }},
-		{
-			name: "Sport shorts and a t-shirt",
-			value: "sport shorts and a t-shirt",
-			get requirements() { return V.boughtItem.clothing.sports === 1 && V.boughtItem.clothing.casual === 1; }
-		},
-		{name: "Pony outfit (nice)", value: "a nice pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }},
-		{name: "Pony outfit (slutty)", value: "a slutty pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }},
-
-		{name: "Monokini", value: "a monokini", get requirements() { return V.boughtItem.clothing.swimwear === 1; }},
-		{name: "One-piece swimsuit", value: "a one-piece swimsuit", get requirements() { return V.boughtItem.clothing.swimwear === 1; }},
-
-		{
-			name: "Striped bra",
-			value: "a striped bra",
-			get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; }
-		},
-		{
-			name: "Striped panties",
-			value: "striped panties",
-			get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; }
-		},
-		{
-			name: "Striped underwear",
-			value: "striped underwear",
-			get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.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: "Suit (slutty)", value: "slutty business attire"},
-
-		// {name: "Let them choose", value: "choosing her own clothes"},
-		{name: "Haltertop dress", value: "a halter top dress"},
-		{name: "Slave gown", value: "a slave gown"}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	harshClothes: [
-		{
-			name: "Chains",
-			value: "chains",
-			fs: "FSDegradationist",
-			get requirements() { return V.boughtItem.clothing.chains === 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"}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	niceCollars: [
-		{name: "Stylish leather", value: "stylish leather"},
-		{name: "Satin choker", value: "satin choker"},
-		{name: "Silken ribbon", value: "silk ribbon"},
-		{name: "Heavy gold", value: "heavy gold"},
-		{name: "Pretty jewelry", value: "pretty jewelry"},
-		{name: "Nice retirement counter", value: "nice retirement counter", get requirements() { return V.seeAge === 1; }},
-		{name: "Pregnancy biometrics", value: "preg biometrics", get requirements() { return V.seePreg === 1; }},
-		{name: "Bell", value: "bell collar"},
-		{name: "Cowbell", value: "leather with cowbell"},
-		{
-			name: "Bowtie collar",
-			value: "bowtie",
-			fs: "FSGenderFundamentalist",
-			get requirements() { return V.boughtItem.clothing.bunny === 1; }
-		},
-		{
-			name: "Neck tie",
-			value: "neck tie",
-			fs: "FSPaternalist",
-			get requirements() { return V.boughtItem.clothing.conservative === 1; }
-		},
-		{
-			name: "Ancient Egyptian",
-			value: "ancient Egyptian",
-			fs: "FSEgyptianRevivalist",
-			get requirements() { return V.boughtItem.clothing.egypt === 1; }
-		},
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	harshCollars: [
-		{name: "Tight steel", value: "tight steel"},
-		{name: "Cruel retirement counter", value: "cruel retirement counter", get requirements() { return V.seeAge === 1; }},
-		{name: "Uncomfortable leather", value: "uncomfortable leather"},
-		{name: "Shock punishment", value: "shock punishment"},
-		{name: "Neck corset", value: "neck corset"},
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	faceAccessory: [
-		{name: "Porcelain mask", value: "porcelain mask"},
-		{name: "Cat ears", value: "cat ears"},
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	mouthAccessory: [
-		{name: "Ball gag", value: "ball gag"},
-		{name: "Bit gag", value: "bit gag"},
-		{name: "Ring gag", value: "ring gag"},
-		{
-			name: "Massive dildo gag",
-			value: "massive dildo gag",
-			get requirements() { return V.boughtItem.toys.gags === 1; }
-		},
-		{name: "Dildo gag", value: "dildo gag"},
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	shoes: [
-		{name: "Barefoot", value: "none"},
-		{name: "Flats", value: "flats"},
-		{name: "Heels", value: "heels"},
-		{name: "Pumps", value: "pumps"},
-		{name: "Thigh boots", value: "boots"},
-		{name: "Painfully extreme heels", value: "extreme heels"},
-		{
-			name: "Platforms",
-			value: "platform shoes",
-			fs: "FSStatuesqueGlorification",
-			get requirements() { return (V.boughtItem.shoes.heels === 1); }
-		},
-		{
-			name: "Platform heels",
-			value: "platform heels",
-			fs: "FSStatuesqueGlorification",
-			get requirements() { return (V.boughtItem.shoes.heels === 1); }
-		},
-		{
-			name: "Painfully extreme platform heels",
-			value: "extreme platform heels",
-			fs: "FSStatuesqueGlorification",
-			get requirements() { return (V.boughtItem.shoes.heels === 1); }
-		}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	bellyAccessories: [
-		{name: "None", value: "none"},
-		{name: "Tight corset", value: "a corset"},
-		{name: "Extreme corset", value: "an extreme corset"},
-		{name: "Supportive band", value: "a support band"},
-		{
-			name: "1st Trimester belly",
-			value: "a small empathy belly",
-			fs: "FSRepopulationFocus",
-			get requirements() { return V.boughtItem.clothing.belly === 1; }
-		},
-		{
-			name: "2nd Trimester belly",
-			value: "a medium empathy belly",
-			fs: "FSRepopulationFocus",
-			get requirements() { return V.boughtItem.clothing.belly === 1; }
-		},
-		{
-			name: "3rd Trimester belly",
-			value: "a large empathy belly",
-			fs: "FSRepopulationFocus",
-			get requirements() { return V.boughtItem.clothing.belly === 1; }
-		},
-		{
-			name: "3rd Trimester twins belly",
-			value: "a huge empathy belly",
-			fs: "FSRepopulationFocus",
-			get requirements() { return V.boughtItem.clothing.belly === 1; }
-		}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	vaginalAccessories: [
-		{
-			name: "None",
-			value: "none"
-		},
-		{
-			name: "Bullet vibrator",
-			value: "bullet vibrator"
-		},
-		{
-			name: "Smart bullet vibrator",
-			value: "smart bullet vibrator",
-			get requirements() { return V.boughtItem.toys.smartVibes === 1; }
-		},
-		{
-			name: "Dildo",
-			value: "dildo"
-		},
-		{
-			name: "Long dildo",
-			value: "long dildo",
-			get requirements() { return V.boughtItem.toys.dildos === 1; }
-		},
-		{
-			name: "Large dildo",
-			value: "large dildo"
-		},
-		{
-			name: "Long, large dildo",
-			value: "long, large dildo",
-			get requirements() { return V.boughtItem.toys.dildos === 1; }
-		},
-		{
-			name: "Huge dildo",
-			value: "huge dildo",
-			get requirements() { return V.boughtItem.toys.dildos === 1; }
-		},
-		{
-			name: "Long, huge dildo",
-			value: "long, huge dildo",
-			get requirements() { return V.boughtItem.toys.dildos === 1; }
-		}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	vaginalAttachments: [
-		{name: "None", value: "none"},
-		{
-			name: "Vibrating attachment",
-			value: "vibrator",
-		}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	dickAccessories: [
-		{name: "None", value: "none"},
-		{
-			name: "Bullet vibrator",
-			value: "bullet vibrator"
-		},
-		{
-			name: "Smart bullet vibrator",
-			value: "smart bullet vibrator",
-			get requirements() { return V.boughtItem.toys.smartVibes === 1; }
-		}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	buttplugs: [
-		{
-			name: "None",
-			value: "none"
-		},
-		{
-			name: "Standard plug",
-			value: "plug"
-		},
-		{
-			name: "Long plug",
-			value: "long plug",
-			get requirements() { return V.boughtItem.toys.buttPlugs === 1; }
-		},
-		{
-			name: "Large plug",
-			value: "large plug"
-		},
-		{
-			name: "Long, large plug",
-			value: "long, large plug",
-			get requirements() { return V.boughtItem.toys.buttPlugs === 1; }
-		},
-		{
-			name: "Huge plug",
-			value: "huge plug",
-		},
-		{
-			name: "Long, huge plug",
-			value: "long, huge plug",
-			get requirements() { return V.boughtItem.toys.buttPlugs === 1; }
-		}
-	],
-	/**
-	 * @type {Array<slaveWear>}
-	 */
-	buttplugAttachments: [
-		{name: "None", value: "none"},
-		{name: "Tail", value: "tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }},
-		{name: "Fox tail", value: "fox tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }},
-		{name: "Cat tail", value: "cat tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }},
-		{name: "Cow tail", value: "cow tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}
-	],
-	/**
-	 * @typedef {object} slaveWearChastity
-	 * @property {string} name
-	 * @property {string} value
-	 * @property {object} updateSlave
-	 * @property {string} [fs]
-	 */
-
-	/** @type {Array<slaveWearChastity>} */
-	chastityDevices: [
-		// '.value' must be a string, so using update slave so I can update multiple values.
-		{
-			name: "None",
-			value: "none",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 0,
-				chastityPenis: 0,
-				chastityVagina: 0
-			},
-		},
-		{
-			name: "Anal chastity",
-			value: "anal chastity",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 1,
-				chastityPenis: 0,
-				chastityVagina: 0
-			}
-		},
-		{
-			name: "Chastity belt",
-			value: "chastity belt",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 0,
-				chastityPenis: 0,
-				chastityVagina: 1
-			},
-		},
-		{
-			name: "Combined chastity belt",
-			value: "combined chastity belt",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 1,
-				chastityPenis: 0,
-				chastityVagina: 1
-			},
-		},
-		{
-			name: "Chastity cage",
-			value: "chastity cage",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 0,
-				chastityPenis: 1,
-				chastityVagina: 0
-			},
-		},
-		{
-			name: "Combined chastity cage",
-			value: "combined chastity cage",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 1,
-				chastityPenis: 1,
-				chastityVagina: 0
-			},
-		},
-		{
-			name: "Genital chastity",
-			value: "genital chastity",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 0,
-				chastityPenis: 1,
-				chastityVagina: 1
-			},
-		},
-		{
-			name: "Full chastity",
-			value: "full chastity",
-			updateSlave: {
-				choosesOwnChastity: 0,
-				chastityAnus: 1,
-				chastityPenis: 1,
-				chastityVagina: 1
-			},
-		},
-		{
-			name: "Choose own chastity",
-			value: "choose own chastity",
-			fs: "FSRestart",
-			updateSlave: {
-				choosesOwnChastity: 1
-			},
-		},
-		{
-			name: "Revoke choosing own chastity",
-			value: "revoke choosing own chastity",
-			fs: "FSRestart",
-			updateSlave: {
-				choosesOwnChastity: 0
-			},
-		},
-	],
 
 	facilityCareers: [Job.ARCADE, Job.CELLBLOCK, Job.ATTENDANT, Job.DJ, Job.FARMER, Job.MADAM, Job.MATRON, Job.MILKMAID, Job.NURSE, Job.TEACHER, Job.STEWARD, Job.WARDEN, Job.CONCUBINE, Job.CLINIC, Job.SCHOOL, Job.HEADGIRLSUITE, Job.SPA, Job.CLUB, Job.MASTERSUITE, Job.FARMYARD, Job.NURSERY, Job.QUARTER, Job.BROTHEL, Job.DAIRY],
 
diff --git a/js/003-data/slaveWearData.js b/js/003-data/slaveWearData.js
new file mode 100644
index 0000000000000000000000000000000000000000..3065a6f92244edee870259e64aa2ea999902cf65
--- /dev/null
+++ b/js/003-data/slaveWearData.js
@@ -0,0 +1,636 @@
+App.Data.misc = {
+	/**
+	 * @typedef {object} slaveWear
+	 * @property {string} name
+	 * @property {string} value
+	 * @property {string} [fs]
+	 * @property {boolean} [requirements]
+	 */
+
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	niceClothes: [
+		{
+			name: "Maternity lingerie",
+			value: "attractive lingerie for a pregnant woman",
+			fs: "FSRepopulationFocus",
+			get requirements() { return V.boughtItem.clothing.maternityLingerie === 1; }
+		},
+		{
+			name: "Bunny outfit",
+			value: "a bunny outfit",
+			fs: "FSGenderFundamentalist",
+			get requirements() { return V.boughtItem.clothing.bunny === 1; }
+		},
+		{
+			name: "Body oil",
+			value: "body oil",
+			fs: "FSPhysicalIdealist",
+			get requirements() { return V.boughtItem.clothing.oil === 1; }
+		},
+		{
+			name: "Chattel habit",
+			value: "a chattel habit",
+			fs: "FSChattelReligionist",
+			get requirements() { return V.boughtItem.clothing.habit === 1; }
+		},
+		{
+			name: "Conservative clothing",
+			value: "conservative clothing",
+			fs: "FSPaternalist",
+			get requirements() { return V.boughtItem.clothing.conservative === 1; }
+		},
+		{
+			name: "Harem gauze",
+			value: "harem gauze",
+			fs: "FSArabianRevivalist",
+			get requirements() { return V.boughtItem.clothing.harem === 1; }
+		},
+		{
+			name: "Huipil",
+			value: "a huipil",
+			fs: "FSAztecRevivalist",
+			get requirements() { return V.boughtItem.clothing.huipil === 1; }
+		},
+		{
+			name: "Kimono",
+			value: "a kimono",
+			fs: "FSEdoRevivalist",
+			get requirements() { return (V.boughtItem.clothing.kimono === 1 || V.continent === "Japan"); }
+		},
+		{
+			name: "Maternity dress",
+			value: "a maternity dress",
+			fs: "FSRepopulationFocus",
+			get requirements() { return V.boughtItem.clothing.maternityDress === 1; }
+		},
+		{
+			name: "Qipao (slutty)",
+			value: "a slutty qipao",
+			fs: "FSChineseRevivalist",
+			get requirements() { return V.boughtItem.clothing.qipao === 1; }
+		},
+		{
+			name: "Qipao (long)",
+			value: "a long qipao",
+			fs: "FSChineseRevivalist",
+			get requirements() { return V.boughtItem.clothing.cultural === 1; }
+		},
+		{
+			name: "Stretch pants and a crop-top",
+			value: "stretch pants and a crop-top",
+			fs: "FSHedonisticDecadence",
+			get requirements() { return V.boughtItem.clothing.lazyClothes === 1; }
+		},
+		{
+			name: "Toga",
+			value: "a toga",
+			fs: "FSRomanRevivalist",
+			get requirements() { return V.boughtItem.clothing.toga === 1; }
+		},
+		{
+			name: "Western clothing",
+			value: "Western clothing",
+			fs: "FSPastoralist",
+			get requirements() { return V.boughtItem.clothing.western === 1; }
+		},
+		{
+			name: "Courtesan dress",
+			value: "a courtesan dress",
+			fs: "FSSlaveProfessionalism",
+			get requirements() { return V.boughtItem.clothing.courtesan === 1; }
+		},
+		{
+			name: "Bimbo outfit",
+			value: "a bimbo outfit",
+			fs: "FSIntellectualDependency",
+			get requirements() { return V.boughtItem.clothing.bimbo === 1; }
+		},
+		{
+			name: "Petite admi outfit",
+			value: "petite admi outfit",
+			fs: "FSPetiteAdmiration",
+			get requirements() { return V.boughtItem.clothing.petite === 1; }
+		},
+		{name: "Battlearmor", value: "battlearmor", get requirements() { return V.boughtItem.clothing.military === 1; }},
+		{name: "Military uniform", value: "a military uniform", get requirements() { return V.boughtItem.clothing.military === 1; }},
+		{name: "Red Army uniform", value: "a red army uniform", get requirements() { return V.boughtItem.clothing.military === 1; }},
+		{name: "Battledress", value: "battledress", get requirements() { return V.boughtItem.clothing.military === 1; }},
+		{name: "Biyelgee costume", value: "a biyelgee costume", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
+		{name: "Dirndl", value: "a dirndl", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
+		{name: "Lederhosen", value: "lederhosen", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
+		{name: "Mounty outfit", value: "a mounty outfit", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
+		{name: "Hanbok", value: "a hanbok", get requirements() { return V.boughtItem.clothing.cultural === 1; }},
+		{
+			name: "Burqa",
+			value: "a burqa",
+			get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; }
+		},
+		{
+			name: "Niqab and abaya",
+			value: "a niqab and abaya",
+			get requirements() { return V.boughtItem.clothing.middleEastern === 1 || V.continent === "the Middle East"; }
+		},
+		{
+			name: "Hijab and blouse",
+			value: "a hijab and blouse",
+			get requirements() { return (V.boughtItem.clothing.conservative === 1 || V.continent === "the Middle East"); }
+		},
+		{
+			name: "Burkini",
+			value: "a burkini",
+			get requirements() { return V.boughtItem.clothing.swimwear === 1 && (V.boughtItem.clothing.swimwear === 1 || V.continent === "the Middle East"); }
+		},
+		{name: "Santa dress", value: "a Santa dress", get requirements() { return V.boughtItem.clothing.costume === 1; }},
+
+		{name: "Klan robe", value: "a klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }},
+		{name: "Slutty klan robe", value: "a slutty klan robe", get requirements() { return V.boughtItem.clothing.pol === 1; }},
+		{name: "Schutzstaffel uniform", value: "a schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }},
+		{name: "Slutty schutzstaffel uniform", value: "a slutty schutzstaffel uniform", get requirements() { return V.boughtItem.clothing.pol === 1; }},
+
+		{name: "Nice business attire", value: "nice business attire", get requirements() { return V.boughtItem.clothing.career === 1; }},
+		{name: "Nurse (nice)", value: "a nice nurse outfit", get requirements() { return V.boughtItem.clothing.career === 1; }},
+		{name: "Police uniform", value: "a police uniform", get requirements() { return V.boughtItem.clothing.career === 1; }},
+		{
+			name: "Maid (nice)",
+			value: "a nice maid outfit",
+			get requirements() { return V.boughtItem.clothing.career === 1 || V.PC.career === "servant"; }
+		},
+
+		{name: "Ballgown", value: "a ball gown", get requirements() { return V.boughtItem.clothing.dresses === 1; }},
+		{name: "Gothic lolita dress", value: "a gothic lolita dress", get requirements() { return V.boughtItem.clothing.dresses === 1; }},
+
+		{name: "Cybersuit", value: "a cybersuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }},
+		{name: "Latex catsuit", value: "a latex catsuit", get requirements() { return V.boughtItem.clothing.bodysuits === 1; }},
+
+		{name: "Button-up shirt and panties", value: "a button-up shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Button-up shirt", value: "a button-up shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Cutoffs", value: "cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Jeans", value: "jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Leather pants and a tube top", value: "leather pants and a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Leather pants", value: "leather pants", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Oversized t-shirt", value: "an oversized t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Sweater and cutoffs", value: "a sweater and cutoffs", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Sweater and panties", value: "a sweater and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Sweater", value: "a sweater", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "T-shirt and jeans", value: "a t-shirt and jeans", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "T-shirt and panties", value: "a t-shirt and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "T-shirt", value: "a t-shirt", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Tank-top and panties", value: "a tank-top and panties", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Tank-top", value: "a tank-top", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+		{name: "Tube top", value: "a tube top", get requirements() { return V.boughtItem.clothing.casual === 1; }},
+
+		{name: "Boyshorts", value: "boyshorts", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
+		{name: "Bra", value: "a bra", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
+		{name: "Kitty lingerie", value: "kitty lingerie", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
+		{name: "Panties and pasties", value: "panties and pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
+		{name: "Skimpy loincloth", value: "a skimpy loincloth", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
+		{name: "Thong", value: "a thong", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
+		{name: "Pasties", value: "pasties", get requirements() { return V.boughtItem.clothing.underwear === 1; }},
+
+		{
+			name: "Leather pants and pasties",
+			value: "leather pants and pasties",
+			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
+		},
+		{
+			name: "T-shirt and thong",
+			value: "a t-shirt and thong",
+			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
+		},
+		{
+			name: "Tube top and thong",
+			value: "a tube top and thong",
+			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
+		},
+		{
+			name: "Oversized t-shirt and boyshorts",
+			value: "an oversized t-shirt and boyshorts",
+			get requirements() { return V.boughtItem.clothing.underwear === 1 && V.boughtItem.clothing.casual === 1; }
+		},
+		{name: "Sport shorts and a sports bra", value: "sport shorts and a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }},
+		{name: "Sport shorts", value: "sport shorts", get requirements() { return V.boughtItem.clothing.sports === 1; }},
+		{name: "Sports bra", value: "a sports bra", get requirements() { return V.boughtItem.clothing.sports === 1; }},
+		{
+			name: "Sport shorts and a t-shirt",
+			value: "sport shorts and a t-shirt",
+			get requirements() { return V.boughtItem.clothing.sports === 1 && V.boughtItem.clothing.casual === 1; }
+		},
+		{name: "Pony outfit (nice)", value: "a nice pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }},
+		{name: "Pony outfit (slutty)", value: "a slutty pony outfit", get requirements() { return V.boughtItem.clothing.pony === 1; }},
+
+		{name: "Monokini", value: "a monokini", get requirements() { return V.boughtItem.clothing.swimwear === 1; }},
+		{name: "One-piece swimsuit", value: "a one-piece swimsuit", get requirements() { return V.boughtItem.clothing.swimwear === 1; }},
+
+		{
+			name: "Striped bra",
+			value: "a striped bra",
+			get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; }
+		},
+		{
+			name: "Striped panties",
+			value: "striped panties",
+			get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.continent === "Japan"; }
+		},
+		{
+			name: "Striped underwear",
+			value: "striped underwear",
+			get requirements() { return V.boughtItem.clothing.pantsu === 1 || V.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: "Suit (slutty)", value: "slutty business attire"},
+
+		// {name: "Let them choose", value: "choosing her own clothes"},
+		{name: "Haltertop dress", value: "a halter top dress"},
+		{name: "Slave gown", value: "a slave gown"}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	harshClothes: [
+		{
+			name: "Chains",
+			value: "chains",
+			fs: "FSDegradationist",
+			get requirements() { return V.boughtItem.clothing.chains === 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"}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	niceCollars: [
+		{name: "Stylish leather", value: "stylish leather"},
+		{name: "Satin choker", value: "satin choker"},
+		{name: "Silken ribbon", value: "silk ribbon"},
+		{name: "Heavy gold", value: "heavy gold"},
+		{name: "Pretty jewelry", value: "pretty jewelry"},
+		{name: "Nice retirement counter", value: "nice retirement counter", get requirements() { return V.seeAge === 1; }},
+		{name: "Pregnancy biometrics", value: "preg biometrics", get requirements() { return V.seePreg === 1; }},
+		{name: "Bell", value: "bell collar"},
+		{name: "Cowbell", value: "leather with cowbell"},
+		{
+			name: "Bowtie collar",
+			value: "bowtie",
+			fs: "FSGenderFundamentalist",
+			get requirements() { return V.boughtItem.clothing.bunny === 1; }
+		},
+		{
+			name: "Neck tie",
+			value: "neck tie",
+			fs: "FSPaternalist",
+			get requirements() { return V.boughtItem.clothing.conservative === 1; }
+		},
+		{
+			name: "Ancient Egyptian",
+			value: "ancient Egyptian",
+			fs: "FSEgyptianRevivalist",
+			get requirements() { return V.boughtItem.clothing.egypt === 1; }
+		},
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	harshCollars: [
+		{name: "Tight steel", value: "tight steel"},
+		{name: "Cruel retirement counter", value: "cruel retirement counter", get requirements() { return V.seeAge === 1; }},
+		{name: "Uncomfortable leather", value: "uncomfortable leather"},
+		{name: "Shock punishment", value: "shock punishment"},
+		{name: "Neck corset", value: "neck corset"},
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	faceAccessory: [
+		{name: "Porcelain mask", value: "porcelain mask"},
+		{name: "Cat ears", value: "cat ears"},
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	mouthAccessory: [
+		{name: "Ball gag", value: "ball gag"},
+		{name: "Bit gag", value: "bit gag"},
+		{name: "Ring gag", value: "ring gag"},
+		{
+			name: "Massive dildo gag",
+			value: "massive dildo gag",
+			get requirements() { return V.boughtItem.toys.gags === 1; }
+		},
+		{name: "Dildo gag", value: "dildo gag"},
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	shoes: [
+		{name: "Barefoot", value: "none"},
+		{name: "Flats", value: "flats"},
+		{name: "Heels", value: "heels"},
+		{name: "Pumps", value: "pumps"},
+		{name: "Thigh boots", value: "boots"},
+		{name: "Painfully extreme heels", value: "extreme heels"},
+		{
+			name: "Platforms",
+			value: "platform shoes",
+			fs: "FSStatuesqueGlorification",
+			get requirements() { return (V.boughtItem.shoes.heels === 1); }
+		},
+		{
+			name: "Platform heels",
+			value: "platform heels",
+			fs: "FSStatuesqueGlorification",
+			get requirements() { return (V.boughtItem.shoes.heels === 1); }
+		},
+		{
+			name: "Painfully extreme platform heels",
+			value: "extreme platform heels",
+			fs: "FSStatuesqueGlorification",
+			get requirements() { return (V.boughtItem.shoes.heels === 1); }
+		}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	bellyAccessories: [
+		{name: "None", value: "none"},
+		{name: "Tight corset", value: "a corset"},
+		{name: "Extreme corset", value: "an extreme corset"},
+		{name: "Supportive band", value: "a support band"},
+		{
+			name: "1st Trimester belly",
+			value: "a small empathy belly",
+			fs: "FSRepopulationFocus",
+			get requirements() { return V.boughtItem.clothing.belly === 1; }
+		},
+		{
+			name: "2nd Trimester belly",
+			value: "a medium empathy belly",
+			fs: "FSRepopulationFocus",
+			get requirements() { return V.boughtItem.clothing.belly === 1; }
+		},
+		{
+			name: "3rd Trimester belly",
+			value: "a large empathy belly",
+			fs: "FSRepopulationFocus",
+			get requirements() { return V.boughtItem.clothing.belly === 1; }
+		},
+		{
+			name: "3rd Trimester twins belly",
+			value: "a huge empathy belly",
+			fs: "FSRepopulationFocus",
+			get requirements() { return V.boughtItem.clothing.belly === 1; }
+		}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	vaginalAccessories: [
+		{
+			name: "None",
+			value: "none"
+		},
+		{
+			name: "Bullet vibrator",
+			value: "bullet vibrator"
+		},
+		{
+			name: "Smart bullet vibrator",
+			value: "smart bullet vibrator",
+			get requirements() { return V.boughtItem.toys.smartVibes === 1; }
+		},
+		{
+			name: "Dildo",
+			value: "dildo"
+		},
+		{
+			name: "Long dildo",
+			value: "long dildo",
+			get requirements() { return V.boughtItem.toys.dildos === 1; }
+		},
+		{
+			name: "Large dildo",
+			value: "large dildo"
+		},
+		{
+			name: "Long, large dildo",
+			value: "long, large dildo",
+			get requirements() { return V.boughtItem.toys.dildos === 1; }
+		},
+		{
+			name: "Huge dildo",
+			value: "huge dildo",
+			get requirements() { return V.boughtItem.toys.dildos === 1; }
+		},
+		{
+			name: "Long, huge dildo",
+			value: "long, huge dildo",
+			get requirements() { return V.boughtItem.toys.dildos === 1; }
+		}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	vaginalAttachments: [
+		{name: "None", value: "none"},
+		{
+			name: "Vibrating attachment",
+			value: "vibrator",
+		}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	dickAccessories: [
+		{name: "None", value: "none"},
+		{
+			name: "Bullet vibrator",
+			value: "bullet vibrator"
+		},
+		{
+			name: "Smart bullet vibrator",
+			value: "smart bullet vibrator",
+			get requirements() { return V.boughtItem.toys.smartVibes === 1; }
+		}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	buttplugs: [
+		{
+			name: "None",
+			value: "none"
+		},
+		{
+			name: "Standard plug",
+			value: "plug"
+		},
+		{
+			name: "Long plug",
+			value: "long plug",
+			get requirements() { return V.boughtItem.toys.buttPlugs === 1; }
+		},
+		{
+			name: "Large plug",
+			value: "large plug"
+		},
+		{
+			name: "Long, large plug",
+			value: "long, large plug",
+			get requirements() { return V.boughtItem.toys.buttPlugs === 1; }
+		},
+		{
+			name: "Huge plug",
+			value: "huge plug",
+		},
+		{
+			name: "Long, huge plug",
+			value: "long, huge plug",
+			get requirements() { return V.boughtItem.toys.buttPlugs === 1; }
+		}
+	],
+	/**
+	 * @type {Array<slaveWear>}
+	 */
+	buttplugAttachments: [
+		{name: "None", value: "none"},
+		{name: "Tail", value: "tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }},
+		{name: "Fox tail", value: "fox tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }},
+		{name: "Cat tail", value: "cat tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }},
+		{name: "Cow tail", value: "cow tail", get requirements() { return V.boughtItem.toys.buttPlugTails === 1; }}
+	],
+	/**
+	 * @typedef {object} slaveWearChastity
+	 * @property {string} name
+	 * @property {string} value
+	 * @property {object} updateSlave
+	 * @property {string} [fs]
+	 */
+
+	/** @type {Array<slaveWearChastity>} */
+	chastityDevices: [
+		// '.value' must be a string, so using update slave so I can update multiple values.
+		{
+			name: "None",
+			value: "none",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 0,
+				chastityPenis: 0,
+				chastityVagina: 0
+			},
+		},
+		{
+			name: "Anal chastity",
+			value: "anal chastity",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 1,
+				chastityPenis: 0,
+				chastityVagina: 0
+			}
+		},
+		{
+			name: "Chastity belt",
+			value: "chastity belt",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 0,
+				chastityPenis: 0,
+				chastityVagina: 1
+			},
+		},
+		{
+			name: "Combined chastity belt",
+			value: "combined chastity belt",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 1,
+				chastityPenis: 0,
+				chastityVagina: 1
+			},
+		},
+		{
+			name: "Chastity cage",
+			value: "chastity cage",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 0,
+				chastityPenis: 1,
+				chastityVagina: 0
+			},
+		},
+		{
+			name: "Combined chastity cage",
+			value: "combined chastity cage",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 1,
+				chastityPenis: 1,
+				chastityVagina: 0
+			},
+		},
+		{
+			name: "Genital chastity",
+			value: "genital chastity",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 0,
+				chastityPenis: 1,
+				chastityVagina: 1
+			},
+		},
+		{
+			name: "Full chastity",
+			value: "full chastity",
+			updateSlave: {
+				choosesOwnChastity: 0,
+				chastityAnus: 1,
+				chastityPenis: 1,
+				chastityVagina: 1
+			},
+		},
+		{
+			name: "Choose own chastity",
+			value: "choose own chastity",
+			fs: "FSRestart",
+			updateSlave: {
+				choosesOwnChastity: 1
+			},
+		},
+		{
+			name: "Revoke choosing own chastity",
+			value: "revoke choosing own chastity",
+			fs: "FSRestart",
+			updateSlave: {
+				choosesOwnChastity: 0
+			},
+		},
+	],
+}