diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw
index 6bbe2ba0117670ebde5697bb7dda5dedc128731d..47fe54b998c6c475fe39d7d74c16b8f41ad0cbc7 100644
--- a/src/utility/raWidgets.tw
+++ b/src/utility/raWidgets.tw
@@ -151,36 +151,37 @@
 <<set _milked = false>>
 <<set _subordinate = false>>
 <<set _gloryhole = false>>
-
-<<for _a = $currentRule.assignment.length; _a >= 0; _a-->>
-	<<if $currentRule.assignment[_a] == "rest">>
-		<<set _rest = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "please you">>
-		<<set _fucktoy = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "be a servant">>
-		<<set _servant = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "whore">>
-		<<set _whore = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "work a glory hole">>
-		<<set _gloryhole = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "get milked">>
-		<<set _milked = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "serve the public">>
-		<<set _public = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "be a subordinate slave">>
-		<<set _subordinate = true>>
-	<</if>>
-	<<if $currentRule.assignment[_a] == "stay confined">>
-		<<set _confined = true>>
-	<</if>>
-<</for>>
+<<if def $currentRule.assignment>>
+	<<for _a = $currentRule.assignment.length; _a >= 0; _a-->>
+		<<if $currentRule.assignment[_a] == "rest">>
+			<<set _rest = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "please you">>
+			<<set _fucktoy = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "be a servant">>
+			<<set _servant = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "whore">>
+			<<set _whore = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "work a glory hole">>
+			<<set _gloryhole = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "get milked">>
+			<<set _milked = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "serve the public">>
+			<<set _public = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "be a subordinate slave">>
+			<<set _subordinate = true>>
+		<</if>>
+		<<if $currentRule.assignment[_a] == "stay confined">>
+			<<set _confined = true>>
+		<</if>>
+	<</for>>
+<</if>>
 
 <<if _rest || _fucktoy || _servant || _confined || _whore || _public || _milked || _subordinate || _gloryhole>>
   Apply to assignments:
@@ -406,35 +407,37 @@
 <<set _milked = false>>
 <<set _subordinate = false>>
 <<set _gloryhole = false>>
-<<for _a = $currentRule.excludeAssignment.length; _a >= 0; _a-->>
-<<if $currentRule.excludeAssignment[_a] == "rest">>
-	<<set _rest = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "please you">>
-	<<set _fucktoy = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "be a servant">>
-	<<set _servant = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "whore">>
-	<<set _whore = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "work a glory hole">>
-	<<set _gloryhole = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "get milked">>
-	<<set _milked = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "serve the public">>
-	<<set _public = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "be a subordinate slave">>
-	<<set _subordinate = true>>
-<</if>>
-<<if $currentRule.excludeAssignment[_a] == "stay confined">>
-	<<set _confined = true>>
+<<if def $currentRule.excludeAssignment>>
+	<<for _a = $currentRule.excludeAssignment.length; _a >= 0; _a-->>
+		<<if $currentRule.excludeAssignment[_a] == "rest">>
+			<<set _rest = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "please you">>
+			<<set _fucktoy = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "be a servant">>
+			<<set _servant = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "whore">>
+			<<set _whore = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "work a glory hole">>
+			<<set _gloryhole = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "get milked">>
+			<<set _milked = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "serve the public">>
+			<<set _public = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "be a subordinate slave">>
+			<<set _subordinate = true>>
+		<</if>>
+		<<if $currentRule.excludeAssignment[_a] == "stay confined">>
+			<<set _confined = true>>
+		<</if>>
+	<</for>>
 <</if>>
-<</for>>
 <<if _rest || _fucktoy || _servant || _confined || _whore || _public || _milked || _subordinate || _gloryhole>>
   Include all assignments except:
 	<<link "None">>
@@ -443,7 +446,7 @@
 		<<RAChangeSave>>
 		<<RAChangeApply>>
 	<</link>> |
-<<elseif $currentRule.assignment.length > 0>>
+<<elseif (def $currentRule.assignment) && ($currentRule.assignment.length > 0)>>
   @@.gray;Exclude assignments:@@
 	''None'' |
 <<else>>
@@ -650,7 +653,7 @@
 <<replace #applyfacility>>
 <<if ($HGSuite > 0) || ($brothel > 0) || ($club > 0) || ($arcade > 0) || ($dairy > 0) || ($servantsQuarters > 0) || ($masterSuite > 0) || ($schoolroom > 0) || ($spa > 0) || ($clinic > 0) || ($cellblock > 0)>>
 <br><br>
-<<if ($currentRule.facility.length > 0)>>
+<<if (def $currentRule.facility) && ($currentRule.facility.length > 0)>>
   Apply to facilities:
 	<<link "None">>
 		<<set $currentRule.facility = []>>
@@ -941,7 +944,7 @@
 <<replace #excludefacility>>
 <<if ($HGSuite > 0) || ($brothel > 0) || ($club > 0) || ($arcade > 0) || ($dairy > 0) || ($servantsQuarters > 0) || ($masterSuite > 0) || ($schoolroom > 0) || ($spa > 0) || ($clinic > 0) || ($cellblock > 0)>>
 <br>
-<<if ($currentRule.excludeFacility.length > 0)>>
+<<if (def $currentRule.excludeFacility) && ($currentRule.excludeFacility.length > 0)>>
   Applying to all facilities except:
 	<<link "None">>
 		<<set $currentRule.excludeFacility = []>>
@@ -950,7 +953,7 @@
 		<<RAChangeSave>>
 		<<RAChangeApply>>
 	<</link>>
-<<elseif $currentRule.facility.length > 0>>
+<<elseif (def $currentRule.facility) && ($currentRule.facility.length > 0)>>
   @@.gray;Exclude facilities:@@
 	''None''
 <<else>>