diff --git a/Assets/ChargementJSONStructure.cs b/Assets/ChargementJSONStructure.cs
index e0b5e78f99c6f499944d009e14b3fc8c651327ff..dd8c7a96f88a97076559b2b71a035a19fb15f21e 100644
--- a/Assets/ChargementJSONStructure.cs
+++ b/Assets/ChargementJSONStructure.cs
@@ -63,6 +63,9 @@ public class ChargementJSONStructure : MonoBehaviour
         public string modalite;
         public string consigne;
         public string fond;
+        public string condition;
+        public DateTime debut;
+        public DateTime fin;
         public bool randomiser;
         public int nbItemsMax;
         public List<EpreuveItem> items;
diff --git a/Assets/EpreuveCondition.cs b/Assets/EpreuveCondition.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0a401bbead3b3f44268887c69a6a1a26cfc09d26
--- /dev/null
+++ b/Assets/EpreuveCondition.cs
@@ -0,0 +1,29 @@
+using System;
+using UnityEngine;
+
+using static ChargementJSONStructure;
+
+class EpreuveCondition
+{
+    public string text_condition;
+    public DateTime start;
+    public DateTime end;
+    public ChargementJSONStructure test;
+
+    public EpreuveCondition(Epreuve ep, ChargementJSONStructure jsonStructureScript)
+    {
+        text_condition = ep.condition;
+        start = ep.debut;
+        end = ep.fin;
+        Debug.Log("instance début" + start);
+        Debug.Log("instance fin" + end);
+        test = jsonStructureScript;
+    }
+
+    public bool eval()
+    {
+        DateTime now = DateTime.Now ;
+        //un jour il faudra traiter la condition aussi
+        return (((start == null) || (start <= now)) && ((now <= end) || (end == null)));
+    }
+}
diff --git a/Assets/EpreuveCondition.cs.meta b/Assets/EpreuveCondition.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..0272a1000c8f755c35f6dac1d58bc1bb11964672
--- /dev/null
+++ b/Assets/EpreuveCondition.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f09accaefe401f623bf1fce5d4035764
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Resources/one_for_all.json b/Assets/Resources/one_for_all.json
index 4467a4f2611cf656cab5c9130e72cc5ff67ada4e..37b02cae515aa21e96e68b38363f56001c89bada 100644
--- a/Assets/Resources/one_for_all.json
+++ b/Assets/Resources/one_for_all.json
@@ -8543,6 +8543,7 @@
 					"desc": null,
 					"consigne": "C.1.Xplc°_xrcc",
 					"randomiser": false,
