diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw
index 2b7898375cc748996444775ba45d740cbae7d5b7..a456dac92a11b97cd3da1b97ba31eb5fdd3027ed 100644
--- a/src/js/DefaultRules.tw
+++ b/src/js/DefaultRules.tw
@@ -53,6 +53,7 @@ window.DefaultRules = (function() {
 		ProcessSmartPiercings(slave, rule);
 		ProcessTattoos(slave, rule);
 		ProcessPorn(slave, rule);
+		ProcessLabel(slave, rule);
 		return r;
 	}
 
@@ -2183,6 +2184,13 @@ window.DefaultRules = (function() {
 			}
 		}
 	}
+	
+	function ProcessLabel(slave, rule) {
+		if (rule.label !== "no default setting" && slave.customLabel !== rule.label) {
+			slave.customLabel = rule.label;
+			r += `<br>${slave.slaveName}'s label has been set to ${rule.label}`;
+		}
+	}
 
 	return DefaultRules;
 })();
diff --git a/src/js/rulesAssistant.tw b/src/js/rulesAssistant.tw
index 8ade85b9a42c96bb14929133ff34289bb5f6b8f6..2116d3a4d48478d80ea42a5b3fbf5246abab99c2 100644
--- a/src/js/rulesAssistant.tw
+++ b/src/js/rulesAssistant.tw
@@ -289,6 +289,7 @@ window.emptyDefaultRule = function emptyDefaultRule() {
 			pregSpeed: "no default setting",
 			bellyImplantVol: -1,
 			teeth: "no default setting",
+			label: "no default setting",
 		}
 	};
 	return rule;
diff --git a/src/js/rulesAssistantOptions.tw b/src/js/rulesAssistantOptions.tw
index dd4a98aa105dc16bfd7224fd42bd2e9fc77bf06a..e42f161bc1d53ce764ca5babe06b2181558da7d1 100644
--- a/src/js/rulesAssistantOptions.tw
+++ b/src/js/rulesAssistantOptions.tw
@@ -890,6 +890,7 @@ window.rulesAssistantOptions = (function() {
 			this.appendChild(new AutosurgerySection());
 			this.appendChild(new RegimenSection());
 			this.appendChild(new BehaviourSection());
+			this.appendChild(new OtherSection());
 		}
 
 		render() {
@@ -960,6 +961,13 @@ window.rulesAssistantOptions = (function() {
 				this.appendChild(new PornList());
 		}
 	}
+	
+	class OtherSection extends Section {
+		constructor() {
+			super("Other Settings");
+			this.appendChild(new LabelList());
+		}
+	}
 
 	class CosmeticSection extends Section {
 		constructor() {
@@ -3132,5 +3140,16 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 	
+	class LabelList extends List {
+		constructor() {
+			const items = [
+				["no default setting"],
+			];
+			super("Custom label", items, true);
+			this.setValue(current_rule.set.label);
+			this.onchange = (value) => current_rule.set.label = value;
+		}
+	}
+	
 	return rulesAssistantOptions;
 })();
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 87c736cf6b95d1689b18f463c83c281344cb1d36..22778d4a1085b9fa3e0b28465bb8124d6ff3cc19 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -2946,6 +2946,6 @@ Done!
 	else x.set.preg = false;
 })>>
 
-<<run $defaultRules.filter(x => !([1, 0, "no default setting"].includes(x.set.haircuts))).forEach(x => {
-	x.set.haircuts = "no default setting";
-})>>
+<<run $defaultRules.filter(x => x.set.haircuts === undefined).forEach(x => { x.set.haircuts = "no default setting"; })>>
+
+<<run $defaultRules.filter(x => x.set.label === undefined).forEach(x => { x.set.label = "no default setting"; }>>