diff --git a/LuaMenu/widgets/gui_modoptions_panel.lua b/LuaMenu/widgets/gui_modoptions_panel.lua
index c28da8099..724535e8b 100644
--- a/LuaMenu/widgets/gui_modoptions_panel.lua
+++ b/LuaMenu/widgets/gui_modoptions_panel.lua
@@ -660,7 +660,20 @@ function ModoptionsPanel.LoadModoptions(gameName, newBattleLobby)
 		return VFS.Include("modoptions.lua", nil, VFS.ZIP)
 	end
 
-	modoptions = VFS.UseArchive(gameName, LoadModOptions)
+	do
+		local alreadyLoaded = false
+		for _, archive in pairs(VFS.GetLoadedArchives()) do
+			if archive == gameName then
+				alreadyLoaded = true
+				break
+			end
+		end
+		if alreadyLoaded then
+			modoptions = VFS.Include("modoptions.lua", nil, VFS.ZIP)
+		else
+			modoptions = VFS.UseArchive(gameName, LoadModOptions)
+		end
+	end
 
 	modoptionDefaults = {}
 	if not modoptions then