+					"fin": "2023-12-31",
 					"items": [
 						{
 							"id": "tuto1_lapin",
diff --git a/Assets/mainManager.cs b/Assets/mainManager.cs
index 1ef6f98b5d6c74cfe2a12b2ca805c50ea2014f7d..4c9c183904681817ab7926e04380f7d7ec9598b0 100644
--- a/Assets/mainManager.cs
+++ b/Assets/mainManager.cs
@@ -7,6 +7,7 @@ using UnityEngine;
 using UnityEngine.SceneManagement;
 using UnityEngine.UI;
 using static ChargementJSONStructure;
+using static EpreuveCondition;
 
 public class mainManager : MonoBehaviour
 {
@@ -68,7 +69,7 @@ public class mainManager : MonoBehaviour
 
         // Vérifier si la clé existe dans le dictionnaire
         clefPourSauvegardeUtilisateur = "gm2024E";
-        
+
         if (HM_DataController.currentTeacherAccount != null && HM_DataController.currentChildUser!=null)
         {
             clefPourSauvegardeUtilisateur = HM_DataController.currentTeacherAccount.teacherCode.ToString() + HM_DataController.currentChildUser.userID.ToString();
@@ -336,7 +337,7 @@ public class mainManager : MonoBehaviour
                     epreuvesitemsCurrent = ShuffleList(epreuvesitemsCurrent);
                 }
                 epreuveitemscurrentSet = true;
-                
+
             }
 
 
@@ -373,6 +374,43 @@ public class mainManager : MonoBehaviour
         return shuffled;
     }
 
+    public void nextEpreuve(bool addOne)
+    {
+        Debug.Log("nextEpreuve");
+        // on regarde s'il y a une autre epreuve dans la m�me session � lancer
+        if (s!=null && currentEpreuve >= s.epreuves.Count - 1)
+        {
+            //pas d'autre epreuve dans cette session, on clot la session
+            Debug.Log("pas d'autre epreuve dans cette session, on clot la session currentEpreuve="+ currentEpreuve+ " s.epreuves.Count="+ s.epreuves.Count);
+            ouvrirMenu(true);
+        }
+        else
+        {
+            Debug.Log("il y a une autre epreuve dans cette session, on voit si on la lance");
+            currentEpreuve++;
+            if (playableEpreuve(s.epreuves[currentEpreuve]))
+            {
+                currentItem = 0;
+                epreuveConsignebeenPlayed = false;
+                current_step = -1;
+                resetItem();
+                playSteps();
+            }
+            else
+            {
+                nextEpreuve();
+            }
+        }
+    }
+
+    public bool playableEpreuve(Epreuve test_ep)
+    {
+        EpreuveCondition cond = new EpreuveCondition(test_ep, jsonStructureScript);
+        return cond.eval();
+    }
+
+
+
     public void endItem()
     {
         Debug.Log("endItem");
@@ -385,23 +423,7 @@ public class mainManager : MonoBehaviour
         {
             Debug.Log("pas d'autre item dans cette epreuve currentItem=" + currentItem + " epreuvesitemsCurrent.Count= " + epreuvesitemsCurrent.Count);
             // pas d'autre liste d'items dans cette epreuve
-            // on regarde s'il y a une autre epreuve dans la m�me session � lancer
-            if (s!=null && currentEpreuve >= s.epreuves.Count - 1)
-            {
-                //pas d'autre epreuve dans cette session, on clot la session
-                Debug.Log("pas d'autre epreuve dans cette session, on clot la session currentEpreuve="+ currentEpreuve+ " s.epreuves.Count="+ s.epreuves.Count);
-                ouvrirMenu(true);
-            }
-            else
-            {
-                Debug.Log("il y a une autre epreuve dans cette session, on la lance");
-                currentItem = 0;
-                currentEpreuve++;
-                epreuveConsignebeenPlayed = false;
-                current_step = -1;
-                resetItem();
-                playSteps();
-            }
+            nextEpreuve();
             //s.epreuves[currentEpreuve];
         }
         else
@@ -504,7 +526,7 @@ public class mainManager : MonoBehaviour
 
         while (audioIsPaused || (!boutonCheatNext && mainAudioSource.isPlaying))
         {
-           
+
             if (Time.timeScale != 0)
             {
                 // Si le Time.timeScale n'est pas zéro et que l'AudioSource est en pause, le reprendre
@@ -736,11 +758,11 @@ public class mainManager : MonoBehaviour
         }
         else
         {
-            
+
             boutonSessionEnCours.SetActive(true);
         }
         gameObjFin.SetActive(true);
-        
+
 
         if (findesession)
         {
@@ -765,7 +787,7 @@ public class mainManager : MonoBehaviour
                 boutonDeconnexion.SetActive(true);
             }
         }
-      
+
 
     }
     public void clicRetourSessionEnCOurs()
@@ -814,7 +836,7 @@ public class mainManager : MonoBehaviour
         if (deconnexionPlusRAZ)
         {
             gestionProg.SauveProgression(0, true);
-            
+
         }
         Time.timeScale = 1.0f;
         Debug.Log("terminateScene");
diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset
index 65f0d78740cb0eee7960c40a5aac01f5f2fe9f3c..dffbd1d53c9489d516ea0c6007deba47dc3da5c3 100644
--- a/UserSettings/EditorUserSettings.asset
+++ b/UserSettings/EditorUserSettings.asset
@@ -21,16 +21,16 @@ EditorUserSettings:
       value: 5057510250560c5d5d0a0a7312225d44424e4d737e7b246928781f61b6e4373c
       flags: 0
     RecentlyUsedSceneGuid-5:
-      value: 025701560657515e545d0926447508454e474f2f797820647b7d4c35e1b93661
+      value: 51530603000d5e0a5c0c5a7044705c44404f1a7d7b2d20607a714d66b4b9626a
       flags: 0
     RecentlyUsedSceneGuid-6:
-      value: 51530603000d5e0a5c0c5a7044705c44404f1a7d7b2d20607a714d66b4b9626a
+      value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661
       flags: 0
     RecentlyUsedSceneGuid-7:
-      value: 515250075c0c595e5f5a5e71122159444e4e4a2f7a7d7f602f284d66b4b76661
+      value: 52045152560d5d025858542140750e44404f4d2b74797431292b1f66b1e5373c
       flags: 0
     RecentlyUsedSceneGuid-8:
-      value: 52045152560d5d025858542140750e44404f4d2b74797431292b1f66b1e5373c
+      value: 025701560657515e545d0926447508454e474f2f797820647b7d4c35e1b93661
       flags: 0
     vcSharedLogLevel:
       value: 0d5e400f0650