diff --git a/src/004-base/facility.js b/src/004-base/facility.js
index 047d6f8f3b46bd67a79c57a827eb4bf027f4d386..5602f292bfbfc14a2febeaa9bfe16d94f8b7d256 100644
--- a/src/004-base/facility.js
+++ b/src/004-base/facility.js
@@ -16,6 +16,7 @@ App.Data.ManagerJobDesc = class extends App.Data.JobDesc {
 	constructor() {
 		super();
 		this.shouldWalk = true;
+		this.shouldHold = true;
 		this.shouldSee = true;
 		this.shouldHear = true;
 		this.shouldTalk = true;
@@ -211,6 +212,9 @@ App.Entity.Facilities.ManagingJob = class extends App.Entity.Facilities.Job {
 		if (this.desc.shouldWalk && !canWalk(slave)) {
 			r.push(`${slave.slaveName} must be able to walk.`);
 		}
+		if (this.desc.shouldHold && !canHold(slave)) {
+			r.push(`${slave.slaveName} must be able to hold.`);
+		}
 		if (this.desc.shouldSee && !canSee(slave)) {
 			r.push(`${slave.slaveName} must have working eyes.`);
 		}
diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js
index a7ce091028e44c676b1103707404b889e520190e..b03464164712da4c88eca097526f308b19a832a8 100644
--- a/src/facilities/armory/armoryFramework.js
+++ b/src/facilities/armory/armoryFramework.js
@@ -12,6 +12,7 @@ App.Data.Facilities.armory = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
diff --git a/src/facilities/brothel/brothelFramework.js b/src/facilities/brothel/brothelFramework.js
index 1b36b3c1fd13492799ac7a68395b311632a5b3fb..e5706e0b10aaf5c25779c4caadb5c418e6108f4c 100644
--- a/src/facilities/brothel/brothelFramework.js
+++ b/src/facilities/brothel/brothelFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.brothel = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
diff --git a/src/facilities/cellblock/cellblockFramework.js b/src/facilities/cellblock/cellblockFramework.js
index 87cf26ffdaa5627cbd9c2116faf4da221f672405..9e2370073237be1c393f24dbbd5c8731f8c3f521 100644
--- a/src/facilities/cellblock/cellblockFramework.js
+++ b/src/facilities/cellblock/cellblockFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.cellblock = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
diff --git a/src/facilities/clinic/clinicFramework.js b/src/facilities/clinic/clinicFramework.js
index 676e9956afd0de0e7b63e247ef91acc32b689c78..7d7ec04e11eb4d5a7ba36261b70a956cc61709cd 100644
--- a/src/facilities/clinic/clinicFramework.js
+++ b/src/facilities/clinic/clinicFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.clinic = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
diff --git a/src/facilities/club/clubFramework.js b/src/facilities/club/clubFramework.js
index d797c0a2a3cafc087fa6a46178b6e1086c82263a..fd65d27fd047604304a04d02af3f3b70d894933e 100644
--- a/src/facilities/club/clubFramework.js
+++ b/src/facilities/club/clubFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.club = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: false,
 		shouldHear: true,
 		shouldTalk: true,
diff --git a/src/facilities/dairy/dairyFramework.js b/src/facilities/dairy/dairyFramework.js
index cd3e1d760440065a45e67423b92f098a16326d41..acb594e468ebdf1d95b2c9a58b830bb53fc9328f 100644
--- a/src/facilities/dairy/dairyFramework.js
+++ b/src/facilities/dairy/dairyFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.dairy = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
diff --git a/src/facilities/farmyard/farmyardFramework.js b/src/facilities/farmyard/farmyardFramework.js
index 7b2c17271b64a24016bdb4d5aa2df725b99780db..29a2256ebd13bcc0ddf505d8e84c07c5b3a5193e 100644
--- a/src/facilities/farmyard/farmyardFramework.js
+++ b/src/facilities/farmyard/farmyardFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.farmyard = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
@@ -29,4 +30,4 @@ App.Data.Facilities.farmyard = {
 
 App.Entity.facilities.farmyard = new App.Entity.Facilities.SingleJobFacility(
 	App.Data.Facilities.farmyard
-);
\ No newline at end of file
+);
diff --git a/src/facilities/headGirlSuite/headGirlSuiteFramework.js b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
index 7e1827b931885d821eb9be949e48ca53b30d9afd..c4676de022367146af348b785679637bd5c483ca 100644
--- a/src/facilities/headGirlSuite/headGirlSuiteFramework.js
+++ b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.headGirlSuite = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
diff --git a/src/facilities/masterSuite/masterSuiteFramework.js b/src/facilities/masterSuite/masterSuiteFramework.js
index f9e5a3c6c79b5b7acbf2158503acdf943c5d56c1..abc3a8df55926b611da4de42d204cb808e5a4d56 100644
--- a/src/facilities/masterSuite/masterSuiteFramework.js
+++ b/src/facilities/masterSuite/masterSuiteFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.masterSuite = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: true,
 		shouldWalk: false,
+		shouldHold: false,
 		shouldSee: false,
 		shouldHear: false,
 		shouldTalk: false,
diff --git a/src/facilities/nursery/nurseryFramework.js b/src/facilities/nursery/nurseryFramework.js
index 563c74245b26aa3bee87c3978ecd6e060c25f939..d8874189ebe60fa2440e197ed31c2fa292c3b683 100644
--- a/src/facilities/nursery/nurseryFramework.js
+++ b/src/facilities/nursery/nurseryFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.nursery = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
diff --git a/src/facilities/penthouse/penthouseFramework.js b/src/facilities/penthouse/penthouseFramework.js
index 0b4403e8d697b3361bbe922b3a6e8b776a07dd73..1bc17d566db2ca30631c5ced9cb4bd351668942e 100644
--- a/src/facilities/penthouse/penthouseFramework.js
+++ b/src/facilities/penthouse/penthouseFramework.js
@@ -80,6 +80,7 @@ App.Data.Facilities.penthouse = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
diff --git a/src/facilities/schoolroom/schoolroomFramework.js b/src/facilities/schoolroom/schoolroomFramework.js
index da0a7493e7d4a6393a6b64668a1817b48847b1fa..93ad65caa75fa4404590284cf683815e173e250a 100644
--- a/src/facilities/schoolroom/schoolroomFramework.js
+++ b/src/facilities/schoolroom/schoolroomFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.schoolroom = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: false,
+		shouldHold: false,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
diff --git a/src/facilities/servantsQuarters/servantsQuartersFramework.js b/src/facilities/servantsQuarters/servantsQuartersFramework.js
index 0afe7f14167529063337e2f22178e71d2ce3cab2..8072e77e480f611079e14d0aed5ff5edaeb21cfa 100644
--- a/src/facilities/servantsQuarters/servantsQuartersFramework.js
+++ b/src/facilities/servantsQuarters/servantsQuartersFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.servantsQuarters = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
diff --git a/src/facilities/spa/spaFramework.js b/src/facilities/spa/spaFramework.js
index c9210b976ca51cb6e93fc485040d7f61fa223d8f..2be78f2ab03ca8bf7fafa184233c0bf067c41440 100644
--- a/src/facilities/spa/spaFramework.js
+++ b/src/facilities/spa/spaFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.spa = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: false,
 		shouldHear: true,
 		shouldTalk: false,
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index 983d04bad1b83368d3fd11296bc577a613f1dca2..e2f5ebc32696e52d975826342c25f1d2449c74d8 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -614,6 +614,17 @@ window.canTaste = function(slave) {
 	return (slave.tastes > -1);
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {boolean}
+ */
+window.canHold = function(slave) {
+	if (!slave) {
+		return null;
+	}
+	return hasBothArms(slave);
+};
+
 /**
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
diff --git a/src/npc/agent/agentFramework.js b/src/npc/agent/agentFramework.js
index 1ac1425c976ca3817d4e8aafc3ba2e9cbdc3210a..eb001682c065713aac005896374f2f8f413d9526 100644
--- a/src/npc/agent/agentFramework.js
+++ b/src/npc/agent/agentFramework.js
@@ -19,6 +19,7 @@ App.Data.Facilities.arcologyAgent = {
 		fuckdollAccepted: false,
 		broodmotherAccepted: false,
 		shouldWalk: true,
+		shouldHold: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,