diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index c199a8fe389264ff516ca23df376ce001fba7a47..791acb16caeae224a1ed65c20aeb028ad8537a16 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -2312,6 +2312,16 @@ window.DefaultRules = (function() {
 				}
 			}
 		}
+		
+		if (rule.hornColor !== undefined && (rule.hornColor !== null)) {
+			if (slave.horn !== "none") {
+				if ((slave.hornColor !== rule.hornColor)) {
+					slave.hornColor = rule.hornColor;
+					cashX(forceNeg(V.modCost), "slaveMod", slave);
+					r += `<br>${slave.slaveName}'s horns has been dyed ${rule.hornColor}.`;
+				}
+			}
+		}
 
 		if (rule.hStyle !== undefined && (rule.hStyle !== null)) {
 			if (slave.bald !== 1) {
diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index cbdb8a46604a12517629269ac2d4be9bf85c0380..6a2e0d6e2a20db47d6d0993f4232b6e34b3300ce 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -296,6 +296,7 @@ App.RA.newRule = function() {
 			makeup: null,
 			nails: null,
 			hColor: null,
+			hornColor: null
 			hLength: null,
 			haircuts: null,
 			hStyle: null,
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 488f7d63042db226e989c7e02309fcb2144f3f48..f910aab6596f66d7e8e08295f08b09410e29796b 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -1594,6 +1594,7 @@ window.rulesAssistantOptions = (function() {
 			this.appendChild(new ArmpitHairStyleList());
 			this.appendChild(new SkinColorList());
 			this.appendChild(new MarkingsList());
+			this.appendChild(new HornColorList());
 		}
 	}
 
@@ -3011,6 +3012,40 @@ window.rulesAssistantOptions = (function() {
 			this.onchange = (value) => current_rule.set.hColor = value;
 		}
 	}
+	
+	class HornColorList extends ListSelector {
+		constructor() {
+			const pairs = [
+				["golden"],
+				["copper"],
+				["red"],
+				["deep red"],
+				["green"],
+				["pink"],
+				["dark brown"],
+				["brown"],
+				["burgundy"],
+				["jet black"],
+				["black"],
+				["grey"],
+				["silver"],
+				["white"],
+				["blue-violet"],
+				["purple"],
+				["dark orchid"],
+				["sea green"],
+				["green-yellow"],
+				["dark blue"],
+				["blazing red"],
+				["neon green"],
+				["neon blue"],
+				["neon pink"]
+			];
+			super("Horn color", pairs);
+			this.setValue(current_rule.set.hornColor);
+			this.onchange = (value) => current_rule.set.hornColor = value;
+		}
+	}
 
 	class HairStyleList extends ListSelector {
 		constructor() {