diff --git a/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs b/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs
index 329ae8bfe288ff869f670030740b2b3a73474ed4..0126fd20176537178b846b04ff3e5416907816f2 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/SolutionOrganizer.cs
@@ -89,7 +89,7 @@ public List<Fact> getMasterFactsByIndex (int i)
         return ValidationSet[i].MasterIDs.Select(id => this[id]).ToList();
     }
 
-    public new void store(string name, List<Directories> hierarchie = null, bool use_install_folder = false)
+    public new void store(string name, List<Directories> hierarchie = null, bool use_install_folder = false, bool overwrite = true)
     {
         hierarchie ??= new List<Directories>();
         hierarchie.AddRange(hierVal.AsEnumerable());
@@ -97,11 +97,17 @@ public List<Fact> getMasterFactsByIndex (int i)
         base.store(name + endingSol, hierarchie, use_install_folder);
 
         string path_o = path_Val;
-        path_Val = CreatePathToFile(out _, name + endingVal, "JSON", hierarchie, use_install_folder);
+        path_Val = CreatePathToFile(out bool exists, name + endingVal, "JSON", hierarchie, use_install_folder);
+        hierarchie.RemoveRange(hierarchie.Count - hierVal.Count, hierVal.Count);
+
+        if (exists && !overwrite)
+        {
+            path_Val = path_o;
+            return;
+        }
+
         JSONManager.WriteToJsonFile(path_Val, this.ValidationSet, 0);
         path_Val = path_o;
-
-        hierarchie.RemoveRange(hierarchie.Count - hierVal.Count, hierVal.Count);
     }
 
     public static bool load(ref SolutionOrganizer set, bool draw, string name, List<Directories> hierarchie = null, bool use_install_folder = false)
diff --git a/Assets/Scripts/Loading/Stage.cs b/Assets/Scripts/Loading/Stage.cs
index 87ec2f07acd49b5383394d54cf2715671fe6350a..f63431ef272be372862ac7393d7976a06de82251 100644
--- a/Assets/Scripts/Loading/Stage.cs
+++ b/Assets/Scripts/Loading/Stage.cs
@@ -274,8 +274,9 @@ public void store(bool reset_player = false)
             path = path_o;
 
             hierarchie.AddRange(hierStage.AsEnumerable());
-            if(solution != null && solution.ValidationSet.Count > 0 && !solution.ValidationSet.Aggregate(false, (last, next) => last || next.IsEmpty()))
-                solution.store(name, hierarchie, use_install_folder);
+            if(solution != null)
+                solution.store(name, hierarchie, use_install_folder,
+                    overwrite: solution.ValidationSet.Count > 0 && !solution.ValidationSet.Aggregate(false, (last, next) => last || next.IsEmpty()));
         }
 
         if (player_record != null)