diff --git a/client/public/index.html b/client/public/index.html
index fa95e77f4090b01ac7fc74e47fbeeeddc76a309f..abdd4086a1042b1e1130750682a72ec82ba029a1 100644
--- a/client/public/index.html
+++ b/client/public/index.html
@@ -21,7 +21,7 @@
 		<div class="divMain">  
 			<h1>ça geek</h1>
 			<button class="buttonStart">Play</button>
-			<button class="ScoreBoard">ScoreBoard</button>
+			<button class="scoreBoard">ScoreBoard</button>
 			<button class="credits">Credits</button>
 	  </section>
 	</div>
diff --git a/client/src/main.js b/client/src/main.js
index 590aa6da6241bf43890fe6ac42f82788d14a4da2..5c360d9e4f3c4f8795eeff1f465e18729373b59e 100644
--- a/client/src/main.js
+++ b/client/src/main.js
@@ -47,6 +47,37 @@ setInterval(function () {
 document.querySelector('.buttonStart').addEventListener('click', startGame);
 document.querySelector('.credits').addEventListener('click', afficherCredits);
 
+/*document
+	.querySelector('.scoreBoard')
+	.addEventListener('click', afficherScoreboard);
+
+let scoreBoard = '';
+fetch('./scoreboard.json')
+	.then(response => {
+		if (!response.ok) {
+			throw new Error('Erreur lors de la récupération du fichier JSON');
+		}
+		return response.json();
+	})
+	.then(data => {
+		const score = data.results;
+		score.forEach(element => {
+			scoreBoard += 'Nom: ' + element.nom;
+			scoreBoard += ' Score: ' + element.score;
+			scoreBoard += '</br></br>';
+		});
+	})
+	.catch(error => {
+		scoreBoard += error.message;
+	});
+
+function afficherScoreboard(event) {
+	event.preventDefault();
+	document.querySelector('.divMain').innerHTML = scoreBoard;
+	const retour = document.querySelector('.retourMenu');
+	retour.addEventListener('click', afficherMenu);
+}*/
+
 function afficherCredits(event) {
 	event.preventDefault();
 	document.querySelector('.divMain').innerHTML = setHtml.credits();
@@ -116,40 +147,33 @@ let newBonus = [];
 function render() {
 	context.clearRect(0, 0, canvas.width, canvas.height);
 	context.drawImage(background, 0, 0, canvas.width, canvas.height);
-	context.font = '40pt New Super Mario Font U';
-	for (let i = 1; i < avatars.length; i++) {
-		if (avatars[i] != undefined) {
-			context.fillStyle = colors[i - 1];
-			const x = 10 + i * 100;
-			if (avatars[i].score != undefined) {
-				context.fillText(avatars[i].score, x, 50);
-			}
-			imageCoeur.src = `/images/heart${i}.webp`;
-			console.log(imageCoeur.src);
-			for (let j = 0; j < avatars[i].vies; j++) {
-				context.drawImage(
-					imageCoeur,
-					avatars[i].x + (avatars[i].vies - j) * 20 - 15,
-					avatars[i].y + imageMortier.height,
-					20,
-					20
-				);
+	if (gameStarted) {
+		context.font = '40pt New Super Mario Font U';
+		for (let i = 1; i < avatars.length; i++) {
+			if (avatars[i] != undefined) {
+				context.fillStyle = colors[i - 1];
+				const x = 10 + i * 100;
+				if (avatars[i].score != undefined) {
+					context.fillText(avatars[i].score, x, 50);
+				}
+				imageCoeur.src = `/images/heart${i}.webp`;
+				console.log(imageCoeur.src);
+				for (let j = 0; j < avatars[i].vies; j++) {
+					context.drawImage(
+						imageCoeur,
+						avatars[i].x + (avatars[i].vies - j) * 20 - 15,
+						avatars[i].y + imageMortier.height,
+						20,
+						20
+					);
+				}
 			}
 		}
-	}
 
-	context.fillStyle = 'blue';
+		context.fillStyle = 'blue';
 
-	context.fillText(0 + ':' + min + ':' + sec, canvas.width / 2, 50);
+		context.fillText(0 + ':' + min + ':' + sec, canvas.width / 2, 50);
 
-	for (let avatarId in avatars) {
-		Render.renderProjectile(
-			context,
-			avatar,
-			avatars,
-			avatarId,
-			imageProjectile
-		);
 		for (let avatarId in avatars) {
 			Render.renderProjectile(
 				context,
@@ -158,43 +182,52 @@ function render() {
 				avatarId,
 				imageProjectile
 			);
+			for (let avatarId in avatars) {
+				Render.renderProjectile(
+					context,
+					avatar,
+					avatars,
+					avatarId,
+					imageProjectile
+				);
+			}
+			socket.on('bonusArray', data => {
+				newBonus = data;
+			});
+			newBonus.forEach(bonus => {
+				let img = new Image();
+				img.src = bonusImages[bonus.choix];
+				img.width = 75;
+				img.height = 75;
+				draw(canvas, context, img, bonus.x, bonus.y);
+			});
+			socket.on('enemis', data => {
+				newEnemis = data;
+			});
+			newEnemis.forEach(enemi => {
+				Render.renderEnnemi(
+					canvas,
+					context,
+					imageEnemi,
+					imageEnemi2,
+					enemi.x,
+					enemi.y,
+					enemi
+				);
+			});
+			socket.on('bonusArray', data => {
+				newBonus = data;
+			});
+			newBonus.forEach(bonus => {
+				Render.renderBonus(
+					canvas,
+					context,
+					bonusImages[bonus.choix],
+					bonus.x,
+					bonus.y
+				);
+			});
 		}
-		socket.on('bonusArray', data => {
-			newBonus = data;
-		});
-		newBonus.forEach(bonus => {
-			let img = new Image();
-			img.src = bonusImages[bonus.choix];
-			img.width = 75;
-			img.height = 75;
-			draw(canvas, context, img, bonus.x, bonus.y);
-		});
-		socket.on('enemis', data => {
-			newEnemis = data;
-		});
-		newEnemis.forEach(enemi => {
-			Render.renderEnnemi(
-				canvas,
-				context,
-				imageEnemi,
-				imageEnemi2,
-				enemi.x,
-				enemi.y,
-				enemi
-			);
-		});
-		socket.on('bonusArray', data => {
-			newBonus = data;
-		});
-		newBonus.forEach(bonus => {
-			Render.renderBonus(
-				canvas,
-				context,
-				bonusImages[bonus.choix],
-				bonus.x,
-				bonus.y
-			);
-		});
 	}
 
 	requestAnimationFrame(render);
diff --git a/client/src/scoreboard.json b/client/src/scoreboard.json
new file mode 100644
index 0000000000000000000000000000000000000000..b0486a39b78a0aeef67674469994b2b16643b751
--- /dev/null
+++ b/client/src/scoreboard.json
@@ -0,0 +1,17 @@
+{
+    "results": [
+      {
+        "nom": "Joueur 1",
+        "score": 100
+      },
+      {
+        "nom": "Joueur 2",
+        "score": 200
+      },
+      {
+        "nom": "Joueur 3",
+        "score": 150
+      }
+    ]
+  }
+  
\ No newline at end of file
diff --git a/server/index.js b/server/index.js
index c3f5e1e139a77bdcb4d86dc19e852abec89f90c5..1a6da4abdc1b194c68d1a076edc4fee0abcd8043 100644
--- a/server/index.js
+++ b/server/index.js
@@ -15,6 +15,7 @@ let canvasSize = new Coordinate(1920, 1261);
 
 let canLostLifeAvatar = true;
 let canLostLifeEnemi = true;
+let gameStarted = false;
 
 let t = new timer();
 
@@ -32,8 +33,12 @@ httpServer.listen(port, () => {
 });
 
 setInterval(function () {
-	t.addTime();
-	io.emit('timer', t.getMin(), t.getSec());
+	if (gameStarted) {
+		t.addTime();
+		io.emit('timer', t.getMin(), t.getSec());
+	} else {
+		t = new timer();
+	}
 }, 1000);
 
 const avatars = [];
@@ -63,6 +68,14 @@ io.on('connection', socket => {
 			console.log(`Déconnexion du client ${socket.id}`);
 		});
 
+		socket.on('start', s => {
+			if (s == true && cpt != 0) {
+				gameStarted = s;
+			} else if (cpt == 0) {
+				gameStarted = false;
+			}
+		});
+
 		socket.on('clickEvent', clickEvent => {
 			const playerAvatar = avatars.find(avatar => avatar.nom === clickEvent.id);
 			if (playerAvatar) {
@@ -96,43 +109,45 @@ io.on('connection', socket => {
 });
 
 let spawnIntervalLV1 = setInterval(() => {
-	if (t.getSec() >= 10) {
-		LVL2start = true;
-	}
+	if (gameStarted) {
+		if (t.getMin() >= 1) {
+			LVL2start = true;
+		}
 
-	let randomY = Math.random() * (canvasSize.height - 0) + 0;
-	do {
-		randomY = Math.random() * (canvasSize.height - 0) + 0;
-	} while (randomY > canvasSize.height - 57);
-	const newEnemy = new enemi(canvasSize.width, randomY, 0, 1);
-	enemis.push(newEnemy);
+		let randomY = Math.random() * (canvasSize.height - 0) + 0;
+		do {
+			randomY = Math.random() * (canvasSize.height - 0) + 0;
+		} while (randomY > canvasSize.height - 57);
+		const newEnemy = new enemi(canvasSize.width, randomY, 0, 1);
+		enemis.push(newEnemy);
+	}
 }, 1000);
 
 let spawnIntervalLV2 = setInterval(() => {
-	if (LVL2start) {
+	if (LVL2start && gameStarted) {
 		let randomY = Math.random() * (canvasSize.height - 0) + 0;
 		do {
 			randomY = Math.random() * (canvasSize.height - 0) + 0;
 		} while (randomY > canvasSize.height - 100);
 		const newEnemy = new enemi(canvasSize.width - 100, randomY, 1, 2);
-		newEnemy.setVx(10);
-		newEnemy.setVy(4);
 		enemis.push(newEnemy);
 	}
 }, 800);
 
 let spawnBonusInterval = setInterval(() => {
-	let randomX;
-	let randomY;
-	const choix = Math.floor(Math.random() * bonusNoms.length);
-	do {
-		randomY = Math.random() * (canvasSize.height - 0) + 0;
-	} while (randomY > canvasSize.height - 75);
-	do {
-		randomX = Math.random() * (canvasSize.width - 0) + 0;
-	} while (randomX > canvasSize.width - 75);
-	const bonus = new Bonus(choix, 1, randomX, randomY, t.getTotalTime());
-	bonusArray.push(bonus);
+	if (gameStarted) {
+		let randomX;
+		let randomY;
+		const choix = Math.floor(Math.random() * bonusNoms.length);
+		do {
+			randomY = Math.random() * (canvasSize.height - 0) + 0;
+		} while (randomY > canvasSize.height - 75);
+		do {
+			randomX = Math.random() * (canvasSize.width - 0) + 0;
+		} while (randomX > canvasSize.width - 75);
+		const bonus = new Bonus(choix, 1, randomX, randomY, t.getTotalTime());
+		bonusArray.push(bonus);
+	}
 }, 15000);
 
 setInterval(() => {