diff --git a/src/facilities/fsDecoration.js b/src/facilities/fsDecoration.js
index 9b57c9b92c6f860706fd60360596bb1485da494e..cd6b618079de45f8a2f18d299dd1485ca3f76ece 100644
--- a/src/facilities/fsDecoration.js
+++ b/src/facilities/fsDecoration.js
@@ -1,31 +1,148 @@
 /** Replaces <<SetFacilityDecoration>> widget
- * @param {string} variable - global property name for the facility decoration (no $ etc)
  * @returns {DocumentFragment}
  */
-App.UI.facilityRedecoration = function(variable) {
-	const frag = new DocumentFragment();
+App.UI.facilityRedecoration = function() {
+	const el = new DocumentFragment();
+	const activeFacilities = new Map([]);
+	const options = new App.UI.OptionsGroup();
 	const arc = V.arcologies[0];
-	for (const FS of FutureSocieties.activeFSes(arc)) {
-		if (arc[FS] > 20) {
-			const decorationName = FutureSocieties.decorationName(FS);
-			if (decorationName && V[variable] !== decorationName) {
-				const link = App.UI.DOM.link(`${decorationName} Redecoration`, () => {
-					V[variable] = decorationName;
-					cashX(-5000, "capEx");
-					App.UI.reload();
-				});
-				App.UI.DOM.appendNewElement("div", frag, link, "indent");
+
+	FutureSocieties.DecorationCleanup();
+
+	const applicableFS = FutureSocieties.activeFSes(arc).filter(name => (arc[name] > 20));
+	const decorationNames =  Array.from(applicableFS, FS => FutureSocieties.decorationName(FS));
+
+	if (V.brothel > 0) {
+		activeFacilities.set(V.brothelName, "brothelDecoration");
+	}
+
+	if (V.club > 0) {
+		activeFacilities.set(V.clubName, "clubDecoration");
+	}
+
+	if (V.dairy > 0) {
+		activeFacilities.set(V.dairyName, "dairyDecoration");
+	}
+
+	if (V.farmyard > 0) {
+		activeFacilities.set(V.farmyardName, "farmyardDecoration");
+	}
+
+	if (V.spa > 0) {
+		activeFacilities.set(V.spaName, "spaDecoration");
+	}
+
+	if (V.nursery > 0) {
+		activeFacilities.set(V.nurseryName, "nurseryDecoration");
+	}
+
+	if (V.clinic > 0) {
+		activeFacilities.set(V.clinicName, "clinicDecoration");
+	}
+
+	if (V.schoolroom > 0) {
+		activeFacilities.set(V.schoolroomName, "schoolroomDecoration");
+	}
+
+	if (V.cellblock > 0) {
+		activeFacilities.set(V.cellblockName, "cellblockDecoration");
+	}
+
+	if (V.servantsQuarters > 0) {
+		activeFacilities.set(V.servantsQuartersName, "servantsQuartersDecoration");
+	}
+
+	if (V.arcade > 0) {
+		activeFacilities.set(V.arcadeName, "arcadeDecoration");
+	}
+
+	if (V.masterSuite > 0) {
+		activeFacilities.set(V.masterSuiteName, "masterSuiteDecoration");
+	}
+
+	options.addOption(`Change style for all facilities`)
+		.addCustomDOM(modifyAll());
+
+	for (const [name, decoration] of activeFacilities) {
+		options.addOption(`The decoration style of ${name} is`)
+			.addCustomDOM(createPulldown(decoration));
+	}
+	el.append(options.render());
+
+	return el;
+
+	function createPulldown(variable) {
+		const select = document.createElement("select");
+		select.classList.add("rajs-list");
+
+		// Standard decorations
+		const choice = App.UI.DOM.appendNewElement("option", select, "Standard");
+		choice.value = "standard";
+		if (V[variable] === "standard") {
+			choice.selected = true;
+		}
+
+		// FS decorations
+		for (const decorationName of decorationNames) {
+			const choice = App.UI.DOM.makeElement("option", decorationName);
+			if (V[variable] === decorationName) {
+				choice.selected = true;
 			}
+			select.append(choice);
 		}
+
+		select.onchange = () => {
+			const O = select.options[select.selectedIndex];
+			if (O.value !== "standard") {
+				cashX(-5000, "capEx");
+			}
+			V[variable] = O.value;
+			App.UI.reload();
+		};
+		return select;
 	}
-	if (V[variable] !== "standard") {
-		const link = App.UI.DOM.link(`Remove all decorations`, () => {
-			V[variable] = "standard";
+
+	function modifyAll() {
+		const select = document.createElement("select");
+		select.classList.add("rajs-list");
+
+		// Standard decorations
+		const standard = App.UI.DOM.appendNewElement("option", select, "Standard");
+		standard.value = "standard";
+
+		// FS decorations
+		for (const decorationName of decorationNames) {
+			App.UI.DOM.appendNewElement("option", select, decorationName);
+		}
+
+		// Round Robin
+		App.UI.DOM.appendNewElement("option", select, "Distribute Evenly");
+
+		select.onchange = () => {
+			const O = select.options[select.selectedIndex];
+			if (O.value === "Distribute Evenly") { // Cycles through the list of available FS decorations, and distributes them to facilities round robin style.
+				let i = 0;
+				for (const decoration of activeFacilities.values()) {
+					cashX(-5000, "capEx");
+					V[decoration] = decorationNames[i];
+					i++;
+					if (i >= decorationNames.length) {
+						i = 0;
+					}
+				}
+			} else {
+				for (const decoration of activeFacilities.values()) {
+					if (O.value !== "standard") {
+						cashX(-5000, "capEx");
+					}
+					V[decoration] = O.value;
+				}
+			}
 			App.UI.reload();
-		});
-		App.UI.DOM.appendNewElement("div", frag, link, "indent");
+		};
+		select.selectedIndex = -1;
+		return select;
 	}
-	return frag;
 };
 
 /**
diff --git a/src/gui/options/options.js b/src/gui/options/options.js
index f4ad29f7a0ecf6353d51a332d513d23adb284d9d..b5fda9d20ff1980ce0b1c9e132aa8c74c5f68a4d 100644
--- a/src/gui/options/options.js
+++ b/src/gui/options/options.js
@@ -124,6 +124,17 @@ App.UI.OptionsGroup = (function() {
 			return this;
 		}
 
+		/**
+		 * @param {Node} node
+		 * @returns {Option}
+		 */
+		addCustomDOM(node) {
+			this.valuePairs.push({
+				value: node, mode: "DOM"
+			});
+			return this;
+		}
+
 		/* modify last added option */
 
 		/**
@@ -193,6 +204,10 @@ App.UI.OptionsGroup = (function() {
 						/* insert custom SC markup and go to next element */
 						$(buttonGroup).wiki(value.value);
 						continue;
+					} else if (value.mode === "DOM") {
+						/* insert DOM and go to next element */
+						buttonGroup.append(value.value);
+						continue;
 					}
 					const button = document.createElement("button");
 					button.append(value.name);
diff --git a/src/uncategorized/futureSociety.tw b/src/uncategorized/futureSociety.tw
index 484373fc7b37379cb2733dffc11a32c8901941db..9ad7466dbc3285474fa50a2b0211d596727408bc 100644
--- a/src/uncategorized/futureSociety.tw
+++ b/src/uncategorized/futureSociety.tw
@@ -1719,64 +1719,4 @@ You are spending <<print cashFormat($FSSpending)>> each week to support your soc
 
 <h3>Facility Redecoration</h3>
 
-<<run FutureSocieties.DecorationCleanup()>>
-
-<<if $brothel > 0>>
-	<div><<= capFirstChar($brothelName)>> is decorated in $brothelDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("brothelDecoration")>>
-<</if>>
-
-<<if $club > 0>>
-	<div><<= capFirstChar($clubName)>> is decorated in $clubDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("clubDecoration")>>
-<</if>>
-
-<<if $dairy > 0>>
-	<div><<= capFirstChar($dairyName)>> is decorated in $dairyDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("dairyDecoration")>>
-<</if>>
-
-<<if $farmyard > 0>>
-	<div><<= capFirstChar($farmyardName)>> is decorated in $farmyardDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("farmyardDecoration")>>
-<</if>>
-
-<<if $spa > 0>>
-	<div><<= capFirstChar($spaName)>> is decorated in $spaDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("spaDecoration")>>
-<</if>>
-
-<<if $nursery > 0>>
-	<div><<= capFirstChar($nurseryName)>> is decorated in $nurseryDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("nurseryDecoration")>>
-<</if>>
-
-<<if $clinic > 0>>
-	<div><<= capFirstChar($clinicName)>> is decorated in $clinicDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("clinicDecoration")>>
-<</if>>
-
-<<if $schoolroom > 0>>
-	<div><<= capFirstChar($schoolroomName)>> is decorated in $schoolroomDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("schoolroomDecoration")>>
-<</if>>
-
-<<if $cellblock > 0>>
-	<div><<= capFirstChar($cellblockName)>> is decorated in $cellblockDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("cellblockDecoration")>>
-<</if>>
-
-<<if $servantsQuarters > 0>>
-	<div><<= capFirstChar($servantsQuartersName)>> is decorated in $servantsQuartersDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("servantsQuartersDecoration")>>
-<</if>>
-
-<<if $arcade > 0>>
-	<div><<= capFirstChar($arcadeName)>> is decorated in $arcadeDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("arcadeDecoration")>>
-<</if>>
-
-<<if $masterSuite > 0>>
-	<div><<= capFirstChar($masterSuiteName)>> is decorated in $masterSuiteDecoration style.</div>
-	<<includeDOM App.UI.facilityRedecoration("masterSuiteDecoration")>>
-<</if>>
+<<includeDOM App.UI.facilityRedecoration()>>