diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js
index 5cc9cdf0e418c6ec4dcc59720fc2270596c1a5d2..d68140b503c3ecd31974899914050b20f4ac232f 100644
--- a/src/endWeek/saNanny.js
+++ b/src/endWeek/saNanny.js
@@ -27,7 +27,7 @@ window.saNanny = function saNanny(slave) {
 	}
 
 	// TODO:
-	if (slave.releaseRules !== "chastity") {
+	if (slave.rules.release !== "chastity") {
 		const oral = jsRandom(5, 10);
 		slave.counter.oral += oral;
 		V.oralTotal += oral;
diff --git a/src/endWeek/saRules.js b/src/endWeek/saRules.js
index f082c7d196d775283cc657cf77655d9f9bf9835c..72baeb3b8c5464b483e4905d04064f24ec3030f8 100644
--- a/src/endWeek/saRules.js
+++ b/src/endWeek/saRules.js
@@ -19,7 +19,7 @@ $(function() {
 			} = getPronouns(slave);
 
 		let
-			release = slave.releaseRules;
+			release = slave.rules.release;
 
 		let r = ``;
 
@@ -190,7 +190,7 @@ $(function() {
 								r += `Living as a mute <span class="hotpink">molds ${him}</span> to your will. `;
 							} else if (slave.lips > 95) {
 								r += `Being unable to speak through ${his} facepussy <span class="hotpink">molds ${him}</span> to your will. `;
-							} else if (slave.speechRules === "restrictive") {
+							} else if (slave.rules.speech === "restrictive") {
 								r += `Living under enforced silence <span class="hotpink">molds ${him}</span> to your will. `;
 							}
 							slave.devotion++;
@@ -354,7 +354,7 @@ $(function() {
 						}
 
 						if (rewards) {
-							switch (slave.standardReward) {
+							switch (slave.rules.reward) {
 								case "relaxation":
 									r += `${He}'s given free time, which ${he}`;
 									if (V.spa) {
@@ -378,7 +378,7 @@ $(function() {
 									r += `${He}'s <span class="hotpink">rewarded</span> with`;
 									if (slave.clitPiercing === 3) {
 										r += `sustained orgasm from ${his} ${slave.dick ? `dick` : `clit`} piercing,`;
-									} else if (slave.releaseRules === "sapphic") {
+									} else if (slave.rules.release === "sapphic") {
 										r += `immediate sex with any nearby slave,`;
 									} else {
 										r += `a quick climax from a vibrator,`;
@@ -392,7 +392,7 @@ $(function() {
 									break;
 								default:
 									r += `${He}'s <span class="hotpink">rewarded</span> `;
-									if (punishments && slave.standardPunishment === "situational") {
+									if (punishments && slave.rules.punishment === "situational") {
 										r += `and <span class="gold">punished</span>`;
 									}
 									r += `situationally, letting ${him} develop normally. `;
@@ -402,7 +402,7 @@ $(function() {
 						}
 
 						if (punishments) {
-							switch (slave.standardPunishment) {
+							switch (slave.rules.punishment) {
 								case "confinement":
 									r += `When ${he} disobeys, ${he}'s`;
 									if (V.cellblock) {
@@ -426,7 +426,7 @@ $(function() {
 									slave.trust -= punishments;
 									break;
 								default:
-									if (!rewards || slave.standardReward !== "situational") {
+									if (!rewards || slave.rules.reward !== "situational") {
 										r += `When ${he} disobeys, ${he}'s <span class="gold">punished</span> situationally, letting ${him} develop normally. `;
 									}
 									slave.trust -= punishments;
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index d403f24a8d4f32bf8cb93bac9bb518410585a292..b52daabac3ff2d59a7599ce3fc095b88f37f95c9 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -63,7 +63,7 @@ window.saServant = function saServant(slave) {
 		t += `so happy to serve your other slaves that ${he} often sees to their needs before they know they have them, and greatly <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
 	}
 
-	if (slave.releaseRules !== "chastity") {
+	if (slave.rules.release !== "chastity") {
 		const _oral = jsRandom(5, 10);
 		slave.counter.oral += _oral;
 		V.oralTotal += _oral;
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 279e166e739597f481300370c76d677d751cf178..7373a847eb93d57250cd3886c8f14f5ce147b8d0 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -543,7 +543,7 @@ window.saServeThePublic = (function saServeThePublic() {
 	function publicReactions(slave) {
 		let sstp;
 
-		if ((slave.releaseRules === "restrictive" || slave.releaseRules === "chastity") && slave.standardReward !== "orgasm") {
+		if ((slave.rules.release === "restrictive" || slave.rules.release === "chastity") && slave.rules.reward !== "orgasm") {
 			r += ` ${He}'s a better slut because public service is ${his} main sexual outlet.`;
 		}
 
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index bc36709a942f41ddb0dc21aee45c516ce125539b..014f099e87f8928771470b4804c6abafb48a2470 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -354,8 +354,8 @@ window.saTakeClasses = (function saServeThePublic() {
 					if (V.week - slave.weekAcquired > langWeekThreshold) {
 						r += ` ${He} has <span class="green">learned some ${V.language},</span> and can make ${his} point with some gesturing, though ${he} speaks ${V.language} horribly.`;
 						slave.accent--;
-						if (slave.speechRules === "language lessons") {
-							slave.speechRules = "accent elimination";
+						if (slave.rules.speech === "language lessons") {
+							slave.rules.speech = "accent elimination";
 						}
 					}
 				} else if (slave.accent === 3) {
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index e9f2ce3b42ab6c4aa2133676f456bd5d827e459d..288acedf4223d66fbf9be19797a21a71a079f327 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -90,7 +90,7 @@ window.saWhore = (function saWhore() {
 		// FResult setting
 		FuckResult = FResult(slave);
 		// slave needs release
-		if ((slave.releaseRules === "restrictive" || slave.releaseRules === "chastity") && slave.standardReward !== "orgasm" && slave.energy >= 20) {
+		if ((slave.rules.release === "restrictive" || slave.rules.release === "chastity") && slave.rules.reward !== "orgasm" && slave.energy >= 20) {
 			FuckResult += 2;
 		}
 		if (V.ACitizens > (V.ASlaves * 4)) {
@@ -731,7 +731,7 @@ window.saWhore = (function saWhore() {
 	function publicReactions(slave) {
 		let SWi;
 
-		if ((slave.releaseRules === "restrictive" || slave.releaseRules === "chastity") && slave.standardReward !== "orgasm") {
+		if ((slave.rules.release === "restrictive" || slave.rules.release === "chastity") && slave.rules.reward !== "orgasm") {
 			r += ` ${He}'s a better whore because prostitution is ${his} main sexual outlet.`;
 		}
 
diff --git a/src/facilities/farmyard/farmerSelectWorkaround.tw b/src/facilities/farmyard/farmerSelectWorkaround.tw
index 65fc5da28a5ddd2df600db9e782c7017fb75c21f..46096741a17cc645e7a2f1a7b062a3b66f05eb9b 100644
--- a/src/facilities/farmyard/farmerSelectWorkaround.tw
+++ b/src/facilities/farmyard/farmerSelectWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Farmer")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Farmer = $slaves[$i]>>
 <</if>>
 
diff --git a/src/facilities/farmyard/farmyardReport.tw b/src/facilities/farmyard/farmyardReport.tw
index 346cf6d65894a6bf542fbd6d67d6018e95fd4544..ef1e53319dcd0e270f8e1fa253a41ea662612a40 100644
--- a/src/facilities/farmyard/farmyardReport.tw
+++ b/src/facilities/farmyard/farmyardReport.tw
@@ -29,8 +29,8 @@
 	<<if $slaves[_FLs].trust < 45>>
 		<<set $slaves[_FLs].trust += 5>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "dom">>
@@ -206,11 +206,11 @@
 		/* Perform facility based rule changes */
 		<<switch $farmyardDecoration>>
 		<<case "Degradationist" "standard">>	/* TODO: add the rest of the FS */
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<<case "Roman Revivalist">>
-			<<set $slaves[$i].livingRules = "luxurious">>
+			<<set $slaves[$i].rules.living = "luxurious">>
 		<<default>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<</switch>>
 		/* TODO: should FS with "spare" living rules cause some minor health damage and devotion / trust loss? */
 		<<if ($slaves[$i].health < -80)>>
diff --git a/src/facilities/nursery/childInteract.tw b/src/facilities/nursery/childInteract.tw
index b9791ac367eb55d2d59da4cc24624b8fb97c4a5e..43dfc4098c86a895964cb56e97c8d45a889ce3ef 100644
--- a/src/facilities/nursery/childInteract.tw
+++ b/src/facilities/nursery/childInteract.tw
@@ -1541,7 +1541,7 @@ Hormones: <b><span id="hormones">$activeChild.hormones</span>.</b>
 <<set $dormitoryPopulation = 0, $roomsPopulation = 0>>
 <<for $i = 0; $i < _SL; $i++>>
 	<<if $slaves[$i].assignmentVisible && ($slaves[$i].assignment != "be your Head Girl" || $HGSuite != 1) && ($slaves[$i].assignment != "guard you" || $dojo <= 1)>>
-		<<if $slaves[$i].livingRules == "luxurious">>
+		<<if $slaves[$i].rules.living == "luxurious">>
 			<<if $slaves[$i].relationship >= 4>>
 				<<set $roomsPopulation += 0.5>>
 			<<else>>
@@ -1553,45 +1553,45 @@ Hormones: <b><span id="hormones">$activeChild.hormones</span>.</b>
 	<</if>>
 <</for>>
 
-Living standard: <b><span id="livingRules">$activeChild.livingRules</span>.</b>
+Living standard: <b><span id="livingRules">$activeChild.rules.living</span>.</b>
 //$His living conditions are managed by $nurseryName's décor.//
 
-<br>Typical punishment: <b><span id="standardPunishment">$activeChild.standardPunishment</span>.</b>
+<br>Typical punishment: <b><span id="standardPunishment">$activeChild.rules.punishment</span>.</b>
 <<link "Confinement">>
-	<<set $activeChild.standardPunishment = "confinement">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "confinement">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>> |
 <<link "Whipping">>
-	<<set $activeChild.standardPunishment = "whipping">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "whipping">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>> |
 <<link "Chastity">>
-	<<set $activeChild.standardPunishment = "chastity">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "chastity">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>> |
 <<link "Situational">>
-	<<set $activeChild.standardPunishment = "situational">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "situational">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>>
 &nbsp;&nbsp;&nbsp;&nbsp;
-Typical reward: ''<span id="standardReward">$activeChild.standardReward</span>.''
-<<link "Relaxation">><<set $activeChild.standardReward = "relaxation">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>> |
-<<link "Drugs">><<set $activeChild.standardReward = "drugs">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>> |
-<<link "Orgasm">><<set $activeChild.standardReward = "orgasm">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>> |
-<<link "Situational">><<set $activeChild.standardReward = "situational">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>>
-<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeChild.releaseRules</span>.''
-<<link "Permit masturbation and interslave sex">><<set $activeChild.releaseRules = "permissive">><<replace "#releaseRules">>$activeChild.releaseRules<</replace>><</link>> |
-<<link "Let $him get off with other slaves">><<set $activeChild.releaseRules = "sapphic">><<replace "#releaseRules">>$activeChild.releaseRules<</replace>><</link>> |
+Typical reward: ''<span id="standardReward">$activeChild.rules.reward</span>.''
+<<link "Relaxation">><<set $activeChild.rules.reward = "relaxation">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>> |
+<<link "Drugs">><<set $activeChild.rules.reward = "drugs">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>> |
+<<link "Orgasm">><<set $activeChild.rules.reward = "orgasm">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>> |
+<<link "Situational">><<set $activeChild.rules.reward = "situational">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>>
+<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeChild.rules.release</span>.''
+<<link "Permit masturbation and interslave sex">><<set $activeChild.rules.release = "permissive">><<replace "#releaseRules">>$activeChild.rules.release<</replace>><</link>> |
+<<link "Let $him get off with other slaves">><<set $activeChild.rules.release = "sapphic">><<replace "#releaseRules">>$activeChild.rules.release<</replace>><</link>> |
 <<if !isAmputee($activeChild) && $activeChild.fuckdoll == 0 && $activeChild.fetish != "mindbroken">>
-	<<link "Restrict $him to masturbation only">><<set $activeChild.releaseRules = "masturbation">><<replace "#releaseRules">>$activeChild.releaseRules<</replace>><</link>> |
+	<<link "Restrict $him to masturbation only">><<set $activeChild.rules.release = "masturbation">><<replace "#releaseRules">>$activeChild.rules.release<</replace>><</link>> |
 <</if>>
 <<link "Only with you">>
-	<<set $activeChild.releaseRules = "restrictive">>
-	<<replace "#releaseRules">>$activeChild.releaseRules<</replace>>
+	<<set $activeChild.rules.release = "restrictive">>
+	<<replace "#releaseRules">>$activeChild.rules.release<</replace>>
 <</link>> |
 <<link "Have $him remain chaste">>
-	<<set $activeChild.releaseRules = "chastity">>
-	<<replace "#releaseRules">>$activeChild.releaseRules<</replace>>
+	<<set $activeChild.rules.release = "chastity">>
+	<<replace "#releaseRules">>$activeChild.rules.release<</replace>>
 <</link>>
 
 /* TODO: will children be able to have clit piercings? */
@@ -1671,39 +1671,39 @@ Typical reward: ''<span id="standardReward">$activeChild.standardReward</span>.'
 <</if>>
 
 <<if $activeChild.voice != 0>>
-	<br>Speech rules: <b><span id="speechRules">$activeChild.speechRules</span>.</b>
+	<br>Speech rules: <b><span id="speechRules">$activeChild.rules.speech</span>.</b>
 	<<link "Restrictive">>
-		<<set $activeChild.speechRules = "restrictive">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "restrictive">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>> |
 	<<link "Permissive">>
-		<<set $activeChild.speechRules = "permissive">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "permissive">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>>
 	<<if $activeChild.accent > 0 && $activeChild.accent < 4>>|	<<link "Accent elimination">>
-		<<set $activeChild.speechRules = "accent elimination">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "accent elimination">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>>
 	<<elseif $activeChild.accent > 3>>|	<<link "Language lessons">>
-		<<set $activeChild.speechRules = "language lessons">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "language lessons">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>>
 	<</if>>
 <</if>>
 
 <br>
-Relationship rules: <b><span id="relationshipRules">$activeChild.relationshipRules</span>.</b>
+Relationship rules: <b><span id="relationshipRules">$activeChild.rules.relationship</span>.</b>
 <<link "Restrictive">>
-	<<set $activeChild.relationshipRules = "restrictive">>
-	<<replace "#relationshipRules">>$activeChild.relationshipRules<</replace>>
+	<<set $activeChild.rules.relationship = "restrictive">>
+	<<replace "#relationshipRules">>$activeChild.rules.relationship<</replace>>
 <</link>> |
 <<link "Just friends">>
-	<<set $activeChild.relationshipRules = "just friends">>
-	<<replace "#relationshipRules">>$activeChild.relationshipRules<</replace>>
+	<<set $activeChild.rules.relationship = "just friends">>
+	<<replace "#relationshipRules">>$activeChild.rules.relationship<</replace>>
 <</link>> |
 <<link "Permissive">>
-	<<set $activeChild.relationshipRules = "permissive">>
-	<<replace "#relationshipRules">>$activeChild.relationshipRules<</replace>>
+	<<set $activeChild.rules.relationship = "permissive">>
+	<<replace "#relationshipRules">>$activeChild.rules.relationship<</replace>>
 <</link>>
 
 <br>
diff --git a/src/facilities/nursery/matronWorkaround.tw b/src/facilities/nursery/matronWorkaround.tw
index 155fe02db44b436384258a2840f94b88f5e96c55..1f992d869b19932c9ebab049865507716e98703d 100644
--- a/src/facilities/nursery/matronWorkaround.tw
+++ b/src/facilities/nursery/matronWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Matron")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Matron = $slaves[$i]>>
 <</if>>
 
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index 9f9aed7b8abe8046d3233c993f90bf679fed69d7..e520d8d2c0affa6ec7083bb66e0ce930bef1fc3c 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -2826,7 +2826,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	 * @param {App.Entity.SlaveState} child
 	 */
 	function shortRules(child) {
-		switch (child.livingRules) {
+		switch (child.rules.living) {
 			case "luxurious":
 				r += `<strong>LS:Lux</strong> `;
 				break;
@@ -2838,7 +2838,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				break;
 		}
 		if (canTalk(child)) {
-			switch (child.speechRules) {
+			switch (child.rules.speech) {
 				case "permissive":
 					r += `<strong>SpR:P</strong> `;
 					break;
@@ -2854,7 +2854,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 			}
 			r += " ";
 		}
-		switch (child.relationshipRules) {
+		switch (child.rules.relationship) {
 			case "permissive":
 				r += `<strong>ReR:P</strong> `;
 				break;
@@ -2865,7 +2865,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				r += `<strong>ReR:R</strong> `;
 				break;
 		}
-		switch (child.standardPunishment) {
+		switch (child.rules.punishment) {
 			case "confinement":
 				r += `<strong>Pun:Conf</strong> `;
 				break;
@@ -2879,7 +2879,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				r += `<strong>Pun:Situ</strong> `;
 				break;
 		}
-		switch (child.standardReward) {
+		switch (child.rules.reward) {
 			case "relaxation":
 				r += `<strong>Rew:Relx</strong> `;
 				break;
@@ -2893,7 +2893,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				r += `<strong>Rew:Situ</strong> `;
 				break;
 		}
-		switch (child.releaseRules) {
+		switch (child.rules.release) {
 			case "permissive":
 				r += `<strong>MaR:P</strong> `;
 				break;
@@ -2916,14 +2916,14 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	 * @param {App.Entity.SlaveState} child
 	 */
 	function longRules(child) {
-		r += `Living standard: ${child.livingRules}. `;
+		r += `Living standard: ${child.rules.living}. `;
 		if (canTalk(child)) {
-			r += `Speech rules: ${child.speechRules}. `;
+			r += `Speech rules: ${child.rules.speech}. `;
 		}
-		r += `Relationship rules: ${child.relationshipRules}. `;
-		r += `Typical punishment: ${child.standardPunishment}. `;
-		r += `Typical reward: ${child.standardReward}. `;
-		r += `Release rules: ${child.releaseRules}. `;
+		r += `Relationship rules: ${child.rules.relationship}. `;
+		r += `Typical punishment: ${child.rules.punishment}. `;
+		r += `Typical reward: ${child.rules.reward}. `;
+		r += `Release rules: ${child.rules.release}. `;
 	}
 
 	/**
@@ -7007,10 +7007,10 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		if (child.accent !== 0) {
 			if (child.accent === 1) {
 				accent = jsEither("a beautiful", "a distinctive", "an intriguing", "a light", "a lovely", "a mild", "a pleasant", "a rich", "a slight", "a smooth");
-				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent${child.speechRules === "accent elimination" ? `, which the rules encourage ${him} to suppress` : ``}. `;
+				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent${child.rules.speech === "accent elimination" ? `, which the rules encourage ${him} to suppress` : ``}. `;
 			} else if (child.accent === 2) {
 				accent = jsEither("a broad", "a harsh", "a heavy", "an intense", "a marked", "a noticeable", "a rough", "a significant", "a stressed", "a strong", "a thick");
-				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent that can be hard to understand${child.speechRules === "accent elimination" ? `, and the rules encourage ${him} to make an effort to suppress it` : ``}. `;
+				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent that can be hard to understand${child.rules.speech === "accent elimination" ? `, and the rules encourage ${him} to make an effort to suppress it` : ``}. `;
 			} else {
 				r += `${He} speaks little ${V.language}, but understands enough to be given orders. `;
 			}
@@ -12678,7 +12678,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += tats.vagina(child);
 			}
 
-			if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				if ((child.aphrodisiacs > 0 || child.inflationType === "aphrodisiac") && child.drugs !== "priapism agent") {
 					if (child.aphrodisiacs > 1 || (child.inflationType === "aphrodisiac" && child.inflation > 1)) {
 						if (child.dick !== 0 && child.hormoneBalance >= 100 && !hasAnyArms(child)) {
@@ -15106,7 +15106,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		r += `${He} has a large, liver-colored birthmark, detracting from ${his} beauty. `;
 	}
 	if (child.skin === "sun tanned") {
-		if (child.releaseRules !== "restrictive" && child.releaseRules !== "masturbation" && child.releaseRules !== "chastity") {
+		if (child.rules.release !== "restrictive" && child.rules.release !== "masturbation" && child.rules.release !== "chastity") {
 			if (child.fetishKnown && child.fetishStrength > 60) {
 				r += `${His} tan is slightly uneven, since ${he} enjoys`;
 				switch (child.fetish) {
@@ -15373,11 +15373,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
 			} else if (child.chastityVagina) {
 				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0 && child.vagina === -1) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.vagina !== -1) {
 				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} `;
 				if (child.anus === 0) {
 					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
@@ -15392,7 +15392,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 					}
 					r += ` to fuck ${his} own ass. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
 				}
-			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			} else if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other. `;
 			} else if (child.dick !== 0) {
 				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
@@ -15407,11 +15407,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}. `;
 			} else if (child.chastityVagina) {
 				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0 && child.vagina === -1) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.vagina !== -1) {
 				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he}`;
 				if (child.anus === 0) {
 					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off. `;
@@ -15426,7 +15426,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 					}
 					r += ` to fuck ${his} own ass. `;
 				}
-			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			} else if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other. `;
 			} else if (child.dick !== 0) {
 				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
@@ -15440,11 +15440,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += `${He}'s on aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with sexual frustration. `;
 			} else if (child.chastityVagina) {
 				r += `${He}'s on aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with sexual frustration. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0 && child.vagina === -1) {
 				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft with one hand while the other pinches a nipple. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0) {
 				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft and pussy with one hand while the other pinches a nipple. `;
-			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			} else if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} pussy with one hand while the other pinches a nipple. `;
 			} else if (child.dick !== 0 && canPenetrate(child)) {
 				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably. ${His} erect dick sways as ${he} does. `;
@@ -15703,14 +15703,14 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.lactation = 0,
 	child.lactationAdaptation = 0,
 	child.lactationDuration = 0,
-	child.lactationRules = "none",
+	child.rules.lactation = "none",
 	child.legAccessory = "none",
 	child.legsTat = 0,
 	child.lips = jsRandom(10, 30),
 	child.lipsImplant = 0,
 	child.lipsPiercing = 0,
 	child.lipsTat = 0,
-	child.livingRules = "normal",
+	child.rules.living = "normal",
 	child.makeup = 0,
 	child.markings = "none",
 	child.minorInjury = 0,
@@ -15819,9 +15819,9 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.readyOva = 0,
 	child.rearAccessory = "none",
 	child.relationship = 0,
-	child.relationshipRules = "restrictive",	// TODO:
+	child.rules.relationship = "restrictive",	// TODO:
 	child.relationshipTarget = 0,
-	child.releaseRules = "restrictive",	// TODO:
+	child.rules.release = "restrictive",	// TODO:
 	child.rivalry = 0,
 	child.rivalryTarget = 0,
 	child.rudeTitle = 0,
@@ -15857,10 +15857,10 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 		whoring: 8
 	},
 	child.smells = 0,
-	child.speechRules = "restrictive",	// TODO:
+	child.rules.speech = "restrictive",	// TODO:
 	child.stampTat = 0,
-	child.standardPunishment = "situational",	// TODO:
-	child.standardReward = "situational",	// TODO:
+	child.rules.punishment = "situational",	// TODO:
+	child.rules.reward = "situational",	// TODO:
 	child.tail = "none",
 	child.tailColor = "none",
 	child.tailShape = "none",
@@ -17809,14 +17809,14 @@ App.Facilities.Nursery.ChildState = class ChildState {
 			* * "normal"
 			* * "luxurious"
 			*/
-		this.livingRules = "spare";
+		this.rules.living = "spare";
 		/**
 		* * "restrictive"
 		* * "permissive"
 		* * "accent elimination"
 		* * "language lessons"
 		*/
-		this.speechRules = "restrictive";
+		this.rules.speech = "restrictive";
 		/**
 		* * "permissive"
 		* * "sapphic"
@@ -17824,33 +17824,33 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		* * "restrictive"
 		* * "chastity"
 		*/
-		this.releaseRules = "restrictive";
+		this.rules.release = "restrictive";
 		/**
 		* * "restrictive"
 		* * "just friends"
 		* * "permissive"
 		*/
-		this.relationshipRules = "restrictive";
+		this.rules.relationship = "restrictive";
 		/**
 		* * "none"
 		* * "induce"
 		* * "maintain"
 		*/
-		this.lactationRules = "none";
+		this.rules.lactation = "none";
 		/**
 		* * "confinement"
 		* * "whipping"
 		* * "chastity"
 		* * "situational"
 		*/
-		this.standardPunishment = "situational";
+		this.rules.punishment = "situational";
 		/**
 		* * "relaxation"
 		* * "drugs"
 		* * "orgasm"
 		* * "situational"
 		*/
-		this.standardReward = "situational";
+		this.rules.reward = "situational";
 		/** Follows rules or is exempt from them
 		*
 		* 0: exempt; 1: obeys */
@@ -19102,8 +19102,8 @@ App.Facilities.Nursery.nurseryReport = function nurseryReport() {
 		if (Matron.trust <= 60) {
 			Matron.trust++;
 		}
-		if (Matron.livingRules !== "luxurious") {
-			Matron.livingRules = "luxurious";
+		if (Matron.rules.living !== "luxurious") {
+			Matron.rules.living = "luxurious";
 		}
 
 		let FLsFetish = 0;
@@ -19259,13 +19259,13 @@ App.Facilities.Nursery.nurseryReport = function nurseryReport() {
 		// TODO:
 		switch (V.nurseryDecoration) {
 			case "Repopulationist":
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 				break;
 			case "Degradationist":
-				slave.livingRules = "spare";
+				slave.rules.living = "spare";
 				break;
 			default:
-				slave.livingRules = "normal";
+				slave.rules.living = "normal";
 				break;
 		}
 
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index ce45c4de98f839135638352d0f768089d3169df6..b7c9ac66c547a7ce6a1b3a2b531d8374fbba94ad 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -78,7 +78,7 @@ You should have received a copy of the GNU General Public License along with thi
 			<<set $slaves[_i].rivalry = 0, $slaves[_i].rivalryTarget = 0, $slaves[_i].subTarget = 0>>
 			<<set $slaves[_i].drugs = "no drugs">>
 			<<set $slaves[_i].pornFameSpending = 0>>
-			<<set $slaves[_i].livingRules = "spare">>
+			<<set $slaves[_i].rules.living = "spare">>
 			<<set $slaves[_i].diet = "healthy">>
 			<<set $slaves[_i].pregControl = "none">>
 		<</if>>
diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js
index 8262ac47dcf03cf0a5e8c15ae2a910d59518b689..b065a56f7bbc1397516cbaf029b6083b572d2397 100644
--- a/src/interaction/main/walkPast.js
+++ b/src/interaction/main/walkPast.js
@@ -87,7 +87,7 @@ window.walkPast = (function() {
 
 		if (V.partner === "rivalry") {
 			output += rivalSlave(activeSlave, seed);
-		} else if (V.partner === "relationship" && activeSlave.relationship >= 3 && activeSlave.releaseRules !== "restrictive" && activeSlave.releaseRules !== "masturbation" && activeSlave.releaseRules !== "chastity") {
+		} else if (V.partner === "relationship" && activeSlave.relationship >= 3 && activeSlave.rules.release !== "restrictive" && activeSlave.rules.release !== "masturbation" && activeSlave.rules.release !== "chastity") {
 			output += loverSlave(activeSlave);
 		} else if (V.partner === "relationship" || V.partner === "relation") {
 			output += relatedSlave(activeSlave);
@@ -217,7 +217,7 @@ window.walkPast = (function() {
 	function primeSlave(activeSlave, seed) {
 		r = "";
 
-		if (V.partner !== "relationship" || activeSlave.relationship === 1 || activeSlave.relationship === 2 || activeSlave.releaseRules === "restrictive") {
+		if (V.partner !== "relationship" || activeSlave.relationship === 1 || activeSlave.relationship === 2 || activeSlave.rules.release === "restrictive") {
 			r += `${activeSlave.slaveName} `;
 			r += walkPasts(activeSlave, seed);
 			t = "";
@@ -301,7 +301,7 @@ window.walkPast = (function() {
 			} else if (seed >= 66) { /* SEXY TIMES */
 				if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 					fuckSpot = `in ${partnerName}'s suite`;
-				} else if (activeSlave.livingRules === "luxurious") {
+				} else if (activeSlave.rules.living === "luxurious") {
 					fuckSpot = `in the nice little room they share`;
 				} else {
 					fuckSpot = `out in the open in the slave dormitory`;
@@ -731,7 +731,7 @@ window.walkPast = (function() {
 							break;
 						case "humiliation":
 							t += `having open and visible sex `;
-							if (activeSlave.livingRules === "luxurious") {
+							if (activeSlave.rules.living === "luxurious") {
 								t += `in the doorway of the nice little room they share.`;
 							} else if (activeSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 								t += `in ${name}'s suite.`;
@@ -1071,7 +1071,7 @@ window.walkPast = (function() {
 				} else if (canPenetrate(activeSlave) && (partnerSlave.vagina > 0) && canDoVaginal(partnerSlave) && hasAllLimbs(partnerSlave) && (activeSlave.belly + partnerSlave.belly < 10000)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1086,7 +1086,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && partnerSlave.vagina > 0 && canDoVaginal(partnerSlave) && hasAllLimbs(partnerSlave) && (activeSlave.belly + partnerSlave.belly < 10000)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1101,7 +1101,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.dick > 1 && canPenetrate(activeSlave) && canDoAnal(partnerSlave) && partnerSlave.anus > 0 && hasBothArms(activeSlave) && activeSlave.belly < 10000) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1114,7 +1114,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.clit > 2 && canDoAnal(partnerSlave) && partnerSlave.anus > 0 && hasAnyArms(partnerSlave) && hasAnyLegs(activeSlave)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1123,7 +1123,7 @@ window.walkPast = (function() {
 				} else if (canPenetrate(activeSlave) && hasBothLegs(partnerSlave) && hasBothArms(activeSlave) && activeSlave.belly < 10000) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1136,7 +1136,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && hasBothLegs(partnerSlave)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1145,7 +1145,7 @@ window.walkPast = (function() {
 				} else if (partnerSlave.vagina > 0 && canDoVaginal(partnerSlave) && hasAllLimbs(partnerSlave) && (activeSlave.belly + partnerSlave.belly < 10000)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1160,7 +1160,7 @@ window.walkPast = (function() {
 				} else if (partnerSlave.anus > 0 && canDoAnal(partnerSlave) && hasBothArms(activeSlave) && activeSlave.belly < 10000) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1173,7 +1173,7 @@ window.walkPast = (function() {
 				} else if (hasAnyArms(partnerSlave) && hasAnyArms(activeSlave)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1183,7 +1183,7 @@ window.walkPast = (function() {
 					t += `just cuddling `;
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1193,7 +1193,7 @@ window.walkPast = (function() {
 					t += `just cuddling `;
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index f078255943e01df10efe30f540889712ea759cef..5a72e8f1d9a584e703db3be401553059676eeb07 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1824,33 +1824,33 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessLivingStandard(slave, rule) {
-		if ((rule.livingRules !== undefined) && (rule.livingRules !== null)) {
+		if ((rule.rules.living !== undefined) && (rule.rules.living !== null)) {
 			if (setup.facilityCareers.includes(slave.assignment)) {
 				r += ""; // `<br>${slave.slaveName}'s living standards are controlled by ${his} assignment.`;
 			} else if (((slave.assignment === "be your Head Girl") && (V.HGSuite === 1)) || ((slave.assignment === "guard you") && (V.dojo > 1))) {
 				r += `<br>${slave.slaveName} has a private room.`;
 			} else if ((slave.fetish === "mindbroken")) {
-				if ((slave.livingRules !== "spare")) {
-					slave.livingRules = "spare";
+				if ((slave.rules.living !== "spare")) {
+					slave.rules.living = "spare";
 					r += `<br>Since ${slave.slaveName} is mindbroken, ${his} living standard has been set to spare.`;
 				}
-			} else if (slave.livingRules !== rule.livingRules) {
-				if (rule.livingRules !== "luxurious") {
+			} else if (slave.rules.living !== rule.rules.living) {
+				if (rule.rules.living !== "luxurious") {
 					if (V.roomsPopulation <= V.rooms - 0.5) {
-						slave.livingRules = rule.livingRules;
-						r += `<br>${slave.slaveName}'s living standard has been set to ${rule.livingRules}.`;
+						slave.rules.living = rule.rules.living;
+						r += `<br>${slave.slaveName}'s living standard has been set to ${rule.rules.living}.`;
 						if (slave.relationship >= 4) {
 							V.roomsPopulation += 0.5;
 						} else {
 							V.roomsPopulation += 1;
 						}
 					} else {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 						r += `<br>${slave.slaveName}'s living standard has been set to normal, since there is no room for ${him} to occupy.`;
 					}
 				} else {
-					slave.livingRules = rule.livingRules;
-					r += `<br>${slave.slaveName}'s living standard has been set to ${rule.livingRules}.`;
+					slave.rules.living = rule.rules.living;
+					r += `<br>${slave.slaveName}'s living standard has been set to ${rule.rules.living}.`;
 				}
 			}
 		}
@@ -1861,31 +1861,31 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessSpeech(slave, rule) {
-		if ((rule.speechRules !== undefined) && (rule.speechRules !== null) && (slave.speechRules !== rule.speechRules)) {
+		if ((rule.rules.speech !== undefined) && (rule.rules.speech !== null) && (slave.rules.speech !== rule.rules.speech)) {
 			if (slave.fetish === "mindbroken") {
-				if ((slave.speechRules !== "restrictive")) {
-					slave.speechRules = "restrictive";
+				if ((slave.rules.speech !== "restrictive")) {
+					slave.rules.speech = "restrictive";
 					r += `<br>Since ${slave.slaveName} is mindbroken, ${his} speech rules have been set to restrictive.`;
 				}
 			} else if (slave.accent === 4) {
-				if (rule.speechRules === "accent elimination" && slave.speechRules !== "language lessons") {
-					slave.speechRules = "language lessons";
+				if (rule.rules.speech === "accent elimination" && slave.rules.speech !== "language lessons") {
+					slave.rules.speech = "language lessons";
 					r += `<br>Since ${slave.slaveName} does not know how to talk, ${his} speech rules have been set to language learning.`;
 				} else {
-					slave.speechRules = "restrictive";
+					slave.rules.speech = "restrictive";
 					r += `<br>Since ${slave.slaveName} does not know how to talk, ${his} speech rules have been set to restrictive.`;
 				}
-			} else if (rule.speechRules === "accent elimination") {
+			} else if (rule.rules.speech === "accent elimination") {
 				if (slave.accent > 0) {
-					slave.speechRules = "accent elimination";
-					r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.speechRules}.`;
+					slave.rules.speech = "accent elimination";
+					r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.rules.speech}.`;
 				} else {
-					slave.speechRules = "restrictive";
+					slave.rules.speech = "restrictive";
 					r += `<br>Since ${slave.slaveName} has no accent, ${his} speech rules have been set to restrictive.`;
 				}
-			} else if (slave.speechRules !== rule.speechRules) {
-				slave.speechRules = rule.speechRules;
-				r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.speechRules}.`;
+			} else if (slave.rules.speech !== rule.rules.speech) {
+				slave.rules.speech = rule.rules.speech;
+				r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.rules.speech}.`;
 			}
 		}
 	}
@@ -1896,10 +1896,10 @@ window.DefaultRules = (function() {
 	 */
 	function ProcessRelationship(slave, rule) {
 		if ((slave.fetish !== "mindbroken")) {
-			if ((rule.relationshipRules !== undefined) && (rule.relationshipRules !== null)) {
-				if ((slave.relationshipRules !== rule.relationshipRules )) {
-					slave.relationshipRules = rule.relationshipRules;
-					r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.relationshipRules}.`;
+			if ((rule.rules.relationship !== undefined) && (rule.rules.relationship !== null)) {
+				if ((slave.rules.relationship !== rule.rules.relationship )) {
+					slave.rules.relationship = rule.rules.relationship;
+					r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.rules.relationship}.`;
 				}
 			}
 		}
@@ -1910,25 +1910,25 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessRelease(slave, rule) {
-		if ((rule.releaseRules !== undefined) && (rule.releaseRules !== null)) {
+		if ((rule.rules.release !== undefined) && (rule.rules.release !== null)) {
 			let release = 0;
-			if (rule.releaseRules === "restrictive" &&
+			if (rule.rules.release === "restrictive" &&
 				!(["be a subordinate slave", "be confined in the arcade", "be your Head Girl", "get milked", "please you", "serve in the club", "serve in the master suite", "serve the public", "whore", "work a glory hole", "work as a farmhand", "work in the brothel", "work in the dairy"].contains(slave.assignment))) {
 				release = 1;
 			}
 			if (slave.fetish === "mindbroken") {
-				if (slave.releaseRules !== "permissive") {
-					slave.releaseRules = "permissive";
+				if (slave.rules.release !== "permissive") {
+					slave.rules.release = "permissive";
 					r += `<br>Since ${slave.slaveName} is mindbroken, ${his} masturbation rules have been set to permissive.`;
 				}
 			} else if (!hasAnyArms(slave) || slave.fuckdoll > 0) {
-				if (slave.releaseRules === "masturbation") {
-					slave.releaseRules = "restrictive";
+				if (slave.rules.release === "masturbation") {
+					slave.rules.release = "restrictive";
 					r += `<br>Since ${slave.slaveName} is unable to masturbate, ${his} masturbation rules have been set to restrictive.`;
 				}
-			} else if ((release !== 1) && (slave.releaseRules !== rule.releaseRules)) {
-				slave.releaseRules = rule.releaseRules;
-				r += `<br>${slave.slaveName}'s masturbation rules have been set to ${rule.releaseRules}.`;
+			} else if ((release !== 1) && (slave.rules.release !== rule.rules.release)) {
+				slave.rules.release = rule.rules.release;
+				r += `<br>${slave.slaveName}'s masturbation rules have been set to ${rule.rules.release}.`;
 			}
 		}
 	}
@@ -1938,10 +1938,10 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessPunishment(slave, rule) {
-		if ((rule.standardPunishment !== undefined) && (rule.standardPunishment !== null)) {
-			if ((slave.standardPunishment !== rule.standardPunishment)) {
-				slave.standardPunishment = rule.standardPunishment;
-				r += `<br>${slave.slaveName}'s typical punishment has been updated to ${rule.standardPunishment}.`;
+		if ((rule.rules.punishment !== undefined) && (rule.rules.punishment !== null)) {
+			if ((slave.rules.punishment !== rule.rules.punishment)) {
+				slave.rules.punishment = rule.rules.punishment;
+				r += `<br>${slave.slaveName}'s typical punishment has been updated to ${rule.rules.punishment}.`;
 			}
 		}
 	}
@@ -1951,10 +1951,10 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessReward(slave, rule) {
-		if ((rule.standardReward !== undefined) && (rule.standardReward !== null)) {
-			if ((slave.standardReward !== rule.standardReward)) {
-				slave.standardReward = rule.standardReward;
-				r += `<br>${slave.slaveName}'s typical reward has been updated to ${rule.standardReward}.`;
+		if ((rule.rules.reward !== undefined) && (rule.rules.reward !== null)) {
+			if ((slave.rules.reward !== rule.rules.reward)) {
+				slave.rules.reward = rule.rules.reward;
+				r += `<br>${slave.slaveName}'s typical reward has been updated to ${rule.rules.reward}.`;
 			}
 		}
 	}
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 4e81710055c6fe5dc22fc75c1b4682db1e5a38c4..33d4a461fb04a9130f13ab24321274fb3640a90a 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -8,6 +8,58 @@
  * App.Entity.SlaveState class.
  * @ref App.Entity.SlaveState
  */
+  App.Entity.Rulestate = class Rulestate {
+	constructor() {
+		/**
+		 * * "spare"
+		 * * "normal"
+		 * * "luxurious"
+		 */
+		this.living = "spare";
+		/**
+		 * * "restrictive"
+		 * * "permissive"
+		 * * "accent elimination"
+		 * * "language lessons"
+		 */
+		this.speech = "restrictive";
+		/**
+		 * * "permissive"
+		 * * "sapphic"
+		 * * "masturbation"
+		 * * "restrictive"
+		 * * "chastity"
+		 */
+		this.release = "restrictive";
+		/**
+		 * * "restrictive"
+		 * * "just friends"
+		 * * "permissive"
+		 */
+		this.relationship = "restrictive";
+		/**
+		 * * "none"
+		 * * "induce"
+		 * * "maintain"
+		 */
+		this.lactation = "none";
+		/**
+		 * * "confinement"
+		 * * "whipping"
+		 * * "chastity"
+		 * * "situational"
+		 */
+		this.punishment = "situational";
+		/**
+		 * * "relaxation"
+		 * * "drugs"
+		 * * "orgasm"
+		 * * "situational"
+		 */
+		this.reward = "situational";
+	}
+};
+ 
 App.Entity.SlavePornPerformanceState = class {
 	constructor() {
 		/** what porn she is known for */
@@ -454,6 +506,8 @@ App.Entity.SlaveState = class SlaveState {
 		this.pornPrestigeDesc = 0;
 		/** porn fame */
 		this.porn = new App.Entity.SlavePornPerformanceState();
+		/** rules */
+		this.rules = new App.Entity.Rulestate();
 		/** reason for prestige
 		 * @type {string|number} */
 		this.prestigeDesc = 0;
@@ -1551,53 +1605,6 @@ App.Entity.SlaveState = class SlaveState {
 		 * * "Paternalist"
 		 * @type {string|number} */
 		this.stampTat = 0;
-		/**
-		 * * "spare"
-		 * * "normal"
-		 * * "luxurious"
-		 */
-		this.livingRules = "spare";
-		/**
-		 * * "restrictive"
-		 * * "permissive"
-		 * * "accent elimination"
-		 * * "language lessons"
-		 */
-		this.speechRules = "restrictive";
-		/**
-		 * * "permissive"
-		 * * "sapphic"
-		 * * "masturbation"
-		 * * "restrictive"
-		 * * "chastity"
-		 */
-		this.releaseRules = "restrictive";
-		/**
-		 * * "restrictive"
-		 * * "just friends"
-		 * * "permissive"
-		 */
-		this.relationshipRules = "restrictive";
-		/**
-		 * * "none"
-		 * * "induce"
-		 * * "maintain"
-		 */
-		this.lactationRules = "none";
-		/**
-		 * * "confinement"
-		 * * "whipping"
-		 * * "chastity"
-		 * * "situational"
-		 */
-		this.standardPunishment = "situational";
-		/**
-		 * * "relaxation"
-		 * * "drugs"
-		 * * "orgasm"
-		 * * "situational"
-		 */
-		this.standardReward = "situational";
 		/** follows rules or is exempt from them
 		 *
 		 * 0: exempt; 1: obeys */
diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index abde43fb31e2b44169aaefdbd53d9649cfe6fede..c58a4b82045b4947672f99112e7d766ef8367736 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -18,7 +18,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.clothes = "no clothing";
 			slave.shoes = "none";
 			slave.collar = "none";
-			slave.livingRules = "spare";
+			slave.rules.living = "spare";
 			break;
 
 		case "work in the brothel":
@@ -29,10 +29,10 @@ window.assignJob = function assignJob(slave, job) {
 			switch (V.brothelDecoration) {
 				case "Degradationist":
 				case "standard":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -44,10 +44,10 @@ window.assignJob = function assignJob(slave, job) {
 			V.CellBiIDs.push(slave.ID);
 			switch (V.cellblockDecoration) {
 				case "Paternalist":
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 				default:
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 			}
 			break;
@@ -70,7 +70,7 @@ window.assignJob = function assignJob(slave, job) {
 				case "Intellectual Dependency":
 				case "Petite Admiration":
 				case "Statuesque Glorification":
-					slave.livingRules = "luxurious";
+					slave.rules.living = "luxurious";
 					break;
 
 				case "Roman Revivalist":
@@ -80,11 +80,11 @@ window.assignJob = function assignJob(slave, job) {
 				case "Chinese Revivalist":
 				case "Chattel Religionist":
 				case "Edo Revivalist":
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 
 				default:
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 			}
 			break;
@@ -94,7 +94,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "serve in the club";
 			slave.assignmentVisible = 0;
 			V.ClubiIDs.push(slave.ID);
-			slave.livingRules = "normal";
+			slave.rules.living = "normal";
 			break;
 
 		case "work in the dairy":
@@ -113,10 +113,10 @@ window.assignJob = function assignJob(slave, job) {
 				case "Supremacist":
 				case "Subjugationist":
 				case "Degradationist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -136,13 +136,13 @@ window.assignJob = function assignJob(slave, job) {
 				case "Supremacist":
 				case "Subjugationist":
 				case "Degradationist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				case "Roman Revivalist":
-					slave.livingRules = "luxurious";
+					slave.rules.living = "luxurious";
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -153,7 +153,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "live with your Head Girl";
 			slave.assignmentVisible = 0;
 			V.HGSuiteiIDs.push(slave.ID);
-			slave.livingRules = "luxurious";
+			slave.rules.living = "luxurious";
 			break;
 
 		case "serve in the master suite":
@@ -163,9 +163,9 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignmentVisible = 0;
 			V.MastSiIDs.push(slave.ID);
 			if (V.masterSuiteUpgradeLuxury > 0) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			} else {
-				slave.livingRules = "normal";
+				slave.rules.living = "normal";
 			}
 			break;
 
@@ -174,7 +174,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "learn in the schoolroom";
 			slave.assignmentVisible = 0;
 			V.SchlRiIDs.push(slave.ID);
-			slave.livingRules = "normal";
+			slave.rules.living = "normal";
 			break;
 
 		case "work as a servant":
@@ -194,31 +194,31 @@ window.assignJob = function assignJob(slave, job) {
 				case "Degradationist":
 				case "Arabian Revivalist":
 				case "Egyptian Revivalist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				case "Slave Professionalism":
 					if (slave.intelligence + slave.intelligenceImplant > 15) {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 					} else {
-						slave.livingRules = "spare";
+						slave.rules.living = "spare";
 					}
 					break;
 				case "Petite Admiration":
 					if (heightPass(slave)) {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 					} else {
-						slave.livingRules = "spare";
+						slave.rules.living = "spare";
 					}
 					break;
 				case "Statuesque Glorification":
 					if (heightPass(slave)) {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 					} else {
-						slave.livingRules = "spare";
+						slave.rules.living = "spare";
 					}
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -231,13 +231,13 @@ window.assignJob = function assignJob(slave, job) {
 			switch (V.spaDecoration) {
 				case "Chattel Religionist":
 				case "Chinese Revivalist":
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 				case "Degradationist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				default:
-					slave.livingRules = "luxurious";
+					slave.rules.living = "luxurious";
 					break;
 			}
 			break;
@@ -247,7 +247,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "work as a nanny";
 			slave.assignmentVisible = 0;
 			V.NurseryiIDs.push(slave.ID);
-			slave.livingRules = "normal";
+			slave.rules.living = "normal";
 			break;
 
 		case "be the attendant":
@@ -262,30 +262,30 @@ window.assignJob = function assignJob(slave, job) {
 		case "be the wardeness":
 			slave.assignment = job;
 			slave.assignmentVisible = 0; /* non-visible leadership roles */
-			slave.livingRules = "luxurious";
+			slave.rules.living = "luxurious";
 			break;
 
 		case "be your concubine":
 			slave.assignment = job;
 			slave.assignmentVisible = 0; /* non-visible leadership roles */
 			if (V.masterSuiteUpgradeLuxury > 0) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			} else {
-				slave.livingRules = "normal";
+				slave.rules.living = "normal";
 			}
 			break;
 
 		case "be your head girl":
 			slave.assignment = job;
 			if (V.HGSuite === 1) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			}
 			break;
 
 		case "guard you":
 			slave.assignment = job;
 			if (V.dojo > 1) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			}
 			if (V.pitBG === 1 && V.fighterIDs.includes(slave.ID)) { V.fighterIDs.delete(slave.ID); }
 			break;
@@ -523,8 +523,8 @@ window.removeJob = function removeJob(slave, assignment) {
 				break;
 		}
 
-		if (slave.livingRules === "luxurious" && slave.assignmentVisible !== 1) {
-			slave.livingRules = "normal";
+		if (slave.rules.living === "luxurious" && slave.assignmentVisible !== 1) {
+			slave.rules.living = "normal";
 		}
 
 		slave.assignmentVisible = 1;
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 5a0079a59db2eece210eba507a3d917e754d1c55..a8f8f0b07702c361b1570826a1d34d9fb32a6586 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -13,6 +13,7 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function SlaveDataSchemeCleanup(slave) {
+  migrateRules(slave);
 		migratePorn(slave);
 		migrateSkills(slave);
 		migrateCounters(slave);
@@ -21,6 +22,29 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 		migrateScars(slave);
 		App.Entity.Utils.migratePronouns(slave);
 	}
+	
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
+	function migrateRules(slave) {
+		if (!slave.hasOwnProperty("rules")) {
+			slave.rules = new App.Entity.Rulestate();	
+			slave.rules.lactation = slave.lactationRules;
+				delete slave.lactationRules;
+			slave.rules.living = slave.livingRules;
+				delete slave.livingRules;
+			slave.rules.relationship = slave.relationshipRules;
+				delete slave.relationshipRules;
+			slave.rules.release = slave.releaseRules;
+				delete slave.releaseRules;
+			slave.rules.speech = slave.speechRules;
+				delete slave.speechRules;
+			slave.rules.punishment = slave.standardPunishment;
+				delete slave.standardPunishment;
+			slave.rules.reward = slave.standardReward;
+				delete slave.standardReward;
+		}
+	}
 
 	/**
 	 * @param {App.Entity.SlaveState} slave
@@ -2038,8 +2062,8 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() {
 			"preg", "pregSource", "pregType", "pregAdaptation", "labor",
 			"bellyAccessory",
 			"clitSetting",
-			"livingRules", "speechRules", "releaseRules", "relationshipRules", "lactationRules",
-			"standardPunishment", "standardReward",
+			"rules.living", "rules.speech", "rules.release", "rules.relationship", "rules.lactation",
+			"rules.punishment", "rules.reward",
 			"useRulesAssistant",
 			"diet", "dietCum", "dietMilk",
 			"tired",
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index a344082bae9ffd1fb482cdb70011381e153063e6..793c9f709d880627accfd65e7a782d0e04d4a4d5 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -553,7 +553,7 @@ window.getSlaveCost = function(s) {
 		case Job.DAIRY:
 			if (State.variables.dairyRestraintsSetting >= 2) {
 				cost += rulesCost * 0.75;
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else if (State.variables.dairyDecoration === 'Degradationist') {
 				cost += rulesCost * 0.90;
@@ -562,7 +562,7 @@ window.getSlaveCost = function(s) {
 			}
 			break;
 		case Job.FARMYARD:
-			if (s.livingRules === LivingRule.NORMAL) {
+			if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else if (State.variables.farmyardDecoration === 'Roman Revivalist') {
 				cost += rulesCost * 1.5;
@@ -571,16 +571,16 @@ window.getSlaveCost = function(s) {
 			}
 			break;
 		case Job.BROTHEL:
-			cost += (s.livingRules === LivingRule.NORMAL) ? rulesCost * 1.5 : rulesCost;
+			cost += (s.rules.living === LivingRule.NORMAL) ? rulesCost * 1.5 : rulesCost;
 			break;
 		case Job.SCHOOL:
 		case Job.CLUB:
 			cost += rulesCost * 1.5;
 			break;
 		case Job.CLINIC:
-			if (s.livingRules === LivingRule.LUXURIOUS) {
+			if (s.rules.living === LivingRule.LUXURIOUS) {
 				cost += rulesCost * 2;
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else {
 				cost += rulesCost;
@@ -588,23 +588,23 @@ window.getSlaveCost = function(s) {
 			break;
 		case Job.SPA:
 		case Job.NANNY:
-			if (s.livingRules === LivingRule.LUXURIOUS) {
+			if (s.rules.living === LivingRule.LUXURIOUS) {
 				cost += rulesCost * 1.75;
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else {
 				cost += rulesCost;
 			}
 			break;
 		case Job.SERVANT:
-			if (s.livingRules === LivingRule.NORMAL) {
+			if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else {
 				cost += (State.variables.servantsQuartersDecoration === 'Degradationist') ? rulesCost * 0.90 : rulesCost;
 			}
 			break;
 		case Job.JAIL:
-			cost += (s.livingRules === LivingRule.NORMAL) ? rulesCost * 1.25 : rulesCost * 0.90;
+			cost += (s.rules.living === LivingRule.NORMAL) ? rulesCost * 1.25 : rulesCost * 0.90;
 			break;
 		case Job.MADAM:
 		case Job.DJ:
@@ -619,9 +619,9 @@ window.getSlaveCost = function(s) {
 			cost += rulesCost * 2;
 			break;
 		default:
-			if (s.livingRules === LivingRule.LUXURIOUS) {
+			if (s.rules.living === LivingRule.LUXURIOUS) {
 				cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 2;
 			} else {
 				cost += rulesCost;
@@ -1183,7 +1183,7 @@ window.slaveJobValues = function() {
 
 		// The quality/value of each sexual act
 		s.sexQuality = FResult(s);
-		if ((s.releaseRules === "restrictive" || s.releaseRules === "chastity") && s.standardReward !== "orgasm" && s.energy >= 20) {
+		if ((s.rules.release === "restrictive" || s.rules.release === "chastity") && s.rules.reward !== "orgasm" && s.energy >= 20) {
 			s.sexQuality += 2;
 		}
 		if (canDoAnal(s) && s.anus === 0) {
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index 897958744f07d3a235055333b6873d7180af8b01..438c4af32fdd4592e35135f19b01793f90bab599 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -18,7 +18,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (eventSlave.energy > 40) {
 								if (canPenetrate(eventSlave)) {
 									if (canSee(eventSlave)) {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											State.variables.RETSevent.push("interslave begging");
 										}
 									}
@@ -34,7 +34,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (eventSlave.belly < 100000) {
 								if (eventSlave.lactation > 0) {
 									if (eventSlave.nipples !== "fuckable") {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											if (State.variables.familyTesting === 0) {
 												if (eventSlave.relation === "mother") {
 													State.variables.RETSevent.push("incestuous nursing");
@@ -132,7 +132,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					}
 					if (eventSlave.ID !== State.variables.HeadGirl.ID) {
 						if (canSee(eventSlave) && canWalk(eventSlave)) {
-							if (eventSlave.speechRules !== "restrictive") {
+							if (eventSlave.rules.speech !== "restrictive") {
 								if (eventSlave.trust > 75) {
 									if (eventSlave.devotion > 50) {
 										if (eventSlave.skill.oral > 30) {
@@ -149,7 +149,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					}
 				}
 
-				if (eventSlave.livingRules === "spare") {
+				if (eventSlave.rules.living === "spare") {
 					if (eventSlave.devotion <= 20) {
 						if (eventSlave.devotion > -10) {
 							State.variables.RESSevent.push("sleeping ambivalent");
@@ -177,7 +177,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 
 				if (State.variables.RETasteTestSubIDs.length > 1) {
-					if (eventSlave.livingRules === "luxurious") {
+					if (eventSlave.rules.living === "luxurious") {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.energy > 80) {
 								if (canTaste(eventSlave)) {
@@ -193,7 +193,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.dick !== 0 || eventSlave.vagina !== -1) {
 								if (eventSlave.nipples !== "fuckable") {
-									if (eventSlave.speechRules === "permissive") {
+									if (eventSlave.rules.speech === "permissive") {
 										if (eventSlave.corsetPiercing === 0) {
 											if (eventSlave.tonguePiercing === 0) {
 												if (eventSlave.anusPiercing === 0) {
@@ -233,7 +233,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (canTalk(relationshipSlave)) {
 								if (eventSlave.devotion > 50) {
 									if (eventSlave.trust > 50) {
-										if (eventSlave.speechRules !== "restrictive") {
+										if (eventSlave.rules.speech !== "restrictive") {
 											State.variables.RETSevent.push("date please");
 										}
 										if (relationshipSlave.anus !== 0) {
@@ -254,7 +254,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (State.variables.REAnalCowgirlSubIDs.length > 1 || (State.variables.REAnalCowgirlSubIDs.length === 1 && eventSlave.ID !== State.variables.REAnalCowgirlSubIDs[0])) {
 					if (eventSlave.devotion > 20) {
-						if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+						if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 							if (eventSlave.fetish === "buttslut" || eventSlave.fetish === "sadist" || eventSlave.fetish === "dom") {
 								if ((eventSlave.chastityPenis !== 1) || (eventSlave.dick === 0)) {
 									State.variables.RETSevent.push("anal cowgirl");
@@ -322,7 +322,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (eventSlave.energy > 95 && canDoAnal(eventSlave)) {
 								State.variables.RESSevent.push("devoted nympho");
 							}
-							if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+							if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 								if ((eventSlave.chastityPenis !== 1) || (eventSlave.dick === 0)) {
 									State.variables.RESSevent.push("permitted masturbation");
 								}
@@ -454,7 +454,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (eventSlave.devotion < -50) {
 					if (eventSlave.trust >= -20) {
-						if (eventSlave.speechRules === "restrictive") {
+						if (eventSlave.rules.speech === "restrictive") {
 							State.variables.RESSevent.push("vocal disobedience");
 						}
 					}
@@ -482,7 +482,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (State.variables.seeAge !== 0) {
 					if (eventSlave.devotion > 50) {
-						if (eventSlave.speechRules !== "restrictive") {
+						if (eventSlave.rules.speech !== "restrictive") {
 							if (eventSlave.birthWeek >= 51) {
 								/* let's give this a much higher chance of appearing */
 								State.variables.RESSevent.push("birthday");
@@ -594,7 +594,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					}
 				}
 
-				if (eventSlave.livingRules === "luxurious") {
+				if (eventSlave.rules.living === "luxurious") {
 					if (eventSlave.devotion <= 75) {
 						if (eventSlave.devotion > 50) {
 							State.variables.RESSevent.push("newly devoted sunrise");
@@ -709,7 +709,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 
 				if (eventSlave.physicalAge > 35) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						if (["serve the public", "whore"].includes(eventSlave.assignment)) {
 							if (eventSlave.devotion >= -20) {
 								if (eventSlave.devotion <= 95) {
@@ -786,7 +786,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (eventSlave.devotion > 20) {
 					if (eventSlave.trust > 20) {
-						if (eventSlave.speechRules !== "restrictive") {
+						if (eventSlave.rules.speech !== "restrictive") {
 							if (eventSlave.choosesOwnClothes !== 1) {
 								if (setup.modestClothes.includes(eventSlave.clothes)) {
 									State.variables.RESSevent.push("modest clothes");
@@ -1146,7 +1146,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.devotion >= -20) {
 					if (eventSlave.trust >= -20) {
 						if (eventSlave.energy > 75) {
@@ -1160,7 +1160,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules === "restrictive" || eventSlave.releaseRules === "chastity") {
+			if (eventSlave.rules.release === "restrictive" || eventSlave.rules.release === "chastity") {
 				if (eventSlave.need) {
 					if (eventSlave.devotion <= 95) {
 						if (eventSlave.trust >= -20) {
@@ -1177,7 +1177,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+			if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 				if (canPenetrate(eventSlave)) {
 					State.variables.RESSevent.push("slave dick on slave");
 				}
@@ -1323,7 +1323,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		} /* closes amp/crawling exempt */
 
 		if (canTalk(eventSlave)) {
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.boobsImplant > 400) {
 					if (eventSlave.lipsImplant >= 30) {
 						if (eventSlave.buttImplant > 3) {
@@ -1344,7 +1344,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 									State.variables.RESSevent.push("shift sleep");
 								}
 								if (canWalk(eventSlave)) {
-									if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+									if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 										State.variables.RESSevent.push("shift masturbation");
 									}
 								}
@@ -1366,7 +1366,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal > 900) {
 					if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal < 1100) {
 						if (eventSlave.vagina !== 0) {
@@ -1386,7 +1386,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules === "restrictive") {
+			if (eventSlave.rules.speech === "restrictive") {
 				if (eventSlave.devotion > 60) {
 					if (eventSlave.trust >= -20) {
 						State.variables.RESSevent.push("restricted profession");
@@ -1394,7 +1394,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules === "restrictive") {
+			if (eventSlave.rules.speech === "restrictive") {
 				if (eventSlave.intelligence > 15) {
 					if (eventSlave.trust >= -20) {
 						if (eventSlave.devotion <= 20) {
@@ -1406,7 +1406,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 			if (State.variables.expansionRequestsAllowed > 0) {
 				if (eventSlave.drugs === "no drugs") {
-					if (eventSlave.speechRules === "permissive") {
+					if (eventSlave.rules.speech === "permissive") {
 						if (eventSlave.health > 20) {
 							if (eventSlave.devotion >= -20) {
 								if (eventSlave.trust > 20) {
@@ -1459,7 +1459,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 			if (eventSlave.fetishKnown === 1) {
 				if (eventSlave.energy > 95) {
 					if (eventSlave.devotion > 20) {
-						if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+						if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 							State.variables.RESSevent.push("nympho with assistant");
 						}
 					}
@@ -1492,7 +1492,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		if (eventSlave.vagina === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted virgin");
 					}
 				}
@@ -1502,7 +1502,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		if (eventSlave.anus === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted anal virgin");
 					}
 				}
@@ -1514,7 +1514,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				if (eventSlave.scrotum > 0) {
 					if (eventSlave.devotion <= 20) {
 						if (eventSlave.trust <= 20) {
-							if (eventSlave.speechRules !== "restrictive") {
+							if (eventSlave.rules.speech !== "restrictive") {
 								State.variables.RESSevent.push("fearful balls");
 							}
 						}
@@ -1537,7 +1537,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 			}
 		}
 
-		if (eventSlave.speechRules !== "restrictive") {
+		if (eventSlave.rules.speech !== "restrictive") {
 			if (canDoVaginal(eventSlave)) {
 				if (eventSlave.fetish !== "buttslut") {
 					if (eventSlave.vagina === 0) {
@@ -1552,18 +1552,18 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		}
 
 		if (eventSlave.aphrodisiacs > 1 || eventSlave.inflationType === "aphrodisiac") {
-			if (eventSlave.speechRules === "restrictive" && eventSlave.releaseRules !== "permissive") {
+			if (eventSlave.rules.speech === "restrictive" && eventSlave.rules.release !== "permissive") {
 				State.variables.RESSevent.push("extreme aphrodisiacs");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.clit > 2) {
 				State.variables.RESSevent.push("slave clit on slave");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.dick > 4) {
 				if (hasAllLimbs(eventSlave)) {
 					if (canAchieveErection(eventSlave)) {
@@ -1585,7 +1585,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.belly < 300000) {
 				if (eventSlave.anus > 2) {
 					if (eventSlave.fetish === "buttslut" || eventSlave.energy > 95) {
@@ -1662,7 +1662,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					if (eventSlave.devotion > 20 || eventSlave.trust < -20) {
 						if (eventSlave.devotion <= 50) {
 							if (eventSlave.fetish !== "buttslut") {
-								if (eventSlave.speechRules === "permissive") {
+								if (eventSlave.rules.speech === "permissive") {
 									State.variables.RESSevent.push("hormone dysfunction");
 								}
 							}
@@ -1841,7 +1841,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 							if (eventSlave.energy > 40) {
 								if (canPenetrate(eventSlave)) {
 									if (canSee(eventSlave)) {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											State.variables.RETSevent.push("interslave begging");
 										}
 									}
@@ -1857,7 +1857,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 							if (eventSlave.belly < 100000) {
 								if (eventSlave.lactation > 0) {
 									if (eventSlave.nipples !== "fuckable") {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											if (State.variables.familyTesting === 0) {
 												if (eventSlave.relation === "mother") {
 													State.variables.RETSevent.push("incestuous nursing");
@@ -1901,7 +1901,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 
 				if (State.variables.RETasteTestSubIDs.length > 1) {
-					if (eventSlave.livingRules === "luxurious") {
+					if (eventSlave.rules.living === "luxurious") {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.energy > 80) {
 								if (canTaste(eventSlave)) {
@@ -2021,7 +2021,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 
 				if (State.variables.seeAge !== 0) {
 					if (eventSlave.devotion > 50) {
-						if (eventSlave.speechRules !== "restrictive") {
+						if (eventSlave.rules.speech !== "restrictive") {
 							if (eventSlave.birthWeek >= 51) {
 								/* let's give this a much higher chance of appearing */
 								State.variables.RESSevent.push("birthday");
@@ -2123,7 +2123,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 					}
 				}
 
-				if (eventSlave.livingRules === "luxurious") {
+				if (eventSlave.rules.living === "luxurious") {
 					if (eventSlave.devotion <= 75) {
 						if (eventSlave.devotion > 50) {
 							State.variables.RESSevent.push("newly devoted sunrise");
@@ -2505,7 +2505,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.devotion >= -20) {
 					if (eventSlave.trust >= -20) {
 						if (eventSlave.energy > 75) {
@@ -2519,7 +2519,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules === "restrictive" || eventSlave.releaseRules === "chastity") {
+			if (eventSlave.rules.release === "restrictive" || eventSlave.rules.release === "chastity") {
 				if (eventSlave.need) {
 					if (eventSlave.devotion <= 95) {
 						if (eventSlave.trust >= -20) {
@@ -2536,7 +2536,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+			if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 				if (canPenetrate(eventSlave)) {
 					State.variables.RESSevent.push("slave dick on slave");
 				}
@@ -2628,7 +2628,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		} /* closes amp/crawling exempt */
 
 		if (canTalk(eventSlave)) {
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.boobsImplant > 400) {
 					if (eventSlave.lipsImplant >= 30) {
 						if (eventSlave.buttImplant > 3) {
@@ -2640,7 +2640,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal > 900) {
 					if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal < 1100) {
 						if (eventSlave.vagina !== 0) {
@@ -2656,7 +2656,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 
 			if (State.variables.expansionRequestsAllowed > 0) {
 				if (eventSlave.drugs === "no drugs") {
-					if (eventSlave.speechRules === "permissive") {
+					if (eventSlave.rules.speech === "permissive") {
 						if (eventSlave.health > 20) {
 							if (eventSlave.devotion >= -20) {
 								if (eventSlave.trust > 20) {
@@ -2695,7 +2695,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 			if (eventSlave.fetishKnown === 1) {
 				if (eventSlave.energy > 95) {
 					if (eventSlave.devotion > 20) {
-						if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+						if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 							State.variables.RESSevent.push("nympho with assistant");
 						}
 					}
@@ -2721,7 +2721,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		if (eventSlave.vagina === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted virgin");
 					}
 				}
@@ -2731,7 +2731,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		if (eventSlave.anus === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted anal virgin");
 					}
 				}
@@ -2749,18 +2749,18 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		}
 
 		if (eventSlave.aphrodisiacs > 1 || eventSlave.inflationType === "aphrodisiac") {
-			if (eventSlave.speechRules === "restrictive" && eventSlave.releaseRules !== "permissive") {
+			if (eventSlave.rules.speech === "restrictive" && eventSlave.rules.release !== "permissive") {
 				State.variables.RESSevent.push("extreme aphrodisiacs");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.clit > 2) {
 				State.variables.RESSevent.push("slave clit on slave");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.dick > 4) {
 				if (hasAllLimbs(eventSlave)) {
 					if (canAchieveErection(eventSlave)) {
@@ -2782,7 +2782,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.belly < 300000) {
 				if (eventSlave.anus > 2) {
 					if (eventSlave.fetish === "buttslut" || eventSlave.energy > 95) {
@@ -2816,7 +2816,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 					if (eventSlave.devotion > 20 || eventSlave.trust < -20) {
 						if (eventSlave.devotion <= 50) {
 							if (eventSlave.fetish !== "buttslut") {
-								if (eventSlave.speechRules === "permissive") {
+								if (eventSlave.rules.speech === "permissive") {
 									State.variables.RESSevent.push("hormone dysfunction");
 								}
 							}
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index dfc9bc79457b71e7ab950e2b3399793989cb6096..ff05ba55837934cf464295fc05bde5512b60347a 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -2650,8 +2650,8 @@ window.rulesAssistantOptions = (function() {
 				["spare"]
 			];
 			super("Living standard", pairs);
-			this.setValue(current_rule.set.livingRules);
-			this.onchange = (value) => current_rule.set.livingRules = value;
+			this.setValue(current_rule.set.rules.living);
+			this.onchange = (value) => current_rule.set.rules.living = value;
 		}
 	}
 
@@ -2664,8 +2664,8 @@ window.rulesAssistantOptions = (function() {
 				["situational"]
 			];
 			super("Typical punishment", pairs);
-			this.setValue(current_rule.set.standardPunishment);
-			this.onchange = (value) => current_rule.set.standardPunishment = value;
+			this.setValue(current_rule.set.rules.punishment);
+			this.onchange = (value) => current_rule.set.rules.punishment = value;
 		}
 	}
 
@@ -2678,8 +2678,8 @@ window.rulesAssistantOptions = (function() {
 				["situational"]
 			];
 			super("Typical reward", pairs);
-			this.setValue(current_rule.set.standardReward);
-			this.onchange = (value) => current_rule.set.standardReward = value;
+			this.setValue(current_rule.set.rules.reward);
+			this.onchange = (value) => current_rule.set.rules.reward = value;
 		}
 	}
 
@@ -2693,8 +2693,8 @@ window.rulesAssistantOptions = (function() {
 				["chastity"]
 			];
 			super("Release rules", pairs);
-			this.setValue(current_rule.set.releaseRules);
-			this.onchange = (value) => current_rule.set.releaseRules = value;
+			this.setValue(current_rule.set.rules.release);
+			this.onchange = (value) => current_rule.set.rules.release = value;
 		}
 	}
 
@@ -2786,8 +2786,8 @@ window.rulesAssistantOptions = (function() {
 				["restrictive"]
 			];
 			super("Speech rules", pairs, true);
-			this.setValue(current_rule.set.speechRules);
-			this.onchange = (value) => current_rule.set.speechRules = value;
+			this.setValue(current_rule.set.rules.speech);
+			this.onchange = (value) => current_rule.set.rules.speech = value;
 		}
 	}
 
@@ -2799,8 +2799,8 @@ window.rulesAssistantOptions = (function() {
 				["restrictive"]
 			];
 			super("Relationship rules", pairs, true);
-			this.setValue(current_rule.set.relationshipRules);
-			this.onchange = (value) => current_rule.set.relationshipRules = value;
+			this.setValue(current_rule.set.rules.relationship);
+			this.onchange = (value) => current_rule.set.rules.relationship = value;
 		}
 	}
 
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index d2c2dd0635b8a9f07a91c94558bac457456ad8b1..aedb9b028607b68f25231db620a49eb3cc952702 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -379,7 +379,7 @@ window.SlaveSummaryUncached = (function() {
 	 */
 	function short_rules(slave, c) {
 		const styles = "strong";
-		switch (slave.livingRules) {
+		switch (slave.rules.living) {
 			case "luxurious":
 				makeSpan(c, "LS:Lux", styles);
 				break;
@@ -391,7 +391,7 @@ window.SlaveSummaryUncached = (function() {
 				break;
 		}
 		if (canTalk(slave, false)) {
-			switch (slave.speechRules) {
+			switch (slave.rules.speech) {
 				case "permissive":
 					makeSpan(c, "SpR:P", styles);
 					break;
@@ -406,7 +406,7 @@ window.SlaveSummaryUncached = (function() {
 					break;
 			}
 		}
-		switch (slave.relationshipRules) {
+		switch (slave.rules.relationship) {
 			case "permissive":
 				makeSpan(c, "ReR:P", styles);
 				break;
@@ -417,7 +417,7 @@ window.SlaveSummaryUncached = (function() {
 				makeSpan(c, "ReR:R", styles);
 				break;
 		}
-		switch (slave.standardPunishment) {
+		switch (slave.rules.punishment) {
 			case "confinement":
 				makeSpan(c, "Pun:Conf", styles);
 				break;
@@ -431,7 +431,7 @@ window.SlaveSummaryUncached = (function() {
 				makeSpan(c, "Pun:Situ", styles);
 				break;
 		}
-		switch (slave.standardReward) {
+		switch (slave.rules.reward) {
 			case "relaxation":
 				makeSpan(c, "Rew:Relx", styles);
 				break;
@@ -445,7 +445,7 @@ window.SlaveSummaryUncached = (function() {
 				makeSpan(c, "Rew:Situ", styles);
 				break;
 		}
-		switch (slave.releaseRules) {
+		switch (slave.rules.release) {
 			case "permissive":
 				makeSpan(c, "MaR:P", styles);
 				break;
@@ -470,14 +470,14 @@ window.SlaveSummaryUncached = (function() {
 	 * @returns {void}
 	 */
 	function long_rules(slave, c) {
-		addText(c, `Living standard: ${slave.livingRules}. `);
+		addText(c, `Living standard: ${slave.rules.living}. `);
 		if (canTalk(slave, false)) {
-			addText(c, `Speech rules: ${slave.speechRules}. `);
+			addText(c, `Speech rules: ${slave.rules.speech}. `);
 		}
-		addText(c, `Relationship rules: ${slave.relationshipRules}. `);
-		addText(c, `Typical punishment: ${slave.standardPunishment}. `);
-		addText(c, `Typical reward: ${slave.standardReward}. `);
-		addText(c, `Release rules: ${slave.releaseRules}. `);
+		addText(c, `Relationship rules: ${slave.rules.relationship}. `);
+		addText(c, `Typical punishment: ${slave.rules.punishment}. `);
+		addText(c, `Typical reward: ${slave.rules.reward}. `);
+		addText(c, `Release rules: ${slave.rules.release}. `);
 	}
 
 	/**
diff --git a/src/js/surgery.js b/src/js/surgery.js
index e2d5c006c06c2f19c2ac468df7fe587f65592714..8dac4988d7c688e0cec3a8dd679e0bf97e1c6f3d 100644
--- a/src/js/surgery.js
+++ b/src/js/surgery.js
@@ -794,10 +794,10 @@ window.beginFuckdoll = function(slave) {
 	if ((slave.pubicHStyle !== "bald") && (slave.pubicHStyle !== "hairless")) {
 		slave.pubicHStyle = "waxed";
 	}
-	slave.livingRules = "spare";
-	slave.speechRules = "restrictive";
-	slave.releaseRules = "restrictive";
-	slave.relationshipRules = "restrictive";
+	slave.rules.living = "spare";
+	slave.rules.speech = "restrictive";
+	slave.rules.release = "restrictive";
+	slave.rules.relationship = "restrictive";
 	slave.choosesOwnClothes = 0;
 	slave.clothes = "a Fuckdoll suit";
 	slave.collar = "none";
diff --git a/src/js/vignettes.js b/src/js/vignettes.js
index 38d389480f2fe998a1870b7c4f0a799df709f085..d49869eecbc4b44a98281e2f03af27001beec312 100644
--- a/src/js/vignettes.js
+++ b/src/js/vignettes.js
@@ -743,13 +743,13 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.livingRules === "luxurious") {
+		if (slave.rules.living === "luxurious") {
 			vignettes.push({
 				text: `${he} got a truly perfect night's sleep, which put ${him} in the right frame of mind for the whole day,`,
 				type: "rep",
 				effect: 1,
 			});
-		} else if (slave.livingRules === "spare") {
+		} else if (slave.rules.living === "spare") {
 			if (canHear(slave)) {
 				vignettes.push({
 					text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day,`,
@@ -764,13 +764,13 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			}
 		}
-		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+		if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 			vignettes.push({
 				text: `a customer asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
 				type: "cash",
 				effect: 1,
 			});
-		} else if (slave.releaseRules === "restrictive") {
+		} else if (slave.rules.release === "restrictive") {
 			vignettes.push({
 				text: `a customer asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
 				type: "cash",
@@ -2711,13 +2711,13 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.livingRules === "luxurious") {
+		if (slave.rules.living === "luxurious") {
 			vignettes.push({
 				text: `${he} got a truly perfect night's sleep, which put ${him} in the right frame of mind for the whole day,`,
 				type: "rep",
 				effect: 1,
 			});
-		} else if (slave.livingRules === "spare") {
+		} else if (slave.rules.living === "spare") {
 			if (canHear(slave)) {
 				vignettes.push({
 					text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day,`,
@@ -2732,13 +2732,13 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			}
 		}
-		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+		if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 			vignettes.push({
 				text: `a citizen asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
 				type: "rep",
 				effect: 1,
 			});
-		} else if (slave.releaseRules === "restrictive") {
+		} else if (slave.rules.release === "restrictive") {
 			vignettes.push({
 				text: `a citizen asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
 				type: "rep",
@@ -4372,7 +4372,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (slave.devotion > 20) {
-			if (slave.relationshipRules === "just friends" || slave.relationshipRules === "permissive") {
+			if (slave.rules.relationship === "just friends" || slave.rules.relationship === "permissive") {
 				vignettes.push({
 					text: `${he} taught another slave some massage skills,`,
 					type: "rep",
@@ -4402,7 +4402,7 @@ window.GetVignette = function GetVignette(slave) {
 			});
 		}
 		if (slave.relationship === -2) {
-			if (slave.speechRules === "permissive") {
+			if (slave.rules.speech === "permissive") {
 				if (slave.intelligence + slave.intelligenceImplant > 50) {
 					if (slave.skill.entertainment >= 100) {
 						vignettes.push({
@@ -4453,7 +4453,7 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			} else {
 				if (hasAnyArms(slave)) {
-					if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+					if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 						vignettes.push({
 							text: `due to the obvious difficulties in ${his} mobility, ${he} spent a lot of time masturbating in bed,`,
 							type: "health",
@@ -4470,7 +4470,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (slave.energy > 80) {
-			if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+			if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 				if (slave.fetish === "boobs") {
 					if (slave.boobs >= 800) {
 						vignettes.push({
diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw
index 54f162d8e16418cdd406019a697f4253c954dc54..ec593ad42e2e8007b7ea661d4072d9229db387ff 100644
--- a/src/npc/acquisition.tw
+++ b/src/npc/acquisition.tw
@@ -569,7 +569,7 @@ The previous owner seems to have left in something of a hurry.
 			<<set $activeSlave.behavioralFlaw = "gluttonous">>
 			<<set $activeSlave.clothes = "attractive lingerie", $activeSlave.shoes = "flats">>
 			<<set $activeSlave.diet = "fattening">>
-			<<set $activeSlave.livingRules = "luxurious">>
+			<<set $activeSlave.rules.living = "luxurious">>
 			<<set $activeSlave.assignment = "rest">>
 		<<case "IntellectualDependency">>
 			<<set $activeSlaveOneTimeMinAge = 14>>
diff --git a/src/npc/databases/dSlavesDatabase.tw b/src/npc/databases/dSlavesDatabase.tw
index d29214e680ce75fc7899e27ffa317bbaa1b5d74e..8b21331368ac8f49ef81fdc3b23b759ebea6231b 100644
--- a/src/npc/databases/dSlavesDatabase.tw
+++ b/src/npc/databases/dSlavesDatabase.tw
@@ -490,7 +490,7 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Virago' Kissa", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "In spite of the great demand for $his kind, $he has apparently eluded enslavement until recently.", _HS.career = "a wanderer", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a natural albino.", _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Ugandan", _HS.race = "black", _HS.eyeColor = "pale grey", _HS.hColor = "white", _HS.pubicHColor = "white", _HS.skin = "extremely pale", _HS.hLength = 100, _HS.hStyle = "extremely long and bushy", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 600, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 100, _HS.skill.combat = 3, _HS.livingRules = "luxurious", _HS.speechRules = "permissive", _HS.releaseRules = "permissive", _HS.collar = "pretty jewelry", _HS.shoes = "flats", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.geneticQuirks = {albinism: 2}, _HS.custom.tattoo = "$His entire body is tattooed with a detailed map of $his arteries which, combined with $his albinism, gives $him a quasi-translucent quality.", _HS.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">>
+<<set _HS.slaveName = "'Virago' Kissa", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "In spite of the great demand for $his kind, $he has apparently eluded enslavement until recently.", _HS.career = "a wanderer", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a natural albino.", _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Ugandan", _HS.race = "black", _HS.eyeColor = "pale grey", _HS.hColor = "white", _HS.pubicHColor = "white", _HS.skin = "extremely pale", _HS.hLength = 100, _HS.hStyle = "extremely long and bushy", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 600, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 100, _HS.skill.combat = 3, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.collar = "pretty jewelry", _HS.shoes = "flats", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.geneticQuirks = {albinism: 2}, _HS.custom.tattoo = "$His entire body is tattooed with a detailed map of $his arteries which, combined with $his albinism, gives $him a quasi-translucent quality.", _HS.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
@@ -498,15 +498,15 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 90, _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.skin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.livingRules = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 90, _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.skin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.rules.living = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Creamy' Mayu", _HS.birthName = "Mayu", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.weight = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.eyeColor = "blue", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 7500, _HS.nipples = "huge", _HS.areolae = 3, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 7, _HS.buttTat = "bovine patterns", _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaTat = "bovine patterns", _HS.counter.births = 1, _HS.counter.birthsTotal = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.earPiercing = 1, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.livingRules = "luxurious", _HS.speechRules = "permissive", _HS.releaseRules = "permissive", _HS.relationshipRules = "permissive", _HS.clothes = "a nice maid outfit", _HS.collar = "leather with cowbell", _HS.shoes = "flats", _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "$He is quite sweaty, often soaking though any clothing $he is wearing.">>
+<<set _HS.slaveName = "'Creamy' Mayu", _HS.birthName = "Mayu", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.weight = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.eyeColor = "blue", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 7500, _HS.nipples = "huge", _HS.areolae = 3, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 7, _HS.buttTat = "bovine patterns", _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaTat = "bovine patterns", _HS.counter.births = 1, _HS.counter.birthsTotal = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.earPiercing = 1, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.rules.relationship = "permissive", _HS.clothes = "a nice maid outfit", _HS.collar = "leather with cowbell", _HS.shoes = "flats", _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "$He is quite sweaty, often soaking though any clothing $he is wearing.">>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Submissive' Cindy", _HS.birthName = "Cindy", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 175, _HS.nationality = "Indonesian", _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.custom.tattoo = "$He has a barcode tattooed on the top of $his head.", _HS.pubicHStyle = "bushy", _HS.boobs = 600, _HS.nipplesPiercing = 1, _HS.boobsTat = "tribal patterns", _HS.butt = 2, _HS.buttTat = "tribal patterns", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.lipsPiercing = 1, _HS.lipsTat = "tribal patterns", _HS.tonguePiercing = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "tribal patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.ovaries = 1, _HS.anusPiercing = 1, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.navelPiercing = 1, _HS.shouldersTat = "tribal patterns", _HS.armsTat = "tribal patterns", _HS.legsTat = "tribal patterns", _HS.stampTat = "tribal patterns", _HS.skill.oral = 35, _HS.skill.combat = 1, _HS.livingRules = "luxurious", _HS.speechRules = "permissive", _HS.releaseRules = "permissive", _HS.relationshipRules = "permissive", _HS.clothes = "attractive lingerie", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$His skin is unnaturally perfect, totally without blemishes. $He radiates unnatural health and resilience.">>
+<<set _HS.slaveName = "'Submissive' Cindy", _HS.birthName = "Cindy", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 175, _HS.nationality = "Indonesian", _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.custom.tattoo = "$He has a barcode tattooed on the top of $his head.", _HS.pubicHStyle = "bushy", _HS.boobs = 600, _HS.nipplesPiercing = 1, _HS.boobsTat = "tribal patterns", _HS.butt = 2, _HS.buttTat = "tribal patterns", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.lipsPiercing = 1, _HS.lipsTat = "tribal patterns", _HS.tonguePiercing = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "tribal patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.ovaries = 1, _HS.anusPiercing = 1, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.navelPiercing = 1, _HS.shouldersTat = "tribal patterns", _HS.armsTat = "tribal patterns", _HS.legsTat = "tribal patterns", _HS.stampTat = "tribal patterns", _HS.skill.oral = 35, _HS.skill.combat = 1, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.rules.relationship = "permissive", _HS.clothes = "attractive lingerie", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$His skin is unnaturally perfect, totally without blemishes. $He radiates unnatural health and resilience.">>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
diff --git a/src/npc/fBeg.tw b/src/npc/fBeg.tw
index 3549af84e0bff233c8f3bbbbc86cc71571c7f354..f7fcb216a616fd3cc07962cb6f3bb47dfa044fa5 100644
--- a/src/npc/fBeg.tw
+++ b/src/npc/fBeg.tw
@@ -283,7 +283,7 @@ You give $him permission to speak, and tell $him that $he may beg $his <<= Writt
 
 <<if ($activeSlave.devotion < -20)>>
 	<<if ($activeSlave.trust < -50)>>
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>
 			Your slave simply <<if hasAnyArms($activeSlave)>>presses $his hand<<if hasBothArms($activeSlave)>>s<</if>> together and <</if>>begs you not to lock $him up in the bad-<<= $girl>> box.
 		<<case "whipping">>
diff --git a/src/npc/fDance.tw b/src/npc/fDance.tw
index 111cac44e1dd7c74ba6296ea1ab02567eca9a281..8d747a34c558f629f2c883e2d8bce26b15ebe5bc 100644
--- a/src/npc/fDance.tw
+++ b/src/npc/fDance.tw
@@ -294,7 +294,7 @@ You look up once more at your slave and take some time to review $his dancing pe
 	<</if>>
 <<else>>
 	$He dances poorly on purpose to spite you. Whatever skills $he has, they are not on display here. You threaten to
-	<<switch $activeSlave.standardPunishment>>
+	<<switch $activeSlave.rules.punishment>>
 	<<case "confinement">>
 		lock $him up in the bad-<<= $girl>> box
 	<<case "whipping">>
@@ -1583,7 +1583,7 @@ Once the last piece of clothing has hit the floor you let your little slut dance
 <<elseif ($activeSlave.devotion < -50)>>
 	<<if ($activeSlave.trust < -50)>>
 		$He hurries frantically to your side, and drops quivering to the floor at your feet hoping $he was quick enough to avoid
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>
 			confinement.
 		<<case "whipping">>
diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw
index f3a5b85f83b83c20dd1610a9579a4f980a7da636..91fe9a79263dcbe4a195501d39a122efa6c0130f 100644
--- a/src/npc/fFeelings.tw
+++ b/src/npc/fFeelings.tw
@@ -39,7 +39,7 @@
 	$He
 	<<if !canTalk($activeSlave)>>gestures<<else>><<say>>s<</if>> <<if ($activeSlave.trust >= -20)>>earnestly<<elseif ($activeSlave.trust >= -50)>>fearfully<<else>>shakily<</if>>
 	that $he will do whatever you order $him to, since $he does not want to be
-	<<switch $activeSlave.standardPunishment>>
+	<<switch $activeSlave.rules.punishment>>
 	<<case "confinement">>shut up in the dark, which is of course $his standard punishment.
 	<<case "whipping">>whipped, which is of course $his standard punishment.
 	<<case "chastity">>put in restrictive chastity, which is of course $his standard punishment.
@@ -84,7 +84,7 @@
 	"I tru<<s>>t you completely.
 <</if>>
 
-<<if ($activeSlave.speechRules == "restrictive")>>
+<<if ($activeSlave.rules.speech == "restrictive")>>
 	<<if ($activeSlave.devotion > 20)>>
 		Thank you <<s>>o much for a chan<<c>>e to talk a little, <<Master>>. I under<<s>>tand why I must be <<s>>ilent, but it'<<s>> ni<<c>>e to get the chan<<c>>e.
 	<<else>>
@@ -423,7 +423,7 @@ My favorite part of my body i<<s>>
 			<<set _Amp = "rub mythelf againtht thtuff,">>
 		<</if>>
 	<</if>>
-	<<if ($activeSlave.releaseRules == "permissive") || ($activeSlave.releaseRules == "masturbation")>>
+	<<if ($activeSlave.rules.release == "permissive") || ($activeSlave.rules.release == "masturbation")>>
 		Thank you for letting me
 		<<if ($activeSlave.fetishKnown == 1)>>
 			<<if ($activeSlave.energy > 95) && (!canSee($activeSlave))>>
@@ -464,7 +464,7 @@ My favorite part of my body i<<s>>
 		<<else>>
 			_Amp <<Master>>.
 		<</if>>
-	<<elseif ($activeSlave.releaseRules == "sapphic")>>
+	<<elseif ($activeSlave.rules.release == "sapphic")>>
 		Thank you for letting
 		<<if ($activeSlave.fetishKnown == 1)>>
 			<<if ($activeSlave.energy > 95)>>
diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw
index 72af7e9092a3274b70ad4a9271db31505c1f4366..8cc438ae6af9bac008f41128e8a6f8680f127573 100644
--- a/src/npc/uploadSlave.tw
+++ b/src/npc/uploadSlave.tw
@@ -168,10 +168,10 @@ skill.anal: $activeSlave.skill.anal,
 skill.whoring: $activeSlave.skill.whoring,
 skill.entertainment: $activeSlave.skill.entertainment,
 skill.combat: $activeSlave.skill.combat,
-livingRules: "$activeSlave.livingRules",
-speechRules: "$activeSlave.speechRules",
-releaseRules: "$activeSlave.releaseRules",
-relationshipRules: "$activeSlave.relationshipRules",
+livingRules: "$activeSlave.rules.living",
+speechRules: "$activeSlave.rules.speech",
+releaseRules: "$activeSlave.rules.release",
+relationshipRules: "$activeSlave.rules.relationship",
 standardPunishment: "situational",
 standardReward: "situational",
 useRulesAssistant: 1,
diff --git a/src/pregmod/widgets/deathWidgets.tw b/src/pregmod/widgets/deathWidgets.tw
index 9a5fdb72c2a2f8f4a70bf36b5eec842635c92863..17e7af9e4fd6b5c9f6a7e3804e0af93ce82b54a0 100644
--- a/src/pregmod/widgets/deathWidgets.tw
+++ b/src/pregmod/widgets/deathWidgets.tw
@@ -46,7 +46,7 @@
 		<<elseif _deathSeed > 25>>
 			$He is found dead in the showers, having slipped sometime earlier.
 		<<else>>
-			<<if $args[0].releaseRules != "restrictive" && $args[0].releaseRules != "masturbation" && $args[0].releaseRules != "chastity">>
+			<<if $args[0].rules.release != "restrictive" && $args[0].rules.release != "masturbation" && $args[0].rules.release != "chastity">>
 				$He is found dead in the bed of another slave, having died during intercourse. $His lover is not taking it well.
 			<<else>>
 				$He is found dead in the cafeteria, having died during breakfast; $he ruined the day for a number of your slaves.
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index 9edc7701cbd25e27055da0c5d5f64d6185e98856..ccc3c737f0d5452fcabfddb06d470275a9b05b05 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -115,8 +115,8 @@
 <<if ndef $args[0].induceLactation>>
 	<<set $args[0].induceLactation = 0>>
 <</if>>
-<<if ndef $args[0].lactationRules>>
-	<<set $args[0].lactationRules = "none">>
+<<if ndef $args[0].rules.lactation>>
+	<<set $args[0].rules.lactation = "none">>
 <</if>>
 <<if ndef $args[0].weightDirection>>
 	<<set $args[0].weightDirection = 0>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 321937e53c99ad6365237826397b39193a79f715..0ee3099d1580fa10f0bd6b3392ff5ecc2c96d31b 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -627,7 +627,7 @@ down to meet you. $He's nude, having stripped in your office, and meets your gaz
 
 <<case "permitted masturbation">>
 
-Strolling through the penthouse late at night, thinking over a business problem, you pass <<if ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite > 0)>>the door of your Head Girl's suite<<elseif ($activeSlave.livingRules == "luxurious")>>the door to one of the cozy little slave bedrooms<<else>>through the cavernous slave dormitory<</if>> and see <<EventNameLink>>, alone in bed tonight. $He's nude, of course, and has not pulled the sheets up over $himself. $He's lying face-down,
+Strolling through the penthouse late at night, thinking over a business problem, you pass <<if ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite > 0)>>the door of your Head Girl's suite<<elseif ($activeSlave.rules.living == "luxurious")>>the door to one of the cozy little slave bedrooms<<else>>through the cavernous slave dormitory<</if>> and see <<EventNameLink>>, alone in bed tonight. $He's nude, of course, and has not pulled the sheets up over $himself. $He's lying face-down,
 <<if ($activeSlave.boobs > 10000)>>
 	though $his titanic tits prop $his torso up awkwardly,
 <<elseif ($activeSlave.boobs > 1600)>>
@@ -1784,7 +1784,7 @@ $He stops and <<if canSee($activeSlave)>>stares<<else>>faces you<</if>>, struggl
 <<case "desperately horny">>
 
 <<EventNameLink>> comes to see you, looking deeply unhappy and shivering occasionally.
-<<if ($activeSlave.speechRules == "restrictive")>>
+<<if ($activeSlave.rules.speech == "restrictive")>>
 	Since $he is not allowed to speak, $he just enters your office and stands there, unsure what to do.
 <<else>>
 	<<if !canTalk($activeSlave)>>
@@ -3204,7 +3204,7 @@ Opportunities for gallantry didn't used to fall into your lap like this, but wit
 
 <<case "happy dance">>
 
-As you pass by the area of the penthouse where slaves sleep one morning, you're struck by a <<if $activeSlave.voice > 2>>high, bubbly<<elseif $activeSlave.voice > 1>>feminine<<else>>deep<</if>> humming. It's <<EventNameLink>>, dancing <<if $activeSlave.livingRules == "luxurious">>in the doorway of $his room<<else>>at the foot of $his bedroll<</if>>, dancing like no one's watching. $He's just woken up, and <<if $activeSlave.physicalAge > 35>>is full of energy and vigor in open defiance of $his age<<elseif $activeSlave.physicalAge < 25>>is full of youthful energy and vigor<<else>>is full of health and energy<</if>><<if $activeSlave.belly >= 10000>>, despite being <<if $activeSlave.bellyPreg >= 3000>>heavily pregnant<<elseif $activeSlave.bellyImplant >= 3000>>heavily gravid<<else>>greatly bloated<</if>><</if>>. $He's letting it out by humming a beat and dancing seductively, all by $himself.
+As you pass by the area of the penthouse where slaves sleep one morning, you're struck by a <<if $activeSlave.voice > 2>>high, bubbly<<elseif $activeSlave.voice > 1>>feminine<<else>>deep<</if>> humming. It's <<EventNameLink>>, dancing <<if $activeSlave.rules.living == "luxurious">>in the doorway of $his room<<else>>at the foot of $his bedroll<</if>>, dancing like no one's watching. $He's just woken up, and <<if $activeSlave.physicalAge > 35>>is full of energy and vigor in open defiance of $his age<<elseif $activeSlave.physicalAge < 25>>is full of youthful energy and vigor<<else>>is full of health and energy<</if>><<if $activeSlave.belly >= 10000>>, despite being <<if $activeSlave.bellyPreg >= 3000>>heavily pregnant<<elseif $activeSlave.bellyImplant >= 3000>>heavily gravid<<else>>greatly bloated<</if>><</if>>. $He's letting it out by humming a beat and dancing seductively, all by $himself.
 
 <br><br>
 
@@ -3780,7 +3780,7 @@ I didn't mean to <<s>>ound con<<c>>eited, either. I gue<<ss>> I'm <<s>>till gett
 During $his weekly inspection, <<EventNameLink>> has trouble following the routine orders that position $him so you can examine $his body. The cause is not difficult to determine: $he's so cripplingly terrified that $he's having difficulty functioning. $He seems to be trying to obey you, but $he's so scared that $his mind is having trouble translating your simple verbal commands into physical obedience. You ask $him what $he's so frightened of. The question stuns $him, and $he <<if canSee($activeSlave)>>stares at<<else>>faces<</if>> you in mute horror, looking even more terrified than $he has up to this point and completely devoid of any idea how to respond. You order $him to respond, and this starts $him out of $his fugue. $He begins to cry, makes two false starts, sobs, and then begins forcing out words.
 <br><br>
 "E-e-everything," $he cries. "I'm <<s>>-<<s>>o <<s>>-<<s>>orry b-but I c-can't help," $he chokes on a sob and hiccups, "help it. Thi<<s>>, thi<<s>> pla<<c>>e, being a <<s>>e<<x>> <<s>>lave,
-<<switch $activeSlave.standardPunishment>>
+<<switch $activeSlave.rules.punishment>>
 <<case "confinement">>b-being <<sh>>-<<sh>>ut up in the d-dark
 <<case "whipping">>b-being wh-wh-whip-ped
 <<case "chastity">>h-having my p-part<<s>> locked up in ch-cha<<s>>tity
@@ -3823,7 +3823,7 @@ The slutty $desc wants it badly.
 
 <<case "arcade sadist">>
 
-You happen to come across <<EventNameLink>> during one of $his rest periods. $He's lying on a couch in the slave areas, <<if canSee($activeSlave)>>staring at the ceiling above $him<<else>>leaning back<</if>> with a dreamy expression on $his face. $He's <<if $activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation">>touching $himself idly.<<else>>not allowed to touch $himself, but $he's extremely aroused.<</if>> Whatever's on $his mind, it's so absorbing that $he doesn't realize you're there until you're standing over $him.
+You happen to come across <<EventNameLink>> during one of $his rest periods. $He's lying on a couch in the slave areas, <<if canSee($activeSlave)>>staring at the ceiling above $him<<else>>leaning back<</if>> with a dreamy expression on $his face. $He's <<if $activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation">>touching $himself idly.<<else>>not allowed to touch $himself, but $he's extremely aroused.<</if>> Whatever's on $his mind, it's so absorbing that $he doesn't realize you're there until you're standing over $him.
 <br><br>
 "<<S>>orry, <<Master>>," $he <<say>>s apologetically, <<if $activeSlave.belly >= 10000>>struggling<<else>>scrambling<</if>> to $his feet. "I didn't noti<<c>>e you there." <<if canSee($activeSlave)>>Seeing your questioning look<<elseif canHear($activeSlave)>>Hearing your lack of response<<else>>Sensing a request to continue<</if>>, $he explains $himself further. "I was ju<<s>>t thinking about, um, my favorite pla<<c>>e. I can almo<<s>>t get off ju<<s>>t by thinking about it." There's a wild, perverted gleam <<if canSee($activeSlave)>>in $his <<= App.Desc.eyesColor($activeSlave)>><<else>>on $his face<</if>>. $He's a confirmed sadist, so whatever $his favorite mental masturbation is probably quite strong.
 
@@ -4374,9 +4374,9 @@ From $his new position beneath you, $he must crane $his neck so $his <<if canSee
 <<case "back stretch">>
 
 You pass through your slaves' living area as some of them are starting their days. <<EventNameLink>> is one of them, and $he's just
-<<if $activeSlave.livingRules == "spare">>
+<<if $activeSlave.rules.living == "spare">>
 	crawled out of $his spartan bedroll.
-<<elseif $activeSlave.livingRules == "normal">>
+<<elseif $activeSlave.rules.living == "normal">>
 	gotten out of $his neat little cot.
 <<elseif $activeSlave.relationship >= 4>>
 	<<set _ress = $slaveIndices[$activeSlave.relationshipTarget]>>
@@ -4541,7 +4541,7 @@ You are alerted to an issue regarding your
 	since you have not yet updated your penthouse to accommodate slaves of $his girth,
 <</if>>
 the poor $girl has gotten lodged in the doorway exiting
-<<if ($activeSlave.livingRules == "luxurious")>>
+<<if ($activeSlave.rules.living == "luxurious")>>
 	$his room.
 <<elseif ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite == 1)>>
 	$his suite.
@@ -4565,7 +4565,7 @@ The menials assigned to care for $him have been struggling for several weeks to
 You make a mental note to punish $his caretakers and then set out to see $his predicament for yourself.
 <br><br>
 The sight that greets you when you arrive is equal parts incredible and amusing. En route to the baths, the slave attempted to exit
-<<if ($activeSlave.livingRules == "luxurious")>>
+<<if ($activeSlave.rules.living == "luxurious")>>
 	$his room
 <<elseif ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite == 1)>>
 	$his suite
@@ -17325,9 +17325,9 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			You could carry the little slave like this as long as you like.
 		<</if>>
 		<<if _carried == 1>>
-			Knowing that $he'll need to get dressed before the next part of $his day, you carry $him to <<if $activeSlave.livingRules == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He remains perfectly limp, letting $himself be carried without a word. When you set $him on $his feet,
+			Knowing that $he'll need to get dressed before the next part of $his day, you carry $him to <<if $activeSlave.rules.living == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He remains perfectly limp, letting $himself be carried without a word. When you set $him on $his feet,
 		<<else>>
-			Knowing that $he'll need to get dressed before the next part of $his day, you help $him to <<if $activeSlave.livingRules == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He lets you do most of the work, letting $himself be guided without a word. When you set $him on $his bed,
+			Knowing that $he'll need to get dressed before the next part of $his day, you help $him to <<if $activeSlave.rules.living == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He lets you do most of the work, letting $himself be guided without a word. When you set $him on $his bed,
 		<</if>>
 		there's a little unaccountable moisture in $his <<= App.Desc.eyesColor($activeSlave)>> @@.mediumaquamarine;for some reason.@@ $He gives you a kiss and thanks you prettily.
 		<<set $activeSlave.trust += 4>>
@@ -18835,7 +18835,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 		That was not quite the prescribed way of greeting you, there was no need to greet you as $he passed, and most importantly, $he's simply too cheery. Resolving to crush $his happiness, you call $him back to the office in a thunderous voice you know will reach $him. $He knows $he's made a mistake, but comes promptly, lower lip quivering. $His feelings are plain to see on $his face: surprise, @@.mediumorchid;betrayal,@@ @@.gold;fear.@@ $He thought $he could be friendly, and now $he knows $he was wrong. What's more, $he thought $he could be happy, and now $he's realizing that that was also wrong. As you
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>close $him into a confinement cell,
 		<<case "whipping">>tie $him up for a brief whipping,
 		<<case "chastity">>lock $him into harsh chastity,
@@ -18952,7 +18952,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 		$He obviously knows that breaking down like this would displease you, but you patiently explain that it's against the rules anyway. $He cries harder, nodding through $his tears. $He knows that interrupting you to beg would be profoundly stupid, so $he clasps $his hand<<if hasBothArms($activeSlave)>>s<</if>> in wordless submission. You tell $him that $he's to keep $himself under control; if $he fails, $he will be punished. Since $he failed, $he will now suffer $his standard punishment, and be
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>
 			shut up in a box. @@.gold;$He breaks down,@@ falling to $his knees, begging abjectly for mercy.
 			<<if $activeSlave.belly >= 100000 || $activeSlave.boobs > 25000 || $activeSlave.weight > 190>>
@@ -19272,7 +19272,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<<if $activeSlave.belly >= 10000>> You spread your legs as you shift into a more comfortable position, stealthily showing mercy since $he can't possibly keep $his <<if $activeSlave.bellyPreg >= 3000>>full-term belly<<else>>_belly belly<</if>> off you otherwise.<</if>> $He bobs up and down, getting you off without ever touching you<<if $PC.dick != 0>>, other than the contact between your penis and the inside of $his body, of course<</if>>.
 		<<if $activeSlave.energy > 80>>
 			$He has such a powerful sex drive that even this sterile intercourse brings $him to orgasm.
-		<<elseif $activeSlave.releaseRules == "restrictive" || $activeSlave.releaseRules == "chastity">>
+		<<elseif $activeSlave.rules.release == "restrictive" || $activeSlave.rules.release == "chastity">>
 			$He obeys the rules about orgasm and hasn't gotten off as part of $his assignment recently, so $he orgasms despite the sterility of the intercourse.
 		<<else>>
 			$He does not orgasm, serving you properly and showing appropriate disregard for $his own pleasure.
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index bb31ca17a1c01efc0e665cf49ffc10dde816c23a..f36ca921fc7d3bdc432b91050197874e7e84a418 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -928,7 +928,7 @@ The slaves are about to go to bed; they're naked, and the horny $activeSlave.sla
 <br><br>
 <<run Enunciate($subSlave)>>
 $subSlave.slaveName <<if _lewd>>blushes at the lewd<<else>>smiles at the<</if>> flattery, but after a moment's hesitation _he2 maintains _his2 reluctance.
-<<if $activeSlave.releaseRules == "permissive">>
+<<if $activeSlave.rules.release == "permissive">>
 	"Why don't you ju<<s>>t jerk off," _he2 asks dismissively. "<<S>>eriou<<s>>ly, you're allowed to."
 <<else>>
 	"Go find <<s>>omeone el<<s>>e," _he2 <<say>>s dismissively. "<<if _vaginal>>There are plenty of other pu<<ss>>ie<<s>> around for you to play with.<<else>>I'm <<s>>ure you can find <<s>>ome other _girl2 who wouldn't mind late night anal.<</if>>"
@@ -937,7 +937,7 @@ _He2 turns away.
 <br><br>
 <<run Enunciate($activeSlave)>>
 $activeSlave.slaveName is almost in tears.
-<<if $activeSlave.releaseRules == "permissive">>
+<<if $activeSlave.rules.release == "permissive">>
 	"I have," $he moans, blue balled. "<<if $activeSlave.aphrodisiacs > 0 || $activeSlave.inflationType == "aphrodisiac">>It'<<s>> the<<s>>e fucking aphrodi<<s>>iac<<s>>. I can't help it. Plea<<s>>e, plea<<s>>e let me try cumming in<<s>>ide you. I won't be able to <<s>>leep.<<else>>It'<<s>> not the <<s>>ame. I need to <<s>>tick my dick in <<s>>omething <<s>>o bad. Plea<<s>>e.<</if>>"
 <<else>>
 	"But I want you," $he moans, blue balled.
diff --git a/src/uncategorized/assistantEvents.tw b/src/uncategorized/assistantEvents.tw
index f2ec86232cce2de3d5c07105975ddd97d4abe863..ef361f7a59abf9b8fded63c997e6820dc75b9969 100644
--- a/src/uncategorized/assistantEvents.tw
+++ b/src/uncategorized/assistantEvents.tw
@@ -24,7 +24,7 @@ One morning, after seeing to an immense pile of business with $assistantName pro
 <<set $assistantOptions = 1>>
 <<set _smartPiercings = 0>>
 <<for $i = 0; $i < $slaves.length; $i++>>
-	<<if ($slaves[$i].releaseRules == "permissive") || ($slaves[$i].releaseRules == "masturbation")>>
+	<<if ($slaves[$i].rules.release == "permissive") || ($slaves[$i].rules.release == "masturbation")>>
 		<<set $activeSlave = $slaves[$i]>>
 		<<set _smartPiercings = 1>>
 		<<break>>
diff --git a/src/uncategorized/attendantWorkaround.tw b/src/uncategorized/attendantWorkaround.tw
index 04318902b6be6319a8d672bad83832e6c0b9ba80..74f91da19e859fe05eea607d14e10fa780cddfc0 100644
--- a/src/uncategorized/attendantWorkaround.tw
+++ b/src/uncategorized/attendantWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Attendant")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Attendant = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/brothelReport.tw b/src/uncategorized/brothelReport.tw
index c11deb301728bfab9ca2a9f2138ef97a43a6b2af..abb6e09069eb15f483de829fe6a87c61db1b2ca0 100644
--- a/src/uncategorized/brothelReport.tw
+++ b/src/uncategorized/brothelReport.tw
@@ -29,8 +29,8 @@
 	<<if $slaves[_FLs].trust < 45>>
 		<<set $slaves[_FLs].trust += 5>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "dom">>
@@ -301,9 +301,9 @@
 		<<set $slaves[$i].health += _healthBonus, $slaves[$i].aphrodisiacs = _aphrod>>
 		<<switch $brothelDecoration>>
 		<<case "Degradationist" "standard">>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<<default>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<</switch>>
 		<<if ($slaves[$i].health < -80)>>
 			<<set $slaves[$i].health += 20>>
diff --git a/src/uncategorized/cellblockReport.tw b/src/uncategorized/cellblockReport.tw
index f09312781dd143f7b868c2e01de64589df289aba..7aa1b7922307a49304da368e8b882b3851a2f5b7 100644
--- a/src/uncategorized/cellblockReport.tw
+++ b/src/uncategorized/cellblockReport.tw
@@ -29,8 +29,8 @@
 	<<if $slaves[_FLs].trust < 60>>
 		<<set $slaves[_FLs].trust += 3>>
 	<</if>>
-	<<if ($slaves[_FLs].livingRules != "luxurious")>>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if ($slaves[_FLs].rules.living != "luxurious")>>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "sadist">>
@@ -176,13 +176,13 @@
 	<</if>>
 	<<switch $cellblockDecoration>>
 	<<case "Paternalist">>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 		<<if ($slaves[$i].inflation > 0)>>
 			<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0>>
 			<<run SetBellySize($slaves[$i])>>
 		<</if>>
 	<<case "Pastoralist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 		<<if $slaves[$i].inflation == 0>>
 			<<if $slaves[$i].pregKnown == 0 && $slaves[$i].bellyImplant < 1500>>
 				<<set $slaves[$i].inflation = 2, $slaves[$i].inflationType = "milk", $slaves[$i].inflationMethod = 1>>
@@ -192,7 +192,7 @@
 			<<run SetBellySize($slaves[$i])>>
 		<</if>>
 	<<case "Hedonistic">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 		<<if $slaves[$i].weight < 200>>
 			<<if $slaves[$i].weightDirection == 1>>
 				<<set $slaves[$i].weight += 5>>
@@ -214,7 +214,7 @@
 			<<run SetBellySize($slaves[$i])>>
 		<</if>>
 	<<default>>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 		<<if ($slaves[$i].inflation > 0)>>
 			<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0>>
 			<<run SetBellySize($slaves[$i])>>
diff --git a/src/uncategorized/clinicReport.tw b/src/uncategorized/clinicReport.tw
index 6c8d0feba52293fab230b17eb2d110026680add7..55f0e982cb82461092c7ca9438adaa68ad27d3cc 100644
--- a/src/uncategorized/clinicReport.tw
+++ b/src/uncategorized/clinicReport.tw
@@ -22,8 +22,8 @@
 		<<set $slaves[_FLs].trust++>>
 	<</if>>
 
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 
 	<<set $slaves[_FLs].devotion += _devBonus>>
@@ -246,11 +246,11 @@
 
 	<<switch $clinicDecoration>>
 	<<case "Eugenics" "Gender Fundamentalist" "Gender Radicalist" "Hedonistic" "Intellectual Dependency" "Maturity Preferentialist" "Paternalist" "Petite Admiration" "Repopulation Focus" "Slimness Enthusiast" "Statuesque Glorification" "Youth Preferentialist">>
-		<<set $slaves[$i].livingRules = "luxurious">>
+		<<set $slaves[$i].rules.living = "luxurious">>
 	<<case "Arabian Revivalist" "Aztec Revivalist" "Chattel Religionist" "Chinese Revivalist" "Edo Revivalist" "Egyptian Revivalist" "Roman Revivalist">>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<<default>>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<</switch>>
 
 	<<if ($Nurse != 0)>>
diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw
index 822fe8c470c1612f489bc35176990cf7c3d7e0f8..c27b8cbe0d0eb52d652fad375c45d5c271356aad 100644
--- a/src/uncategorized/clubReport.tw
+++ b/src/uncategorized/clubReport.tw
@@ -40,8 +40,8 @@
 			<<set _FLsFetish = 2, $slaves[_FLs].fetishStrength += 4>>
 		<</if>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	/% Make sure we have registered living expenses as for any other slave %/
 	<<run getSlaveStatisticData($DJ, $facility.club)>>
@@ -205,8 +205,8 @@
 			<<set $slaves[$i].health += 7>>
 		<</if>>
 
-		<<if $slaves[$i].livingRules != "normal">>
-			<<set $slaves[$i].livingRules = "normal">>
+		<<if $slaves[$i].rules.living != "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<</if>>
 
 		<<if $showEWD != 0>>
diff --git a/src/uncategorized/concubineWorkaround.tw b/src/uncategorized/concubineWorkaround.tw
index 9c340c2efa087d28697c108f18d393a62d238ab8..c46d05211881ef8e4f5637ab09b54dace92b653d 100644
--- a/src/uncategorized/concubineWorkaround.tw
+++ b/src/uncategorized/concubineWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be your Concubine")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Concubine = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index 3ddb0b7294ab9f77b9162f030eb73233e8e0b0eb..b9c78665947c6c2366b636dbb22c1fd081ace168 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -436,7 +436,7 @@ $researchLab.level > 0>>
 		<<case "work in the dairy">>
 			<<if $dairyRestraintsSetting >= 2>>
 				<<set _livingExpense = ($rulesCost*.75)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<elseif $dairyDecoration == "Degradationist">>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -444,15 +444,15 @@ $researchLab.level > 0>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "work as a farmhand">>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
 			<</if>>
 		<<case "work in the brothel">>
-			<<if $slaves[$i].livingRules == "normal">>
+			<<if $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
@@ -460,23 +460,23 @@ $researchLab.level > 0>>
 		<<case "serve in the club" "learn in the schoolroom">>
 			<<set _livingExpense = ($rulesCost*1.5)>>
 		<<case "get treatment in the clinic">>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*2)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "rest in the spa" "work as a nanny">>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*1.75)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "be a servant">>
-			<<if $slaves[$i].livingRules == "normal">>
+			<<if $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<if $servantsQuartersDecoration == "Degradationist">>
@@ -486,7 +486,7 @@ $researchLab.level > 0>>
 				<</if>>
 			<</if>>
 		<<case "be confined in the cellblock">>
-			<<if $slaves[$i].livingRules == "normal">>
+			<<if $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.25)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -494,13 +494,13 @@ $researchLab.level > 0>>
 		<<case "be the Madam" "be the DJ" "be the Nurse" "be the Wardeness" "be the Attendant" "be the Matron" "be the Schoolteacher" "be the Stewardess" "be the Milkmaid" "be the Farmer">>
 			<<set _livingExpense = ($rulesCost*2)>>
 		<<default>>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<if $slaves[$i].relationship >= 4>>
 					<<set _livingExpense = ($rulesCost*3)>>
 				<<else>>
 					<<set _livingExpense = ($rulesCost*4)>>
 				<</if>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
diff --git a/src/uncategorized/costsWidgets.tw b/src/uncategorized/costsWidgets.tw
index e7d8932868c5e1476f65100a53ccfab5ae4adeca..3eb56f2a992263f7215b896ace78f7c2d027f665 100644
--- a/src/uncategorized/costsWidgets.tw
+++ b/src/uncategorized/costsWidgets.tw
@@ -9,7 +9,7 @@
 		<<case "work in the dairy">>
 			<<if $dairyRestraintsSetting >= 2>>
 				<<set _livingExpense = ($rulesCost*.75)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<elseif $dairyDecoration == "Degradationist">>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -17,15 +17,15 @@
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "work as a farmhand">>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
 			<</if>>
 		<<case "work in the brothel">>
-			<<if $args[0].livingRules == "normal">>
+			<<if $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
@@ -33,23 +33,23 @@
 		<<case "serve in the club" "learn in the schoolroom">>
 			<<set _livingExpense = ($rulesCost*1.5)>>
 		<<case "get treatment in the clinic">>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*2)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "rest in the spa" "work as a nanny">>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*1.75)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "be a servant">>
-			<<if $args[0].livingRules == "normal">>
+			<<if $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<if $servantsQuartersDecoration == "Degradationist">>
@@ -59,7 +59,7 @@
 				<</if>>
 			<</if>>
 		<<case "be confined in the cellblock">>
-			<<if $args[0].livingRules == "normal">>
+			<<if $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.25)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -67,13 +67,13 @@
 		<<case "be the Madam" "be the DJ" "be the Nurse" "be the Wardeness" "be the Attendant" "be the Matron" "be the Schoolteacher" "be the Stewardess" "be the Milkmaid" "be the Farmer">>
 			<<set _livingExpense = ($rulesCost*2)>>
 		<<default>>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<if $args[0].relationship >= 4>>
 					<<set _livingExpense = ($rulesCost*3)>>
 				<<else>>
 					<<set _livingExpense = ($rulesCost*4)>>
 				<</if>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index d4db7d1b067adaf23ab1430aa7239b3218bfe58b..bd4e3d9f469728d53043e2493266fe3ddefd91fb 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -109,8 +109,8 @@
 	<<if ($slaves[_FLs].health >= 80)>>
 		<<set $milkmaidHealthBonus++>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if _milkers >= _cummers && _milkers >= _breeders>>
@@ -371,9 +371,9 @@
 	<</if>>
 	<<switch $dairyDecoration>>
 	<<case "Arabian Revivalist" "Aztec Revivalist" "Chattel Religionist" "Chinese Revivalist" "Degradationist" "Edo Revivalist" "Egyptian Revivalist" "Roman Revivalist" "Subjugationist" "Supremacist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<<default>>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<</switch>>
 	<<if $dairyPregSetting > 0>>
 		<<set WombCleanGenericReserve($slaves[$i], "incubator", 9999)>>
diff --git a/src/uncategorized/djWorkaround.tw b/src/uncategorized/djWorkaround.tw
index b5b918514dc47b39c40a120418e99a5e928aa0e2..2ea4f341c1c2bd08913b892be35d678798cd224c 100644
--- a/src/uncategorized/djWorkaround.tw
+++ b/src/uncategorized/djWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the DJ")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $DJ = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index da7f7afbcb324ded27deba9897a7f4be0ac2c838..b4cb1bb862c18ce12bb19e13efc30008c9829f11 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -157,7 +157,7 @@ is
 
 	<<if $activeSlave.fuckdoll == 0>>
 		<<if $activeSlave.voice != 0>>
-			<<if $activeSlave.speechRules == "restrictive">>
+			<<if $activeSlave.rules.speech == "restrictive">>
 				$He is not allowed to speak unless spoken to, but when allowed, $he speaks in a
 			<<else>>
 				$He is allowed to ask questions, and when $he speaks, $he does so in a
@@ -210,23 +210,23 @@ is
 		<<if def _lsd>>
 			$He is
 			<<if $activeSlave.relationship <= 1>>
-				''@@.lightgreen;friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.relationshipRules != "restrictive">>encourage<<else>> discourage<</if>> their relationship.
+				''@@.lightgreen;friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.rules.relationship != "restrictive">>encourage<<else>> discourage<</if>> their relationship.
 			<<elseif $activeSlave.relationship <= 2>>
-				''@@.lightgreen;best friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.relationshipRules != "restrictive">>encourage<<else>> discourage<</if>> their close relationship.
+				''@@.lightgreen;best friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.rules.relationship != "restrictive">>encourage<<else>> discourage<</if>> their close relationship.
 			<<elseif $activeSlave.relationship <= 3>>
-				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s friend with benefits;@@'' the rules <<if $activeSlave.relationshipRules == "permissive">>encourage<<else>> discourage<</if>> their sexual relationship.
+				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s friend with benefits;@@'' the rules <<if $activeSlave.rules.relationship == "permissive">>encourage<<else>> discourage<</if>> their sexual relationship.
 			<<elseif $activeSlave.relationship <= 4>>
-				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s lover;@@'' the rules <<if $activeSlave.relationshipRules == "permissive">>encourage<<else>> discourage<</if>> their passionate relationship.
+				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s lover;@@'' the rules <<if $activeSlave.rules.relationship == "permissive">>encourage<<else>> discourage<</if>> their passionate relationship.
 			<<elseif $slaves[_lsd].relationship > 4>>
-				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s slave $wife;@@'' the rules <<if $activeSlave.relationshipRules == "permissive">>encourage<<else>> discourage<</if>> marital bliss.
+				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s slave $wife;@@'' the rules <<if $activeSlave.rules.relationship == "permissive">>encourage<<else>> discourage<</if>> marital bliss.
 			<</if>>
 		<</if>>
 	<<elseif $activeSlave.fuckdoll == 0>>
-		<<if $activeSlave.relationshipRules == "restrictive">>
+		<<if $activeSlave.rules.relationship == "restrictive">>
 			The rules forbid $him from associating freely with other slaves.
 		<<elseif $activeSlave.career == "a Futanari Sister">>
 			The rules encourage $him to form friendships with other slaves, but $he seems disinclined to do so. $He's both friendly with them and eagerly sexual with them when allowed, but $he seems to be waiting for someone, deep down.
-		<<elseif $activeSlave.relationshipRules == "just friends">>
+		<<elseif $activeSlave.rules.relationship == "just friends">>
 			The rules encourage $him to form friendships with other slaves.
 		<<else>>
 			The rules encourage $him to form relationships with other slaves.
@@ -244,18 +244,18 @@ is
 			$He lives in $his own room within the armory,
 		<<elseif ($activeSlave.assignment == "work in the dairy") && ($dairyRestraintsSetting > 1)>>
 			$He sleeps attached to a milking machine,
-		<<elseif $activeSlave.livingRules == "spare">>
+		<<elseif $activeSlave.rules.living == "spare">>
 			$He sleeps on a bedroll,
-		<<elseif $activeSlave.livingRules == "normal">>
+		<<elseif $activeSlave.rules.living == "normal">>
 			$He sleeps on a cot,
 		<<elseif $activeSlave.relationship >= 4>>
 			$He has $his own room, which $he shares with $his <<if $activeSlave.relationship == 5>>_wife2<<else>><<= _girl2>>friend<</if>> whenever they can manage it,
 		<<else>>
 			$He sleeps in $his own little room,
 		<</if>>
-		<<if $activeSlave.releaseRules == "restrictive">>
+		<<if $activeSlave.rules.release == "restrictive">>
 			and $he is not allowed to masturbate or proposition
-			<<if ($activeSlave.relationshipRules == "permissive")>>
+			<<if ($activeSlave.rules.relationship == "permissive")>>
 				<<if ($activeSlave.relationship == 5)>>
 					slaves other than $his _wife2.
 				<<elseif ($activeSlave.relationship == 4)>>
@@ -268,7 +268,7 @@ is
 			<<else>>
 				other slaves; $he must find sexual release in $his duties.
 			<</if>>
-		<<elseif $activeSlave.releaseRules == "sapphic">>
+		<<elseif $activeSlave.rules.release == "sapphic">>
 			<<if $universalRulesConsent == 1>>
 				and $he is not allowed to masturbate; $he must proposition other slaves to find sexual release,
 				<<if ($activeSlave.devotion > 50) || ($activeSlave.energy > 95)>>
@@ -288,16 +288,16 @@ is
 					which $he is rarely willing to do.
 				<</if>>
 			<</if>>
-		<<elseif $activeSlave.releaseRules == "masturbation">>
+		<<elseif $activeSlave.rules.release == "masturbation">>
 			and $he is only allowed to
 			<<if ($activeSlave.energy > 95)>>
 				masturbate, which $he is constantly doing.
 			<<else>>
 				masturbate.
 			<</if>>
-		<<elseif $activeSlave.releaseRules == "permissive">>
+		<<elseif $activeSlave.rules.release == "permissive">>
 			and $he is allowed to masturbate.
-		<<elseif $activeSlave.releaseRules == "chastity">>
+		<<elseif $activeSlave.rules.release == "chastity">>
 			and $he is to remain completely chaste.
 		<</if>>
 	<</if>>
@@ -2028,7 +2028,7 @@ $He is
 		$He has a large, liver-colored birthmark, detracting from $his beauty.
 	<</if>>
 	<<if ($activeSlave.skin == "sun tanned")>>
-		<<if ($activeSlave.releaseRules != "restrictive" && $activeSlave.releaseRules != "masturbation" && $activeSlave.releaseRules != "chastity")>>
+		<<if ($activeSlave.rules.release != "restrictive" && $activeSlave.rules.release != "masturbation" && $activeSlave.rules.release != "chastity")>>
 			<<if ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>>
 				$His tan is slightly uneven, since $he enjoys
 				<<if ($activeSlave.fetish == "buttslut")>>
@@ -2288,18 +2288,18 @@ $He is
 				aphrodisiacs, but is an amputee, so $he cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself, but only managing to stir up the aphrodisiacs contained in $his gut, strengthening their effects even more.
 			<<elseif ($activeSlave.chastityVagina)>>
 				aphrodisiacs, but is wearing a chastity belt and cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself, but only managing to stir up the aphrodisiacs contained in $his gut, strengthening their effects even more.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>> $His frantic masturbation forces $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft and pussy with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>> $His frantic masturbation forces $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.vagina == -1)>>
 				aphrodisiacs, has<<if $seeDicks > 0>> no penis and<</if>> no vagina, and is not allowed to masturbate, so as $he stands before you $he
 				<<if $activeSlave.anus == 0>>
 					plays with a nipple with one hand while furiously rubbing $his virgin anus and the sensitive perineum beneath it with the other, desperately trying to get $himself off. $His frantic attempts force $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
 				<<else>>
 					uses <<if $activeSlave.anus > 2>>$his entire hand, formed into a beak shape,<<elseif $activeSlave.anus > 1>>two fingers<<else>>a finger<</if>> to fuck $his own ass. $His frantic attempts force $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
 				<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation")>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation")>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his clit with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.
 			<<elseif ($activeSlave.dick != 0)>>
 				aphrodisiacs and is not allowed to masturbate, so as $he stands before you $he desperately presents $his open mouth, $his breasts, $his crotch, and $his anus in turn, hoping that something will entice you to give $him relief.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
@@ -2314,18 +2314,18 @@ $He is
 				aphrodisiacs, but is an amputee, so $he cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself.
 			<<elseif ($activeSlave.chastityVagina)>>
 				aphrodisiacs, but is wearing a chastity belt and cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft and pussy with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.vagina == -1)>>
 				aphrodisiacs, has<<if $seeDicks > 0>> no penis and<</if>> no vagina, and is not allowed to masturbate, so as $he stands before you $he
 				<<if $activeSlave.anus == 0>>
 					plays with a nipple with one hand while furiously rubbing $his virgin anus and the sensitive perineum beneath it with the other, desperately trying to get $himself off.
 				<<else>>
 					uses <<if $activeSlave.anus > 2>>$his entire hand, formed into a beak shape,<<elseif $activeSlave.anus > 1>>two fingers<<else>>a finger<</if>> to fuck $his own ass.
 				<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation")>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation")>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his clit with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.
 			<<elseif ($activeSlave.dick != 0)>>
 				aphrodisiacs and is not allowed to masturbate, so as $he stands before you $he desperately presents $his open mouth, $his breasts, $his crotch, and $his anus in turn, hoping that something will entice you to give $him relief.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
@@ -2339,11 +2339,11 @@ $He is
 				$He's on aphrodisiacs, but is an amputee, so $he cannot touch $himself. $He writhes with sexual frustration.
 			<<elseif ($activeSlave.chastityVagina)>>
 				$He's on aphrodisiacs, but is wearing a chastity belt and cannot touch $himself. $He writhes with sexual frustration.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
 				$He's on aphrodisiacs and is allowed to masturbate, so as $he obeys your commands $he idly rubs $his shaft with <<if hasBothArms($activeSlave)>>one hand while the other pinches a nipple<<else>>$his hand<</if>>.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0)>>
 				$He's on aphrodisiacs and is allowed to masturbate, so as $he obeys your commands $he idly rubs $his shaft and pussy with <<if hasBothArms($activeSlave)>>one hand while the other pinches a nipple<<else>>$his hand<</if>>.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation")>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation")>>
 				$He's on aphrodisiacs and is allowed to masturbate, so as $he obeys your commands $he idly rubs $his pussy with <<if hasBothArms($activeSlave)>>one hand while the other pinches a nipple<<else>>$his hand<</if>>.
 			<<elseif ($activeSlave.dick != 0) && canPenetrate($activeSlave)>>
 				$He's on aphrodisiacs and is not allowed to masturbate, so as $he obeys your commands $he shifts $his weight uncomfortably. $His erect dick sways as $he does.
diff --git a/src/uncategorized/madamWorkaround.tw b/src/uncategorized/madamWorkaround.tw
index dea2a96ca665d0a3bcd4d5f4caf36fa178da7f1f..d713b9064f1d798607431dac8ac770ffe91686ae 100644
--- a/src/uncategorized/madamWorkaround.tw
+++ b/src/uncategorized/madamWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Madam")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Madam = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 5a81ee450cee57664da58ab76aa93088db482214..aab6e91ab2fde5f34fbbf4a921ae2c1059c7fbf1 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -62,8 +62,8 @@
 <</for>>
 <<set _visibleSlaves = $slaves.filter(s => s.assignmentVisible == 1 && (s.assignment != "be your Head Girl" || $HGSuite != 1) && (s.assignment != "guard you" || $dojo <= 1)),
 	$slavesVisible = _visibleSlaves.length,
-	$dormitoryPopulation = _visibleSlaves.filter(s => s.livingRules != "luxurious").length,
-	$roomsPopulation = $slavesVisible - $dormitoryPopulation - _visibleSlaves.filter(s => s.livingRules == "luxurious" && s.relationship >= 4).length * 0.5,
+	$dormitoryPopulation = _visibleSlaves.filter(s => s.rules.living != "luxurious").length,
+	$roomsPopulation = $slavesVisible - $dormitoryPopulation - _visibleSlaves.filter(s => s.rules.living == "luxurious" && s.relationship >= 4).length * 0.5,
 	_PA = (Array.isArray($personalAttention) ? $personalAttention.map(function(x) { return getSlave(x.ID); }) : []),
 	_HG = $slaveIndices[$HeadGirl.ID],
 	_RC = $slaveIndices[$Recruiter.ID],
diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw
index 8b018dcfc047316678f869f81af7a3f97b0cb6d5..9a8afa72428f6784eb590cf2b3085345a256c73b 100644
--- a/src/uncategorized/masterSuiteReport.tw
+++ b/src/uncategorized/masterSuiteReport.tw
@@ -164,9 +164,9 @@
 				<<run repX(300, "concubine", $Concubine)>>
 			<</if>>
 			<<if $masterSuiteUpgradeLuxury > 0>>
-				<<set $slaves[$i].livingRules = "luxurious", $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
+				<<set $slaves[$i].rules.living = "luxurious", $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 			<<else>>
-				<<set $slaves[$i].livingRules = "normal", $slaves[$i].devotion += 2, $slaves[$i].trust += 2>>
+				<<set $slaves[$i].rules.living = "normal", $slaves[$i].devotion += 2, $slaves[$i].trust += 2>>
 			<</if>>
 			<<if $masterSuiteDecoration != "standard">>
 				<<set $slaves[$i].devotion++>>
@@ -182,7 +182,7 @@
 			<</if>>
 			/* Perform facility based rule changes */
 			<<if ($masterSuiteUpgradeLuxury == 1)>>
-				<<set $slaves[$i].livingRules = "luxurious">>
+				<<set $slaves[$i].rules.living = "luxurious">>
 				<<if ($slaves[$i].devotion <= 95)>>
 					<<set $slaves[$i].devotion += 2>>
 				<</if>>
@@ -193,7 +193,7 @@
 					<<set $slaves[$i].trust++>>
 				<</if>>
 			<<elseif ($masterSuiteUpgradeLuxury == 2)>>
-				<<set $slaves[$i].livingRules = "luxurious">>
+				<<set $slaves[$i].rules.living = "luxurious">>
 				<<if ($slaves[$i].energy > 90)>>
 					<<if ($slaves[$i].devotion <= 95)>>
 						<<set $slaves[$i].devotion += 2>>
@@ -210,7 +210,7 @@
 					<</if>>
 				<</if>>
 			<<else>>
-				<<set $slaves[$i].livingRules = "spare">>
+				<<set $slaves[$i].rules.living = "spare">>
 				<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 					<<set $slaves[$i].devotion -= 2, $slaves[$i].trust -= 5>>
 				<<elseif ($slaves[$i].devotion <= 60)>>
diff --git a/src/uncategorized/milkmaidWorkaround.tw b/src/uncategorized/milkmaidWorkaround.tw
index 0cfb0267683e5c533a8f15b86ce074d6f8fdc35b..aef3a03b60035f6e604709aad2cc0ac84fa569c1 100644
--- a/src/uncategorized/milkmaidWorkaround.tw
+++ b/src/uncategorized/milkmaidWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Milkmaid")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Milkmaid = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/nurseWorkaround.tw b/src/uncategorized/nurseWorkaround.tw
index 7bca30dedf47d83b30f8ca019e515bd838c2aa47..74db4eb27ff0310064e9aa2e16da9693d9d09156 100644
--- a/src/uncategorized/nurseWorkaround.tw
+++ b/src/uncategorized/nurseWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Nurse")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Nurse = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw
index 63c0c58643fb4d0343e0198d6ceb380447491317..d3d0a9df65997cf6d231479aa30c6aefdce8f3a9 100644
--- a/src/uncategorized/personalAssistantOptions.tw
+++ b/src/uncategorized/personalAssistantOptions.tw
@@ -10,7 +10,7 @@
 Seated at your desk, you glance at the visual representation of $assistantName, down in one corner of your desk's glass top.
 
 <<set $masturbationAllowed = 0>>
-<<set $i = $slaves.findIndex(function(s) { return s.releaseRules == "permissive" || s.releaseRules == "masturbation"; })>>
+<<set $i = $slaves.findIndex(function(s) { return s.rules.release == "permissive" || s.rules.release == "masturbation"; })>>
 <<if $i != -1>>
 	<<set $masturbationAllowed = 1>>
 <</if>>
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index dbc5a9e0951d02bc81d04e898ec65f062aa8d23b..e663baa3ff0feb604bd96428b86779f342deeddf 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -60,7 +60,7 @@
 							<<if $slaves[$i].boobs > 3000>>
 								<<set $REBoobCollisionSubIDs.push($slaves[$i].ID)>>
 							<</if>>
-							<<if $slaves[$i].releaseRules != "restrictive" && $slaves[$i].releaseRules != "masturbation" && $slaves[$i].releaseRules != "chastity">>
+							<<if $slaves[$i].rules.release != "restrictive" && $slaves[$i].rules.release != "masturbation" && $slaves[$i].rules.release != "chastity">>
 								<<if $slaves[$i].energy > 40>>
 									<<if canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>>
 										<<set $REInterslaveBeggingIDs.push($slaves[$i].ID)>>
@@ -86,7 +86,7 @@
 						<</if>>
 					<</if>>
 					<<if $slaves[$i].assignmentVisible == 1>>
-						<<if $slaves[$i].livingRules == "luxurious">>
+						<<if $slaves[$i].rules.living == "luxurious">>
 							<<if $slaves[$i].devotion >= -20>>
 								<<if $slaves[$i].anus != 0>>
 									<<if canTaste($slaves[$i])>>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index a1c4f830917e515190f8769fa1d6518ac173a059..d117d28df009ff3f672fa1ac8e31bd7ae2e5dcc0 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -286,7 +286,7 @@
 	<<set $buttslutInterestTargetID = 0, $cumslutInterestTargetID = 0, $dominantInterestTargetID = 0, $submissiveInterestTargetID = 0, $humiliationInterestTargetID = 0, $boobsInterestTargetID = 0, $pregnancyInterestTargetID = 0, $masochistInterestTargetID = 0>>
 
 	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if ($slaves[$i].speechRules != "restrictive")>>
+		<<if ($slaves[$i].rules.speech != "restrictive")>>
 			<<if isSlaveAvailable($slaves[$i])>>
 				<<if ($slaves[$i].fetish == "none") || ($slaves[$i].fetishStrength <= 60)>>
 					<<if ($buttslutID != 0) && ($buttslutInterestTargetID == 0)>>
@@ -452,7 +452,7 @@
 		<</if>>
 
 		<<if ($Bodyguard.relationship == 0)>>
-			<<if ($Bodyguard.relationshipRules == "permissive")>>
+			<<if ($Bodyguard.rules.relationship == "permissive")>>
 				<<if ($Bodyguard.fetish != "mindbroken")>>
 					<<set $j = $slaves.findIndex(function(s) { return s.ID != $Bodyguard.ID && s.relationship == 0 && s.devotion >= -20; })>>
 					<<if $j != -1>>
diff --git a/src/uncategorized/reStandardPunishment.tw b/src/uncategorized/reStandardPunishment.tw
index e9e6fd6f7782f3eb440990e8eb685dc825346f17..55ed23b16134efd2093cf5a2a778d6bfca379545 100644
--- a/src/uncategorized/reStandardPunishment.tw
+++ b/src/uncategorized/reStandardPunishment.tw
@@ -43,7 +43,7 @@
 	<</if>>
 <<else>>
 	<<if $activeSlave.energy > 40>>
-		<<if $activeSlave.releaseRules != "restrictive" && $activeSlave.releaseRules != "masturbation" && $activeSlave.releaseRules != "chastity">>
+		<<if $activeSlave.rules.release != "restrictive" && $activeSlave.rules.release != "masturbation" && $activeSlave.rules.release != "chastity">>
 			<<set _sins.push("slave molestation")>>
 		<</if>>
 	<</if>>
@@ -71,16 +71,16 @@
 
 <<if $HeadGirl != 0>>
 	<<setLocalPronouns $HeadGirl 2>>
-	$HeadGirl.slaveName is <<if $activeSlave.standardPunishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.standardPunishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _He2 immediately defers to you, should you wish to take over.
+	$HeadGirl.slaveName is <<if $activeSlave.rules.punishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.rules.punishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _He2 immediately defers to you, should you wish to take over.
 <<else>>
 	<<setAssistantPronouns>>
-	$assistantName is <<if $activeSlave.standardPunishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.standardPunishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _HeA immediately defers to you, should you wish to take over.
+	$assistantName is <<if $activeSlave.rules.punishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.rules.punishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _HeA immediately defers to you, should you wish to take over.
 <</if>>
 
 <br><br>
 <span id="result">
 /* STANDARD PUNISHMENTS */
-<<switch $activeSlave.standardPunishment>>
+<<switch $activeSlave.rules.punishment>>
 
 <<case "confinement">>
 
@@ -200,7 +200,7 @@
 
 <</switch>>
 
-<<if $activeSlave.standardPunishment != "situational">><br><</if>>
+<<if $activeSlave.rules.punishment != "situational">><br><</if>>
 
 /* SITUATIONAL PUNISHMENTS */
 <<switch _sins>>
diff --git a/src/uncategorized/recruiterWorkaround.tw b/src/uncategorized/recruiterWorkaround.tw
index 351f2cbe1ea625a97ceff43ed995c3d989a8f465..204afff5a643de30c82ed9d745e6d74f61b79df8 100644
--- a/src/uncategorized/recruiterWorkaround.tw
+++ b/src/uncategorized/recruiterWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "recruit girls")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Recruiter = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 0dde35d5c21e1180812af031dc7f540a8ad18911..3d9e8a53d76c95f72a1dea8bc6934addeedabd17 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1771,7 +1771,7 @@ Work on $him structurally:
 		<<if _atleastOne>>
 			<<set $activeSlave.health -= _atleastOne * 10, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 			<<if !hasAnyArms($activeSlave)>>
-				<<set $activeSlave.releaseRules = "restrictive">>
+				<<set $activeSlave.rules.release = "restrictive">>
 			<</if>>
 			<<set $surgeryType = "amp">>
 			<<goto "Surgery Degradation">>
diff --git a/src/uncategorized/saBeYourHeadGirl.tw b/src/uncategorized/saBeYourHeadGirl.tw
index eacc7d254c8f3be4496ea6d0f937bb2ca19beab8..7b556a903443005302df0109752413272c55df2b 100644
--- a/src/uncategorized/saBeYourHeadGirl.tw
+++ b/src/uncategorized/saBeYourHeadGirl.tw
@@ -3,7 +3,7 @@
 <<set $HGTimeInGrade += 1, _fetishChangeChance = fetishChangeChance($slaves[$i])>>
 
 <<if $HGSuite == 1>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 <</if>>
 
 <<if $arcologies[0].FSEgyptianRevivalistLaw == 0>>
@@ -100,10 +100,10 @@
 	<</if>>
 <</if>>
 
-<<if ($slaves[$i].livingRules == "luxurious") && ($HGSuite == 1)>>
+<<if ($slaves[$i].rules.living == "luxurious") && ($HGSuite == 1)>>
 	Being continually trusted with this position @@.hotpink;increases $his devotion to you,@@ and encourages $him to @@.mediumaquamarine;trust you in turn;@@ $he's also @@.hotpink;grateful@@ for $his nice suite, which makes $him one of the best provided for slaves in the Free Cities.
 	<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
-<<elseif ($slaves[$i].livingRules == "luxurious")>>
+<<elseif ($slaves[$i].rules.living == "luxurious")>>
 	Being continually trusted with this position @@.hotpink;increases $his devotion to you@@ and encourages $him to @@.mediumaquamarine;trust you in turn.@@
 	<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 <<elseif ($HGSuite == 1)>>
@@ -156,12 +156,12 @@
 	<</if>>
 <</if>>
 
-<<if $slaves[$i].lactationRules == "induce">>
+<<if $slaves[$i].rules.lactation == "induce">>
 	$He works mammary stimulation into $his slave training regimen in an effort to bring in $his milk for you.
 	<<set $slaves[$i].induceLactation += 3>>
 	<<= induceLactation($slaves[$i])>>
-	<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-<<elseif $slaves[$i].lactationRules == "maintain">>
+	<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+<<elseif $slaves[$i].rules.lactation == "maintain">>
 	Proper nursing and milking technique is a strong aspect of $his slave training regimen, both to keep $his milk flowing and to prevent the mounting pressure from distracting from $his work.
 	<<set $slaves[$i].lactationDuration = 2, $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>>
 <</if>>
diff --git a/src/uncategorized/saGuardsYou.tw b/src/uncategorized/saGuardsYou.tw
index c7f03aa6a35c607fafc852bab4a1a18bc6e4e7ac..3a77c1b06edbe6154c3a3a03e34f96e4ec474ce7 100644
--- a/src/uncategorized/saGuardsYou.tw
+++ b/src/uncategorized/saGuardsYou.tw
@@ -3,7 +3,7 @@
 carries arms in your defense.
 
 <<if $dojo > 1>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 <</if>>
 
 <<set $deadliness = Deadliness($slaves[$i])>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 11692061634254ab88f0fbb41955d351a3f99f59..b898eb3af00aa1128c0ff7425dfe4b4fab689e37 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -991,8 +991,8 @@
 	<</if>>
 <</if>>
 
-<<if $slaves[$i].livingRules != "luxurious">>
-	<<set $slaves[$i].livingRules = "luxurious">>
+<<if $slaves[$i].rules.living != "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 <</if>>
 
 <<if ($HeadGirl.relationshipTarget == $slaves[$i].ID)>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 4063b2fe6708728fa43010e064ae55b48c180e1a..bd25fa8b3bd36b7476e2d4f00276ecf2d15940a3 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -1233,7 +1233,7 @@
 				<<elseif ($slaves[$i].assignment == "be the Schoolteacher")>>
 					$His paraphilia is satisfied by $his work as the Schoolteacher.
 					<<set _para = 1>>
-				<<elseif canWalk($slaves[$i]) && $slaves[$i].releaseRules == "permissive" && $universalRulesConsent == 0>>
+				<<elseif canWalk($slaves[$i]) && $slaves[$i].rules.release == "permissive" && $universalRulesConsent == 0>>
 					$His paraphilia makes pinning down and raping other slaves very satisfying.
 					<<set _para = 1>>
 				<<else>>
@@ -1264,7 +1264,7 @@
 				<<elseif ($slaves[$i].assignment == "be the Wardeness")>>
 					$His paraphilia is satisfied by $his work as your Wardeness.
 					<<set _para = 1>>
-				<<elseif canWalk($slaves[$i]) && $slaves[$i].releaseRules == "permissive" && $universalRulesConsent == 0>>
+				<<elseif canWalk($slaves[$i]) && $slaves[$i].rules.release == "permissive" && $universalRulesConsent == 0>>
 					$His paraphilia makes pinning down and brutally raping other slaves very satisfying.
 					<<set _para = 1>>
 				<<else>>
@@ -2680,7 +2680,7 @@
 				<</if>>
 			<</if>>
 
-			<<if ($slaves[$i].releaseRules == "permissive") || $slaves[$i].releaseRules == "masturbation">>
+			<<if ($slaves[$i].rules.release == "permissive") || $slaves[$i].rules.release == "masturbation">>
 				<<if ($slaves[$i].balls > 0)>>
 					<<if $slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement" || ($slaves[$i].drugs == "hyper testicle enhancement")>>
 						<<if ($slaves[$i].fetishStrength <= 95)>>
@@ -4480,7 +4480,7 @@
 					<</if>>
 
 				<<default>> /* random impregnation chance on other assignments - consider relationships first */
-					<<if !["chastity", "masturbation"].includes($slaves[$i].releaseRules) || $slaves[$i].devotion <= 50>>
+					<<if !["chastity", "masturbation"].includes($slaves[$i].rules.release) || $slaves[$i].devotion <= 50>>
 						<<if (_conceptionSeed > 80) && (($slaves[$i].counter.vaginal > 0) || ($slaves[$i].counter.anal > 0 && $slaves[$i].mpreg > 0))>> /* TODO: compare to previous week totals? */
 							<<if $slaves[$i].relationshipTarget > 0>>
 								<<set _tempLover = getSlave($slaves[$i].relationshipTarget)>>
@@ -4492,7 +4492,7 @@
 							<<set _tempSub = getSlave($slaves[$i].subTarget)>>
 							<<if ndef _tempSub>>@@.red;Error, subTarget not found.@@<</if>>
 						<</if>>
-						<<if (($slaves[$i].relationship == -3) || ($slaves[$i].relationship == -2)) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].releaseRules)>>
+						<<if (($slaves[$i].relationship == -3) || ($slaves[$i].relationship == -2)) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].rules.release)>>
 							<<set $slaves[$i].pregSource = -1>>
 						<<elseif ($slaves[$i].relationship > 2) && canImpreg($slaves[$i], _tempLover)>> /* erection not needed for impregnation via consensual sex play (FWB or better) */
 							<<set $slaves[$i].pregSource = _tempLover.ID>>
@@ -4501,17 +4501,17 @@
 						<<elseif (random(1,100) > 95) && ($slaves[$i].rivalry > 2) && canAchieveErection(_tempRival) && canImpreg($slaves[$i], _tempRival)>> /* 5% chance to be raped and knocked up by bitter rival - erection needed */
 							Driven by the bitter rivalry between them, _tempRival.slaveName successfully manages to overpower $slaves[$i].slaveName and rape $him, cumming deep in $his fertile <<if $slaves[$i].mpreg == 1>>asshole<<else>>pussy<</if>>. By the end of the week, $slaves[$i].slaveName is vowing revenge as $he regains confidence.
 							<<set $slaves[$i].pregSource = _tempRival.ID>>
-						<<elseif (random(1,100) > 60) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].releaseRules)>> /* still 40% chance of impregnation by PC */
+						<<elseif (random(1,100) > 60) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].rules.release)>> /* still 40% chance of impregnation by PC */
 							<<set $slaves[$i].pregSource = -1>>
 						<<elseif (random(1,100) > 95) && ($slaves[$i].eggType == "human") && $slaves[$i].devotion <= 20>> /* 5% chance of impregnation by random citizen - TODO: make this optional for players who want random fathers from among their own slaves only */
 							<<set $slaves[$i].pregSource = -2>>
 						<<else>>
 							/* pick a random starting point in the slave array and iterate (wrapping around) until finding eligible father or coming back to starting point */
 							<<if $slaves.length == 1>>
-								<<if canImpreg($slaves[$i], $slaves[$i]) && _conceptionSeed > 95 && ($slaves[$i].releaseRules == "permissive")>>
+								<<if canImpreg($slaves[$i], $slaves[$i]) && _conceptionSeed > 95 && ($slaves[$i].rules.release == "permissive")>>
 									<<set $slaves[$i].pregSource = $slaves[$i].ID>>
 								<</if>>
-							<<elseif $slaves[$i].releaseRules == "permissive" || ($slaves[$i].devotion <= 20 && $slaves[$i].trust > 50) || $universalRulesConsent == 0>>
+							<<elseif $slaves[$i].rules.release == "permissive" || ($slaves[$i].devotion <= 20 && $slaves[$i].trust > 50) || $universalRulesConsent == 0>>
 								<<set _sourceSeed = random(0,$slaves.length-1)>><<set _tried = 0>>
 								<<for _m = _sourceSeed + 1; _m != _sourceSeed; _m++>>
 									<<if _m == $slaves.length>><<set _m = 0, _tried = 1>><</if>> /* wrap around */
@@ -5710,7 +5710,7 @@
 			Society @@.red;frowns@@ of keeping a slave as slow as $slaves[$i].slaveName; the lack of an attempt to correct this sets a bad example for other owners.
 			<<= FutureSocieties.ChangePorn("SlaveProfessionalism", -2)>>
 		<</if>>
-		<<if $slaves[$i].accent > 1 && canTalk($slaves[$i]) && ($slaves[$i].speechRules != "restrictive" || ($slaves[$i].speechRules == "restrictive" && $slaves[$i].devotion < 20 && $slaves[$i].trust >= -20))>>
+		<<if $slaves[$i].accent > 1 && canTalk($slaves[$i]) && ($slaves[$i].rules.speech != "restrictive" || ($slaves[$i].rules.speech == "restrictive" && $slaves[$i].devotion < 20 && $slaves[$i].trust >= -20))>>
 			Society @@.red;dislikes@@ $slaves[$i].slaveName's inability to properly speak $language or hold $his tongue; allowing such a flaw hinders the notion of professional slavery.
 			<<= FutureSocieties.ChangePorn("SlaveProfessionalism", -2)>>
 		<</if>>
@@ -8277,11 +8277,11 @@
 /* LANGUAGE */
 
 <<if ($slaves[$i].accent > 0) && ($slaves[$i].fetish != "mindbroken")>>
-	<<if $slaves[$i].speechRules == "restrictive">>
+	<<if $slaves[$i].rules.speech == "restrictive">>
 		<<set _minweeks = 30 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
-	<<elseif $slaves[$i].speechRules == "accent elimination">>
+	<<elseif $slaves[$i].rules.speech == "accent elimination">>
 		<<set _minweeks = 15 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
-	<<elseif $slaves[$i].speechRules == "language lessons">>
+	<<elseif $slaves[$i].rules.speech == "language lessons">>
 		<<set _minweeks = 10 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
 	<<else>>
 		<<set _minweeks = 20 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
@@ -8297,7 +8297,7 @@
 <<if ($slaves[$i].accent >= 4)>>
 	<<if ($week - $slaves[$i].weekAcquired) > _minweeks - 5>>
 		<<set $slaves[$i].accent -= 1>>
-		<<if $slaves[$i].speechRules == "language lessons">><<set $slaves[$i].speechRules = "accent elimination">><</if>>
+		<<if $slaves[$i].rules.speech == "language lessons">><<set $slaves[$i].rules.speech = "accent elimination">><</if>>
 			<<if $slaves[$i].voice == 0 || $slaves[$i].lips > 95>>
 				$He has managed to pick up enough $language that @@.green;$he could now barely get $his point across.@@ If $he were able to talk, that is.
 			<<else>>
@@ -8319,7 +8319,7 @@
 				<<set $slaves[$i].accent -= 1>>
 				$He has heard and spoken a great deal of $language as your slave. @@.green;$His accent has diminished to a pleasant exoticism.@@
 			<</if>>
-		<<elseif ($slaves[$i].accent == 1) && ($slaves[$i].speechRules == "accent elimination")>>
+		<<elseif ($slaves[$i].accent == 1) && ($slaves[$i].rules.speech == "accent elimination")>>
 			<<if ($week - $slaves[$i].weekAcquired) > (10 + _minweeks)>>
 
 				<<set $slaves[$i].accent -= 1>>
diff --git a/src/uncategorized/saRecruitGirls.tw b/src/uncategorized/saRecruitGirls.tw
index 7acf5fb360bec331aa6321feb2223bdf5316551b..c9d14c71afe4917f4d380603446827f531c8b27c 100644
--- a/src/uncategorized/saRecruitGirls.tw
+++ b/src/uncategorized/saRecruitGirls.tw
@@ -403,7 +403,7 @@
 		<</if>>
 	<</if>>
 
-	<<if ($slaves[$i].livingRules != "luxurious")>>
+	<<if ($slaves[$i].rules.living != "luxurious")>>
 		$He would be more effective if $he could show off a luxurious standard of living.
 		<<set $recruiterProgress -= 1>>
 	<</if>>
@@ -416,7 +416,7 @@
 		$He has no real prospects yet and has more work to do before anyone agrees to enslavement.
 	<</if>>
 
-	<<if ($slaves[$i].livingRules == "luxurious")>>
+	<<if ($slaves[$i].rules.living == "luxurious")>>
 		Being continually trusted with this position @@.hotpink;increases $his devotion to you@@ and encourages $him to @@.mediumaquamarine;trust you in turn.@@
 		<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 	<<else>>
diff --git a/src/uncategorized/saRelationships.tw b/src/uncategorized/saRelationships.tw
index 2d3244df36d58741c8b4c0a21008938661ef3307..7d2e4ec1d15e22816043a61528aba9ae2ef3aebd 100644
--- a/src/uncategorized/saRelationships.tw
+++ b/src/uncategorized/saRelationships.tw
@@ -30,11 +30,11 @@
 				and loves you, $he begins to think of you as a $woman might think of $his lover — or _wifeP. $He knows $he cannot hope for more of a relationship with you than $he has, but $he finds emotional support in serving you nonetheless. @@.lightgreen;$He's become emotionally bonded to you!@@
 				<<set _SlaveI.relationship = -2>>
 			<</if>>
-		<<elseif _SlaveI.career == "a Futanari Sister" && _SlaveI.relationshipRules == "permissive">>
+		<<elseif _SlaveI.career == "a Futanari Sister" && _SlaveI.rules.relationship == "permissive">>
 			<<for _j = 0; _j < _SL; _j++>>
 				<<set _SlaveJ = $slaves[_j]>>
 				<<setLocalPronouns _SlaveJ 2>>
-				<<if (_SlaveJ.career == "a Futanari Sister") && _SlaveJ.relationshipRules == "permissive" && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.ID != _SlaveI.ID) && _SlaveJ.fetish != "mindbroken">>
+				<<if (_SlaveJ.career == "a Futanari Sister") && _SlaveJ.rules.relationship == "permissive" && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.ID != _SlaveI.ID) && _SlaveJ.fetish != "mindbroken">>
 					_SlaveI.slaveName greets _SlaveJ.slaveName with joy. It's not clear whether they ever knew each other during their lives as Futanari Sisters, but it seems that they believe themselves to be in a relationship by simple virtue of having been Sisters. In any case, _SlaveI.slaveName and _SlaveJ.slaveName @@.lightgreen;become inseparable lovers@@ instantly, as though there's no possibility they would do anything else. They're even surprised when other slaves ask them about it; it's as though they're unaware that other possibilities even exist.
 					<<set _SlaveJ.relationship = 4, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 4, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 					<<break>>
@@ -62,7 +62,7 @@
 			<<if _j == _SL>> /* gone through the full loop, found no matches, so reset _SlaveJ */
 				<<set _SlaveJ = null>>
 			<</if>>
-		<<elseif _SlaveI.relationshipRules != "restrictive">>
+		<<elseif _SlaveI.rules.relationship != "restrictive">>
 			<<if _SlaveI.devotion > -90>>
 				<<if _SlaveI.behavioralFlaw == "none">>
 					<<set _seed = random(1, 100)>>
@@ -76,7 +76,7 @@
 				<<setLocalPronouns _SlaveJ 2>>
 				<<if (_SlaveJ.ID != _SlaveI.ID) && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.assignment != "stay confined") && (_SlaveJ.fetish != "mindbroken")>>
 				<<if (_SlaveJ.ID == $Madam.ID) && (_SlaveI.assignment == "work in the brothel")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Madam, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -87,7 +87,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $DJ.ID) && (_SlaveI.assignment == "serve in the club")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the DJ, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -98,7 +98,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Milkmaid.ID) && (_SlaveI.assignment == "work in the dairy")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Milkmaid, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -109,7 +109,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Farmer.ID) && (_SlaveI.assignment == "work as a farmhand")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Farmer, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -120,7 +120,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Schoolteacher.ID) && (_SlaveI.assignment == "learn in the schoolroom")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Schoolteacher, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -131,7 +131,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Attendant.ID) && (_SlaveI.assignment == "rest in the spa")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName basks in the affection and care of the spa attendant, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -142,7 +142,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Stewardess.ID) && (_SlaveI.assignment == "work as a servant")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Stewardess, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -153,7 +153,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Wardeness.ID) && (_SlaveI.assignment == "be confined in the cellblock")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to earn the respect of the Wardeness, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -164,7 +164,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Concubine.ID) && (_SlaveI.assignment == "serve in the master suite")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName becomes especially close to the Concubine, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -176,7 +176,7 @@
 					<</if>>
 				<<elseif _SlaveJ.assignment == _SlaveI.assignment>>
 					<<if random(1, 100) > 50>>
-						<<if _SlaveJ.relationshipRules != "restrictive">>
+						<<if _SlaveJ.rules.relationship != "restrictive">>
 							_SlaveI.slaveName and _SlaveJ.slaveName see a lot of each other at work and @@.lightgreen;strike up a friendship.@@
 							<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 							<<break>>
@@ -188,8 +188,8 @@
 						<</if>>
 					<</if>>
 				<<elseif mutualChildren(_SlaveI, _SlaveJ, $slaves) > 0>>
-					<<if (_SlaveI.releaseRules != "restrictive") && _SlaveI.releaseRules != "masturbation" && _SlaveI.releaseRules != "chastity">>
-						<<if _SlaveJ.relationshipRules == "permissive">>
+					<<if (_SlaveI.rules.release != "restrictive") && _SlaveI.rules.release != "masturbation" && _SlaveI.rules.release != "chastity">>
+						<<if _SlaveJ.rules.relationship == "permissive">>
 							_SlaveI.slaveName and _SlaveJ.slaveName have <<if mutualChildren(_SlaveI, _SlaveJ, $slaves) == 0>>a child<<else>>children<</if>> living in your penthouse, so it's not surprising that their offspring brings them together. They have @@.lightgreen;become friends@@ for their child's sake.
 							<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 							<<break>>
@@ -199,8 +199,8 @@
 						<</if>>
 					<</if>>
 				<<elseif _SlaveJ.fetish == _SlaveI.fetish>>
-					<<if (_SlaveI.fetish != "none") && (_SlaveI.releaseRules != "restrictive") && _SlaveI.releaseRules != "masturbation" && _SlaveI.releaseRules != "chastity">>
-						<<if _SlaveJ.relationshipRules == "permissive">>
+					<<if (_SlaveI.fetish != "none") && (_SlaveI.rules.release != "restrictive") && _SlaveI.rules.release != "masturbation" && _SlaveI.rules.release != "chastity">>
+						<<if _SlaveJ.rules.relationship == "permissive">>
 							_SlaveI.slaveName and _SlaveJ.slaveName share sexual inclinations, so it's only natural that they @@.lightgreen;become friends with benefits.@@
 							<<set _SlaveJ.relationship = 3, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 3, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 							<<break>>
@@ -920,8 +920,8 @@
 					<</if>>
 				<</if>>
 			<</if>>
-		<<elseif _SlaveI.relationshipRules == "restrictive">>
-			<<if _SlaveJ.relationshipRules == "restrictive">>
+		<<elseif _SlaveI.rules.relationship == "restrictive">>
+			<<if _SlaveJ.rules.relationship == "restrictive">>
 				Since the rules forbid the relationship between _SlaveI.slaveName and _SlaveJ.slaveName, they are @@.lightsalmon;forced apart.@@
 				<<if _SlaveI.relationship > 1>>
 					<<set _SlaveI.relationship--, _SlaveJ.relationship = _SlaveI.relationship>>
@@ -937,8 +937,8 @@
 					<<set _SlaveJ.devotion -= 2>>
 				<</if>>
 			<</if>>
-		<<elseif _SlaveI.relationshipRules == "just friends">>
-			<<if _SlaveI.relationship > 2 && _SlaveJ.relationshipRules == "restrictive">>
+		<<elseif _SlaveI.rules.relationship == "just friends">>
+			<<if _SlaveI.relationship > 2 && _SlaveJ.rules.relationship == "restrictive">>
 				Since the sexual relationship between _SlaveI.slaveName and _SlaveJ.slaveName is against the rules, they are<<if (!hasAnyArms(_SlaveI)) && (!hasAnyArms(_SlaveJ))>>, metaphorically speaking,<</if>> @@.lightsalmon;forced to keep their hands to themselves.@@
 				<<set _SlaveJ.relationship = 2, _SlaveI.relationship = 2>>
 				<<if _SlaveI.devotion <= 50>>
@@ -1353,7 +1353,7 @@
 			<</if>>
 		<</if>> /* closes extended family mode */
 
-		<<if _SlaveI.releaseRules != "restrictive" && _SlaveI.releaseRules != "masturbation" && _SlaveI.releaseRules != "chastity">>
+		<<if _SlaveI.rules.release != "restrictive" && _SlaveI.rules.release != "masturbation" && _SlaveI.rules.release != "chastity">>
 			<<if (_SlaveI.sexualQuirk == "size queen") && (canPenetrate(_SlaveJ))>>
 			<<if _SlaveJ.dick > 5>>
 				$He's @@.hotpink;very happy@@ with $his romantic status, since it means $he regularly gets monster cock.
diff --git a/src/uncategorized/saRivalries.tw b/src/uncategorized/saRivalries.tw
index 32498fc50b7e75ca26f5f9d6282a9fdab685b284..e36309203ea13d390796d45acfbab753ae30a2a9 100644
--- a/src/uncategorized/saRivalries.tw
+++ b/src/uncategorized/saRivalries.tw
@@ -158,8 +158,8 @@
 	<<else>>
 		<<if $slaves[$i].need>>
 			<<if $universalRulesConsent == 0>>
-				<<if $slaves[$i].releaseRules != "restrictive" && $slaves[$i].releaseRules != "masturbation" && $slaves[$i].releaseRules != "chastity">>
-					<<if $slaves[_j].releaseRules != "restrictive">>
+				<<if $slaves[$i].rules.release != "restrictive" && $slaves[$i].rules.release != "masturbation" && $slaves[$i].rules.release != "chastity">>
+					<<if $slaves[_j].rules.release != "restrictive">>
 						<<if $slaves[$i].fetishKnown>>
 							<<if $slaves[$i].fetish == "sadist">>
 								$slaves[$i].slaveName is horny and sadistic, so $he rapes $his rival <<= SlaveFullName($slaves[_j])>> every chance $he gets; this @@.hotpink;thrills@@ $slaves[$i].slaveName, but $slaves[_j].slaveName is @@.golden;frightened@@ that you let it happen.
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 38b4b409fca6bd198a9a0cc26d542e0799487dad..97e0168ca594c99ea33196fe202d5a3a7e5f8daa 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -1,6 +1,6 @@
 :: SA rules [nobr]
 
-<<set _release = $slaves[$i].releaseRules>>
+<<set _release = $slaves[$i].rules.release>>
 
 /* TODO: may need updating to detail effects of chastity */
 
@@ -135,12 +135,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -158,7 +158,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -183,7 +183,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -193,7 +193,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -338,7 +338,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -470,7 +470,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -495,7 +495,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -505,7 +505,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -513,7 +513,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -532,7 +532,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -628,12 +628,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment between $his sets, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -651,7 +651,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -684,7 +684,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -694,7 +694,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -839,7 +839,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -943,7 +943,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -968,7 +968,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing, often on stage during a dance,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -978,7 +978,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -986,7 +986,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -1005,7 +1005,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1102,12 +1102,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				$He spends much of $his time with a pair of automatic breast pumps attached to $his chest. The constant stimulation will have $him milky soon enough.
 				<<set $slaves[$i].induceLactation += 8>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -1125,7 +1125,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -1158,7 +1158,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1240,7 +1240,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -1373,7 +1373,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given access to the amenities present for recovering slaves to pass the time.
 					<<if $slaves[$i].relationship > 0>>
@@ -1393,7 +1393,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -1403,7 +1403,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1411,7 +1411,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he spends $his time @@.gold;strapped@@ to $his bed until $he behaves.
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1425,7 +1425,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1473,12 +1473,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 3>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -1496,7 +1496,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -1521,7 +1521,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -1531,7 +1531,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1631,7 +1631,7 @@
 			<<elseif $slaves[$i].lips > 95>>
 				Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 				<<set $slaves[$i].devotion += 1>>
-			<<elseif $slaves[$i].speechRules == "restrictive">>
+			<<elseif $slaves[$i].rules.speech == "restrictive">>
 				Living under enforced silence @@.hotpink;molds $him@@ to your will.
 				<<set $slaves[$i].devotion += 1>>
 			<</if>>
@@ -1668,7 +1668,7 @@
 			<</if>>
 
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he @@.gold;spends $his day in solitary.@@
 					<<set $slaves[$i].trust -= 2*_punishments>>
@@ -1682,7 +1682,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1779,12 +1779,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 4>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -1802,7 +1802,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he usually spends soaking in a hot bath or enjoying the amenities $his facility has to offer.
 					<<if $slaves[$i].relationship > 0>>
@@ -1822,7 +1822,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -1832,7 +1832,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1975,7 +1975,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -2130,7 +2130,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he usually spends in a private bath<<if $Attendant != 0>>, enjoying $Attendant.slaveName's best care<</if>>.
 					<<if $slaves[$i].relationship > 0>>
@@ -2150,7 +2150,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2160,7 +2160,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -2168,7 +2168,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -2187,7 +2187,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -2284,12 +2284,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 4>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -2307,7 +2307,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he usually spends soaking in a hot bath or enjoying the amenities $his facility has to offer.
 					<<if $slaves[$i].relationship > 0>>
@@ -2327,7 +2327,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2337,7 +2337,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -2480,7 +2480,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -2635,7 +2635,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -2660,7 +2660,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2670,7 +2670,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -2678,7 +2678,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -2697,7 +2697,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -2805,12 +2805,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				$His lectures frequently include demonstrations on the proper way to induce lactation.
 				<<set $slaves[$i].induceLactation += 5>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -2828,7 +2828,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -2853,7 +2853,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2863,7 +2863,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3038,7 +3038,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -3143,7 +3143,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3168,7 +3168,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3178,7 +3178,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3186,7 +3186,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -3205,7 +3205,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -3302,12 +3302,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -3325,7 +3325,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3350,7 +3350,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3360,7 +3360,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3503,7 +3503,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -3642,7 +3642,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3667,7 +3667,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3677,7 +3677,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3685,7 +3685,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -3704,7 +3704,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -3801,12 +3801,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time hooked up to a milker to hasten $his milk production.
 				<<set $slaves[$i].induceLactation += 10>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses milkers whenever $he can,
 				<<set $servantMilkersMultiplier = 0.75>>
 				<<silently>><<include "SA get milked">><</silently>>
@@ -3819,7 +3819,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3844,7 +3844,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3854,7 +3854,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4013,7 +4013,7 @@
 					<<elseif $slaves[$i].lips > 95>>
 						Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 						<<set $slaves[$i].devotion += 1>>
-					<<elseif $slaves[$i].speechRules == "restrictive">>
+					<<elseif $slaves[$i].rules.speech == "restrictive">>
 						Living under enforced silence @@.hotpink;molds $him@@ to your will.
 						<<set $slaves[$i].devotion += 1>>
 					<</if>>
@@ -4199,7 +4199,7 @@
 					<</if>>
 
 					<<if _rewards > 0>>
-						<<switch $slaves[$i].standardReward>>
+						<<switch $slaves[$i].rules.reward>>
 						<<case "relaxation">>
 							$He's given free time, which $he
 							<<if $spa != 0>>
@@ -4224,7 +4224,7 @@
 							$He's @@.hotpink;rewarded@@ with
 							<<if $slaves[$i].clitPiercing == 3>>
 								sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-							<<elseif $slaves[$i].releaseRules == "sapphic">>
+							<<elseif $slaves[$i].rules.release == "sapphic">>
 								immediate sex with any nearby slave,
 							<<else>>
 								a quick climax from a vibrator,
@@ -4234,7 +4234,7 @@
 							<<set $slaves[$i].devotion += _rewards>>
 						<<default>>
 							$He's @@.hotpink;rewarded@@
-							<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+							<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 								and @@.gold;punished@@
 							<</if>>
 							situationally, letting $him develop normally.
@@ -4242,7 +4242,7 @@
 						<</switch>>
 					<</if>>
 					<<if _punishments > 0>>
-						<<switch $slaves[$i].standardPunishment>>
+						<<switch $slaves[$i].rules.punishment>>
 						<<case "confinement">>
 							When $he disobeys, $he spends $his times @@.gold;getting milked in a cramped dark stall@@ until $he behaves.
 							<<set $slaves[$i].trust -= _punishments>>
@@ -4256,7 +4256,7 @@
 							<<set $slaves[$i].devotion += _punishments>>
 							<<set $slaves[$i].trust -= _punishments>>
 						<<default>>
-							<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+							<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 								When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 							<</if>>
 							<<set $slaves[$i].trust -= _punishments>>
@@ -4354,12 +4354,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -4377,7 +4377,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -4402,7 +4402,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -4412,7 +4412,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4554,7 +4554,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -4739,7 +4739,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -4764,7 +4764,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -4774,7 +4774,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4782,7 +4782,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he spends $his times @@.gold;getting milked in a cramped dark stall@@ until $he behaves.
 					<<set $slaves[$i].trust -= _punishments>>
@@ -4796,7 +4796,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -4819,12 +4819,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				$He spends $his time away from you fervently working to induce lactation, eager to enjoy it with you.
 				<<set $slaves[$i].induceLactation += 9>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				$He doesn't need to do anything to maintain $his lactation as you personally see to it each night.
 				<<set $slaves[$i].lactationDuration = 2, $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>>
 			<</if>>
@@ -4834,7 +4834,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -4867,7 +4867,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4922,7 +4922,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -4967,7 +4967,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -5000,7 +5000,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -5008,7 +5008,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -5027,7 +5027,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -5067,7 +5067,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your Head Girl's will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your Head Girl's will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -5118,7 +5118,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -5143,7 +5143,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -5153,7 +5153,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -5161,7 +5161,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -5180,7 +5180,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -5321,7 +5321,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -5329,9 +5329,9 @@
 
 			<<if $slaves[$i].assignment != "be your Head Girl" && $slaves[$i].assignment != "guard you">>
 				<<if $roomsPopulation > $rooms>>
-					<<if $slaves[$i].livingRules == "luxurious">>
+					<<if $slaves[$i].rules.living == "luxurious">>
 						There are @@.yellow;too many slaves for the penthouse's individual rooms,@@ so $he moves out into the dormitory.
-						<<set $slaves[$i].livingRules = "normal">>
+						<<set $slaves[$i].rules.living = "normal">>
 						<<set $dormitoryPopulation += 1>>
 						<<if $slaves[$i].relationship >= 4>><<set $roomsPopulation -= 0.5>><<else>><<set $roomsPopulation -= 1>><</if>>
 					<</if>>
@@ -5339,7 +5339,7 @@
 			<</if>>
 
 			<<if ($slaves[$i].devotion <= 20)>>
-				<<if ($slaves[$i].livingRules == "spare")>>
+				<<if ($slaves[$i].rules.living == "spare")>>
 					The spare living conditions @@.hotpink;get $him used@@ to the routine of
 					<<if ($slaves[$i].trust > 20)>>
 						slavery and @@.gold;keep $him aware of $his lowly place.@@
@@ -5348,7 +5348,7 @@
 						slavery.
 					<</if>>
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif ($slaves[$i].livingRules == "normal")>>
+				<<elseif ($slaves[$i].rules.living == "normal")>>
 					The reasonable living conditions allow $him to @@.mediumaquamarine;feel self-reliant.@@
 					<<set $slaves[$i].trust += 1>>
 				<<else>>
@@ -5359,10 +5359,10 @@
 				<<if ($slaves[$i].ID == $HeadGirl.ID) && ($HGSuite == 1)>>
 					$He is @@.hotpink;very happy@@ with $his suite and @@.mediumaquamarine;trusts@@ you a bit more for providing it.
 					<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
-				<<elseif ($slaves[$i].livingRules == "luxurious")>>
+				<<elseif ($slaves[$i].rules.living == "luxurious")>>
 					$He is @@.hotpink;very happy@@ with $his little room and @@.mediumaquamarine;trusts@@ you a bit more for providing it.
 					<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
-				<<elseif ($slaves[$i].livingRules == "normal")>>
+				<<elseif ($slaves[$i].rules.living == "normal")>>
 					$He likes $his personal space in the dormitory.
 				<<elseif ($slaves[$i].trust > 40)>>
 					The spare living conditions @@.gold;remind $him not to get too comfortable@@ with $his life.
@@ -5373,7 +5373,7 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].livingRules != "luxurious">>
+			<<if $slaves[$i].rules.living != "luxurious">>
 				<<if $dormitoryPopulation > $dormitory>>
 					<<set _dormPop = $dormitoryPopulation - $dormitory>>
 					The slave dormitory is
@@ -5504,7 +5504,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -5529,7 +5529,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -5539,7 +5539,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -5547,7 +5547,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -5566,13 +5566,13 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<</switch>>
 			<</if>>
-			<<if $subSlaves > 0 && (_release == "permissive" || $slaves[$i].releaseRules == "sapphic") && $slaves[$i].assignment != "serve your other slaves">>
+			<<if $subSlaves > 0 && (_release == "permissive" || $slaves[$i].rules.release == "sapphic") && $slaves[$i].assignment != "serve your other slaves">>
 				<<set $slaves[$i].need -= (20*$subSlaves)>> /* make those serve your other slaves do some work for once */
 			<</if>>
 		<</switch>>
diff --git a/src/uncategorized/schoolroomReport.tw b/src/uncategorized/schoolroomReport.tw
index db373d022f46ba22a1144e76961bd1e8e56a2533..f61ea790805c1ca0792c8758f38b2d466137288f 100644
--- a/src/uncategorized/schoolroomReport.tw
+++ b/src/uncategorized/schoolroomReport.tw
@@ -28,8 +28,8 @@
 		<<set $slaves[_FLs].trust++>>
 	<</if>>
 	<<set $slaves[_FLs].devotion += _devBonus>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "dom">>
@@ -157,8 +157,8 @@
 	<<elseif ($slaves[$i].health < 90)>>
 		<<set $slaves[$i].health += 3>>
 	<</if>>
-	<<if $slaves[$i].livingRules != "normal">>
-		<<set $slaves[$i].livingRules = "normal">>
+	<<if $slaves[$i].rules.living != "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<</if>>
 	/% Education done? Has to be here before we run the SA's or there will be double entries for slave %/
 	<<if $slaves[$i].fetish == "mindbroken">>
diff --git a/src/uncategorized/schoolteacherWorkaround.tw b/src/uncategorized/schoolteacherWorkaround.tw
index dba9ce2a900c9f6d6b8fbf636a98190a1cc9cd01..5097c95eeae39781ab2034a13de6337b177dd9e8 100644
--- a/src/uncategorized/schoolteacherWorkaround.tw
+++ b/src/uncategorized/schoolteacherWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Schoolteacher")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Schoolteacher = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/servantsQuartersReport.tw b/src/uncategorized/servantsQuartersReport.tw
index 06d0562225ebb18244b5d86764bca5e1c44e2759..ec010ee868be85a9e64c6143bd7a4365695658ff 100644
--- a/src/uncategorized/servantsQuartersReport.tw
+++ b/src/uncategorized/servantsQuartersReport.tw
@@ -39,8 +39,8 @@
 			<<set _FLsFetish = 2, $slaves[_FLs].fetishStrength += 4>>
 		<</if>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<set $Stewardess = $slaves[_FLs]>>
 	<<setLocalPronouns $Stewardess>>
@@ -246,27 +246,27 @@
 	<</if>>
 	<<switch $servantsQuartersDecoration>>
 	<<case "Arabian Revivalist" "Aztec Revivalist" "Chattel Religionist" "Chinese Revivalist" "Degradationist" "Edo Revivalist" "Egyptian Revivalist" "Roman Revivalist" "Subjugationist" "Supremacist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<<case "Slave Professionalism">>
 		<<if $slaves[$i].intelligence+$slaves[$i].intelligenceImplant > 15>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<<else>>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<</if>>
 	<<case "Petite Admiration">>
 		<<if heightPass($slaves[$i])>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<<else>>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<</if>>
 	<<case "Statuesque Glorification">>
 		<<if heightPass($slaves[$i])>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<<else>>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<</if>>
 	<<default>>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<</switch>>
 	<<if $showEWD != 0>>
 		<br><br>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 7b0d3451c15f8be259af3377d1afab3b3ac10c71..e5d37af7a25e5fdf65a493c9c0cb6649244dbdf6 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -193,7 +193,7 @@ $NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSuppl
 	<<set $slaves[$i].skill.oral = 0>>
 <</if>>
 
-<<if ($seeDicks > 0) && (canPenetrate($slaves[$i])) && ($slaves[$i].releaseRules != "restrictive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+<<if ($seeDicks > 0) && (canPenetrate($slaves[$i])) && ($slaves[$i].rules.release != "restrictive") && ($slaves[$i].rules.release != "masturbation") && ($slaves[$i].rules.release != "chastity")>>
 	<<set $averageDick += $slaves[$i].dick, $slavesWithWorkingDicks++>>
 <</if>>
 
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 236138083cc8c15be10f8fa5a86998fb5f486c1b..fefcf47c7514b81c387cedceefaccac345156770 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1521,7 +1521,7 @@ Hormones: <strong><span id="hormones">
 	<<set $dormitoryPopulation = 0, $roomsPopulation = 0>>
 	<<for $i = 0; $i < _SL; $i++>>
 		<<if $slaves[$i].assignmentVisible == 1 && ($slaves[$i].assignment != "be your Head Girl" || $HGSuite != 1) && ($slaves[$i].assignment != "guard you" || $dojo <= 1)>>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<if $slaves[$i].relationship >= 4>>
 					<<set $roomsPopulation += 0.5>>
 				<<else>>
@@ -1532,7 +1532,7 @@ Hormones: <strong><span id="hormones">
 			<</if>>
 		<</if>>
 	<</for>>
-	Living standard: ''<span id="livingRules">$activeSlave.livingRules</span>.''
+	Living standard: ''<span id="livingRules">$activeSlave.rules.living</span>.''
 	<<if setup.facilityCareers.includes($activeSlave.assignment)>>
 		//$His living conditions are managed by $his assignment.//
 	<<elseif ($activeSlave.assignment == "be your Head Girl") && ($HGSuite == 1)>>
@@ -1540,40 +1540,40 @@ Hormones: <strong><span id="hormones">
 	<<elseif ($activeSlave.assignment == "guard you") && ($dojo > 1)>>
 		//$He has a comfortable room in the armory to call $his own.//
 	<<else>>
-		<<link "Spare">><<set $activeSlave.livingRules = "spare">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>> |
-		<<link "Normal">><<set $activeSlave.livingRules = "normal">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>> |
-		<<if $roomsPopulation <= $rooms-0.5>><<link "Luxurious">><<set $activeSlave.livingRules = "luxurious">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>><<else>>//No luxurious rooms available//<</if>>
+		<<link "Spare">><<set $activeSlave.rules.living = "spare">><<replace "#livingRules">>$activeSlave.rules.living<</replace>><</link>> |
+		<<link "Normal">><<set $activeSlave.rules.living = "normal">><<replace "#livingRules">>$activeSlave.rules.living<</replace>><</link>> |
+		<<if $roomsPopulation <= $rooms-0.5>><<link "Luxurious">><<set $activeSlave.rules.living = "luxurious">><<replace "#livingRules">>$activeSlave.rules.living<</replace>><</link>><<else>>//No luxurious rooms available//<</if>>
 	<</if>>
 
-	<br>Typical punishment: ''<span id="standardPunishment">$activeSlave.standardPunishment</span>.''
-	<<link "Confinement">><<set $activeSlave.standardPunishment = "confinement">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>> |
-	<<link "Whipping">><<set $activeSlave.standardPunishment = "whipping">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>> |
-	<<link "Chastity">><<set $activeSlave.standardPunishment = "chastity">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>> |
-	<<link "Situational">><<set $activeSlave.standardPunishment = "situational">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>>
+	<br>Typical punishment: ''<span id="standardPunishment">$activeSlave.rules.punishment</span>.''
+	<<link "Confinement">><<set $activeSlave.rules.punishment = "confinement">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>> |
+	<<link "Whipping">><<set $activeSlave.rules.punishment = "whipping">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>> |
+	<<link "Chastity">><<set $activeSlave.rules.punishment = "chastity">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>> |
+	<<link "Situational">><<set $activeSlave.rules.punishment = "situational">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>>
 	&nbsp;&nbsp;&nbsp;&nbsp;
-	Typical reward: ''<span id="standardReward">$activeSlave.standardReward</span>.''
-	<<link "Relaxation">><<set $activeSlave.standardReward = "relaxation">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>> |
-	<<link "Drugs">><<set $activeSlave.standardReward = "drugs">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>> |
-	<<link "Orgasm">><<set $activeSlave.standardReward = "orgasm">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>> |
-	<<link "Situational">><<set $activeSlave.standardReward = "situational">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>>
-
-	<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeSlave.releaseRules</span>.''
-	<<link "Permit masturbation and interslave sex">><<set $activeSlave.releaseRules = "permissive">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
-	<<link "Let $him get off with other slaves">><<set $activeSlave.releaseRules = "sapphic">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
+	Typical reward: ''<span id="standardReward">$activeSlave.rules.reward</span>.''
+	<<link "Relaxation">><<set $activeSlave.rules.reward = "relaxation">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>> |
+	<<link "Drugs">><<set $activeSlave.rules.reward = "drugs">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>> |
+	<<link "Orgasm">><<set $activeSlave.rules.reward = "orgasm">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>> |
+	<<link "Situational">><<set $activeSlave.rules.reward = "situational">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>>
+
+	<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeSlave.rules.release</span>.''
+	<<link "Permit masturbation and interslave sex">><<set $activeSlave.rules.release = "permissive">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
+	<<link "Let $him get off with other slaves">><<set $activeSlave.rules.release = "sapphic">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
 	<<if !isAmputee($activeSlave) && $activeSlave.fuckdoll == 0 && $activeSlave.fetish != "mindbroken">>
-		<<link "Restrict $him to masturbation only">><<set $activeSlave.releaseRules = "masturbation">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
+		<<link "Restrict $him to masturbation only">><<set $activeSlave.rules.release = "masturbation">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
 	<</if>>
-	<<link "Only with you">><<set $activeSlave.releaseRules = "restrictive">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
-	<<link "Have $him remain chaste">><<set $activeSlave.releaseRules = "chastity">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>>
+	<<link "Only with you">><<set $activeSlave.rules.release = "restrictive">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
+	<<link "Have $him remain chaste">><<set $activeSlave.rules.release = "chastity">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>>
 
 	<<if setup.facilityHeads.includes($activeSlave.assignment)>>
 		<<if $activeSlave.lactation != 2>>
-			<br>Lactation maintenance for facility heads: ''<span id="lactationRules">$activeSlave.lactationRules</span>.''
-			<<link "Left alone">><<set $activeSlave.lactationRules = "none">><<replace "#lactationRules">>$activeSlave.lactationRules<</replace>><</link>> |
+			<br>Lactation maintenance for facility heads: ''<span id="lactationRules">$activeSlave.rules.lactation</span>.''
+			<<link "Left alone">><<set $activeSlave.rules.lactation = "none">><<replace "#lactationRules">>$activeSlave.rules.lactation<</replace>><</link>> |
 			<<if $activeSlave.lactation == 0>>
-				<<link "Induce lactation">><<set $activeSlave.lactationRules = "induce">><<replace "#lactationRules">>$activeSlave.lactationRules<</replace>><</link>>
+				<<link "Induce lactation">><<set $activeSlave.rules.lactation = "induce">><<replace "#lactationRules">>$activeSlave.rules.lactation<</replace>><</link>>
 			<<else>>
-				<<link "Maintain lactation">><<set $activeSlave.lactationRules = "maintain">><<replace "#lactationRules">>$activeSlave.lactationRules<</replace>><</link>>
+				<<link "Maintain lactation">><<set $activeSlave.rules.lactation = "maintain">><<replace "#lactationRules">>$activeSlave.rules.lactation<</replace>><</link>>
 			<</if>>
 		<</if>>
 	<</if>>
@@ -1612,19 +1612,19 @@ Hormones: <strong><span id="hormones">
 <</if>>
 
 <<if $activeSlave.voice != 0>>
-	<br>Speech rules: ''<span id="speechRules">$activeSlave.speechRules</span>.''
-	<<link "Restrictive">><<set $activeSlave.speechRules = "restrictive">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>> |
-	<<link "Permissive">><<set $activeSlave.speechRules = "permissive">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>>
-	<<if $activeSlave.accent > 0 && $activeSlave.accent < 4>>| <<link "Accent elimination">><<set $activeSlave.speechRules = "accent elimination">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>>
-	<<elseif $activeSlave.accent > 3>>| <<link "Language lessons">><<set $activeSlave.speechRules = "language lessons">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>>
+	<br>Speech rules: ''<span id="speechRules">$activeSlave.rules.speech</span>.''
+	<<link "Restrictive">><<set $activeSlave.rules.speech = "restrictive">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>> |
+	<<link "Permissive">><<set $activeSlave.rules.speech = "permissive">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>>
+	<<if $activeSlave.accent > 0 && $activeSlave.accent < 4>>| <<link "Accent elimination">><<set $activeSlave.rules.speech = "accent elimination">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>>
+	<<elseif $activeSlave.accent > 3>>| <<link "Language lessons">><<set $activeSlave.rules.speech = "language lessons">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>>
 	<</if>>
 <</if>>
 
 <br>
-Relationship rules: ''<span id="relationshipRules">$activeSlave.relationshipRules</span>.''
-<<link "Restrictive">><<set $activeSlave.relationshipRules = "restrictive">><<replace "#relationshipRules">>$activeSlave.relationshipRules<</replace>><</link>> |
-<<link "Just friends">><<set $activeSlave.relationshipRules = "just friends">><<replace "#relationshipRules">>$activeSlave.relationshipRules<</replace>><</link>> |
-<<link "Permissive">><<set $activeSlave.relationshipRules = "permissive">><<replace "#relationshipRules">>$activeSlave.relationshipRules<</replace>><</link>>
+Relationship rules: ''<span id="relationshipRules">$activeSlave.rules.relationship</span>.''
+<<link "Restrictive">><<set $activeSlave.rules.relationship = "restrictive">><<replace "#relationshipRules">>$activeSlave.rules.relationship<</replace>><</link>> |
+<<link "Just friends">><<set $activeSlave.rules.relationship = "just friends">><<replace "#relationshipRules">>$activeSlave.rules.relationship<</replace>><</link>> |
+<<link "Permissive">><<set $activeSlave.rules.relationship = "permissive">><<replace "#relationshipRules">>$activeSlave.rules.relationship<</replace>><</link>>
 
 <<if $studio == 1>>
 
diff --git a/src/uncategorized/slaveStats.tw b/src/uncategorized/slaveStats.tw
index 781d7f683e3b914955404fc214a4cfe97238e96b..f49783350c5212be17ade0f99bdfbd7323da309f 100644
--- a/src/uncategorized/slaveStats.tw
+++ b/src/uncategorized/slaveStats.tw
@@ -50,13 +50,13 @@ Aphrodisiacs: $activeSlave.aphrodisiacs
 
 <br><br>Rules: 
 Current: $activeSlave.currentRules, 
-Living: $activeSlave.livingRules, 
-Speech: $activeSlave.speechRules, 
-Release: $activeSlave.releaseRules
+Living: $activeSlave.rules.living, 
+Speech: $activeSlave.rules.speech, 
+Release: $activeSlave.rules.release
 
 <br>Standard: 
-Punishment: $activeSlave.standardPunishment, 
-Reward: $activeSlave.standardReward
+Punishment: $activeSlave.rules.punishment, 
+Reward: $activeSlave.rules.reward
 <br>UseRulesAssistant: $activeSlave.useRulesAssistant, 
 ChoosesOwnChastity: $activeSlave.choosesOwnChastity
 
@@ -273,7 +273,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		Induce: $activeSlave.induceLactation,
 		Adaptation: $activeSlave.lactationAdaptation
 		<br>MammaryCount: $activeSlave.counter.mammary
-		<br>LactationRules: $activeSlave.lactationRules
+		<br>LactationRules: $activeSlave.rules.lactation
 		<br>BreastMesh: $activeSlave.breastMesh
 		
 		<br><br>
@@ -473,7 +473,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		RapidCellGrowth: $activeSlave.geneMods.rapidCellGrowth, 
 		
 		<br><br> <h2>Relationships</h2>
-		<br>Rules: $activeSlave.relationshipRules
+		<br>Rules: $activeSlave.rules.relationship
 		<br>Relation: $activeSlave.relation,
 		Target: $activeSlave.relationTarget
 		<br>Relationship: $activeSlave.relationship,
diff --git a/src/uncategorized/spaReport.tw b/src/uncategorized/spaReport.tw
index 11b411961e9ce3a02a962d595b3cc80a63aa0f04..089f93be4e74d0e52e71925b81a69a1718efb2cb 100644
--- a/src/uncategorized/spaReport.tw
+++ b/src/uncategorized/spaReport.tw
@@ -21,8 +21,8 @@
 	<<if $slaves[_FLs].trust < 60>>
 		<<set $slaves[_FLs].trust++>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<set _FLsFetish = 0>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
@@ -272,11 +272,11 @@
 	<</if>>
 	<<switch $spaDecoration>>
 	<<case "Chattel Religionist" "Chinese Revivalist">>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<<case "Degradationist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<<default>>
-		<<set $slaves[$i].livingRules = "luxurious">>
+		<<set $slaves[$i].rules.living = "luxurious">>
 	<</switch>>
 	<<if ($slaves[$i].health >= 20) && ($slaves[$i].trust > 60) && ($slaves[$i].devotion > 60) && ($slaves[$i].fetish != "mindbroken") && ($slaves[$i].sexualFlaw == "none") && ($slaves[$i].behavioralFlaw == "none")>>
 		<br><br>''__@@.pink;$slaves[$i].slaveName@@__'' is feeling well enough to leave $spaName, so @@.yellow;$his assignment has defaulted to rest.@@
diff --git a/src/uncategorized/stewardessWorkaround.tw b/src/uncategorized/stewardessWorkaround.tw
index 99c517aa1df49bda08582aa8d438d569a6f9c8ed..92c6ae83a282fa710f51b052b77da4592ab4f56a 100644
--- a/src/uncategorized/stewardessWorkaround.tw
+++ b/src/uncategorized/stewardessWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Stewardess")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Stewardess = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/wardenessWorkaround.tw b/src/uncategorized/wardenessWorkaround.tw
index 954e4f63ab66615fd1703ea25a0d5aa74fa56dff..57a3607a0c400ab0c53cc11bbfc48a5f08060d40 100644
--- a/src/uncategorized/wardenessWorkaround.tw
+++ b/src/uncategorized/wardenessWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Wardeness")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Wardeness = $slaves[$i]>>
 <</if>>
 
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index d9fc99a5ca8718eb513cbb543c68ad1238f1f700..4cd8914ed198b50129656c165c877f8f523ef35e 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -4064,7 +4064,7 @@ $He's got a
 <<= App.Desc.mods($activeSlave, "clit")>>
 
 <<if $activeSlave.fuckdoll == 0>>
-	<<if ($activeSlave.releaseRules == "permissive") || $activeSlave.releaseRules == "masturbation">>
+	<<if ($activeSlave.rules.release == "permissive") || $activeSlave.rules.release == "masturbation">>
 		<<if (($activeSlave.aphrodisiacs > 0) || ($activeSlave.inflationType == "aphrodisiac")) && $activeSlave.drugs != "priapism agents">>
 			<<if ($activeSlave.aphrodisiacs > 1) || ($activeSlave.inflationType == "aphrodisiac" && $activeSlave.inflation > 1)>>
 				<<if ($activeSlave.dick != 0) && ($activeSlave.hormoneBalance >= 100) && (!hasAnyArms($activeSlave))>>
@@ -16813,10 +16813,10 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 <<if $activeSlave.accent != 0>>
 	<<if $activeSlave.accent == 1>>
 		<<set _accent = either("a beautiful", "a distinctive", "an intriguing", "a light", "a lovely", "a mild", "a pleasant", "a rich", "a slight", "a smooth")>>
-		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent<<if $activeSlave.speechRules == "accent elimination">>, which the rules encourage $him to suppress<</if>>.
+		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent<<if $activeSlave.rules.speech == "accent elimination">>, which the rules encourage $him to suppress<</if>>.
 	<<elseif $activeSlave.accent == 2>>
 		<<set _accent = either("a broad", "a harsh", "a heavy", "an intense", "a marked", "a noticeable", "a rough", "a significant", "a stressed", "a strong", "a thick")>>
-		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent that can be hard to understand<<if $activeSlave.speechRules == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
+		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent that can be hard to understand<<if $activeSlave.rules.speech == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
 	<<else>>
 		$He speaks little $language, but understands enough to be given orders.
 	<</if>>