diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 26fc203c8b9359711d15e25580028c60b1f0fd3f..488f7d63042db226e989c7e02309fcb2144f3f48 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -1658,6 +1658,8 @@ window.rulesAssistantOptions = (function() {
 			if (V.bellyImplants > 0) {
 				this.appendChild(new BellyImplantList());
 			}
+			this.appendChild(new EarShapeSurgeryList());
+			this.appendChild(new HornSurgeryList());
 		}
 	}
 
@@ -3928,6 +3930,37 @@ window.rulesAssistantOptions = (function() {
 			this.onchange = (value) => current_rule.set.surgery.hair = value;
 		}
 	}
+	
+	class EarShapeSurgeryList extends RadioSelector {
+		constructor() {
+			const items = [
+				["normal ears", 1],
+				["small eflin ears", 2],
+				["long elfin ears", 3],
+				["bovine ears", 4],
+			];
+			super("Ear Shape", items, true);
+			this.setValue(current_rule.set.surgery.earShape);
+			this.onchange = (value) => current_rule.set.surgery.earShape = value;
+		}
+	}
+
+	class HornSurgeryList extends RadioSelector {
+		constructor() {
+			const items = [
+				["none", 1],
+				["curved succubus horns", 2],
+				["backswept horns", 3],
+				["cow horns", 4],
+				["one long oni horn", 5],
+				["two long oni horns", 6],
+				["small horns", 7],
+			];
+			super("Horn Implants", items, true);
+			this.setValue(current_rule.set.surgery.horn);
+			this.onchange = (value) => current_rule.set.surgery.horn = value;
+		}
+	}
 
 	class AutomaticAssignmentList extends ListSelector {
 		constructor() {