diff --git a/src/futureSocieties/fsPassage.js b/src/futureSocieties/fsPassage.js
index 2169a34f938d5d574a1147e8fbe4bac21265e073..9a63c3ded1977f8c7bd83a22a10163134e079d94 100644
--- a/src/futureSocieties/fsPassage.js
+++ b/src/futureSocieties/fsPassage.js
@@ -387,7 +387,7 @@ App.UI.fsPassage = function() {
 				r.push(`Select race:`);
 				const select = document.createElement("select");
 				r.push(select);
-				for (const race of Array.from(App.Data.misc.filterRaces.keys()).filter(race => race !== arc.FSSubjugationistRace)) { // Subjugation race cannot be superior, so remove
+				for (const race of App.Utils.getRaceArrayWithoutParamRace(arc.FSSubjugationistRace)) { // Subjugation race cannot be superior, so remove
 					const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race));
 					choice.value = race;
 					if (race === arc.FSSupremacistRace) {
@@ -431,7 +431,7 @@ App.UI.fsPassage = function() {
 				const select = document.createElement("select");
 				r.push(select);
 
-				for (const race of Array.from(App.Data.misc.filterRaces.keys()).filter(race => race !== arc.FSSupremacistRace)) { // Superior race cannot be subj, so remove
+				for (const race of App.Utils.getRaceArrayWithoutParamRace(arc.FSSupremacistRace)) { // Superior race cannot be subj, so remove
 					const choice = App.UI.DOM.appendNewElement("option", select, capFirstChar(race));
 					choice.value = race;
 					if (race === arc.FSSubjugationistRace) {
diff --git a/src/js/utilsMisc.js b/src/js/utilsMisc.js
index 6faa4928bbe1a727640c2af2064a75fd42e0c4df..d25cce3b1839a8af616fbcb6ef8c2dca3993b0a0 100644
--- a/src/js/utilsMisc.js
+++ b/src/js/utilsMisc.js
@@ -112,15 +112,9 @@ App.Utils.removeArticles = function(str) {
 };
 
 /**
+ * @param {FC.Zeroable<FC.Race>} badRace
  * @returns {Array<FC.Race>}
  */
-App.Utils.getNonSubjugationistSlaveRaces = function() {
-	return Array.from(setup.filterRaces.keys()).filter(race => race !== V.arcologies[0].FSSubjugationistRace);
-};
-
-/**
- * @returns {Array<FC.Race>}
- */
-App.Utils.getNonSupremacistSlaveRaces = function() {
-	return Array.from(setup.filterRaces.keys()).filter(race => race !== V.arcologies[0].FSSupremacistRace);
+App.Utils.getRaceArrayWithoutParamRace = function(badRace) {
+	return Array.from(setup.filterRaces.keys()).filter(race => race !== badRace);
 };
diff --git a/src/npc/generate/generateGenetics.js b/src/npc/generate/generateGenetics.js
index 1b509dc1cecd329857e62a87bcca645dd220cbad..b82db10c716b1cb9bb415da7564614ab7ecd11cb 100644
--- a/src/npc/generate/generateGenetics.js
+++ b/src/npc/generate/generateGenetics.js
@@ -241,7 +241,7 @@ globalThis.generateGenetics = (function() {
 		if (((actor2 === -2 || actor2 === -5) && V.arcologies[0].FSSupremacistLawME === 1) || (actor2 === -6 && V.arcologies[0].FSSupremacist !== "unset")) {
 			fatherRace = V.arcologies[0].FSSupremacistRace;
 		} else if (((actor2 === -2 || actor2 === -5) && V.arcologies[0].FSSubjugationistLawME === 1) || (actor2 === -6 && V.arcologies[0].FSSubjugationist !== "unset")) {
-			fatherRace = App.Utils.getNonSubjugationistSlaveRaces().random();
+			fatherRace = App.Utils.getRaceArrayWithoutParamRace(V.arcologies[0].FSSubjugationistRace).random();
 		}
 	}
 
diff --git a/src/npc/generate/generateNewSlaveJS.js b/src/npc/generate/generateNewSlaveJS.js
index fdc566a4225eb90f8a9e072c6adfd473bd441fcb..6c995b5c639363cab10e6b204c09d83d026644f6 100644
--- a/src/npc/generate/generateNewSlaveJS.js
+++ b/src/npc/generate/generateNewSlaveJS.js
@@ -49,7 +49,7 @@ globalThis.GenerateNewSlave = (function() {
 			if (V.arcologies[0].FSSupremacistLawME === 1) {
 				x.race = V.arcologies[0].FSSupremacistRace;
 			} else if (V.arcologies[0].FSSubjugationistLawME === 1) {
-				x.race = App.Utils.getNonSubjugationistSlaveRaces().random();
+				x.race = App.Utils.getRaceArrayWithoutParamRace(V.arcologies[0].FSSubjugationistRace).random();
 			} else {
 				x.race = 0;
 			}
diff --git a/src/npc/generate/heroCreator.js b/src/npc/generate/heroCreator.js
index 2d7148c72e3b2525d4f171b58569303f09bfe785..171d67ce0bdb16c1b3f5dbaa8af00c4212ddcb40 100644
--- a/src/npc/generate/heroCreator.js
+++ b/src/npc/generate/heroCreator.js
@@ -68,13 +68,13 @@ App.Utils.getHeroSlave = function(heroSlave) {
 	// Nationalities, races, surnames random fill
 	if (!heroSlave.nationality) {
 		// Check for a pre-set race and if the nationality fits, else regenerate
-		if (heroSlave.race && Array.from(setup.filterRaces.keys()).includes(heroSlave.race)) {
+		if (heroSlave.race && setup.filterRaces.has(heroSlave.race)) {
 			raceToNationality(heroSlave);
 		} else {
 			heroSlave.nationality = hashChoice(V.nationalities);
 		}
 	}
-	if (!heroSlave.race || !Array.from(setup.filterRaces.keys()).includes(heroSlave.race)) {
+	if (!heroSlave.race || !setup.filterRaces.has(heroSlave.race)) {
 		nationalityToRace(heroSlave);
 	}
 	if (!heroSlave.birthSurname && heroSlave.birthSurname !== "") {
diff --git a/src/uncategorized/pHostageAcquisition.tw b/src/uncategorized/pHostageAcquisition.tw
index 78aa833c9f603a1f391b3cbb90f621cb06541366..8a2ff88737a622ff2a26cd7171e9572757f8738c 100644
--- a/src/uncategorized/pHostageAcquisition.tw
+++ b/src/uncategorized/pHostageAcquisition.tw
@@ -83,7 +83,7 @@ Your hired mercenaries are en route now with your precious cargo.
 		<<if $arcologies[0].FSSubjugationistRace != 0>>
 			<<set _notSupreme = $arcologies[0].FSSubjugationistRace>>
 		<<else>>
-			<<set _races = App.Utils.getNonSupremacistSlaveRaces>>
+			<<set _races = App.Utils.getRaceArrayWithoutParamRace($arcologies[0].FSSupremacistRace)>>
 			<<set _notSupreme = _races.random()>>
 		<</if>>
 		<<run WombFatherRace($hostage, _notSupreme)>>
diff --git a/src/uncategorized/pRivalryCapture.js b/src/uncategorized/pRivalryCapture.js
index 5e6ea55c4de28154f0ae877c2960423b7a7cb677..42ab402d3fb7e2edfced69eae5e0cbaf406f72f7 100644
--- a/src/uncategorized/pRivalryCapture.js
+++ b/src/uncategorized/pRivalryCapture.js
@@ -76,7 +76,7 @@ globalThis.pRivalryCapture = function() {
 	function createRival() {
 		let slave;
 		const rivalTypeArray = [];
-		/** @type {string} */
+		/** @type {FC.Race} */
 		let race;
 		let minAge;
 		let maxAge;
@@ -103,7 +103,7 @@ globalThis.pRivalryCapture = function() {
 		}
 		rivalType = rivalTypeArray.random();
 
-		if (Array.from(setup.filterRaces.keys()).includes(V.rivalRace)) {
+		if (V.rivalRace && setup.filterRaces.has(V.rivalRace)) {
 			race = V.rivalRace;
 		}
 		switch (rivalType) {