diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index 6b7204e5f8e45f6b30dfbc638ed1f289d49b6a06..3fa1c8e0612084cca09ccf502b3c7d4f586d7837 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -143,6 +143,7 @@ App.Data.defaultGameStateVariables = {
 	useSlaveSummaryTabs: 0,
 	useSlaveSummaryOverviewTab: 0,
 	useSlaveListInPageJSNavigation: 0,
+	fucktoyInteractionsPosition: 1,
 	killChoice: -1,
 	assignmentRecords: {},
 	verboseDescriptions: 0,
diff --git a/src/js/main.js b/src/js/main.js
index 6460d82940e77d8e43ad90c963ca653f1fb58f7c..3e23169bacb410524f5f502e8323c9b10b63cabd 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -83,71 +83,79 @@ App.MainView.fcnn = function() {
 
 App.MainView.useFucktoys = function() {
 	const fragment = document.createDocumentFragment();
-
-	function setEnvironment(slave) {
-		return () => {
-			V.activeSlave = slave;
-			V.nextButton = "Back";
-			V.nextLink = "AS Dump";
-			V.returnTo = passage();
-		};
-	}
-
 	for (const slave of V.slaves) {
 		if (slave.assignment !== "please you") {
 			continue;
 		}
+		fragment.append(App.MainView.useFucktoy(slave));
+	}
+	return fragment;
+};
+
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {HTMLDivElement}
+ */
+App.MainView.useFucktoy = function(slave) {
+	const fragment = document.createDocumentFragment();
+
+	function setEnvironment() {
+		V.activeSlave = slave;
+		V.nextButton = "Back";
+		V.nextLink = "AS Dump";
+		V.returnTo = passage();
+	}
 
-		const {him, his} = getPronouns(slave);
+	const {him, his} = getPronouns(slave);
 
-		const div = document.createElement("div");
-		div.classList.add("note");
+	const div = document.createElement("div");
+	div.classList.add("note");
 
-		div.append(App.Interact.ToyChest(slave));
+	div.append(App.Interact.ToyChest(slave));
 
-		div.append(" In the coming week you plan to concentrate on ");
+	div.append(" In the coming week you plan to concentrate on ");
 
-		if (slave.toyHole !== "all her holes") {
-			div.append(`${his} ${slave.toyHole}`);
-		} else {
-			div.append(`all of ${his} holes equally`);
-		}
+	if (slave.toyHole !== "all her holes") {
+		div.append(`${his} ${slave.toyHole}`);
+	} else {
+		div.append(`all of ${his} holes equally`);
+	}
 
-		if (slave.fuckdoll === 0) {
-			div.append(", but for now:");
+	if (slave.fuckdoll === 0) {
+		div.append(", but for now:");
 
-			const optionDiv = document.createElement("div");
-			optionDiv.classList.add("indent");
+		const optionDiv = document.createElement("div");
+		optionDiv.classList.add("indent");
 
-			optionDiv.append(App.UI.DOM.passageLink(`Use ${his} mouth`, "FLips", setEnvironment(slave)),
-				" | ", App.UI.DOM.passageLink("Play with " + his + " tits", "FBoobs", setEnvironment(slave)));
+		optionDiv.append(App.UI.DOM.passageLink(`Use ${his} mouth`, "FLips", setEnvironment(slave)),
+			" | ", App.UI.DOM.passageLink("Play with " + his + " tits", "FBoobs", setEnvironment(slave)));
 
-			if (canDoVaginal(slave)) {
-				optionDiv.append(" | ", App.UI.DOM.passageLink(`Fuck ${him}`, "FVagina", setEnvironment(slave)));
-				if (canDoAnal(slave)) {
-					optionDiv.append(" | ", App.UI.DOM.passageLink(`Use ${his} holes`, "FButt", setEnvironment(slave)));
-				}
-			}
+		if (canDoVaginal(slave)) {
+			optionDiv.append(" | ", App.UI.DOM.passageLink(`Fuck ${him}`, "FVagina", setEnvironment(slave)));
 			if (canDoAnal(slave)) {
-				optionDiv.append(" | ", App.UI.DOM.passageLink(`Fuck ${his} ass`, "FAnus", setEnvironment(slave)));
+				optionDiv.append(" | ", App.UI.DOM.passageLink(`Use ${his} holes`, "FButt", setEnvironment(slave)));
 			}
-			if (canDoVaginal(slave) || canDoAnal(slave)) {
-				if (slave.belly >= 300000) {
-					optionDiv.append(" | ", App.UI.DOM.passageLink(`Fuck ${him} over ${his} belly`, "FBellyFuck", setEnvironment(slave)));
-				}
-			}
-			if (canPenetrate(slave)) {
-				optionDiv.append(" | ", App.UI.DOM.passageLink(`Ride ${him}`, "FDick", setEnvironment(slave)));
+		}
+		if (canDoAnal(slave)) {
+			optionDiv.append(" | ", App.UI.DOM.passageLink(`Fuck ${his} ass`, "FAnus", setEnvironment(slave)));
+		}
+		if (canDoVaginal(slave) || canDoAnal(slave)) {
+			if (slave.belly >= 300000) {
+				optionDiv.append(" | ", App.UI.DOM.passageLink(`Fuck ${him} over ${his} belly`, "FBellyFuck", setEnvironment(slave)));
 			}
-			optionDiv.append(" | ", App.UI.DOM.passageLink(`Abuse ${him}`, "FAbuse", setEnvironment(slave)));
-
-			div.append(optionDiv);
-		} else {
-			div.append(".");
 		}
-		fragment.append(div);
+		if (canPenetrate(slave)) {
+			optionDiv.append(" | ", App.UI.DOM.passageLink(`Ride ${him}`, "FDick", setEnvironment(slave)));
+		}
+		optionDiv.append(" | ", App.UI.DOM.passageLink(`Abuse ${him}`, "FAbuse", setEnvironment(slave)));
+
+		div.append(optionDiv);
+	} else {
+		div.append(".");
 	}
-	return fragment;
+	fragment.append(div);
+
+	return div;
 };
 
 /**
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index 9fee57e17683f7aa829292c94f14a931c9b03802..1153c43e87acd8bc398ceb6223de3a24a4e04610 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -913,6 +913,19 @@ App.UI.SlaveList.penthousePage = function() {
 		}
 
 		SlaveSort.indices(employeesIndices);
+
+		if (V.fucktoyInteractionsPosition === 1 && job === "fucktoy") {
+			const fragment = document.createDocumentFragment();
+			for (const i of employeesIndices) {
+				fragment.append(App.UI.SlaveList.render.listDOM([i], [], App.UI.SlaveList.SlaveInteract.penthouseInteract));
+				fragment.append(App.MainView.useFucktoy(V.slaves[i]));
+			}
+			return {
+				n: employeesIndices.length,
+				dom: fragment
+			};
+		}
+
 		return {
 			n: employeesIndices.length,
 			dom: App.UI.SlaveList.render.listDOM(employeesIndices, [], App.UI.SlaveList.SlaveInteract.penthouseInteract)
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index b877403e3fb57a8b7a6c943c7bb3bcfe03f2eb5f..1b916d6129473cd992ff41e4344c0d72ada1c04b 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -95,11 +95,11 @@ __''MAIN MENU''__    //[[Summary Options]]//
 
 <<print App.UI.SlaveList.penthousePage()>>
 
-<<if $useSlaveSummaryTabs === 0>>
-	<span id="fucktoy"></span>
+<<if $fucktoyInteactionsPosition === 0>>
+	<span id="fucktoyDOM"></span>
 	<<script>>
 		$(document).one(':passageend', () => {
-			$('#fucktoy').append(
+			$('#fucktoyDOM').append(
 				App.MainView.useFucktoys(),
 			);
 		});
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index d7160133660929bda66e83906de8137e5b48c4a1..d9dba38057003972c4e9f2d5a1b54728dbcae58b 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -238,6 +238,12 @@ This save was created using FC version $ver build $releaseID.
 			<<option 0 "Disabled">>
 		<</options>>
 
+		<<options $fucktoyInteractionsPosition>>
+			Interactions with your fucktoys are
+			<<option 1 "next to them">>
+			<<option 0 "at page bottom">>
+		<</options>>
+
 		<<options $lineSeparations "Summary Options">>
 			Line separations are
 			<<option 1 "Shown">>