diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index 473f3ad1cbbfe521f93c66551ac1e7de91dc8895..727b6941bbb3bbb935f4bab923a84e454ab290ae 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -2422,12 +2422,12 @@ App.Update.neighborArcologyCheatDatatypeCleanup = function() {
 				}
 			}
 		}
-
-		if (arc.FSSupremacist !== "unset" && !setup.filterRaces.keys().includes(arc.FSSupremacistRace)) {
-			arc.FSSupremacistRace = setup.filterRaces.keys().random();
+		const raceArray = Array.from(setup.filterRaces.keys());
+		if (arc.FSSupremacist !== "unset" && !raceArray.includes(arc.FSSupremacistRace)) {
+			arc.FSSupremacistRace = raceArray.random();
 		}
-		if (arc.FSSubjugationist !== "unset" && !setup.filterRaces.keys().includes(arc.FSSubjugationistRace)) {
-			arc.FSSubjugationistRace = setup.filterRaces.keys().random();
+		if (arc.FSSubjugationist !== "unset" && !raceArray.includes(arc.FSSubjugationistRace)) {
+			arc.FSSubjugationistRace = raceArray.random();
 		}
 
 		arc.embargo = Number(arc.embargo) || 0;
diff --git a/src/endWeek/economics/neighborsDevelopment.js b/src/endWeek/economics/neighborsDevelopment.js
index fb2f0e2ea40c6d127024f356641c9148e9b255ee..c119bd4ad168fbea2e16a0dfc3c5f5aab72aac63 100644
--- a/src/endWeek/economics/neighborsDevelopment.js
+++ b/src/endWeek/economics/neighborsDevelopment.js
@@ -2617,7 +2617,7 @@ App.EndWeek.neighborsDevelopment = function() {
 				}
 				switch (validFSes.random()) {
 					case "FSSubjugationist": {
-						const subjugationRace = setup.filterRaces.keys().random();
+						const subjugationRace = Array.from(setup.filterRaces.keys()).random();
 						if ((arc.FSSupremacist === "unset") || (subjugationRace !== arc.FSSupremacistRace)) {
 							r.push(`${desc} preoccupied by a racial animus towards ${subjugationRace} people, leading the arcology to <span class="yellow">adopt ${subjugationRace} Subjugation.</span>`);
 							arc.FSSubjugationist = 5;
@@ -2627,7 +2627,7 @@ App.EndWeek.neighborsDevelopment = function() {
 						break;
 					}
 					case "FSSupremacist": {
-						const supremacistRace = setup.filterRaces.keys().random();
+						const supremacistRace = Array.from(setup.filterRaces.keys()).random();
 						if ((arc.FSSubjugationist === "unset") || (supremacistRace !== arc.FSSubjugationistRace)) {
 							r.push(`${desc} preoccupied by belief in the superiority of the ${supremacistRace} race, leading the arcology to <span class="yellow">adopt ${supremacistRace} Supremacy.</span>`);
 							arc.FSSupremacist = 5;
diff --git a/src/futureSocieties/fsPassage.js b/src/futureSocieties/fsPassage.js
index 9714a8aa8118c29f8416e08d5206b7d09268c05a..41151bfd0e3494cb25bd4643dc0bf9b50b510794 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(setup.filterRaces.keys()).filter(race => race !== arc.FSSubjugationistRace)) { // Subjugation race cannot be superior, so remove
+				for (const race of Array.from(App.Data.misc.filterRaces.keys()).filter(race => race !== 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) {
diff --git a/src/npc/generate/generateNewSlaveJS.js b/src/npc/generate/generateNewSlaveJS.js
index 0e882b7b70ed02a173655d70948c9cb0e327d7bc..1fa300b8ffc5d94e8f8f35a613679973c6993c16 100644
--- a/src/npc/generate/generateNewSlaveJS.js
+++ b/src/npc/generate/generateNewSlaveJS.js
@@ -45,7 +45,7 @@ globalThis.GenerateNewSlave = (function() {
 		x.mature = (mature === 0) ? 0 : 1;
 		x.nationality = nationality || 0;
 		x.race = race || 0;
-		if (x.race !== 0 && !(setup.filterRaces.keys().includes(x.race))) {
+		if (x.race !== 0 && !(Array.from(setup.filterRaces.keys()).includes(x.race))) {
 			console.log("Error, cannot find race: ", x.race);
 			x.race = 0;
 		}
diff --git a/src/npc/generate/heroCreator.js b/src/npc/generate/heroCreator.js
index 4490b755b7503cf0692357e1d1f296d63c33f579..2d7148c72e3b2525d4f171b58569303f09bfe785 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 && setup.filterRaces.keys().includes(heroSlave.race)) {
+		if (heroSlave.race && Array.from(setup.filterRaces.keys()).includes(heroSlave.race)) {
 			raceToNationality(heroSlave);
 		} else {
 			heroSlave.nationality = hashChoice(V.nationalities);
 		}
 	}
-	if (!heroSlave.race || !setup.filterRaces.keys().includes(heroSlave.race)) {
+	if (!heroSlave.race || !Array.from(setup.filterRaces.keys()).includes(heroSlave.race)) {
 		nationalityToRace(heroSlave);
 	}
 	if (!heroSlave.birthSurname && heroSlave.birthSurname !== "") {
diff --git a/src/uncategorized/pRivalryCapture.js b/src/uncategorized/pRivalryCapture.js
index 6c9517c406f923422d04c1d3370a67e6e5df8bf8..5e6ea55c4de28154f0ae877c2960423b7a7cb677 100644
--- a/src/uncategorized/pRivalryCapture.js
+++ b/src/uncategorized/pRivalryCapture.js
@@ -103,7 +103,7 @@ globalThis.pRivalryCapture = function() {
 		}
 		rivalType = rivalTypeArray.random();
 
-		if (setup.filterRaces.keys().includes(V.rivalRace)) {
+		if (Array.from(setup.filterRaces.keys()).includes(V.rivalRace)) {
 			race = V.rivalRace;
 		}
 		switch (rivalType) {